
- •Обучающий курс
- •Основные понятия и определения
- •Модели жизненного цикла разработки программных средств и систем
- •Стратегии
- •Каскадная модель жизненного цикла разработки программных средств и систем
- •Преимущества каскадной модели жизненного цикла
- •Недостатки каскадной модели жизненного цикла
- •Область применения каскадной модели
- •V-образная модель жизненного цикла разработки программных средств и систем
- •Преимущества V-образной модели жизненного цикла
- •Недостатки V-образной модели жизненного цикла
- •Область применения V-образной модели
- •Структурная эволюционная модель быстрого прототипирования жизненного цикла разработки программных средств и систем
- •Преимущества структурной эволюционной модели быстрого прототипирования
- •Недостатки структурной эволюционной модели быстрого прототипирования
- •Область применения структурной эволюционной модели быстрого прототипирования
- •Модель быстрой разработки приложений rad
- •Преимущества модели быстрой разработки
- •Недостатки модели быстрой разработки
- •Область применения модели быстрой разработки rad
- •Инкрементная модель жизненного цикла разработки программных средств и систем
- •Преимущества инкрементной модели жизненного цикла
- •Недостатки инкрементной модели жизненного цикла
- •Область применения инкрементной модели
- •Спиральная модель жизненного цикла разработки программных средств и систем
- •Преимущества спиральной модели жизненного цикла
- •Недостатки спиральной модели жизненного цикла
- •Область применения спиральной модели
- •Упрощенные варианты спиральной модели
- •Классические технологии проектирования программ
- •Модульное проектирование программ
- •Метод нисходящего проектирования
- •Пошаговое уточнение
- •Анализ сообщений
- •Связность модуля
- •Типы и силы связности модулей.
- •Сцепление модулей
- •Типы и степени сцепления модулей.
- •Метод восходящего проектирования
- •Методы расширения ядра
- •Метод иерархического проектирования модулей (метод Джексона)
- •Case-технологии проектирования программного обеспечения
- •Общие сведения о case-технологиях
- •Информационное моделирование
- •Сущности
- •Атрибуты
- •Способы представления сущностей с атрибутами
- •5. Студент (с)
- •Классификация атрибутов
- •Правила атрибутов
- •Безусловные связи
- •Условные формы связи
- •Формализация связи
- •Подтипы и супертипы
- •Рабочие продукты информационного моделирования
- •Пример информационной модели
- •Методология структурного анализа и проектирования sadt
- •Синтаксис и применение диаграмм
- •Синтаксис моделей и работа с ними
- •Стратегии декомпозиции при sadt-моделировании
- •Процесс sadt-моделирования
- •Инструментальные средства проектирования программного обеспечения
- •Классификация case средств
Классические технологии проектирования программ
Модульное проектирование программ
Под модуляризацией понимается разделение программы на части по некоторым установленным правилам.
Модульная программа – это программа, в которой любую часть логической структуры можно изменить не вызывая изменений в других частях программы.
Признаки модульности программы:
Программа состоит из модулей.
Независимость модулей.
Условие : один вход, один выход.
Достоинства модульного проектирования:
Упрощение разработки и реализации программ.
Облегчение чтения программы.
Упрощения настройки и модификации программы.
Облегчение работы с данными, имеющими сложную структуру.
Исключение чрезмерной детализации алгоритма.
Недостатки:
модульность требует большей дополнительной работы программиста и определенных навыков проектирования программ.
модульный подход в среднем требует большего времени работы ЦП(на 5-10%) за счет времени обращения к модулям.
модульность программ приводит к увеличению объема программ(на 5-10%).
Методы проектирования модульных программ делятся на 3 группы:
1.методы нисходящего проектирования.
2.Методы расширения ядра.
3.Методы восходящего проектирования.
Метод нисходящего проектирования
Основное назначение:
Служить средством разбиение большой задачи на меньшие подзадачи так, чтобы каждую задачу можно было рассматривать независимо.
Суть метода: в начальном шаге в соответствии с функцией всей программы продумывается общая структура всего алгоритма без детальной обработки его отдельных частей.
Затем определяется подфункции программы, и в соответствии с ними прорабатываются отдельные блоки, недетализированные на предыдущем шаге. Эти действия являются рекурсивными, пока не достигнута нужная степень детализации.
Метод основан на двух стратегиях:
пошаговое уточнение (разработана Дейкстрой)
анализ сообщений (разработана группой авторов:Йодан, Константайн, Мейерс).
Пошаговое уточнение
При пошаговом уточнении на каждом следующем этапе декомпозиции определяются программные фрагменты очередного более низкого уровня.
Существуют 2 способа реализации пошагового уточнения:
кодирование программы с помощью псевдокода и управляющих конструкций структурного программирования.
Взаимное расположение записи должно обеспечивать читабельность всей программы.
Кодирование программы с помощью псевдокода и управляющих конструкций структурного программирования
Общее правило записи текста программы:
Служебные слова, которыми начинается и заканчивается та или иная управляющая конструкция записываются на одной вертикали. Все вложенные в данную конструкцию псевдокоды записываются с отступом вправо. Разбиение на модули осуществляется эвристическим способом. На каждом этапе проектирования по возможности не уточняются операции с данными. Но выбор необходимых управляющих конструкций уточняется на каждом этапе. На этапе, когда принимается решение о дальнейшем уточнении, оставшиеся неопределенными подфункции становятся вызываемыми подпрограммами, а проектируемый модуль – управляющим модулем.
Пример: проект программы обработки пакетов некоторых групп записей. Каждая группа, сопровождаемая управляющей группой, имеет заголовок и окончание.
1 этап: programобработка_пакетов;
2 этап
Programобработка_пакетов;
[сортировать_записи_по_управляющим_полям
отделить_правильные_записи_от_неправильных_и_обработать]
Endprogram
3 этап
Programобработка_пакетов;
сортировать_записи_по_управляющим_полям
взять_первую_запись
[Whileне_конец_входного_файлаDo
взять_прав_уппр_группу
обработать_группу_записей
End
обработать_неправ_упр_группы
]
Endprogram
Процесс детализации продолжаем, пока не будет принято решение о прекращении дальнейшей детализации. Все действия, записанные в последней программе в виде предложений, оформляются в виде подпрограмм.
Преимущества метода пошагового уточнения:
основное внимание при его использовании обращается на проектирование корректной структуры программ, а не на ее детализацию.
так как каждый последующий этап является уточнением предыдущего лишь с небольшими изменениями, то легко может быть выбрана проверка корректности процесса разработки на всех этапах.
Недостаток метода:
на поздних этапах проектирования может обнаружиться необходимость в структурных изменениях, требующих пересмотра более ранних конструкций.
Использование комментариев для описания обработки данных.
При этом способе на каждом этапе уточнений используют управляющие конструкции, а правила обработки данных не детализируют, описывая их в виде комментариев. Но сами комментарии при этом не выбрасывают.
Существуют следующие виды комментариев.
заголовки: объясняют назначение основных блоков программы на отдельных этапах пошаговой детализации.
построчные: описывают мелкие фрагменты программы.
вводные комментарии: помещаются в начале текста программы и задают общую информацию о программе.
Нормы комментариев:
4-5 строк комментария заголовка на каждую подпрограмму или блок и по 1 комментарию на каждые 2-3 строки исходного текста для построчных комментариев.
Пример:
1 этап
{программа обработки пакетов записей
разработчик – Иванов И.И. …}
{Заголовок программы}
2 этап
{вводный комментарий из предыдущего этапа}
{заголовок программы}
Program{обработка пакетов}
{сортировка записей по упр полям}
{отделение правильных записей от неправильных и их обработка}
Endprogram
3 этап
{отделение правильных записей от неправильных и их обработка}
{взятие первой записи}
While{не конец входного файла}do
{взятие правильной управляющей группы}
{Обработка группы записей}
End
{обработка неправильной управляющей группы}
Endprogram