Читаем Технологии программирования полностью

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

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

Спецификация может описывать соглашение между программистами и заказчиками (пользователями). Программист берется написать программу, а пользователь соглашается не полагаться на знания о том, как именно эта программа реализована, т. е. не предполагать ничего такого, что не было бы указано в спецификации. Такое соглашение позволяет разделить анализ реализации от собственно использования программы. Спецификации дают возможность создавать логические основы, позволяющие успешно «разделять и властвовать».

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

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

Уже в первичных спецификациях можно выделить две части: функциональную и эксплуатационную.

Первичная функциональная спецификация в первую очередь описывает:

— объекты, участвующие в задаче (что делает программа и что делает человек, работающий с этой программой);

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

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

То есть вначале фиксируются внешние функциональные спецификации, а затем и внутренние.

В общем случае внешние функциональные спецификации включают:

— описание того, что делает программа;

— определение, что делает человек, а что машина (по каким эвроритмам работает человек, откуда он берет информацию и как ее готовит к вводу в ЭВМ);

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

— реакции на исключительные ситуации.

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

К внутренним спецификациям относятся описания состава внутренних частей программы, описания их взаимосвязи, а также внутренние функциональные спецификации.

Внутренние функциональные спецификации включают описания алгоритмов как всей программы, так и ее частей с учетом спецификации внутренних данных программы (переменных, особенно структурированных).

Изложенные далее абстракции процедуры, данных и объектов лежат в основе многих методов разработки программного обеспечения. В общем случае любую программу можно представить набором процедурных абстракций (рис. 1.2). Анализируя рис. 1.2, можно получить обобщенную абстракцию процедуры, изображенную на рис. 1.3. Абстракции процедур наиболее полно воплотились в технологии структурного программирования.

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

Рис. 1.2. Абстракция программы как набора процедур, обрабатывающих данные

Рис. 1.3. Абстракция процедуры

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

Перейти на страницу:

Похожие книги