
- •Содержание
- •Лекция 1. Введение. Группа проекта. Жизненный цикл. Предварительные замечания Предварительные замечания
- •Группа проекта
- •Жизненный цикл Предварительные замечания
- •Последовательный тип
- •Эволюционный тип
- •Выбор типа жизненного цикла
- •Лекция 2. Архитектура программных систем Предварительные замечания
- •Структурные сущности
- •Архитектурные виды
- •Лекция 3. Рациональный унифицированный процесс Предварительные замечания
- •Характеристики процесса
- •Фазы, итерации и циклы разработки
- •Рабочие процессы
- •Артефакты
- •Другие артефакты
- •Лекция 4. Анализ и проектирование. Стадия анализа Предварительные замечания
- •Стадия анализа Стандарты семейства idef
- •Анализ на базе семейства idef
- •Объектно-ориентированный анализ и проектирование
- •Лекция 5. Модель анализа прецедентов Предварительные замечания
- •Поток событий, сценарий, кооперация
- •Организация прецедентов
- •Лекция 6. Типичные приемы анализа прецедентов Поведение элемента
- •Диаграмма прецедентов
- •Моделирование контекста системы
- •Моделирование требований к системе
- •Лекция 7. Введение в унифицированный процесс моделирования Предварительные замечания
- •Сущности uml
- •Отношения uml
- •Диаграммы uml
- •Правила языка uml
- •Общие механизмы языка uml
- •Лекция 8. Системы и модели Предварительные замечания
- •Системы и подсистемы. Модели и представления
- •Моделирование системной архитектуры
- •Различные представления системы
- •Лекция 9. Информационные технологии и средства анализа и проектирования информационных систем Предварительные итоги
- •Компонентная архитектура
- •Краткий перечень производителей и программных продуктов
- •Сравнительный обзор возможностей Rational Rose и paradigm plus
- •Поддерживаемая нотация
- •Методологии
- •Компонентно-базируемое проектирование
- •Ведение репозитария объектов
- •Построение диаграмм моделей. Пользовательский интерфейс
- •Генерирование программного кода
- •Наличие реинжиниринга
- •Проектирование баз данных. Поддержка sql и мостов для реляционных баз данных, idl для corba
- •Создание экранного интерфейса
- •Возможность групповой работы
- •Наличие Script-языка
- •Генерирование отчетов и формирование проектной документации
- •Поддерживаемые платформы
- •Место в общем цикле разработки программной системы
Группа проекта
В начале ответим на вопросы, связанные с составом команды разработчиков и распределением обязанностей внутри этой команды. Для разработки ПО так или иначе организуется некоторый коллектив. Это может быть подразделение компании или фирмы, работающей в этом сегменте рынка, или группа единомышленников, только начинающая свою деятельность в области разработки, в конце концов, это может быть просто единственный программист. Такую рабочую группу мы будем называть группой проекта. Давайте определим функциональные обязанности участников этой группы. В состав группы обычно входят следующие специалисты:
руководитель проекта - координирует все действия, организует внешнее и внутреннее взаимодействия группы проекта, обеспечивает соблюдение сроков разработки и качество разрабатываемого ПО и его соответствие требованиям заказчика, несет полную ответственность за результат работ по проекту;
системный аналитик - анализирует требования к системе, разрабатывает концепцию и логику работы системы, составляет технические задания или подобные документы, несет ответственность за соответствие предлагаемых решений требованиям заказчика;
разработчики - реализуют принятые технические задания, отвечают за качество и сроки разрабатываемого кода, за его соответствие техническим заданиям;
дизайнер - участвует в разработке концепции системы, разрабатывает ее пользовательский интерфейс и принимает участие в его реализации, несет ответственность за соблюдение фирменного стиля и требований к реализации пользовательского интерфейса;
тестер - разрабатывает программу тестирования, осуществляет ее и несет ответственность за полноту тестирования готовых модулей и системы в целом;
технический писатель - разрабатывает документацию на проект, несет ответственность за полноту и правильность описания.
Оговорим ряд замечаний. Первое, дизайнер, тестер и технический писатель могут в группу постоянно не входить, а работать над несколькими проектами и привлекаться к работе по мере необходимости. Второе, в подразделение по разработке ПО, состоящее из нескольких проектных групп, может входить технолог, который разрабатывает, внедряет и поддерживает технологию производства программных продуктов. Третье, для сложных проектов, связанных с активным применением сетевых решений, Internet технологий и т. д. в группу проекта может подключаться специалист по использованию сетей. И, наконец последнее, наш состав группы проекта включает в себя только непосредственную команду разработчиков проекта, но кроме них над проектом могут работать и другие специалисты компании: менеджеры, маркетологи и т. д. Теперь перейдем непосредственно к самому процессу разработки.
Жизненный цикл Предварительные замечания
Одним из основополагающих понятий технологии разработки программного обеспечения является понятие жизненного цикла (ЖЦ). Под жизненным циклом ПО понимается совокупность процессов, связанных с последовательным изменением состояния ПО от формирования исходных требований к нему до окончания его эксплуатации. Жизненный цикл состоит из стадий - логически завершенных частей ЖЦ. Стадии характеризуются определенными состоянием ПО, видом предусмотренных работ и их результатом. Выделяют несколько основных типов ЖЦ, различающихся порядком следования стадий и взаимосвязями между ними, которые мы обсудим несколько ниже.
При создании заказного ПО выделяют пять основных стадий ЖЦ:
анализ и формализация требований заказчика;
проектирование;
реализация;
тестирование;
внедрение и эксплуатация.
Теперь об обещанных типах ЖЦ. В литературе описано множество типов жизненных циклов. Среди всего этого разнообразия можно выделить два основных.