
- •1. Жизненный цикл программной системы.
- •2. Классический подход к созданию программных систем.
- •3. Понятия связности модулей и сцепления модулей.
- •4. Структурное программирование.
- •Структурное тестирование программного обеспечения
- •1. Связь процессов тестирования и процессов проектирования.
- •2. Уровни тестирования и виды тестирования.
- •3. Стратегия тестирования.
- •4. Тестирование программного модуля.
- •5. Восходящее и нисходящее тестирование.
- •6. Методы тестирования: модифицированный нисходящий, монолитный, сандвич, модифицированный сандвич.
- •7. Системное тестирование: метод функциональных диаграмм.
- •Объектно-ориентированный подход к разработке по
- •1. Абстрагирование и инкапсуляция
- •2. Модульность программных систем
- •3. Виды иерархий в программных системах.
- •4. Понятие объекта. Состояние, поведение и индивидуальность объекта.
- •5. Отношение между объектами: использование, включение.
- •6. Отношение простого наследования классов.
- •7. Добавление, замещение и уточнение методов класса при наследовании.
- •8. Отношение ассоциации между классами, включая агрегацию.
- •9. Отношение зависимости между классами, отношение реализации.
- •Шаблоны проектирования
- •1. Шаблон «Одиночка» Singleton
- •2. Шаблон «Фабричный метод» Factory Method
- •3. Шаблон «Декоратор» Decorator
- •4. Шаблон «Стратегии» Strategy
- •5. Шаблон «Компоновщик» Composite.
- •6. Шаблон «Наблюдатель» Observer
- •7. Архитектурные шаблоны (парадигмы).
- •Унифицированный процесс разработки по (rup)
- •1. Основные черты. Фазы и основные потоки работ.
- •2. Документ «Видения». Модель и словарь предметной области.
- •3. Функциональные и нефункциональные требования к системе. Варианты использования системы.
- •4. Прецеденты и отношения между вариантами использования (прецедентами).
- •5. Модель анализа и классы анализа.
- •6. Архитектурное представление.
Ответы на экзаменационные вопросы
По курсу “Технология программирования. Ч.2”
2006-2007 учебный год
Задачи проектирования
1. Жизненный цикл программной системы.
Программный продукт включает в себя:
документация;
технические условия;
гарантия поставщика;
программная система
Сложная система характеризуется следующими чертами:
- есть общая задача функционирования системы
- большое количество элементов и связей между ними
- наличие подсистем, имеющих собственное назначение
- сложность поведения системы:
а) наличие обратной связи
б) случайное внешнее воздействие
- устойчивость к помехам
- надежная система при ненадежных компонентах
Программный проект – комплекс мероприятий по созданию сложной системы с заданными характеристиками при ограниченных ресурсах.
Ограничения:
технического характера: кадровые; аппаратные; финансовые; прочие матер. ограничения.
теоретического характера: ограничения на знание разработчиков; существование задач, которые не могут быть решены принципиально.
1 – определение потребностей, характеристик, затрат
2 – определение структуры ПС, кодирование тестирование, отладка
3 – удовлетворение потребностей заинтересованных лиц
4 – обслуживание, развитие и т.д.
Анализ
Цель. Представить модель поведения системы. Анализ должен объяснить, что делает система.
Результаты. Описание назначения системы, сопровождаемое характеристиками производительности и перечислением требуемых ресурсов. Часто результаты анализа объединяют в один формальный документ, который формулирует требования анализа к поведению системы.
Виды деятельности. Анализ предметной области и планирование сценариев.
Проектирование
Цель. Создать архитектуру развивающейся реализации и выработать единые тактические приемы, которыми должны пользоваться различные элементы системы. Важно не начинать проектирование до завершения анализа. Равным образом важно избегать затягивания проектирования, пытаясь получить идеальную, а следовательно, недостижимую аналитическую модель.
Результаты. Описание архитектуры и выработка общих тактических приемов.
Виды деятельности. Архитектурное планирование, тактическое проектирование и планирование релизов.
При архитектурном планировании мы занимаемся расчленением системы. Оно охватывает логическую декомпозицию, состоящую в группировании классов, и физическую декомпозицию, состоящую в разбиении на модули и назначении заданий процессорам. Архитектурное планирование сконцентрировано на том, чтобы создать в самом начале жизненного цикла каркас системы, а потом постепенно развивать его.
Тактическое проектирование состоит в принятии решений о множестве общих приемов.
Программные релизы закладывают основы архитектурной эволюции системы. Релизы выпускаются со все более широкими функциональными возможностями и, в конечном счете, достигают требований, предъявляемых к конечной системе.
Эксплуатация (Эволюция)
Цель. Наращивать и изменять реализацию, последовательно совершенствуя ее, чтобы в конечном счете создать готовую систему.
Результаты. Серия исполнимых релизов, представляющих итеративные усовершенствования изначальной архитектурной модели.
Виды деятельности. Мы начинаем с анализа требований к следующему релизу, переходим к проектированию архитектуры и исследуем классы и объекты, необходимые для реализации этого проекта.
Сопровождение
Цель. Сопровождение - это деятельность по управлению эволюцией продукта в ходе его эксплуатации. Делаются локализованные изменения, возникающие по мере учета новых требований и исправления ошибок.