- •5,6 Семестр Общие принципы проектирования программных систем. Этапы жизненного цикла программной системы.
- •1. Постановка задачи:
- •Требования, предъявляемые к программным системам:
- •2. Разработка:
- •3. Реализация:
- •Нисходящее и восходящее проектирование.
- •Структурное программирование (без go to).
- •2) Ветвление (if): 3) цикл с предусловием (do while):
- •1.2.4. Язык проектирования (метаязык)
- •Глава 2. Структуры данных.
- •2.1. Агрегативные переменные
- •2.2. Динамические структуры данных.
- •2.2.1. Списки. (Списочные структуры).
- •2.2.2. Очереди
- •2.2.3. Стеки
- •2.2.4. Множества
- •2.2.5. Деревья и графы
- •1 . Направленный граф:
- •2 . Ненаправленный граф:
- •2.3. Абстрактные структуры данных
- •2.3.2. Объекты
- •2.4. Файловые типы данных
- •2.4.4. Операции над файлами
- •4. Специальные операции:
- •Специальные типы файлов языка Pascal.
- •Файлы в других языках
- •3. Алгоритмы
- •3.1. Типы алгоритмов. Сложность алгоритмов.
- •3.2. Способы реализации алгоритмов.
- •5.2 Реализация наследования в Паскале
- •5.3 Проблема наследования статических методов
- •6.1 Объекты и их жизненный цикл
- •6.2. Инкапсуляция. Св-ва
- •6.3 Наследование
- •6.4. Области видимости
- •6.5 Информация о классе
- •Особенности архитектуры программ
- •7 .1 Обработчики сообщений Windows в Delphi
- •Средства разработки Windows приложений
- •4.4.2 Основные понятия ооп
- •4.4.3 Типы оос
- •4.4.4 Общие принципы работы оос-м
- •Особенности объектно-ориентированных систем
- •4.1 Декомпозиция и абстракция
- •Методы проектирования ориентированные на обработку
- •4.2.1 Модульное программирование
- •4.2.2 Функциональная декомпозиция
- •1. Пошаговое уточнение:
- •2. Метод анализа потоков данных:
- •Связанность модулей
- •Сцепление модулей
- •4.2.3. Технология структурного анализа проекта
- •4.2.4 Язык определения задач psl/psa
- •Методология Джексона
- •Методология Уорнера
- •4.2.6. Метод иерархических диаграмм hipo
- •Методы проектирования ориентированные на данные
4.4.4 Общие принципы работы оос-м
К ак правило для всех объектов одного типа части запоминаются на уровне класса.
Если данные и процедуры наследуются от другого класса, то они запоминаются единожды (на более высоком уровне) в том классе в котором они появились и для обращения к ним может происходить многократная переадресация по иерархии. Сл-но отсутствуют копии кода в экземпляре.
Особенности объектно-ориентированных систем
1. Наличие графического интерфейса
2. Наличие инструментов визуализирующих процесс разработки программ (Browser)
3. Наличие большого числа правил и приложений, которые должен соблюдать программист.
Можно назвать следующие главные преимущества ООП:
1) полиморфизм – стандартное согласование вызова для широкого диапазона операций, реализующего различные реализации одного и того же действия.
2) возможность управлять большими программными проектами, разбивая задачи на логически обособленные подзадачи
3) настоящее модульное программирование
4) возможность порождать мн-во экземпляров одного класса
5) изоляция объектов (т.е. изоляция его внутренней структуры данных)
4.1 Декомпозиция и абстракция
Современный подход проектирования основан на декомпозиции, которая опирается на использование абстракции.
Декомпозиция – реализация метода разделяй и властвуй. Однако главным вопросом в методе разделяя и властвуй остаётся разбиение.
Цель декомпозиции:
1) ускорение разработки
2) облечение модернизации и сопровождения сис-мы, а так же её отладки и тестирования
Различают абстракции:
через параметризацию
через спецификацию
Абстракция через спецификацию – состоит в том, что одним алгоритмом можно реализовать различные задачи.
Абстракция через спецификацию – разными алгоритмами можно решать одну задачу.
Функциональная спецификация программы включает в себя:
1) цель
2) граничные условия (определяют диапазон параметров)
3) описание ф-ций (описывается, что программа должна делать, но не описывается каким образом)
4) спецификация входных и выходных данных
5) веритификационные требования
6) требование к документации
Т.о. описывается эффект работы программы или процедуры. Смысл обращения к процедуре становится понятен не через анализ её тела, а через анализ спецификации
На стадии проектирования архитектуры (2-й этап жизненного цикла) спецификации трансформируются в структуру программной системы. Методы используемые на этой стадии делятся на:
методы ориентированные на разработку
методы ориентированные на данные
Методы ориентированные на обработку придают особенное значение декомпозиции программных структур.
Методы ориентированные на данные делают основной акцент на абстракции данных.
Методы проектирования ориентированные на обработку
В основе всех методов лежит 2 понятия модульное программирование и функциональная декомпозиция.
4.2.1 Модульное программирование
Основные концепции:
1) каждый модуль реализует единственную независимую ф-цию
2) каждый модуль имеет 1 вход и 1 выход, сл-но под модулем подразумевается процедура или подпрограмма
3) размер модуля по возможности минимизируется
4) каждый модуль может быть спроектирован и закодирован независимо
5) вся система строится из модулей
Очевидно преимущество модульного подхода: возможность контроля правильности и уменьшение стоимости сопровождения.