КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Проектирование архитектуры
Разработка модуля или программы Вопросы и задачи для самостоятельного решения Определите понятие покрытия тестами исходного текста модуля? В чем разница тестирования требований спецификации на программный модуль и тестирования исходных текстов программного модуля? Может ли быть несколько тестовых примеров для проверки одного тест требования? А один тест-пример для проверки нескольких тест требований? Напишите тест-план на функцию вычисления периметра треугольника. Напишите тест-план на функцию вычисления максимума трех чисел, для покрытия следующего кода (I. по операторам; II. по условиям): int max3(int a, int b, int c) { int max; max = a; if (b > max) { max=b; }; if (c > max) { max=c; }; return max; }
Напишите тест-план на функцию int Compare(int A,B), если в функциональных требованиях сказано, что функция должна сравнивать на равенство числа в пределах от –76 до +77 и возвращать 0 при совпадении значений параметров. Проектировщик должен опираться на опыт, на строгое логическое мышление; и на педантичную точность.
Никлаус Вирт
Как уже говорилось ранее, при написании программы, модуля или функции можно применять два подхода к проектированию – нисходящий или восходящий, или комбинировать их. В любом случае, необходимо добиться такой структуры конечной программы, которая бы состояла из набора законченных блоков (модулей, функций, …), каждый из которых имел бы достаточно полную и законченную функциональность. Добиться этого можно разным путем, но результат всегда должен удовлетворять некоторым критериям, а именно: - максимальная независимость между собой блоков; - минимальное количество передаваемой между блоками информации; - отражение логики и данных каждого отдельного блока на отдельные сущности и понятия решаемой задачи.
Перед началом проектирования программы, необходимо разработать требования к ПО. На этом этапе определяются все функции будущего ПО. Требования должны однозначно определять всю функциональность и одновременно описывать все нестандартные ситуации. Например, если речь идет о функции деления одного числа на другое, требования должны содержать ответ на вопрос: «А что вернет функция, если знаменатель равен нулю?». Однако в требованиях не стоит забывать и об основных задачах функции, которые порой исчезают за многочисленными особыми случаями. Так, например, в требованиях к функции деления необходимо указать, что функция должна выполнять именно деление, по каким правилам должно оно происходить и с какой точностью. Часто удобно вводить условности, отличающие отдельные требования друг от друга и от пояснений. Хорошей практикой будет использование глагола должен (должна, должны) в каждом требовании, например: «Функция деления должна вернуть нуль в случае, если знаменатель или числитель, или они оба равны нулю». Сами требования делятся на разделы, и обычно отражают требования к самой функции/программе и требования к интерфейсу. Полезно всегда иметь краткое общее описание конечного продукта, просто и понятно описывающее его назначение. Одновременно с требованиями к самому ПО, на основе них пишутся тест требования, в которых отражается то, что надо будет проверить в ходе тестирования, чтобы убедиться, что ПО соответствует разрабатываемым требованиям. Каждое тест требование выделяет некий класс эквивалентности (или область), в котором надо проверить поведение программы и обычно содержит в себе фразу «проверить, что». Например, для приведенного в предыдущем абзаце требования тест требования можно сформулировать следующим образом (приведена лишь часть тест требований). 1.1. Проверить, что если числитель равен нулю, а знаменатель не равен нулю, то функция возвращает нуль. 2.2. Проверить, что если числитель не равен нулю, а знаменатель равен нулю, то функция возвращает нуль. 3.3. Проверить, что если числитель равен нулю и знаменатель равен нулю, то функция возвращает нуль.
Дале по тест требования формируют тест-план, а на его основе уже реализуют соответственно все тестовые примеры. По требованиям разрабатывается архитектура ПО, определяющая все модули, функции, их интерфейсы, а так же алгоритмы работы и структуры данных. Можно сказать, что архитектура ПО должна отвечать на вопрос «КАК работает программа», в то время как требования к ПО отвечают на вопрос «ЧТО должна делать программа». Лишь после разработки архитектуры можно приступать к кодированию. На этом этапе происходит воплощение архитектуры в виде программного кода на выбранном языке программирования с учетов всех его особенностей и возможностей. При кодировании необходимо учитывать не только свойства языка программирования, но и особенности выбранной архитектуры целевой машины. Тестирование программы следует начинать с отдельных функций, затем переходить к модулям, и только потом ко всей программе. Затем полностью «собранная» программа должна пройти все тестовые примеры, определенные в тест-плане.
Дата добавления: 2014-12-26; Просмотров: 542; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |