Файл: Технология раработки програмного обеспечения УП.pdf

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

 
 

11

2.1 

Анализ

требований

предъявляемых

к

системе

На

первом

этапе,

часто

неоправданно

опускаемом,

опре-

деляются

требования,

которые

позволяют

получить

приемлемое

решение

проблемы.

На

этом

этапе

формулируются

целевое

на-

значение

и

основные

свойства

разрабатываемой

программной

системы.

Процесс

выполнения

работ

и

оформление

результатов

на

этом

этапе

проработаны

гораздо

в

меньшей

степени,

чем

на

других,

и

в

общем

случае

не

являются

объектом

деятельности

профессиональных

программистов.

Если

предметом

разработки

является

не

программная

сис-

тема,

а

более

сложный

объект

(например,

система

управления

технологическим

процессом),

включающий

программы

только

в

качестве

составной

части,

требования

формируются

ко

всему

предмету

разработки.

В

том

случае,

когда

разработка

про-

граммного

обеспечения

является

самоцелью,

обычно

использу-

ются

методы

составления

исходных

описаний.

Одним

из

самых

эффективных

методов

исходных

описаний

является

метод

структурного

анализа,

сущность

которого

сводится

к

декомпо-

зиции

исходного

объекта

на

его

составные

части

(рис.

2.2).

Рис.

2.2

Схема

декомпозиции

системы

A


background image

 
 

12

Таким

образом,

создается

иерархия

связанных

подсистем

(обязательно

непересекающихся).

В

общем

случае,

анализ

требований,

предъявляемых

к

системе,

должен

быть

сосредоточен

на

интерфейсе

между

чело-

веком

(пользователем)

и

инструментом

(ЭВМ).

При

этом

для

программных

систем

можно

выделить

лишь

базовые

требова-

ния:

время

обработки

(работы)

программы;

стоимость

обработки;

вероятность

ошибки;

реакция

на

непредсказуемые

действия

оператора

(за-

щита

от

дурака

и

др.).

При

декомпозиции

требований

следует

делать

различия

между

жесткими

требованиями

и

требованиями,

выполнение

которых

не

является

строго

обязательным.

Особое

внимание

следует

уделять

пространственно-вре

-

менным

ограничениям

и

средствам

системы,

которые

в

буду-

щем

могут

претерпеть

изменения.

К

важнейшим

требованиям

относятся

ресурсные

требова-

ния

и

затраты

на

реализацию

системы.

Фактически,

анализ

требований

завершается

составлени-

ем

развернутого

технического

задания

на

систему,

которое

в

терминологии

классического

САПР

называется

аван-проектом.

2.2 

Определение

спецификаций

На

этапе

определения

спецификаций

осуществляется

точ-

ное

описание

функций,

реализуемых

ЭВМ,

а

также

задаются

структура

входных

и

выходных

данных,

методы

и

средства

их

размещения.

Определяются

алгоритмы

обработки

данных.

Центральным

вопросом

определения

спецификаций

явля-

ется

проблема

организации

базы

данных.

При

этом

решается

комплекс

вопросов,

имеющих

отношение

к

структуре

файлов,

организации

доступа

к

ним,

модификации

и

удалению.

В

случае,

когда

новая

система

создается

на

основе

суще-

ствующих,

составной

частью

спецификаций

является

схема

(ал-

горитм)

приведения

существующей

базы

данных

к

новому

формату.

Такое

преобразование

может

потребовать

разработку


background image

 
 

13

специальной

программы,

которая

становится

ненужной

после

ее

первого

и

единственного

использования.

Все

эти

вопросы

должны

быть

отражены

в

функциональ-

ных

спецификациях,

которые

представляют

собой

документ,

являющийся

основополагающим

в

процессе

разработки

систе-

мы,

так

как

содержит

конкретное

описание

последней.

Чем

под-

робней

составлены

спецификации,

тем

меньше

вероятность

возникновения

ошибок.

В

спецификациях

должны

быть

представлены

данные

для

тестирования

элементов

системы

и

системы

в

целом.

Это

тре-

бование

является

объективным

и

обязательным,

т.к.

на

данном

этапе

на

параметры

тестирования

не

будет

оказывать

влияние

конкретная

реализация

системы.

Так

как

функциональные

спецификации

описывают

при-

нятые

решения

в

целом,

данный

документ

можно

использовать

для

начальных

оценок

временных

затрат,

числа

