Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Основные этапы проектирования программного обеспечения




 

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

На рис. 3.2 представлены этапы проектирования типичной про­граммной системы. Отметим, что приведенные этапы не зависят от мето­дологии. Все указанные действия должны выполняться в той или иной форме, независимо от того, какой язык программирования был принят, пи­сал ли пользователь исходные требования, использовалось ли «структур­ное программирование» или «объектно-ориентированное программирова­ние».

Отметим, что проектирование ПО носит итеративный характер. Если на одном из этапов проектирования обнаружена ошибка, то для ее исправ­ления иногда приходится возвращаться на один из предыдущих этапов, куда именно – зависит от типа ошибки. Этот итеративный подход отражен на рис. 3.2. наличием стрелок, по которым возможны переходы между эта­пами, как при наличии ошибок, так и при отсутствии ошибок. Рассмотрим сначала последовательность этапов проектирования в предположении, что ошибок обнаружено не было.

 


 
 


Рис. 3.2. Этапы проектирования надежного ПО

 

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

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

Если в ПО предусмотрена база данных, то наличествует этап ее про­ектирования. Это определения всех внешних для программной системы структур, например записей в файле или в базе данных.

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

В качестве примера проектирования рассмотрим ПО для системы управления «интеллектуальным зданием», реализованной по технологии Feildbus. Это распределенная система, под которой понимают совокуп­ность автономных контроллеров управления и систем, объединенных в коммуникационные подсети для накопления данных и действующих со­вместно для решения общей задачи диспетчерского управления «интеллек­туальным зданием». Посредством сети происходит координация распреде­ленных процессов и обмен информацией. В отличие от централизованных систем здесь нет единого устройства управления. Различные процессы, та­кие как обеспечение потребителей электроэнергией, газом, холодной и го­рячей водой, информационными ресурсами, охранная и аварийная сигна­лизация, не только управляются автономно, но и внутри отдельного про­цесса возможно распараллеливание задач. В системе также наличествует база данных, учитывающая потребление каждого вида ресурсов, а также все аварии и сроки их устранения.

Для некоторых программных систем не все этапы, приведенные на рис. 3.2, являются обязательными. Часто отсутствуют этапы проектирова­ния архитектуры системы и проектирования базы данных; этапы исход­ного и детального внешнего проектирования также зачастую сливаются воедино. В данном учебном пособии в качестве единого сквозного при­мера возьмем один из проектов, в которых реализуются не все этапы – раз­работку лабораторной работы для изучения циклических кодов (ЦК). ЛР содержит 4 задачи:

1. Тестирование при допуске к ЛР. Тестирование осуществляется стан­дартной программой тестирования и требует только разработки собст­венно тестов.

2. Проектирование в среде Matlab (создание проекта системы). Проек­тирование состоит в построении функциональных моделей кодера ЦК, ка­нала передачи данных и декодера ЦК с использованием библиотеки Simu­link.

3. Исследование и анализ характеристик смоделированной системы. Характеристики изучаются на базе аналитической и имитационной моделей, которые программируется на базе встроенного в Matlab языка программи­рования.

4. Внедрение проекта, в частности программирование промышленных контроллеров с использованием соответствующей инструментальной среды (Triplex Isagraf 4.2) для реализации спроектированной системы передачи данных или отдельных ее функциональных узлов.

 

Правильность проектирования и планирование изменений

 

Явно выделенным шагом всякого этапа проектирования программ­ного обеспечения должна быть проверка правильности результатов, т.е. попытка найти ошибки перевода, возникшие на этом этапе.

Стоимость исправления ошибки тем ниже, чем раньше она будет об­наружена. Кроме того, вероятность правильно исправить ошибку на ран­ней стадии работы над проектом значительно выше, чем в случае, если ошибка обнаружена на более поздних этапах (рис. 3.3)

Хотя проверка правильности каждого отдельного этапа проектиро­вания проводится по разным методикам, можно сформулировать общую систему правил проверки в виде правила «n плюс-минус один». Вопросом пер­востепенной важности при проверке правильности проекта является при­влечение к этому делу «подходящих» людей. Наиболее «подходящие» люди – это те, в чьих интересах обнаружить все ошибки. Пусть, например, мы закончили n -й этап проектирования архитектуры системы. Проектиров­щики этапа n –1 – это авторы исходных внешних спецификаций, а проекти­ровщики этапа n +1 – это разработчики структуры программы. Именно им и следует доверить тестирование архитектуры системы.

Правило «n плюс-минус один» состоит в следующем: проверка пра­вильности этапа проекта должна осуществляться проектировщиками эта­пов n +1 и n –1. Это правило – еще один пример того, что интуитивно оче­видно, но редко применяется на практике. В случае необходимости должны быть установлены формальные процедуры, обеспечивающие ее применение.

 


Рис. 3.3. Основания для раннего обнаружения ошибок проектирования

 

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

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

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

Третье правило работы с изменениями – проверять правильность всякого изменения в такой же степени, в какой проверялось исходное ре­шение.

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





Поделиться с друзьями:


Дата добавления: 2015-05-08; Мы поможем в написании ваших работ!; просмотров: 2697 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Студент всегда отчаянный романтик! Хоть может сдать на двойку романтизм. © Эдуард А. Асадов
==> читать все изречения...

2466 - | 2202 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.011 с.