Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Проектирование программ



Современный подход к проектированию программ основан на декомпозиции задачи. Целью декомпозиции является создание модулей, которые представляют собой небольшие, относительно самостоятельные программы, взаимодействующие друг с другом по хорошо определенным и простым правилам.

Разработка любой программы или прикладной системы начинается с определения требований к ней для конкретного набора пользователей и заканчивается эксплуатацией системы этими пользователями.

По современным взглядам проектирование и разработку программ целесообразно разбить на ряд последовательных этапов:

постановка задачи;

проектирование программы;

построение модели;

разработка алгоритма;

реализация алгоритма;

анализ алгоритма и его сложности;

тестирование программы;

документирование.

При постановке задачи для крупных компьютерных программ необходимо провести следующие работы:

выработать требования (свойства, качества и возможности), необходимые для решения проблемы или достижения цели (как правило, эта деятельность носит экспертный характер);

разработать спецификации, включающие:

цель программы;

граничные условия;

описание функций системы;

спецификации входных и выходных данных;

верификационные требования (установление тестовых случаев);

тип и количество документов.

Проектирование программы осуществляется следующим образом. Сначала производится проектирование архитектуры программной системы. Это предполагает первичную (общую) стадию проектирования и заканчивается декомпозицией спецификаций в структуру системы. Обычно на модульном уровне разрабатывается спецификация каждого модуля:

имя/цель — дается имя модулю и предложение о его функции с формальными параметрами;

неформальное описание — обзор действий модуля;

ссылки — какие модули ссылаются на него и на какие модули ссылается данный модуль;

вход/выход — формальные и фактические параметры, глобальные, локальные и связанные (общие для ряда модулей) переменные;

примечания — полезные комментарии общего характера по модулю.

Следующим шагом является детальное проектирование. На этом этапе происходит процедурное описание программы, выбор и оценка алгоритма для реализации каждого модуля. Входной информацией для проектирования являются требования и спецификации системы.

Построение модели в большинстве случаев является непростой задачей. При построении моделей, как правило, используют два принципа: дедуктивный (от общего к частному) и индуктивный (от частного к общему). При дедуктивном подходе рассматривается частный случай общеизвестной фундаментальной модели. При заданных предположениях известная модель приспосабливается к условиям моделируемого объекта.

Индуктивный способ предполагает выдвижение гипотез, декомпозицию сложного объекта, анализ, затем синтез. Здесь широко используется подобие, аналогичное моделирование, умозаключение с целью формирования каких-либо закономерностей в виде предположений о поведении системы.

Технология построения модели при индуктивном способе:

эмпирический этап (умозаключение, интуиция, предположение, гипотеза);

постановка задачи для моделирования;

оценка, количественное и качественное описание;

построение модели.

Разработка алгоритма — самый сложный и трудоемкий процесс, но и самый интересный в творческом отношении. Выбор метода разработки зависит от постановки задачи, ее модели. На этом этапе необходимо провести анализ правильности алгоритма, что очень непросто и трудоемко.

Наиболее распространенная процедура доказательства правильности алгоритма — это прогон его на множестве различных тестов. Однако это не гарантирует того, что не может существовать случая, в котором программа «не сработает».

На этапе реализации алгоритма происходят конструирование и реализация алгоритма, включающие кодирование, интеграцию, тестирование (сертификацию).

По сути, проводится перевод проекта в форму программы для конкретного компьютера, сборка системы и ее прогон при тестовых и нормальных условиях для подтверждения ее работы в соответствии со спецификациями системы.

Анализ алгоритма и его сложности необходим для оценки ресурсов компьютеров, на которых он будет работать, времени обработки конкретных данных, приспособления в работе в локальных сетях и телекоммуникациях. Хотелось бы также иметь для данной задачи количественный критерий для сравнения нескольких алгоритмов с целью выбора более простого и эффективного среди них.

Перед началом эксплуатации программы необходим этап ее отладки и тестирования.

Тестирование — это процесс исполнения программ с целью выявления (обнаружения) ошибок. Тестирование — процесс деструктивный, поэтому считается, что тест удачный, если обнаружена ошибка.

Существуют различные способы тестирования программ:

тестирование программы как «черного ящика» — стратегия «черного ящика» определяет тестирование с анализом входных данных и результатов работы программы.

тестирование программы как «белого ящика» заключается в стратегии управления логикой программы, позволяет использовать ее внутреннюю структуру.

Различают альфа- и бета-тестирование, производимое соответственно специалистами разработчика и заказчика программного изделия.

Основные типы ошибок, встречающихся при программировании:

обращения к переменным, значения которым не присвоены или не инициализированы;

выход индексов за границы массивов;

несоответствие типов или атрибутов переменных величин;

явные или неявные проблемы адресации памяти;

ошибочные передачи управления;

логические ошибки.

Есть золотое правило программистов — оформляй свои программы в том виде, в каком бы ты хотел видеть программы, написанные другими. К каждому конечному программному продукту необходимо документированное сопровождение в виде помощи (help), файлового текста (readme.txt).





Дата публикования: 2014-11-18; Прочитано: 841 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...