специалистов

и

других

ресурсов,

необходимых

для

проведения

работ.

В

общем

случае,

спецификации

определяют

те

функции,

которые

должна

выполнять

система,

не

указывая,

каким

обра-

зом

это

достигается.

Составление

подробных

алгоритмов

на

этом

этапе

преждевременно

и

может

вызвать

нежелательные

осложнения.

2.3 

Проектирование

На

стадии

проектирования

разрабатываются

алгоритмы,

задаваемые

спецификациями,

и

формируется

общая

структура

вычислительной

системы.

При

этом

система

разбивается

(при

необходимости)

на

составные

части

таким

образом,

чтобы

от-

ветственность

за

реализацию

каждой

составной

части

можно

было

бы

возложить

на

одного

разработчика

(или

группу

испол-

нителей).

При

этом

для

каждого

определенного

таким

образом

модуля

системы

должны

быть

сформированы

предъявляемые

к

нему

требования:

реализуемые

функции;

размеры;

время

выполнения

и

др.


background image

 
 

14

В

целом

соотношения

«требования

спецификация

проектирование»

можно

проиллюстрировать

следующей

схемой

(рис.

2.3).

Рис.

2.3

Схема

проектирования

программных

систем

Прежде

всего

Заказчик

анализирует

и

формулирует

тре-

бования

реальности,

которые

находят

отображение

в

требова-

ниях,

предъявляемых

к

программной

системе.

Однако

ЭВМ

не

способна

решить

задачу

непосредственно,

реальные

данные

не-

обходимо

каким-то

образом

закодировать

и

ввести

в

ЭВМ.

По-

добная

модель

решаемой

задачи

представляет

собой

абстракт-

ное

выражение

реального

мира

и

отражается

в

спецификациях.

Если

спецификации

программы

определены,

возникает

необходимость

в

описании

процесса

обработки

информации,

что

относится

к

этапу

проектирования.

Поскольку

программа

должна

использоваться

для

реальной

задачи,

то

на

этапе

реали-

зации

проекта

(кодирование,

тестирование)

осуществляется

перевод

формального

проекта

в

выполняемую

программу.

И

наконец,

пользователь

может

сравнить

планируемую

функцию

программы

с

реализованной

функцией.

Эти

функции

очень

редко

совпадают

полностью.

Таким

образом,

сопровож-

дение

замыкает

цикл

проектирования

и

позволяет

изменить

сис-

темные

требования,

спецификации,

проекты

программ

и

т.п.

В

процессе

проектирования

системы,

по

мере

выполнения

спецификаций

на

определенные

подмодули,

последние

пред-

Реальный

мир

Абстракция

(формализация)

Требования

(1)

Спецификация

(2)

Проектирование

(3)

Реализация

(4)


background image

 
 

15

ставляются

в

виде

древовидной

схемы,

показывающей

вхожде-

ние

элементов

системы

(рис.

2.4).

Рис.

2.4

Структурная

схема

компилятора 

Такая

схема

называется

базисной,

и

она

не

адекватна

спе-

цификациям.

Поскольку

в

начале

этапа

проектирования

реше-

ние

ряда

функциональных

задач

зачастую

не

определено,

про-

цесс

разбиения

на

подзадачи

может

быть

весьма

сложным.

В

проектировании

программных

систем

обычной

является

ситуа-

ция,

когда

Заказчик

не

знает,

что

точно

он

хочет.

Особенно

это

относится

к

процессам,

слабо

поддающимся

формализации

(ме-

дицина,

системы

военного

назначения

и

т.д.).

По

мере

разра-

ботки

проекта

Заказчик

меняет

спецификации.

Если

это

проис-

ходит

часто,

разработка

системы

существенно

усложняется.

Выход

из

таких

ситуаций

будет

нами

далее

проанализирован.

2.4 

Кодирование

Данный

этап

является

наиболее

простым,

а

его

реализа-

ция

существенно

облегчается

при

использовании

алгоритмиче-

ских

языков

высокого

уровня.

Кодирование

это

этап

разра-

ботки

программного

обеспечения,

доставляющий

наименьшее

беспокойство

разработчику.

По

имеющимся

статистическим

данным

64 %

всех

ошибок

вносятся

на

этапах

проектирования

и

Управляющая

программа

Генератор

кода

Синтаксический

анализатор

Вывод

на

печать

Программа

таблицы

символа

Блок

сканирования

Чтение