Новосибирский Государственный Университет
Опубликован: 20.08.2004 | Доступ: свободный | Студентов: 4743 / 458 | Оценка: 4.01 / 3.23 | Длительность: 18:07:00
ISBN: 978-5-9556-0013-0
Лекция 10:

Технологические аспекты развития программных систем в моделях жизненного цикла

< Лекция 9 || Лекция 10: 12345 || Лекция 11 >

Спираль развития

В модифицированной модели Гантера не был наглядно выделен аспект итеративного подхода, связанный с постепенным наращиванием возможностей системы по мере перехода от одной итерации к другой. Мы абстрагировались от него, делая акцент на обсуждении этапов и производственных функций. В результате была получена схема, на которой линия жизни и функциональное измерение оказывались сбалансированными настолько, что модель вполне могла бы служить основой для разработки соответствующего CASE-средства.

Теперь мы покажем, как этот недостаток можно исправить, причем почти без потери инструментальных качеств модели. Новая модель (см. рис. 10.2) исходит из ставшей классической спирали развития Буча, представленной еще в первом издании его книги в качестве иллюстративной модели [8]. Мы добавляем к ней систему координат "время—предоставляемые возможности", в которой размещаем итерации в виде горизонтальных отрезков и переходы к следующим итерациям в виде вертикально начинающихся линий итеративного зацикливания, которые ведут к началу очередной итерации. Линии, параллельные временной оси, отображают уровни пользовательских возможностей, реализуемых на итерациях (римскими цифрами обозначены номера итераций). У каждой итерации в новой модели указаны стандартные этапы, для обозначения которых используются сокращения, принятые на рис. 10.1.

Спираль развития

увеличить изображение
Рис. 10.2. Спираль развития

Эта модель подчеркивает, что возможности, предоставляемые очередной итерацией, никогда не отменяют уровня, достигнутого на предшествующих итерациях. Как видно из иллюстрации, модель вполне годится, чтобы показать и отслеживать параллельное выполнение итераций. Что касается более детализированного выделения этапов, то это нарушило бы наглядность. По этой же причине мы не отражаем в модели этапы, связанные с использованием релизов. Модель показывает только верхний уровень проекта, но она хорошо согласуется с детализацией этого верхнего уровня: если с помощью некоторого CASE-средства будет обеспечен переход к уровню модели отдельной итерации, то эту модель можно представить как естественное продолжение спирали развития. Таким образом, можно утверждать, что модель в принципе достаточно масштабируема. В рамках перехода на уровень моделирования итерации можно говорить и об атрибутивности, и о расширяемости. Но это будут уже другие модели.

Спираль охвата предметной области

Постепенное наращивание возможностей системы по мере развития проекта часто изображают в виде спирали, раскручивающейся от центра, как показано на рис. 10.3. В соответствии с этой простой (грубой) моделью развитие проекта описывается как постепенный охват все более расширяющейся области плоскости по мере перехода проекта от этапа к этапу и от итерации к итерации. Данная модель делает акцент на том, что объектно-ориентированное развитие приводит к постепенному расширению сферы применения конструируемой системы.

Модель расширения охвата прикладной области объектно-ориентированного проекта

увеличить изображение
Рис. 10.3. Модель расширения охвата прикладной области объектно-ориентированного проекта

Про объектно-ориентированное развитие часто говорят, что традиционные этапы жизненного цикла разработки никогда не кончаются. Спираль охвата наглядно иллюстрирует смысл этого тезиса.

В данной модели можно усмотреть еще один аспект конструирования программных систем — типичную схему развития коллектива разработчиков, который начиная со своего первого проекта постепенно пополняет накапливаемый багаж переиспользуемых рабочих продуктов и, что, пожалуй, еще важнее, — опыт работы и квалификацию.

Модель расширения охвата прикладной области совсем не претендует на инструментальность. Поэтому обсуждать эти свойства для данной модели мы не будем.

< Лекция 9 || Лекция 10: 12345 || Лекция 11 >
Дарья Федотова
Дарья Федотова
Сергей Березовский
Сергей Березовский

В рамках проф. переподготовки по программе "Программирование"

Есть курсы, которые я уже прошел. Но войдя в курс я вижу, что они не зачтены (Язык Ассемблера и архитектура ЭВМ, Программирование на С++ для профессионалов). Это как?