Основная

Г.Н. Смирнова, А.А.Сорокин, Ю.Ф. Тельнов Проектирование экономических информационных систем. Учебник. М., «Финансы и статистика»,2002

Вендров А.М. Проектирование программного обеспечения экономических информационных систем. М., «Финансы и статистика»,2000

Маклаков С.В. Создание ИС с AllFusion Modelling Suite. М., «Диалог-МИФИ», 2003

Грекул В.И., Денищенко Г.Н., Коровкина Н.Л. Проектирование ИС. Учебное пособие. Интернет-университет, М., 2005

Дополнительная

Калянов Г.Н. Теория и практика реорганизации бизнес-процессов. М.,СИНТЕГ, 2000

Калянов Г.Н. Структурный системный анализ.

М., Лори, 1996

Марка Д.А., МакГоуэн К. SADT – методология структурного анализа и проектирования., М., Метатехнология, 1993

Г. Буч Д. Рамбо А. Джекобсон Язык UML. Руководство пользователя, 1999

М. Фаулер К. Скотт Основы UML

Т. Кватрани Rational Rose 2000 и UML. Визуальное моделирование. Москва, 2001

Дополнительная

Колтунова Е. Требования к информационной системе и модели жизненного цикла. Carabi Solutions , www.carabisolutions.sp.ru

Автоматизированные Системы Стадии создания. ГОСТ 34.601-90 Комплекс стандартов на автоматизированные системы. ИПК издательство стандартов, М., 1997

ISO/IEC 12207:1995

Thiele D. Life cycle management using life cycle process standards. Abstract. http://www.fostas.ru/library/show_article.php? id=22

Проектирование и разработка корпоративных информационных систем. http://zeus.sai.msu.ru:7000/cfin/prcorpsys/index.sht ml.

Основные понятия

методологии проектирования ИС

1. Цели и содержание методологии проектирования ИС

2. Жизненный цикл ИС

Методология проектирования ИС

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

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

Метод проектирования : организованная совокупность процессов создания ряда моделей, которые описывают различные аспекты создаваемой системы с использованием четко определенной нотации.

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

Подсистемы ИС

Информационное обеспечение совокупность

единой системы

унифицированных

