Основные определения
Основная задача профессионального программирования
Методология программирования
Базовая последовательность решения основной задачи профессионального программирования
Понятие жизненного цикла программного обеспечения
Особенности разработки современных крупных программных систем
CASE-технология и CASE-средства
Особенности современных CASE-средств
Эволюция CASE-средств
Варианты классификации CASE-средств
Классификация CASE-средств по типам - средства анализа, средства проектирования приложений, средства проектирования баз данных, средства разработки, средства реинжиниринга, средства управления
Классификация CASE-средств по уровням - низкоуровневые (утилиты), средние (поддержка этапов анализа требований и проектирования спецификаций и структуры программного обеспечения), верхнеуровневые (средства планирования)
Классификация CASE-средств по категориям
Классификация по типу решаемых задач
Понятие интегрированного CASE-средства
Особенности интегрированных CASE-средств
Структура современного интегрованного CASE-средства
Что такое техническое задание
Для чего нужно разрабатывать техническое задание
Структура технического задания
Порядок разработки технического задания на программный продукт
Жизненный цикл программного обеспечения
Модели жизненного цикла программного обеспечения
Каскадная модель
Поэтапная модель с возвратами
Спиральная модель
Итеративная модель
Модель процессов Rational Unified Process
Модель процессов Microsoft Solutions Framework
Модели жизненных циклов программного обеспечения по гибким (agile) методологиям
Причины возникновения ошибок при разработке программных средств.
CASE-модель жизненного цикла программного обеспечения.
Классификация технологии разработки программных систем.
Процесс разработки программного обеспечения с использованием CASE-средств.
Цель этапа анализа
Требование. Виды требований
Методологические аспекты анализа целей и требований к разрабатываемому программному обеспечению.
Основные предметы анализа требований
Результаты стадии анализа
Этапы работы с требованиями
Механизмы извлечения требований
Механизмы анализа требований
Спецификация требований
Механизмы проверки требований
Проблемы, с которыми сталкивается системный аналитик
Подходы к анализу и проектированию
Особенности анализа и проектирования крупных систем
Задача моделирования
Виды моделей
Процесс моделирования
Методология. Роль методологии.
Проектирование, ориентированное на данные.
Функционально-ориентированное (структурное) проектирование программного обеспечения.
Структурная методология (SADT).
Объектно-ориентированная методология (ООАП)
Диаграммные методологии проектирования программного обеспечения.
Агентно-ориентированная методология
Сервис-ориентированная методология
Введение в методологию структурного анализа и проектирования SADT
Процесс моделирования в SADT
Принципы функционального моделирования
SADT-модель. Свойства SADT-модели
Структурные методологии
Методология функционального моделирования IDEF0
Элементы диаграмм IDEF0. Типы связей
Понятие туннелирования
Введение в методологию моделирования потоков данных (DFD)
Диаграммы потоков данных (Data Flow Diagram)
Необходимость построения модели потоков данных
Модель DFD. Элементы диаграмм DFD
Принцип построения моделей DFD
Построение иерархии диаграмм потоков данных. Критерии завершения детализации
Проверка контекстных диаграмм
Процесс моделирования в DFD
Методология IDEF3
Отличие IDEF0 от IDEF3
Возможности IDEF3
Два типа диаграмм IDEF3
Диаграмма описания последовательности этапов процесса (Process Flow Description Diagrams, PFDD)
Диаграммами состояния объекта в и его трансформаций процессе (Object State Transition Network, OSTN)
Обзор методологии ARIS
Основные группы моделей и нотации ARIS
Сравнение методологии ARIS с методологиями IDEF3, IDEF0 и DFD
Основные элементы нотации ARIS eEPC
Правила построения моделей в нотации ARIS eEPC
Рекомендации по построению диаграмм ARIS eEPC
Нормализация данных.
Обзор графического языка IDEF1X
Методики объектно-ориентированного анализа и проектирования.
Классификация, основные этапы и задачи объектно-ориентированных методов анализа и проектирования.
Развитие объектно-ориентированной методологии
Язык моделирования UML. Синтаксис. Семантика. Пакеты. Канонические диаграммы.
Диаграммы вариантов использования и сценарии.
Диаграммы классов и их использование.
Диаграммы кооперации и диаграммы последовательности.
Диаграммы состояний и диаграммы деятельности.
Диаграммы компонентов и диаграммы развертывания.
Обзор UML 2.0
Методология разработки программных систем MSF (Microsoft Solutions Framework). Обзор, основные концепции.
Модель процессов в MSF.
Этап анализа в MSF.
Этап планирования в MSF.
Этап разработки в MSF.
Этапы контроля качества и внедрения в MSF.
Модель команды разработчиков в MSF. Преимущества и недостатки.
Управление проектом в MSF. Общий обзор. Дисциплина управления проектом. Масштабируемость.
Иерархическая структура работ (WBS).
Оценка сроков разработки. Составление календарного графика работ в проекте.
Диаграммы вариантов использования системы и сценариев использования системы.
Управление компромиссами в MSF.
Стратегия выпуска версий в MSF.
Введение
Принципы и ценности agile, включенные в манифест agile
Жизненный цикл agile
Экстремальное программирование (Методология XP) : особенности, преимущества, недостатки.
Методология OpenUP
Методология FDD
Методология SCRUM
Надежность программного обеспечения (ПО).
CASE-средства и надежность программного обеспечения.
Контроль качества программного обеспечения.
Принципы работы с сложными системами.
Абстракция.
Уточнение.
Модульная разработка. Принципы разбиения системы на модули. Выделение интерфейсов и сокрытие информации. Адекватность, полнота, минимальность и простота интерфейсов. Разделение ответственности. Слабая связность модулей и сильное родство функций в одном модуле.
Повторное использование.
Обзор дополнительных средств поддержки жизненного цикла разработки программного обеспечения.
Классификация инструментальных систем.
Предпосылки появления систем управления задачами и заявками.
Системы отслеживания ошибок (Bug-tracking). Основные понятия. Обзор.
Система отслеживания ошибок Bugzilla.
Системы управления задачами и заявками. Основные понятия. Обзор.
Система управления задачами JIRA.
Система управления задачами TracStudio.
Системы управления версиями. Основные понятия. Обзор.
Модели версионирования.
Revision Control System (RCS).
Система управления версиями CVS.
Система управления версиями Subversion (SVN). Основные возможности. Внутренняя архитектура, компоненты.
Система управления версиями Perforce.
Система управления версиями GIT.
Система управления проектом Borland StarTeam. Обзор. Контроль версий. Обзор. Планирование работ. Накопление знаний.
Автоматизация процесса сборки программного продукта.
Сборка с помощью командных файлов
Apache Ant.
MSBuild
Компонентная сборка.
Apache Maven 2
Определение потребностей в CASE-средствах.
Оценка и выбор CASE-средств.
Выполнение пилотного проекта.
Практическое внедрение CASE-средств.