Документ взят из кэша поисковой машины. Адрес оригинального документа : http://sp.cs.msu.ru/info/5/gos/consdop2011.doc
Дата изменения: Wed May 6 11:56:59 2015
Дата индексирования: Sun Apr 10 00:24:19 2016
Кодировка: koi8-r

Консультации по вопросам к госэкзамену (дополнительная часть)
Для кафедр АСВК, Системного программирования, Алгоритмических языков

22. Унифицированный язык моделирования UML. Основные средства языка
План ответа на вопрос:
- Назначение UML;
- Состав диаграмм UML и их назначение:
. диаграммы вариантов использования (use case diagrams);
. диаграммы классов (class diagrams);
. диаграммы последовательности (sequence diagrams);
. кооперативные диаграммы (collaboration diagrams);
. диаграммы состояний (statechart diagrams);
. диаграммы деятельности (activity diagrams);
. диаграммы компонентов (component diagrams);
. диаграммы размещения (deployment diagrams).
См. литературу (1, 2). Примеры диаграмм см. в методических пособиях:
http://sp.cmc.msu.ru/ooap/exercises.html
http://sp.cmc.msu.ru/courses/prak5/umlpracticum.pdf

23. Основы программной инженерии.
План ответа на вопрос:
1. Понятие программного обеспечения и инженерии программного обеспечения.
Определение 1.1: отдельная программа или логически связанная совокупность
программ на носителях данных, снабженная программной документацией,
называется программным обеспечением.
Определение 1.2: Инженерия программного обеспечения или программная
инженерия (software engineering)- это, с одной стороны, совокупность
инженерных методов и средств создания программного обеспечения и, с другой
стороны, дисциплина, изучающая применение строгого систематического
подхода к его разработке, эксплуатации и сопровождению. Фундаментальная
идея программной инженерии: программирование является формальным процессом,
который можно изучать и совершенствовать.
2. Жизненный цикл программного обеспечения.
Основным понятием программной инженерии является жизненный цикл.
Определение 2.1: Жизненный цикл ПО (software life cycle) ( это период
времени с момента замысла создания ПО, до момента его полного вывода из
эксплуатации.
Жизненный цикл регламентируется международным стандартом ISO 12207.
В рамках конкретных технологий программирования понятие ЖЦ уточняется, но
указанный стандарт не нарушается.
Два аспекта ЖЦ: статический и динамический. В рамках первого представляет
собой ЖЦ совокупность процессов.
1. Процессы жизненного цикла по стандарту 12207.
Определение 2.2: Процесс ЖЦ - набор взаимосвязанных действий, преобразующих
некоторые входные данные и ресурсы в выходные. Каждый процесс
характеризуется задачами, методами их решения, действующими лицами.
Процессы ЖЦ протекают параллельно. Состав процессов ЖЦ:
. основные (приобретение, поставка, разработка, эксплуатация,
сопровождение);
. вспомогательные (документирование, управление конфигурацией, обеспечение
качества, верификация, аттестация, совместная оценка, аудит, разрешение
проблем);
. организационные (управление, создание инфраструктуры, усовершенствование,
обучение).
Рассмотрим основные процессы жизненного цикла:
Процесс приобретения включает действия заказчика по приобретению ПО,
начиная от подготовки заявки, заканчивая приемкой и завершением работ.
Процесс поставки включает в себя действия поставщика-производителя ПО,
начиная с подготовки ответа на заявку заказчика, заканчивая проверкой и
оценкой поставки.
Процесс разработки включает в себя действия разработчиков: подготовительную
работу; анализ требований; проектирование архитектуры ПО; детальное
проектирование; кодирование; тестирование; интеграцию; установку; приемку.
Процесс эксплуатации включает в себя следующие действия: эксплуатационное
тестирование; эксплуатацию; поддержку пользователей.
Процесс сопровождения включает в себя следующие действия: анализ проблем и
запросов на модификацию ПО; проверку и приемку; перенос ПО в другую среду;
снятие ПО с эксплуатации.
2. Каскадная и итерационная модели жизненного цикла.
Вторая точка зрения на ЖЦ показывает его устройство во времени. В ее рамках
ЖЦ представлен моделью.
Определение 2.3: Модель ЖЦ ПО - это структура, определяющая
последовательность выполнения и взаимосвязи процессов, действий и задач на
протяжении всего ЖЦ.
В любой модели ЖЦ рассматривается как совокупность стадий.
Определение 2.4: Стадия ЖЦ - это часть ЖЦ ограниченная временными рамками,
по завершении которой достигается определенный важный результат
в соответствии с требованиями для данной части.
Определение 2.5: Моменты времени, определяющие границы стадий ЖЦ называются
контрольными точками (вехами).
Особенности каскадной модели: фиксация требований к системе в начале
проекта; переход со стадии на стадию только после полного завершения работ
на текущей стадии; недопустимость возврата на пройденные стадии; жесткая
привязка процессов ЖЦ к стадиям ЖЦ. Типичный состав стадий каскадной
модели:
I. Формирование требований.
II. Проектирование
III. Реализация.
IV. Тестирование.
V. Ввод в действие.
VI. Эксплуатация и сопровождение.
VII. Снятие с эксплуатации.
Достоинства каскадной модели: в конце каждой стадии проект находится в
согласованном и полном состоянии; легко планировать и управлять.
Недостатки: позднее обнаружение проблем; избыточность документации;
разработка ПО в целом, без использования преимуществ декомпозиции;
неравномерная нагрузка на членов группы, работающей над проектом, в ходе
ЖЦ.
Особенности итерационных моделей: процесс разработки разбивается
на последовательность шагов (итераций), выполняемых циклически; с каждой
пройденной итерацией (витком спирали) ПО наращивается, в него интегрируются
новые разработанные части; в конце каждой итерации осуществляется
верификация, т.е. проверка соблюдения требований. Достоинства: полный учет
требований заказчика, большее его участие в проекте; более равномерная
нагрузка на группу; раннее обнаружение проблем и их разрешение по мере
возникновения, уменьшение рисков на каждой итерации. Недостатки: сложность
планирования; плохая документированность ПО. См. схему спиральной модели
ЖЦ.
[pic]
Рис 1. Схема спиральной модели ЖЦ в «полярных координатах». Угол =
пройденное время, расстояние = стоимость.
Наряду с каскадной и итерационной моделями ЖЦ примеряется эволюционная
модель. Она похожа на итерационную тем, что не является водопадной. В
эволюционной модели итерации не планируются заранее. Вместо этого вводится
рабочий цикл, в котором параллельно ведутся действия по проектированию,
разработке и проверке качества. В рамках рабочего цикла создаются
промежуточные версии, до тех пор, пока не будет реализована необходимая
функциональность и достигнуто достаточное качество. Тогда рабочий цикл
завершается, система поставляется заказчику, вводится в действие и т. п.
[pic]
Рис. 2. Схема эволюционной модели ЖЦ.
Литература к вопросам:
1. Фаулер М. UML. Основы. 3-е издание.: Пер. с англ. - СПБ: Символ-Плюс,
2004. - 192 с.
2. Конспекты лекций по курсу «Объектно-ориентированный анализ и
проектирование» http://sp.cmc.msu.ru/courses/ooap/
3. Иан Соммервил. Инженерия программного обеспечения. 6-е издание. М. -
СПб. - Киев: 2002. - 623 с