массивов (обычно –

Техническое

средств, предназначенных

системы и ее пользователей,

Программное

специальные программные

Организационное ро

мероприятий и

взаимодействие работников с техническими средствами и между собой в процессе разработки и эксплуатации информационной системы.

Математическое

математических методов,

управления системой и

Лингвистическоепр

использующихся при

программирования, я

Правовое о

определяющих со

информационных

преобразования и исполь

Этапы развития технологий проектирования ИС

1. Метод "снизу-вверх" - не создание тиражируемых продуктов, а обслуживание сотрудников конкретного учреждения. Успешно автоматизируются отдельные, важные с точки зрения руководства рабочие места. Общая же картина "автоматизированного предприятия" просматривается недостаточно хорошо, особенно в перспективе.

(«Лоскутная автоматизация»)

2. Метод "сверху-вниз " - из всего спектра проблем разработчики выделили наиболее заметные: автоматизацию ведения бухгалтерского аналитического учета и технологических процессов. Системы были спроектированы "сверху", т.е. в предположении что одна программа должна удовлетворять потребности всех пользователей: резко ограничены возможности разработчиков в структуре информационных множеств базы данных, использовании вариантов экранных форм, алгоритмов расчета и, следовательно, лишила возможности по ведению глубокого, часто специфического аналитического и производственно - технологического учета.

Этапы развития технологий проектирования

(продолжение)

3. Метод многокомпонентности - адаптация подсистемы ПО к принятым в организации условиям работы. Проведение модернизации одного из компонентов не затрагивает центральную часть (ядро) и другие ее компоненты, что значительно повышает надежность, продолжительность жизни автоматизированной системы и обеспечивает наиболее полное выполнение требуемых функций.

Определение стратегии тестирования

Как отмечалось ранее, на этапе анализа привлекаются группы тестирования, например для получения сравнительных характеристик предполагаемых к использованию аппаратных платформ, операционных систем, СУБД, иного окружения. Кроме того, на данном этапе определяется план работ по обеспечению надежности информационной системы и ее тестирования. Для любых проектов целесообразным является привлечение тестеров на ранних этапах разработки, в частности на этапе анализа и проектирования. Если проектное решение оказалось неудачным и это обнаружено слишком поздно - на этапе разработки или, что еще хуже, на этапе внедрения в эксплуатацию, - то исправление ошибки проектирования может обойтись очень дорого. Чем раньше группы тестирования выявляют ошибки в информационной системе, тем ниже стоимость сопровождения системы. Время на тестирование системы и на исправление обнаруженных ошибок следует предусматривать не только на этапе разработки, но и на этапе проектирования.

Для автоматизации тестирования следует использовать системы отслеживания ошибок (bug tracking). Это позволяет иметь единое хранилище ошибок, отслеживать их повторное появление, контролировать скорость и эффективность исправления ошибок, видеть наиболее нестабильные компоненты системы, а также поддерживать связь между группой разработчиков и группой тестирования (уведомления об изменениях по e-mail и т.п.). Чем больше проект, тем сильнее потребность в bug tracking.

Проектирование

На этапе проектирования формируется модель данных. Проектировщики в качестве исходной информации получают результаты анализа. Конечным продуктом этапа проектирования являются:

  • схема базы данных (на основании ER-модели, разработанной на этапе анализа);
  • набор спецификаций модулей системы (они строятся на базе моделей функций).

Если проект небольшой, то в качестве аналитиков, проектировщиков и разработчиков могут выступать одни и те же люди. Возникает вопрос: насколько вообще актуальна передача результатов самому себе? Думаем, что актуальна. Представьте себе, что вы передаете данные кому-либо, кто мало знает о системе. Зачастую это помогает, например, найти не описанные вообще, нечетко описанные, противоречиво описанные компоненты системы.

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

Журнал проектирования

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

Такой журнал может вестись как на этапе анализа, так и на этапе разработки и тестирования.

Планирование этапа проектирования

Тщательное планирование важно для любого проекта. Это входит в обязанности руководителя проекта и руководителя группы проектирования (консультации с аналитиками в этом случае будут обязательными). Это позволяет:

  • Разбить глобальную задачу на небольшие, независимые задачи. Такими задачами легче управлять, такие задачи легче реализовывать.
  • Определить контрольные даты (этапы сдачи), которые позволят определить, насколько успешно продвигается проект, какие направления отстают, какие недогружены, какие работают успешно. Это позволяет обнаружить отставание от сроков сдачи и вовремя предотвратить авралы.
  • Определить зависимости между задачами, а также последовательность завершения задач.
  • Прогнозировать загрузку персонала, наем временных работников, привлечение других групп разработчиков, привлечение консультантов (если это необходимо).
  • Получить четкое представление о том, когда можно начать этап реализации.
  • Получить четкое представление о том, когда можно начать этап опытной эксплуатации.

Ранние стадии

Рассмотрение результатов анализа

Это собственно процесс передачи информации от аналитиков проектировщикам. На практике это итерактивный процесс. У проектировщиков неизбежно будут возникать вопросы к аналитикам, и наоборот. Информация о системе будет постоянно уточняться. При разработке схемы базы данных может измениться информационная модель, полученная на этапе анализа, например потому, что имеющееся проектное решение нестабильно либо медленно работает при реализации его посредством выбранной СУБД или в силу иных причин. Проверить, охватывает ли анализ все бизнес-процессы системы (то есть осуществить проверку на полноту), проектировщики не в состоянии, но проверку информационной модели на непротиворечивость и корректность проектировщики провести могут. Это позволяет отследить ошибки в информационной модели и не повторить их в модели данных. Если результаты хранятся в репозитарии CASE-средства, то такая проверка на корректность может быть произведена автоматически.

Критические участки

Критические участки системы изучаются при первом обследовании системы и уточняются на этапе анализа. Термин «критические» может означать жизненно важные как для нормального функционирования информационной системы с точки зрения бизнеса (например, время простоя автоматизированной линии изготовления материала X не должно превышать одной минуты), так и для успешной реализации и приемки проекта. Критические с точки зрения бизнеса участки информационной системы хорошо подходят для макетирования. На основе этих макетов (работы макетирования выполняют проектировщики и группы тестирования) тестеры дают оценку качества как информационной модели, так и модели данных. Также макетирование позволяет показать, какие требования и какими средствами могут быть выполнены, а какие требования - не могут.

Часто на этапе проектирования выявляются критические участки, которые не были очевидными на этапе анализа. Это влечет за собой необходимость уточнения информационной модели. Часто это связано с особенностями реализации тех или иных возможностей в выбранной СУБД. Некоторые функции, которые на этапе анализа выглядят простыми, могут стать очень сложными, когда дело дойдет до физической реализации. Например:

  • В выбранной СУБД отсутствует эффективный механизм сканирования деревьев, а при анализе выявлено большое количество справочников и выбраны интерфейсы представления в виде деревьев, кроме того это понравилось заказчику, а СУБД при большом справочнике работает слишком медленно.
  • Другая распространенная неприятность - неполно реализованная ссылочная целостность. В СУБД не реализованы каскадные модификации, в информационной модели нормализованные отношения предполагают наличие каскадных удалений и обновлений. Реализация же таких механизмов посредством триггеров оказалась слишком медленной, и уровень каскадирования триггеров ниже, чем уровень каскадных операций, определенных в информационной модели.

Такие моменты могут инициировать не только изменение информационной модели, но и смену СУБД.

Между критическими участками проекта и его рисками существует тесная связь. Критический участок разработки (например, срыв сроков первого этапа сдачи проекта заказчику) может стоить целого проекта. Причинами срыва могут быть как ошибки проектирования, так и нехватка персонала.

Оценка ограничений

Ограничениями, известными с момента обследования бизнес-процессов, являются смета затрат и сроки внедрения. Могут быть и другие ограничения, например допуск персонала к той или иной информации (группы аналитиков к информации о бизнес-процессах в фирме, ограничения доступа к секретной информации и т.п.).

Решения относительно выбора аппаратной платформы, как правило, необратимы, поскольку тесно связаны со сметой затрат и наличием обслуживающего персонала. Например, решения на платформе RS/6000 и Intel с точки зрения сметы затрат выглядят одинаково, но персонала, способного квалифицированно обслуживать RS/6000, нет, и руководство не согласно оплатить обучение сотрудников, хотя решение на основе RS/6000 обладает более высокой масштабируемостью. Это может послужить причиной выбора платформы Intel. Аналогичные причины могут влиять и на выбор операционной системы.

Если проект является расширением или модернизацией существующей информационной системы, то число унаследованных ограничений также может быть большим. На этапе проектирования осуществляется обязательная проверка требований к информационной системе в свете выявленных ограничений. Менять платформу, операционную систему или СУБД на этапе реализации сложно, а на этапе опытной эксплуатации практически невозможно (на это просто не хватит времени, если не произойдет чудо). Чем большее количество компонентов системы уже реализовано, тем сложнее произвести подобную замену. Большинство СУБД сейчас работают на нескольких аппаратных платформах и нескольких операционных системах, но если есть участки кода проекта, зависимые от операционной системы или аппаратной платформы, то их изменение может обойтись очень дорого. В данной статье мы не будем обсуждать вопросы переносимости кода, поскольку они выходят за рамки этого цикла.

Если какие-либо требования не могут быть удовлетворены в принципе, принимается решение о доведении этого факта до сведения спонсоров проекта (руководства фирмы). Обнаружение неработоспособности системы в процессе эксплуатации ничем хорошим обернуться не может, особенно если до руководства фирмы дойдет информация о том, что невыполнимость требований была известна заранее.

Определение целевой архитектуры

Под выбором архитектуры мы понимаем и выбор платформы (платформ), и выбор операционной системы (операционных систем). В системе могут работать несколько компьютеров на разных аппаратных платформах и под управлением различных операционных систем. Если к автоматизации того или иного бизнеса до вас уже приложили руки, причем неоднократно, вы можете обнаружить настоящий «зверинец» платформ и операционных систем. Перенос ПО на ту или иную платформу - процесс не безболезненный, да и управление разнородной сетью может также стать делом проблемным. Если же обстоятельства таковы, что ПО на рабочих местах конечных пользователей должно работать под управлением нескольких операционных систем (ОС), то следует обязательно выделить зависимые от ОС участки кода и жестко описать интерфейсы обмена компонентов информационной системы, сделав их независимыми от ОС. При написании кода модулей, работающих под управлением нескольких ОС, следует ориентироваться на ту из них, которая обладает наиболее жесткими требованиями.

Кроме определения платформы следует выяснить следующее:

  • Будет ли это архитектура «файл-сервер» или «клиент-сервер».
  • Будет ли это 3-уровневая архитектура со следующими слоями: сервер, ПО промежуточного слоя (сервер приложений), клиентское ПО.
  • Будет ли база данных централизованной или распределенной. Если база данных будет распределенной, то какие механизмы поддержки согласованности и актуальности данных будут использоваться.
  • Будет ли база данных однородной, то есть будут ли все серверы баз данных продуктами одного и того же производителя (например, все серверы только Oracle или все серверы только DB2 UDB). Если база данных небудет однородной, то какое ПО будет использовано для обмена данными между СУБД разных производителей (уже существующее или разработанное специально как часть проекта).
  • Будут ли для достижения должной производительности использоваться параллельные серверы баз данных (например, Oracle Parallel Server, DB2 UDB и т.п.).

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

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

Выделение потенциальных узких мест в информационной системе

Если заказчик заявит, что производительность системы не имеет никакого значения, примите это замечание с юмором. Это означает лишь то, что время ответа системы на запрос не является (или не кажется заказчику в данный момент) критическим. Попробуйте спросить, приемлемо ли время ответа системы, равное одному часу или одному дню. Вряд ли ответ на этот вопрос будет положительным.

Производительность важна для любой информационной системы. Узким местом называют момент падения производительности системы. Конкретный ответ на вопрос, где узкие места данной системы, может дать лишь специальное направленное тестирование. Но это не означает, что оценка потенциальных узких мест невозможна. Одним из хороших методов является график нагрузки на систему в течение дня, недели, месяца и т.п. Можно построить диаграмму, на которой будет отражено время работы тех или иных бизнес-процессов, а также требуемое для данного бизнес-процесса время ответа системы. Такие диаграммы помогают выявить момент, когда нагрузка будет наиболее интенсивной. Количество пользователей, одновременно работающих с тем или иным компонентом, отражается на диаграмме посредством весового коэффициента (рис. 1).

В приведенном примере явно видны 3 пика активности системы, максимальный из которых приходится на 11 часов. Использован тип диаграммы с накоплением.

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

Ответ на вопрос, насколько потенциальные узкие места являются реальными, может дать только тестирование. Здесь оправданно применение специальных средств моделирования сценариев приложений. Следует отметить, что оценка точности детектирования узкого места в системе очень зависит от объема обрабатываемых данных. Следует уделить внимание генерации тестовых данных и проверке узких мест уже на этих данных. Часто информационная система не сразу выходит на проектную мощность, как правило, она работает некоторое время в режиме первоначального накопления информации, которое может продолжаться и несколько дней, и несколько месяцев. Как правило, предполагаемый порог объема обрабатываемых данных известен на этапе анализа, но реальный объем физических данных можно точно оценить только на этапе проектирования. Если сгенерировать предполагаемый объем тестовых данных нельзя (не хватает мощности техники или есть иные причины), то тесты проводят на меньшем объеме данных и пытаются построить оценки поведения системы на реальном объеме данных.

Более точно узкие места системы оцениваются на этапе разработки. Здесь уже есть реализованные компоненты системы. Средства автоматизации тестирования (например, LoadRunner, WinRunner и др.) позволяют отследить операции, которые выполняет то или иное приложение (но данные средства могут отследить далеко не все возможные типы приложений и то, насколько они подходят для тестирования вашего проекта, - это решение такого же порядка, что и выбор средства разработки приложения), автоматически сгенерировать сценарий запуска имитаторов работы реальных приложений и построить оценки узких мест системы.

Продукты третьих фирм

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

Использование CASE-средств

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

Инфраструктура

Для проектирования и реализации необходимы аппаратные ресурсы и специальное программное обеспечение. Кроме того, требуется механизм, позволяющий контролировать создаваемую документацию и код. Эти вопросы лучше решать на ранних стадиях проектирования, а не на стадии разработки. Мы поговорим об этом ниже, в разделе «Проектирование процессов и кода». При групповой разработке вам понадобятся средства контроля согласованности кода. Если разработка идет под разными платформами (аппаратная платформа и ОС), то хорошим решением может оказаться PVCS. Для платформ Windows 98, NT, 2000 может оказаться приемлемым решение, предлагаемое Microsoft - MS Source Save. Кроме того, многие средства разработки также предоставляют возможности контроля исходного кода.

Построение модели данных

Работа проектировщиков базы данных в значительной степени зависит от качества информационной модели. Информационная модель не должна содержать никаких непонятных конструкций, которые нельзя реализовать в рамках выбранной СУБД. Следует отметить, что информационная модель создается для того, чтобы на ее основе можно было построить модель данных, то есть должна учитывать особенности реализации выбранной СУБД. Если те или иные особенности СУБД не позволяют отразить в модели данных то, что описывает информационная модель, значит, надо менять информационную модель, так как производитель СУБД вряд ли будет оперативно менять собственно СУБД ради вашего конкретного проекта (хотя и такие, правда единичные, случаи имели место).

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

  • выявление нереализуемых или необычных конструкций в ER-модели и в определениях сущностей;
  • разрешение всех дуг, подтипов и супертипов;
  • изучение возможных, первичных, внешних ключей, описание ссылочной целостности (в зависимости от реализации декларативно или с использованием триггеров);
  • проектирование и реализация денормализации базы данных в целях повышения производительности;
  • определение части бизнес-логики, которую следует реализовать в базе данных (пакеты, хранимые процедуры);
  • реализация ограничений (ограничений и триггеров), отражающих все централизованно определенные бизнес-правила, генерация ограничений и триггеров;
  • определение набора бизнес-правил, которые не могут быть заданы как ограничения в базе данных;
  • определение необходимых индексов, кластеров (если таковые реализованы в СУБД), определение горизонтальной фрагментации таблиц (если это реализовано в СУБД);
  • оценка размеров всех таблиц, индексов, кластеров;
  • определение размеров табличных пространств и особенностей их размещения на носителях информации, определение спецификации носителей информации для промышленной системы (например, тип raid-массивов, их количество, какие табличные пространства на них размещаются), определение размеров необходимых системных табличных пространств (например, системного каталога, журнала транзакций, временного табличного пространства и т.п.);
  • определение пользователей базы данных, их уровней доступа, разработка и внедрение правил безопасности доступа, аудита (если это необходимо), создание пакетированных привилегий (в зависимости от реализации СУБД это роли или группы), синонимов;
  • разработка топологии базы данных в случае распределенной базы данных, определение механизмов доступа к удаленным данным.

Подробнее на каждом из перечисленных пунктов мы остановимся в части «Схема базы данных».

Проектирование процессов и кода

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

Отображение функций на модули

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

Интерфейсы программ

При проектировании модулей определяют разметку меню, вид окон, горячие клавиши и связанные с ними вызовы. Существуют два вида перемещения по программам:

  • с контекстом, когда целевая экранная форма частично или полностью заполняется автоматически данными, связанными с теми, что находятся в исходной экранной форме;
  • без контекста, когда целевая экранная форма не заполняется вовсе или частично заполняется автоматически данными, не связанными с теми, что находятся в исходной экранной форме.

Часто автоматически заполняемые данные экранной формы группируют (располагают рядом), а перемещение по заполняемым пользователем полям организуют так, как это делал бы сам пользователь, работая с реальным бумажным документом. Такие интерфейсы воспринимаются пользователем легче, и он намного быстрее осваивает новое ПО.

Интегрирование и наследование механизмов обмена данными

Информационная система редко разрабатывается с нуля. Чаще проектировщики сталкиваются с задачами наследования данных из старых систем, которые уже выполняют какие-либо задачи автоматизации бизнеса. Такие системы могут на начальном этапе быть интегрированы в новую систему и постепенно заменяться новыми, более современными модулями. Этот подход может навязываться руководством фирмы для того, чтобы ускорить ввод новой информационной системы. Следует рассмотреть все плюсы и минусы такой постепенной интеграции (минусов, как правило, оказывается больше). Одну операцию придется делать в любом случае: переносить ценные данные, хранящиеся в старой информационной системе, в новую, то есть проектировать механизмы конвертации данных. Возможно, что придется делать конвертацию данных не только из старой системы в новую, но и обратно (полную или частичную), поскольку возможен вариант развития событий, при котором старая и новая информационные системы будут работать параллельно - хотя бы в период опытной эксплуатации новой системы.

Кроме вопросов наследования собственно данных из старых информационных систем, возможно, вам придется также решать задачи взаимодействия вашего ПО с продуктами третьих фирм. В этом случае вам следует изучить интерфейсы обмена данными ПО других разработчиков и обеспечить должный уровень поддержки этих интерфейсов в разрабатываемой информационной системе.

Определение спецификаций модулей

Это основная часть функционального проектирования. Здесь решаются следующие задачи:

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

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

КомпьютерПресс 11"2001

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

Первоначально сформулированные академиком В.М. Глушковым научно-методические положения и практические рекомендации по проектированию автоматизированных систем в настоящее время сложились как основополагающие принципы создания АИС: системности, развития, совместимости, стандартизации и унификации, эффективности.

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

При макроанализе система или ее элемент рассматриваются как часть системы более высокого порядка. Особое внимание уделяется информационным связям: устанавливается их число, выделяются и анализируются те связи, которые обусловлены целью изучения системы, а затем выбираются наиболее предпочтительные, реализующие заданную целевую функцию. При микроанализе изучается структура объекта, анализируются ее составляющие элементы с точки зрения их функциональных характеристик, проявляющихся через связи с другими элементами и внешней средой. В процессе проектирования АИС системный подход позволяет использовать математическое описание функционирования, исследование различных свойств отдельных элементов и системы в целом, моделировать изучаемые процессы для анализа работы вновь создаваемых систем.

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

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

Принцип стандартизации и унификации заключается в необходимости применения типовых, унифицированных и стандартизированных элементов функционирования АИС. Внедрение в практику создания и развития АИС этого принципа позволяет сократить временные, трудовые и стоимостные затраты на создание АИС при максимально возможном использовании накопленного опыта в формировании проектных решений и внедрении автоматизации проектировочных работ.

Принцип эффективности заключается в достижении рационального соотношения между затратами на создание АИТ и целевым эффектом, получаемым при ее функционировании.

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

Принцип первого руководителя предполагает закрепление ответственности при создании системы за заказчиком - руководителем предприятия, организации, отрасли, т.е. будущим пользователем, который отвечает за ввод в действие и функционирование АИТ.

Принцип новых задач - поиск постоянного расширения возможностей системы, совершенствование процесса управления, получение дополнительных результатных показателей с целью оптимизировать управленческие решения. Это может сопровождаться постановкой и реализацией при использовании ЭВМ и других технических средств новых задач управления.

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

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

Принцип структурирования данных предусматривает необходимость структурирования и иерархической организации элементов информационной базы системы.

Принцип доступа конечного пользователя заключается в том, что пользователь должен иметь средства доступа к базе данных, которые он может использовать непосредственно (без программирования). Соблюдение приведенных принципов необходимо при выполнении работ на всех стадиях создания и функционирования АИС и АИТ, т.е. в течение всего их жизненного цикла.

Жизненный цикл (ЖЦ) - период создания и использования АИС (АИТ), охватывающий ее различные состояния, начиная с момента возникновения необходимости в данной автоматизированной системе и заканчивая моментом ее полного выхода из употребления у пользователей.

Жизненный цикл АИС и АИТ позволяет выделить четыре основные стадии: предпроектную, проектную, внедрение и функционирование. От качества проектировочных работ зависит эффективность функционирования системы. Поэтому каждая стадия проектирования разделяется на ряд этапов и предусматривает составление документации, отражающей результаты работы.

Основными работами, выполняемыми на стадиях и этапах проектирования, можно считать:

I стадия - предпроектное обследование:

1-й этап - сбор материалов для проектирования -формирование требований, изучение объекта проектирования, разработка и выбор варианта концепции системы;

2-й этап - анализ материалов и формирование документации -создание и утверждение технико-экономического обоснования и технического задания на проектирование системы на основе анализа материалов обследования, собранных на первом этапе.

II стадия - проектирование:

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

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

III стадия - ввод системы в действие:

1-й этап - подготовка к внедрению - установка и ввод в эксплуатацию технических средств, загрузка баз данных и опытная эксплуатация программ, обучение персонала;

2-й этап - проведение опытных испытаний всех компонентов системы перед передачей в промышленную эксплуатацию, обучение персонала;

3-й этап (завершающая стадия создания АИС и АИТ) - сдача в промышленную эксплуатацию; оформляется актами приема-сдачи работ.

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

Жизненный цикл (ЖЦ) образуется в соответствии с принципом нисходящего проектирования и, как правило, носит итерационный характер; реализованные этапы, начиная с самых ранних, циклически повторяются в соответствии с изменениями требований и внешних условий, введением ограничений и т.п. На каждом этапе ЖЦ формируется определенный набор документов и технических решений, при этом для каждого этапа исходными являются документы и решения, полученные на предыдущем этапе. Этап завершается проверкой предложенных решений и документов на их соответствие сформулированным требованиям и начальным условиям.

К настоящему времени наибольшее распространение получили следующие две основные модели ЖЦ:

Каскадная модель (70-85 г.г.);

Спиральная модель (86-90 г.г.).

В изначально существовавших однородных ИС каждое приложение представляло собой единое целое. Для разработки такого типа приложений применялся каскадный способ. Его основной характеристикой является разбиение всей разработки на этапы, причем переход с одного этапа на следующий происходит только после того, как будет полностью завершена работа на текущем (рисунок 1). Каждый этап завершается выпуском полного комплекта документации, достаточной для того, чтобы разработка могла быть продолжена другой командой разработчиков.

Рисунок 1 - Каскадная схема разработки ПО.

Положительные стороны применения каскадного подхода заключаются в следующем:

На каждом этапе формируется законченный набор проектной документации, отвечающий критериям полноты и согласованности;

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

В процессе создания ПО постоянно возникала потребность в возврате к предыдущим этапам и уточнении или пересмотре ранее принятых решений. В результате реальный процесс создания ПО принимал следующий вид.

Рисунок 2 - Реальный процесс разработки ПО по каскадной схеме

Основным недостатком каскадного подхода является существенное запаздывание с получением результатов.

Для преодоления перечисленных проблем была предложена спиральная модель, делающая упор на начальные этапы ЖЦ: анализ и проектирование. Основная проблема спирального цикла - определение момента перехода на следующий этап. Для ее решения необходимо ввести временные ограничения на каждый из этапов жизненного цикла. Переход осуществляется в соответствии с планом, даже если не вся запланированная работа закончена. План составляется на основе статистических данных, полученных в предыдущих проектах, и личного опыта разработчиков.

Рисунок 3 - Спиральная модель ЖЦ

При проектировании автоматизированная информационная технология рассматривается в пяти взаимосвязанных аспектах.

1. Техническом - как аппаратно-коммуникационный комплекс, имеющий конкретную конфигурацию и служащий для обработки и передачи информации.

2. Программно-математическом - как набор статистических, математических, инфологических, алгоритмических и прочих машинно-ориентированных моделей, а также реализующих их компьютерных программ.

3. Методическом - как совокупность средств реализации функций управления по отношению к экономическому объекту - предприятию, объединению, региональному хозяйству и т. д.

4. Организационном - как описание документооборота и регламента деятельности аппарата управления.

5. Пооперационном - как совокупность технологических, логических и арифметических операций, реализуемых в автоматическом режиме.

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

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

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

Способность к адаптации всей системы и гибкое приспособление АИТ к изменениям рыночной среды, возможность быстрого переключения на разные режимы использования аппаратных и телекоммуникационных средств.

Ориентация АИТ на реализацию единой информационно-логической модели объекта управления в сочетании с необходимыми процедурами обработки данных и вывода результатов.

Синхронизация процессов переработки и выдачи информации с процессами принятия решений на всех уровнях за счет использования диалогового и планового (в масштабе реального времени) режимов эксплуатации АИТ.

Использование безбумажного документооборота, естественно-профессионального " языка для общения специалиста с ПЭВМ, электронных подписей, машинных архивов и библиотек, удаленного доступа к массивам данных.

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

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

Названные свойства АИТ обеспечиваются применением современных высокоразвитых аппаратно-программных комплексов, средств связи и формулируются в процессе проектирования разработчиками системы. Такие пользователи-разработчики относятся к классу профессионалов. Для них существует множество инструментальных средств, облегчающих создание АИТ. Например, можно назвать системы Oraclе, Visual C++, Gupta SQL, Windows, CA-Visual Objects, а также CASE-технологии, позволяющие конструировать сложные компьютерные системы из отдельных стандартизированных программных модулей.

Другой класс пользователей - специалисты проблемной области, которые применяют в своей деятельности программные средства с широкими технологическими возможностями, такие как MS Word, CorelDraw, MS Excel, MS Project, MS Access.

Автоматизированные системы проектирования - быстроразвивающийся путь ведения проектировочных работ. В области автоматизации проектирования АИС и АИТ за последнее десятилетие сформировалось новое направление - CASE (Computer-Aided Software/System Engineering). Дальнейшее развитие работ в этом направлении привело к созданию ряда концептуально целостных, оснащенных высокоуровневыми средствами проектирования и реализации вариантов, доведенных по качеству и легкости тиражирования до уровня программных продуктов технологических систем, которые получили название CASE-систем или CASE-технологий.

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

При использовании CASE-технологий изменяется технология ведения работ на всех этапах жизненного цикла автоматизированных систем и технологий, при этом наибольшие изменения касаются этапов анализа и проектирования. В большинстве современных CASE-систем применяются методологии структурного анализа и проектирования, основанные на наглядных диаграммных техниках, при этом для описания модели проектируемой АИС используются графы, диаграммы, таблицы и схемы.

Конец работы -

Эта тема принадлежит разделу:

Информационные технологии в юридической

Образовательное учреждение.. высшего профессионального образования.. государственный морской университет..

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ:

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Выделим следующие этапы проектирования ИС:

I. Исследование предметной области.

II. Разработка архитектуры системы.

III. Реализация проекта.

IV. Внедрение системы.V. Сопровождение системы.

I. Исследование предметной области предусматривает следующие

1. Спецификацию деятельности в предметной области.

2. Анализ деятельности в предметной области.

2.1. Структурно-логический анализ деятельности.

2.1.1. Анализ путей.

2.1.2. Анализ связности (прочности и сцепления) компонентов

предметной области.

2.2. Анализ производительности.

2.3. Экономический анализ.

II. Разработка архитектуры системы включает в себя разработку

следующих компонентов:

1. Спецификации требований к проектируемой системе.

2. Конструирование концептуальной модели предметной области.

3. Спецификации обработки данных в проектируемой системе.

4. Спецификации пользовательского интерфейса системы.

5. Спецификации деятельности в предметной области с учетом

внедрения системы.

Процесс проектирования ИС базируется на моделях представления

проектных решений (рис. 1.18).Рис. 1.18. Модели представления проектных решений

Модель классификации ориентирована на группирование объектов

предметной области в соответствии с различными аспектами классификации

и важность тех или иных свойств этих объектов.

Модель декомпозиции ориентирована на описание систем, способных

выполнять действия над данными. Различают виды декомпозиции действий

на основе:

Состава выходных данных;

Входных данных;

Представлений о промежуточных результатах;

Представлений о фазах обработки;

Представлений об альтернативных действиях.

Модели потоков отражают движение различных видов носителей

(материальных, финансовых, информационных и др.).

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

структуры информационных объектов, их функциональных взаимосвязей,

необходимых для поддержания заданных действий.

Модель классов определяет систему классификации информации о

предметной области, основанную на семантическом анализе. Среди важных

характеристик модели классов можно выделить отношения наследования,

включения или использования. В основе лежит объектно-ориентированный

подход, основой которого является представление о предметной области как

совокупности взаимодействующих друг с другом объектов, рассматриваемых

как экземпляр определенного класса. Классы образуют иерархию на основе

наследования. Объектно-ориентированный подход содержится в

современных языках высокого уровня Smalltalk, Object Pascal, C++, Java.

Модель пользовательского интерфейса ориентирована на описание



взаимодействий пользователей с проектируемой системой, состава форм

представления и команд управления заданиями.

Модели логики ориентированы на описание потока управления

(последовательности выполнения) операторов программной системы и

действий пользователей.

Для отображения результатов проектирования на различных этапах

используются следующие виды схем представления проектных решений:

1. Схемы первичной классификации.

2. Схемы вторичной классификации.

3. Схемы детализации.

4. Схемы спецификации функциональных возможностей.

5. Схемы локальных моделей данных.

6. Схемы потоков.

7. Диаграммы переходов.

8. Схемы спецификации пользовательского интерфейса.9. Схемы распределенной обработки данных.

10. Структурированные карты объектов.

Схема классификации описывает многомерную одноуровневую

классификацию одного элемента. Каждый признак (основание)

классификации имеет глобальный идентификатор и имя:

саt.<ид. признака классификации>–<имя признака классификации>.

Дуги на схеме классификации помечаются соответствующими

элементами типа cat.

По способу формирования будем различать первичные и вторичные

варианты оснований классификации.

Первичные основания характеризуют, как правило, наличие различных

существенных отличительных свойств у каждого подкласса

рассматриваемого класса элементов.

Вторичные основания классификации элемента формируются в

соответствии с основаниями классификации элементов, которые сильно

связаны с данным элементом.

Схемы потоков являются средством более детальной спецификации

функциональных или организационных элементов. В соответствии с типами

потоков будем различать схемы:

Материальных потоков;

Финансовых потоков;

Информационных потоков;

Потоков событий;

Отражающие сразу несколько типов потоков.

Правила конструирования схем потоков следующие:

Вся схема строится для одного исходного функционального или

организационного элемента;

Каждый функциональный и организационный элементы

спецификации должны иметь уникальный идентификатор;

Каждый поток должен иметь тип, уникальный идентификатор и,

возможно, спецификацию;

Каждый поток, кроме потока событий, должен связывать

накопитель соответствующего вида и функциональный элемент, или такие

элементы должны быть специфицированы в организационных элементах,

связанных потоком;

Накопителями информационных потоков в зависимости от их

вида являются базы данных (информационные объекты) или папки

документов:

Накопителями финансовых потоков являются счета

бухгалтерского учета;

Накопителями материальных потоков являются места

постоянного или временного размещения материальных ценностей; предполагается, что всякий организационный элемент имеет в

своем составе накопитель документов и накопитель финансовых средств с

идентификатором этого элемента.

Требования к технологиям разработки ИС.

Фазы и этапы программного проекта.

Стандарт ГОСТ 34.601-90 предусматривает следующие стадии и этапы создания автоматизированной системы:

    Формирование требований к АС

    1. Обследование объекта и обоснование необходимости создания АС

      Формирование требований пользователя к АС

      Оформление отчета о выполнении работ и заявки на разработку АС

    Разработка концепции АС

    1. Изучение объекта

      Проведение необходимых научно-исследовательских работ

      Разработка вариантов концепции АС и выбор варианта концепции АС, удовлетворяющего требованиям пользователей

      Оформление отчета о проделанной работе

    Техническое задание

    1. Разработка и утверждение технического задания на создание АС

    Эскизный проект

    1. Разработка предварительных проектных решений по системе и ее частям

    Технический проект

    1. Разработка проектных решений по системе и ее частям

      Разработка документации на АС и ее части

      Разработка и оформление документации на поставку комплектующих изделий

      Разработка заданий на проектирование в смежных частях проекта

    Рабочая документация

    1. Разработка рабочей документации на АС и ее части

      Разработка и адаптация программ

    Ввод в действие

    1. Подготовка объекта автоматизации

      Подготовка персонала

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

      Строительно-монтажные работы

      Пусконаладочные работы

      Проведение предварительных испытаний

      Проведение опытной эксплуатации

      Проведение приемочных испытаний

    Сопровождение АС.

    1. Выполнение работ в соответствии с гарантийными обязательствами

      Послегарантийное обслуживание

Эскизный, технический проекты и рабочая документация - это последовательное построение все более точных проектных решений. Допускается исключать стадию «Эскизный проект» и отдельные этапы работ на всех стадиях, объединять стадии «Технический проект» и «Рабочая документация» в «Технорабочий проект», параллельно выполнять различные этапы и работы, включать дополнительные.

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

Жизненный цикл программного проекта.

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

    процессы соглашения - два процесса;

    процессы организационного обеспечения проекта - пять процессов;

    процессы проекта - семь процессов;

    технические процессы - одиннадцать процессов;

    процессы реализации программных средств - семь процессов;

    процессы поддержки программных средств - восемь процессов;

    процессы повторного применения программных средств - три процесса.

Каждый процесс включает ряд действий. Например, процесс приобретения охватывает следующие действия:

    Инициирование приобретения

    Подготовка заявочных предложений

    Подготовка и корректировка договора

    Надзор за деятельностью поставщика

    Приемка и завершение работ

Каждое действие включает ряд задач. Например, подготовка заявочных предложений должна предусматривать:

    Формирование требований к системе

    Формирование списка программных продуктов

    Установление условий и соглашений

    Описание технических ограничений (среда функционирования системы и т. д.)

Стадии жизненного цикла ПО, взаимосвязь между процессами и стадиями

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

Стандарт ГОСТ Р ИСО/МЭК 12207-99 не предлагает конкретную модель жизненного цикла. Его положения являются общими для любых моделей жизненного цикла, методов и технологий создания ИС. Он описывает структуру процессов жизненного цикла, не конкретизируя, как реализовать или выполнить действия и задачи, включенные в эти процессы.

Модель ЖЦ ПО включает в себя:

  1. Результаты выполнения работ на каждой стадии;

    Ключевые события - точки завершения работ и принятия решений.

Стадия - часть процесса создания ПО, ограниченная определенными временными рамками и заканчивающаяся выпуском конкретного продукта (моделей, программных компонентов, документации), определяемого заданными для данной стадии требованиями.

На каждой стадии могут выполняться несколько процессов, определенных в стандарте ГОСТ Р ИСО/МЭК 12207-99, и наоборот, один и тот же процесс может выполняться на различных стадиях. Соотношение между процессами и стадиями также определяется используемой моделью жизненного цикла ПО.

Каскадная модель.

Каскадная модель , в которой переход на следующий этап означает полное завершение работ на предыдущем этапе.

В изначально существовавших однородных ИС каждое приложение представляло собой единое целое. Для разработки такого типа приложений применялся каскадный способ (или “водопад” ). Его основной характеристикой является разбиение всей разработки на этапы, при этом переход на следующий этап происходит только после полного завершения работ на текущем (рис. 1).

Рис. 1. Каскадная схема разработки ПО.

Каждый этап завершается выпуском полного комплекта документации, достаточной для того, чтобы разработка могла быть продолжена другой командой разработчиков. При этом этапы работ выполняются в логичной последовательности, что позволяет планировать сроки завершения всех работ и соответствующие затраты. Этот подход хорошо зарекомендовал себя при построении ИС, для которых в начале разработки можно достаточно точно и полно сформулировать все требования и предоставить разработчикам свободу реализовать их как можно лучше с технической точки зрения.

Его недостатки связаны с тем, что реальный процесс создания ПО ИС обычно не укладывается в такую жёсткую схему. Практически постоянно возникает потребность возвращаться к предыдущим этапам, уточнять или пересматривать принятые решения. В результате затягиваются сроки выполнения работы, пользователи могут вносить замечания лишь по завершению всех работ с системой. При этом модели автоматизируемого объекта могут устареть к моменту их утверждения.

Для преодоления этих проблем предложена поэтапная модель с промежуточным контролем (рис. 2).

Рис. 2. Поэтапная схема разработки ПО.

В поэтапной модели с промежуточным контролем разработка ПО ведётся итерациями с циклами обратной связи между этапами. Межэтапные корректировки позволяют уменьшить трудоёмкость процесса разработки по сравнению с каскадной моделью. Время жизни каждого из этапов растягивается на весь период разработки.

Спиралевидная модель.

Затем появилась спиральная модель ЖЦ (рис. 3), в которой на начальных этапах ЖЦ осуществляются анализ и проектирование.

Рис 3. Спиральная модель.

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

Полный жизненный цикл ИС должен поддерживаться комплексом инструментальных средств с учётом необходимости: адаптации типового проекта к различным системно-техническим платформам (техническим средствам, операционным системам и СУБД) и организационно-экономическим особенностям объектов внедрения; интеграции с существующими разработками (включая реинжиниринг приложений и конвертирование БД); обеспечения целостности проекта и контроля за его состоянием (наличие единой технологической среды создания, сопровождения и развития ИС, а также целостность репозитария). При этом желательно обеспечить независимость от программно-аппаратной платформы и СУБД, поддержку одновременной работы групп разработчиков, открытую архитектуру и возможности экспорта/импорта.

Итерационная модель.

Альтернативой последовательной модели является так называемая модель итеративной и инкрементальной разработки(англ. iterative and incremental development, IID ), получившей также от Т. Гилба в 70-е гг. название эволюционной модели . Также эту модель называют итеративной моделью и инкрементальной моделью .

Модель IID предполагает разбиение жизненного цикла проекта на последовательность итераций, каждая из которых напоминает «мини-проект», включая все процессы разработки в применении к созданию меньших фрагментов функциональности, по сравнению с проектом в целом. Цель каждой итерации - получение работающей версии программной системы, включающей функциональность, определённую интегрированным содержанием всех предыдущих и текущей итерации. Результат финальной итерации содержит всю требуемую функциональность продукта. Таким образом, с завершением каждой итерации продукт получает приращение - инкремент - к его возможностям, которые, следовательно, развиваются эволюционно . Итеративность, инкрементальность и эволюционность в данном случае есть выражение одного и то же смысла разными словами со слегка разных точек зрения.

По выражению Т. Гилба, «эволюция - прием, предназначенный для создания видимости стабильности. Шансы успешного создания сложной системы будут максимальными, если она реализуется в серии небольших шагов и если каждый шаг заключает в себе четко определённый успех, а также возможность «отката» к предыдущему успешному этапу в случае неудачи. Перед тем, как пустить в дело все ресурсы, предназначенные для создания системы, разработчик имеет возможность получать из реального мира сигналы обратной связи и исправлять возможные ошибки в проекте».

Подход IID имеет и свои отрицательные стороны, которые, по сути, - обратная сторона достоинств. Во-первых, целостное понимание возможностей и ограничений проекта очень долгое время отсутствует. Во-вторых, при итерациях приходится отбрасывать часть сделанной ранее работы. В-третьих, добросовестность специалистов при выполнении работ всё же снижается, что психологически объяснимо, ведь над ними постоянно довлеет ощущение, что «всё равно всё можно будет переделать и улучшить позже».

Различные варианты итерационного подхода реализованы в большинстве современных методологий разработки (RUP,MSF,XP).

Разновидности моделей.

Моделирование – представление объекта моделью для получения информации о нём путём проведения экспериментов с его моделью.

Под термином “моделирование ” обычно понимают процесс создания точного описания системы; метод познания, состоящий в создании и исследовании моделей.

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

Для формирования модели используются:

    структурная схема объекта;

    структурно-функциональная схема объекта;

    алгоритмы функционирования системы;

    схема расположения технических средств на объекте;

    схема связи и др.

Все модели можно разбить на два больших класса: предметные (материальные) и знаковые (информационные).

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

Информационная модель – это модель объекта, процесса или явления, в которой представлены информационные аспекты моделируемого объекта, процесса или явления.

Она является основой разработки моделей ИС.

Для создания описательных текстовых информационных моделей обычно используют естественные языки .

Наряду с естественными языками (русский, английский и т.д.) разработаны и используются формальные языки : системы счисления, алгебра высказываний, языки программирования и др.

Основное отличие формальных языков от естественных состоит в наличие у формальных языков не только жёстко зафиксированного алфавита, но и строгих правил грамматики и синтаксиса.

С помощью формальных языков строят информационные модели определённого типа – формально-логические модели.

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

Процесс построения информационных моделей с помощью формальных языков называют формализацией .

Модели, построенные с использованием математических понятий и формул, называют математическими моделями .

Модель должна учитывать как можно большее число факторов. Однако реализовать такое положение затруднительно особенно в слабоструктурируемых системах. Поэтому зачастую стремятся создавать модели достаточно простых элементов, с учётом их микро- и макросвязей. Это позволяет получать обозримые результаты. Фрагмент классификации методов моделирования представлен на рис. 3.1.

Рис. 3.1. Классификация методов моделирования.

Обычно различают реальное (материальное, предметное) и мысленное (идеализированное, концептуально-методологическое)моделирование.

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

Концептуальное моделирование представляет собой структурированный процесс создания систем, состоящий из следующих этапов:

  1. Проектирование,

    Программирование,

    Тестирование,

    Внедрение.

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

Существует нескольких методов и принципов построения информационных систем (автоматизированных ИС), среди которых можно выделить: методы “снизу-вверх” и “сверху-вниз”, принципы “дуализма”, многокомпонентности и др.

Метод “снизу-вверх” Опыт и методы работы отечественных программистов сформировались в крупных вычислительных центрах (ВЦ), основной целью которых было не создание тиражируемых продуктов, а выполнение задач конкретного учреждения. Современные руководители зачастую прибегают к нему, полагая, что им удобно иметь своих специалистов. Разработка программ “снизу-вверх”, осуществляемая квалифицированными программистами, позволяет автоматизировать, как правило, отдельные рабочие процессы.Такой метод весьма затратный и всё реже используется, особенно в малых и средних предприятиях.

Метод “сверху-вниз” Развитие коммерческих и иных современных структур послужило основанием к формированию рынка различных программных средств. Наибольшее развитие получили ИС, ориентированные на автоматизацию ведения бухгалтерского аналитического учёта и технологических процессов. В результате появились ИС, разработанные сторонними, как правило, специализированными организациями и группами специалистов “сверху”, в предположении, что одна ИС сможет удовлетворять потребности многих пользователей.

Такая идея ограничила возможности разработчиков в структуре информационных множеств БД, в использовании вариантов экранных форм, алгоритмов расчёта и, следовательно, лишила возможности принципиально расширить круг решаемых задач. Заложенные “сверху” жёсткие рамки (“общие для всех”) ограничивают возможности ИС. Стало очевидным, что для успешной реализации задач полной автоматизации организации следует менять идеологию построения автоматизированных информационных систем (АИС).

Принципы “дуализма” и многокомпонентности Развитие систем и предприятий, увеличение числа их филиалов и клиентов, повышение качества обслуживания и другое вызвали существенные изменения в разработке и функционировании АИС, в основном базирующиеся на сбалансированном сочетании двух предыдущих методов.

Новый подход ориентирован на специализированное программное обеспечение (СПО), возможность адаптации программного аппарата к практически любым условиям и различным требованиям инструктивных материалов и принятым правилам работы. Кроме того, гибкая система настроек СПО в АИС при проведении модернизации одного из компонентов позволяет не затрагивать центральную часть (ядро) АИС и другие её компоненты, что значительно повышает надёжность, продолжительность жизни ИС и обеспечивает наиболее полное выполнение требуемых функций.

Такой подход лег в основу “принципа дуализма ”. Его реализация потребовала построения АИС нового поколения в виде программных модулей, органически связанных между собой, но в то же время способных работать автономно.

Многокомпонентная система обеспечивает соблюдение основополагающего принципа построения АИС – отсутствия дублирования ввода исходных данных.

Информация по операциям, проведённым с применением одного из компонентов системы, может использоваться любым другим её компонентом. Модульность построения АИС нового поколения и принцип одноразового ввода дают возможность гибко варьировать конфигурацией этих систем. Такая структура позволяет включить в АИС нового поколения компоненты создания хранилищ данных, разделяя системы оперативного действия и системы поддержки принятия решения.

Кроме того, одно из достоинств принципа многокомпонентности , являющегося базовым при создании АИС нового поколения, состоит в возможности поэтапного внедрения ИС. На первом этапе внедрения устанавливают или заменяют уже устаревшие компоненты ИС, нуждающихся в обновлении ПО. На втором этапе происходит развитие системы с подсоединением новых компонентов и отработкой межкомпонентных связей. Возможность применения такой методики внедрения обеспечивает её достаточно простое тиражирование и адаптацию к местным условиям.

Из сказанного можно предположить, что автоматизированная информационная система нового поколения – это многокомпонентная система с распределённой базой данных.

Процессы создания моделей носят этапный характер. Основные виды моделей, типа “каскад” (“водопад”), “водоворот” и “спираль” описаны во второй главе. Возвращение к их рассмотрению связано с особенностями использования этих моделей в процессе разработки ИС.

Каскадная модель ИС состоит из последовательно выполняемых этапов. Каждый этап полностью заканчивается до того, как начнется следующий. Этапы не перекрываются во времени: следующий этап не начинается до тех пор, пока не завершится предыдущий. Возврат к предыдущим этапам не предусмотрен или всячески ограничен. Исправление ошибок происходит лишь на стадии тестирования. Результат появляется только в конце разработки ИС. Критерием появления результата является отсутствие ошибок и точное соответствие полученной ИС первоначальной её спецификации.

Поэтапная (итерационная) модель с промежуточным контролем Эта модель известна как итерационная модель или “водоворот”. В ней, так же, как и в модели “водопад” используется последовательность расположения этапов создания ИС. Но каждый следующий этап имеет обратную связь с предыдущими этапами. Исправление ошибок происходит на каждом из этапов, сразу при выявлении проблемы – промежуточный контроль . Следующий этап не начинается, пока не завершится предыдущий. При первом проходе по модели сверху вниз, как только обнаружена ошибка, осуществляется возврат к предыдущим этапам (снизу вверх), вызвавшим ошибку. Этапы оказываются растянутыми во времени. Результат появляется только в конце разработки ИС, как и в модели “водопад”.

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

Автоматизированная система моделирования (АСМ) – компьютерная система, предназначенная для оказания помощи пользователю по представлению нужной ему задачи в виде определённой математической схемы, принятой в данной системе, решить задачу (провести моделирование по полученной схеме) и проанализировать результаты.

АСМ состоит из трёх основных компонент: функциональное наполнение, язык заданий и системное наполнение.

Функциональное наполнение является совокупностью конструктивных элементов (модулей), из которых составляется схема (модель).

Системное наполнение – это набор программ, отражающих специфику реализации АСМ и обеспечивающих собственно функционирование системы: трансляцию и исполнение заданий, поддержку базы знаний о предметной области и т.д.

Язык заданий (ЯЗ) служит для описания задач, вводимых в систему.

Средствами и инструментом автоматизированного проектирования и разработки информационных систем являются CASE-средства и системы (Глава1), ориентированные на поддержку разработки информационных систем.

Методики (методологии) управления ИТ-проектами (тяжеловесные, легковесные): особенности, примеры.

Методики (методологии) управления ИТ-проектами

Модели (методики, методологии) процессов разработки ПО принято классифицировать по «весу» - количеству формализованных процессов (большинство процессов или только основные) и детальности их регламентации. Чем больше процессов документировано, чем более детально они описаны, тем больше «вес» модели.

Делятся на:

Тяжеловесные: RUP, MSF

Легковесные или agile-методики.

ГОСТы

Таблица 6

Вес модели

Процессы рассчитаны на среднюю квалификацию исполнителей. Большая специализация исполнителей. Ниже требования к стабильности команды.

Отсутствуют ограничения по объему и сложности выполняемых проектов.

Требуют существенной управленческой надстройки

Более длительные стадии анализа и проектирования.

Более формализованные /коммуникации. 8

Меньше непроизводительных расходов, связанных с управлением проектом, рисками, изменениями, конфигурациями.

Упрощенные стадии анализа и проектирования, основной упор на разработку функциональности, совмещение ролей. Неформальные коммуникации.

Эффективность сильно зависит от индивидуальных способностей, требуют более квалифицированной, универсальной и стабильной команды.

Объем и сложность выполняемых проектов ограничены.

ГОСТ 19 «Единая система программной документации» и ГОСТ 34 «Стандарты на разработку и сопровождение автоматизированных систем» ориентированы на последовательный подход к разработке ПО.

Разработка в соответствии с этими стандартами проводится по этапам, каждый из которых предполагает выполнение строго определенных работ, и завершается выпуском достаточно большого числа весьма формализованных и обширных документов.

Таким образом, строгое следование этим гостам не только приводит к водопадному подходу, но и требует очень высокой степени формализованности разработки.

На основе этих стандартов разрабатываются программные системы по госзаказам в России.

В середине 80-х годов 20-го столетия Министерство обороны США крепко задумалось о том, как выбирать разработчиков ПО при реализации крупномасштабных программных проектов. По заказу военных Институт программной инженерии, входящий в состав Университета Карнеги-Меллона, разработал SW-CMM, Capability Maturity Model for Software в качестве эталонной модели организации разработки программного обеспечения.

Модель определяет 5уровней зрелости процесса разработки ПО:

Начальный - процесс разработки носит хаотический характер. Определены лишь немногие из процессов, и успех проектов зависит от конкретных исполнителей.

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

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

Управляемый - собираются детальные количественные данные по функционированию процессов разработки и качеству конечного продукта. Анализируется значение и динамика этих данных.

Оптимизируемый - постоянное улучшение процессов основывается на количественных данных по процессам и на пробном внедрении новых идей и технологий.

Документация с полным описанием SW-CMM занимает около 500 страниц и определяет набор из 312 требований, которым должна соответствовать организация, если она планирует аттестоваться по этому стандарту на 5-ый уровень зрелости.

RUP

Один из самых известных процессов, использующих итеративную модель разработки – Rational Unified Process (RUP).

Cоздан во второй половине 1990-х годов в компании Rational Software.

Основныt разработчики Филипп Крачтен (Philippe Kruchten), Грейди Буч (Grady Booch), Джеймс Рамбо (James Rumbaugh) и Айвар Якобсон (Ivar Jacobson).

Последние трое являются также создателями нотации UML.

Rational Unified Process предлагает итеративную модель разработки, включающую 4 фазы: начало, исследование, построение и внедрение.

Каждая фаза может быть разбита на этапы (итерации) , в результате которых выпускается версия для внутреннего или внешнего использования.

Прохождение через фазы - цикл разработки , каждый цикл завершается генерацией версии системы.

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

Суть работы в рамках RUP - это создание и сопровождение моделей на базе UML.

Термин RUP означает как методологию разработки, так и продукт компании IBM (ранее – Rational) для управления процессами разработки.

Методология RUP описывает абстрактный общий процесс, на основе которого организация или проектная команда должна создать специализированный процесс, ориентированный на ее потребности.

Рабочий процесс в RUP

В терминах RUP участники проектной команды создают так называемые артефакты (work products), выполняя задачи (tasks) в рамках определенных ролей (roles).

Артефактами являются спецификации, модели, исходный код и т.п.

Задачи разделяются по девяти процессным областям, называемым дисциплинами (discipline).

В дисциплины входят:

Бизнес-моделирование (Business Modeling) – исследование и описание существующих бизнес-процессов заказчика, а также поиск их возможных улучшений.

Управление требованиями (Requirements Management) – определение границ проекта, разработка функционального дизайна будущей системы и его согласование с заказчиком.

Анализ и проектирование (Analysis and Design) – проектирование архитектуры системы на основе функциональных требований и ее развитие на протяжении всего проекта.

Реализация (Implementation) – разработка, юнит-тестирование и интеграция компонентов системы.

Тестирование (Test) – поиск и отслеживание дефектов в системе, проверка корректности реализации требований.

Развертывание (Deployment) – создание дистрибутива, установка системы, обучение пользователей.

Управление конфигурациями и изменениями (Configuration and Change Management) – управление версиями исходного кода и документации, процесс обработки запросов на изменение (change requests).

Управление проектом (Project Management) – создание проектной команды, планирование фаз и итераций, управление бюджетом и рисками.

Среда (Environment) – создание инфраструктуры для выполнения проекта, включая организацию и настройку процесса разработки.

В ходе жизненного цикла проекта распределение усилий проектной команды между дисциплинами постоянно меняется.

Например, как правило, в начале проекта большая часть усилий затрачивается на анализ и дизайн, а ближе к завершению – на реализацию и тестирование системы. Однако в общем случае задачи из всех девяти дисциплин выполняются параллельно.

Рисунок иллюстрирует выполнение проекта среднего размера.

Для полноценного внедрения RUP организация должна затратить значительные средства на обучение сотрудников.

При этом попытка обойтись своими силами скорее всего будет обречена на неудачу – необходимо искать специалиста по процессам (process engineer) с соответствующим опытом или привлекать консультантов.

База знаний MSF состоит из оригинальных моделей, методов и взглядов на такие области знаний как управление проектами, персоналом, планирование, анализ рисков и другие смежные дисциплины.

Структурно пакет руководств MSF разделён на пять документов, так называемых «белых книг», каждый из которых охватывает определенную дисциплину или модель MSF:

    «Модель процессов MSF»,

    «Модель проектной группы MSF»,

    «Дисциплина управления проектами MSF»,

    «Дисциплина управления рисками MSF» и

    «Дисциплина управления подготовкой MSF».

Одна из последних разработок Института программной инженерии Personal Software Process / Team Software Process.

Personal Software Process определяет требования к компетенциям разработчика.

Согласно этой модели каждый программист должен уметь:

    учитывать время, затраченное на работу над проектом;

    учитывать найденные дефекты;

    классифицировать типы дефектов;

    оценивать размер задачи;

    осуществлять систематический подход к описанию результатов тестирования;

    планировать программные задачи;

    распределять их по времени и составлять график работы.

    выполнять индивидуальную проверку проекта и архитектуры;

    осуществлять индивидуальную проверку кода;

    выполнять регрессионное тестирование.

    Team Software Process делает ставку на самоуправляемые команды численностью 3-20 разработчиков.

Команды должны:

      установить собственные цели;

      составить свой процесс и планы;

      отслеживать работу;

      поддерживать мотивацию и максимальную производительность.

Последовательное применение модели PSP/TSP позволяет сделать нормой в организации пятый уровень CMM.

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

Они декларируют своей высшей ценностью ориентированность на людей и их взаимодействие, а не на процессы и средства.

По сути, так называемые, гибкие методологии это не методологии, а набор практик , которые могут позволить (а могут и нет) добиваться эффективной разработки ПО, основываясь на итеративности, инкрементальности, самоуправляемости команды и адаптивности процесса.

В течение 1990-х годов все больше разработчиков ПО начинали искать альтернативу традиционным, как правило, основанным на модели водопада, процессам разработки. К 2000 году существовало уже целое множество так называемых легковесных (lightweight) методологий .

В 2001 году группа создателей и экспертов по различным легковесным методологиям провела семинар, на котором были сформулированы основные принципы гибкой разработки ПО (так называемый Agile Manifesto) – манифест гибкой разработки.

На том же семинаре было предложено новое название легковесных методологий – гибкая разработка (agile software development).

Общими особенностями гибких методологий являются:

Ориентированность на людей – как разработчиков, так и заказчиков. Считается, что умение собрать в проектной команде «правильных» людей определяет успех или неудачу проекта в значительно большей степени, чем любые процессы или технологии.

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

Итеративная разработка с возможно более короткой (в разумных пределах) продолжительностью итерации, при этом в результате каждой итерации выпускается полноценная работающая версия продукта.

Ожидание изменений – в гибком процессе проектная команда не пытается зафиксировать требования в начале проекта и затем следовать жестко определенному плану. Изменения могут быть сделаны на сколь угодно позднем этапе проекта.

Принципы, которые разъясняет Agile Manifesto :

    удовлетворение клиента за счёт ранней и бесперебойной поставки ценного программного обеспечения;

    приветствие изменений требований даже в конце разработки (это может повысить конкурентоспособность полученного продукта);

    частая поставка рабочего программного обеспечения (каждый месяц или неделю или ещё чаще);

    тесное, ежедневное общение заказчика с разработчиками на протяжении всего проекта;

    проектом занимаются мотивированные личности, которые обеспечены нужными условиями работы, поддержкой и доверием;

    работающее программное обеспечение - лучший измеритель прогресса;

    спонсоры, разработчики и пользователи должны иметь возможность поддерживать постоянный темп на неопределённый срок;

    постоянное внимание улучшению технического мастерства и удобному дизайну;

    простота - искусство не делать лишней работы;

    лучшие технические требования, дизайн и архитектура получаются у самоорганизованной команды;

    постоянная адаптация к изменяющимся обстоятельствам.

eXtreme Programming или XP (экстремальное программирование)

Методология XP была создана Кентом Беком (Kent Beck) в 1996 году в ходе попытки спасти провальный проект по разработке системы расчета зарплаты для компании Крайслер.

В 2000 году проект был закрыт, но XP к тому времени уже получила известность и начала распространяться среди разработчиков ПО.

XP наследует все общие принципы гибких методологий, достигая их при помощи двенадцати инженерных практик.

Она описывается как 12 практик: игра в планирование, короткие релизы, метафоры, простой дизайн, переработки кода (refactoring), разработка "тестами вперед", парное программирование, коллективное владение кодом, 40-часовая рабочая неделя, постоянное присутствие заказчика и стандарты кода.

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

Crystal Clear

Разработчик Алистер Коуберн

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

Уступает XP по производительности, зато максимально проста в использовании. Требует минимальных усилий для внедрения, так как ориентирована на человеческие привычки.

Считается, что она описывает тот естественный порядок разработки ПО, который устанавливается в достаточно квалифицированных коллективах, если в них не занимаются целенаправленным внедрением другой методологии.

Основные характеристики методологии:

    Итеративная инкрементная разработка;

    Автоматическое регрессионное тестирование;

    Пользователи привлекаются к активному участию в проекте;

    Состав документации определяется участниками проекта;

    Как правило, используются средства контроля версий кода.

    Помимо Crystal Clear в семейство Crystal входит еще несколько методологий, предназначенных для выполнения более крупных или более критических проектов. Они отличаются несколько более жесткими требованиями к объему документации и вспомогательным процедурам, таким как управление изменениями и версиями.

Feature Driven Development

Функционально-ориентированная разработка (FDD, Feature Driven Development).

На самом деле используемое в FDD понятие функции или свойства (feature) системы достаточно близко к понятию прецедента использования, используемому в RUP.

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

FDD включает 5 процессов, последние два из которых повторяются для каждой функции:

    Разработка общей модели.

    Составление списка необходимых функций системы.

    Планирование работы над каждой функцией.

    Проектирование функции.

    Конструирование функции.

Разработчики в FDD делятся на "хозяев классов" – class owners и "главных программистов" chief programmers.

Главные программисты привлекают хозяев задействованных классов к работе над очередным свойством. Для сравнения, в XP нет персонально ответственных за классы или методы. К работе над любым классом может привлекаться любой из участников разработки.

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

OpenUP

Итеративно-инкрементальный метод разработки ПО. Позиционируется как легкий и гибкий вариант RUP.

Базовый процесс OpenUP является независимым от инструментов, малорегламентированным процессом, который может быть расширен для удовлетворения потребностей широкого диапазона типов проектов.

В основу OpenUP положены следующие основные принципы :

Совместная работа с целью согласования интересов и достижения общего понимания;

Развитие с целью непрерывного обеспечения обратной связи и совершенствования проекта;

Концентрация на архитектурных вопросах на ранних стадиях для минимизации рисков и организации разработки;

Выравнивание конкурентных преимуществ для максимизации потребительской ценности для заинтересованных лиц.

Scrum

Scrum - методология управления разработкой информационных систем для гибкой разработки программного обеспечения.

Scrum чётко делает акцент на качественном контроле процесса разработки.

Кроме управления проектами по разработке ПО Scrum может также использоваться в работе команд поддержки программного обеспечения (software support teams), или как подход управления разработкой и сопровождением программ: Scrum of Scrums.

Это набор принципов, на которых строится процесс разработки, позволяющий в жёстко фиксированные и небольшие по времени итерации, называемые спринтами (sprints), предоставлять конечному пользователю работающее ПО с новыми возможностями, для которых определён наибольший приоритет.

Возможности ПО к реализации в очередном спринте определяются в начале спринта на этапе планирования и не могут изменяться на всём его протяжении. При этом строго фиксированная небольшая длительность спринта придаёт процессу разработки предсказуемость и гибкость.

Спринт - итерация, в ходе которой создаётся функциональный рост программного обеспечения.

Жёстко фиксирован по времени. Длительность одного спринта от 2 до 4 недель. В отдельных случаях, к примеру согласно Scrum стандарту Nokia, длительность спринта должна быть не более 6 недель.

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

По методике Scrum в производственном процессе есть определенные роли, разбитые на 2 группы «свиней» и «кур».

Названия были использованы из-за шутки:

Свинья идёт по дороге. Курица смотрит на нее и говорит: «А давай откроем ресторан!» Свинья смотрит на курицу и отвечает: «Хорошая идея, и как ты хочешь его назвать?» Курица думает и говорит: «Почему бы не назвать "Яичница с беконом"?». «Так не пойдёт», - отвечает свинья, «ведь тогда мне придётся полностью посвятить себя проекту, а ты будешь вовлечена только частично.»

Основные роли:

    Скрам-мастер (ScrumMaster) – проводит совещания следит за соблюдением всех принципов, разрешает противоречия и защищает команду от отвлекающих факторов. Только ведет скрам-процесс.

    Владелец проекта (Product Owner) – представляет интересы конечных пользователей и других заинтересованных в продукте сторон.

    Скрам-команда (Scrum Team) – кросс-функциональная команда разработчиков проекта, состоящая из специалистов разных профилей: тестировщиков, архитекторов, аналитиков, программистов и т. д. Размер команды в идеале составляет 7±2 человека. Команда является единственным полностью вовлечённым участником разработки и отвечает за результат.

Неосновные роли:

    Пользователи (Users)

    Клиенты, Продавцы (Stakeholders) – лица, которые инициируют проект и для кого проект будет приносить выгоду. Они вовлечены в скрам только во время обзорного совещания по спринту (Sprint Review).

    Управляющие (Managers) – люди, которые управляют персоналом.

    Эксперты-консультанты (Consulting Experts)

Ежедневное совещание (Daily Scrum meeting):

    начинается точно вовремя;

    все могут наблюдать, но только основные говорят;

    длится не более 15 минут;

    проводится в одном и том же месте в течение спринта.

В течение совещания каждый член команды отвечает на 3 вопроса:

    Что сделано с момента предыдущего ежедневного совещания?

    Что будет сделано с момента текущего совещания до следующего?

    Какие проблемы мешают достижению целей спринта? (Над решением этих проблем работает скрам мастер. Обычно это решение проходит за рамками ежедневного совещания и в составе лиц, непосредственно затронутых данным препятствием.)