Сайт о телевидении

Сайт о телевидении

» » Понятие CASE-технологии. CASE - технологии

Понятие CASE-технологии. CASE - технологии

Контрольная

Информатика, кибернетика и программирование

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

CASE - технологии

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

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

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

ассемблеры, дампы памяти, анализаторы;

компиляторы, интерпретаторы, трассировщики;

символические отладчики, пакеты программ;

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

CASE -средства анализа требований, проектирования спецификаций и структуры, редактирования интерфейсов(1-ая генерация CASE -1;

CASE -средства генерации исходных текстов и реализации интегрированного окружения поддержки полного ЖЦ разработки ПО (2-ая генерация CASE - II ).

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

CASE обладают следующими основными достоинствами:

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

При использовании CASE -технологий изменяются фазы жизненного цикла ПП как показано ниже:

При традиционной технологии: При CASE -технологии:

Анализ Прототипирование

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

Контроль проекта

Кодирование Кодогенерация

Тестирование Системное тестирование

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

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

Технология

Этапы разработки

Анализ

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

Кодирование

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

традиционная

CASE -1

CASE -11

В следующей таблице сравниваются цели и содержание этапов при традиционной разработке и с применением CASE -средств.

№ п/п

Традиционная разработка

CASE -технология

Основные усилия - на

кодирование и тестирование

Основные усилия - на анализ

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

‘Бумажные’ спецификации

Быстрое итеративное

прототипирование

Ручное кодирование

Автоматическая кодогенерация

Ручное документирование

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

документации

Тестирование кодов

Автоматический

Контроль проекта

Сопровождение кодов

Сопровождение специфи-

каций проектирования

Модель ЖЦ ПО определяет порядок выполнения этапов, а также критерии перехода от этапа к этапу.

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

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

Специалистами отмечаются следующие преимущества спиральной модели:

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

ориентация на развитие и модификацию ПО в процессе проектирования;

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

Чем же принципиально CASE -технология отличается от традиционной?

Для ответа на этот вопрос несколько отвлечемся и вспомним, что нас интересует прежде всего, если мы встречаем предмет, который раньше никогда не видели? Смею утверждать, что это будут вопросы ‘Что оно делает?’ и ‘ Из чего оно состоит?’. Ответы на эти вопросы представляют собой функциональный и структурный аспект описания объекта. Исторически так сложилось, что при проектировании новых объектов структурный аспект отражается в виде схем (принципиальные электрические схемы, механические схемы, комбинированные схемы и т.п.). Так вот CASE -технологии иначе еще называют структурным системным анализом, что отражает тот факт, что и функционирование объекта (в рассматриваемом случае разрабатываемого ПО) отражается в различных схемах, таблицах, диаграммах, матрицах, картах и т.п. Можно смело утверждать, что девизом разработчиков CASE -технологий является фраза ‘одна картинка стоит тысячи слов’.

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

Большинство CASE -технологий основано на парадигме методология/метод/нотация/ средство. Понятия методологии и метода мы с Вами уже давали.

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

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

Следует отметить, что используемые в методологии структурного анализа средства весьма разнообразны, Наиболее часто и эффективно используются следующие:

DFD (Data Flow Diagrams ) - диаграммы потоков данных, совместно со словарями данных и спецификациями процессов или миниспецификациями;

ERD (Entity-Relationship Diagrams) - диаграммы ‘ сущность - связь ’;

STD (State Transition Diagrams ) - диаграммы переходов состояний.

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

по отношению к школам - Software Engineering (SE) и Information Engineering (IE);

по порядку построения моделей - процедурно-ориентированные, ориентированные на данные и информационно-ориентированные;

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

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

Информационные системы

Системы реального времени

Управляются данными

Управляются событиями

Сложные структуры данных

Простые структуры данных

Большой объем

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

Малое количество

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

Интенсивный ввод-вывод

Интенсивные вычисления

Машинная независимость

Машинная зависимость

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

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

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

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

CASE -средства можно классифицировать по типам, отражающим функциональную ориентацию в технологическом процессе.

Анализ и проектирование . Средства данной группы применяют для создания спецификаций системы и ее проектирования, они поддерживают методологии SE и IE :

  • CASE - аналитик (Эйтекс);
  • POSE (Computer Systems Advisers);
  • Design/IDEF (Meta Software);
  • BPWin (Logic Works);
  • SELECT (Select Software Tools);
  • CASE/4/0 (micro TOOl GmbH)

и ряд других средств.

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

  • ERWin (Logic Works);
  • S-Designor (SPD);
  • Designtr/2000 (Oracle);
  • Sillverrun (Computer Systems Advisers)/

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

  • COBOL 2/Workbench (Mikro Focus);
  • DECASE (DEC);
  • NETRON/CAP (Netron);
  • APS (Sage Softwfre).

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

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

  • Adpac CASE Tools (Adpac);
  • Scan/COBOL и SuperStructure (Computer Data Systems):
  • Inshtctor/Recoder (language Tecnologe).

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


А также другие работы, которые могут Вас заинтересовать

54957. Гуситское движение в Чехии 62.5 KB
Вооруженная борьба гуситов. Крестовые походы против гуситов. Вооружение и способы борьбы гуситов. Вооруженная борьба гуситов.
54958. Причины и социально-экономические последствия инфляции. Антиинфляционная политика государства 18.02 KB
Как свидетельствует опыт, остановить инфляцию с помощью одних организационных мер весьма трудно, если не сказать невозможно. Для этого необходима структурная реформа, направленная на преодоление возникших в экономике диспропорций.
54959. Пусть всегда будет солнце 62.5 KB
Вид урока Комбинированный Тип урока Комплексный урок Государственный социальный заказ Во исполнение Закона Российской Федерации Об образовании; Закона О развитии образования в городе Москве; Конвенции о правах ребенка;...
54960. ВЫРЕЗАНИЕ ИЗ БУМАГИ 69 KB
Цели: Обучающая: Способствовать формированию представления о таком виде декоративно прикладного искусства как вырезание из бумаги. Слайды 18 Сейчас вы можете назвать мне тему нашего урока ответы детей Правильно вырезание из бумаги слайд 9 Но давайте нашему уроку придумаем красивое название...
54961. Материки и океаны 65.5 KB
План урока Этапы урока Задачи этапов Деятельность учителя Деятельность учащихся Методы и приемы Формы работы Средства обучения Самоопределение в деятельности Настрой учащихся на работу активизация познавательных мотивов учащихся создание психологического комфорта в классе...
54962. 41.5 KB
Прыжки и их разновидности: на двух ногах на правой ноге на левой ноге 1мин 5 мин 3мин 2мин Обратить внимание на внешний вид занимающихся Плечи чуть наклонены вперед Темп движения быстрый руки согнуты ноги не соединять Руки на поясе...
54963. Национальный и религиозный состав населения России 60.1 KB
Цели: познакомить обучающихся с особенностями национального и религиозного состава населения России. Задачи: образовательные: изучить особенности национального и религиозного состава населения страны языковые семьи и группы; познакомить с национальным составом населения Республики Коми; развивающие: продолжить работу над развитием умения анализировать статистический материал работать с дополнительными источниками; воспитательные: воспитывать гражданственность...
54964. Разработки уроков по информатике 2.39 MB
Планконспект урока Презентация к уроку Дополнительный материал 2 2 Информация Теория Практика Понятие информации свойства информации единицы измерения объема информации. Планконспект урока Презентация к уроку Дополнительный материал 3 3 Кодирование информации в компьютере Теория Практика Кодирование и декодирование. Планконспект урока Презентация к уроку Дополнительный материал 4 4 Информационная деятельность человека Теория Практика Сбор обработка передача хранение поиск и защита информации. Планконспект урока Презентация к уроку...
54965. Алфавит 64.5 KB
Буквы значки как бойцы на парад в строгом порядке построены в ряд. Подумайте почему мы прописали именно эти две буквы Первая и последняя буквы алфавита С новой строки пишем соединения букв ал лф фа ав ви ит. С новой строки с маленькой буквы пишем слово алфавит. Беседа Алфавит или азбука это все буквы расположенные в определенном строгом порядке.

Анализ литературы последних лет по технологии программирования показывает , что новой ветвью в технологии промышленной разработки и реализации сложных и значительных по объему систем программного обеспечения является CASE-технология (Computer Aided Software Engineering).

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

Для выхода из сложившейся ситуации была разработана CASE-технология, поддерживающая проектирование, выбор технологии, архитектуры и написание программного обеспечения. CASE (Computed Aided Software Engineering) - система конструирования программ с помощью компьютера.

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

САSE-ToolKits и CASE-WorkBenches . Хороших русских эквивалентов этим терминам нет. Однако первые часто называют «инструментальными сундучками» (пакетами разработчика, технологическими пакетами), а вторые - «станками для производства программ» (технологическими линиями).

По определению. CASE-ToolKit - коллекция интегрированных программных средств, обеспечивающих автоматическое ассистирование в решении задач одного типа в процессе создания программ.

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

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

Таким образом, CASE-WorkBench является естественным «замыканием» технологии разработки, реализации и сопровождения программного обеспечения.

В настоящее время «типовая» система поддержки CASE-технологии имеет функциональные возможности, представленные на рис. 14.

Рис. 14. Функциональные возможности типовой системы поддержки CASE-технологии

Как следует из рис. 14, в CASE-среде должны поддерживаться все основные этапы разработки и сопровождения процессов создания программных систем. Однако уровень такой поддержки существенно различен. Так, например, если говорить об этапах анализа и проектирования, большинство инструментальных пакетов поддерживает экранные и отчетные формы, создание прототипов, обнаружение ошибок. Значительная часть этих средств предназначена для ПЭВМ. Многие поддерживают такие широко используемые методологии, как структурный анализ DeMarco или Gane/Sarson, структурное проектирование Yourdan/Jackson и некоторые другие. Существуют специализированные пакеты разработчиков для создания информационных систем, например AnaTool (Advanced Logical Software) для Macintosh; CA-Universe/Prototype (Computer Associates International) для ПЭВМ. Имеются CASE-среды и для поддержки разработки систем реального времени.

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

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

Формирование требований, разработка и выбор варианта концепции системы;

Разработка и утверждение технического задания на систему;

Эскизный и технический проекты с описанием всех компонентов и архитектуры системы;

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

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

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

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

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

В основе CASE-технологии лежит процесс выявления функций отдельных элементов систем и информационных потоков.

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

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

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

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

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

Основные достоинства CASE-технологии:

Повышение производительности труда программистов на несколько порядков,

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

Минимизация ошибок и несовершенства программного обеспечения конечных пользователей,

Ускорение обучения персонала и использование программного обеспечения в полном объеме,

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

Наиболее известной в России в настоящее время является CASE-система Oracle, позволяющая создавать приложения на базе одноименной СУБД. В ее основе лежит CASE-метод проектирования сети «сверху вниз» - от наиболее общих решений к частным. Этапы в Oracle выглядят следующим образом :

Выработка стратегии;

Анализ объекта;

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

Реализация;

Внедрение;

Эксплуатация.

ER-модель строится на этапе анализа объекта, а СУБД -на этапе проектирования.

CASE-система Oracle состоит из инструментальных средств CASE*Dictionary (для графического представления модулей предметной области); CASE*Generator (для автоматического генерирования программных модулей).

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

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

Современные методы и средства проектирования информационных систем

Введение

Целью данного обзора является введение в особенности современных методов и средств проектирования информационных систем, основанных на использовании CASE-технологии.

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

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

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

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

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

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

· необходимость интеграции существующих и вновь разрабатываемых приложений;

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

· разобщенность и разнородность отдельных групп разработчиков по уровню квалификации и сложившимся традициям использования тех или иных инструментальных средств;

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

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

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

· неадекватная спецификация требований;

· неспособность обнаруживать ошибки в проектных решениях;

· низкое качество документации, снижающее эксплуатационные качества;

· затяжной цикл и неудовлетворительные результаты тестирования.

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

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

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

· подготовка аналитиков и программистов, восприимчивых к концепциям модульного и структурного программирования;

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

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

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

Согласно обзору передовых технологий (Survey of Advanced Technology), составленному фирмой Systems Development Inc. в 1996 г. по результатам анкетирования более 1000 американских фирм, CASE-технология в настоящее время попала в разряд наиболее стабильных информационных технологий (ее использовала половина всех опрошенных пользователей более чем в трети своих проектов, из них 85% завершились успешно). Однако, несмотря на все потенциальные возможности CASE-средств, существует множество примеров их неудачного внедрения, в результате которых CASE-средства становятся "полочным" ПО (shelfware). В связи с этим необходимо отметить следующее:

· CASE-средства не обязательно дают немедленный эффект; он может быть получен только спустя какое-то время;

· реальные затраты на внедрение CASE-средств обычно намного превышают затраты на их приобретение;

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

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

· широкое разнообразие качества и возможностей CASE-средств;

· относительно небольшое время использования CASE-средств в различных организациях и недостаток опыта их применения;

· широкое разнообразие в практике внедрения различных организаций;

· отсутствие детальных метрик и данных для уже выполненных и текущих проектов;

· широкий диапазон предметных областей проектов;

· различная степень интеграции CASE-средств в различных проектах.

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

CASE - технологии

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

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

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

    ассемблеры, дампы памяти, анализаторы;

    компиляторы, интерпретаторы, трассировщики;

    символические отладчики, пакеты программ;

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

    CASE-средства анализа требований, проектирования спецификаций и структуры, редактирования интерфейсов(1-ая генерация CASE-1;

    CASE-средства генерации исходных текстов и реализации интегрированного окружения поддержки полного ЖЦ разработки ПО (2-ая генерация CASE-II).

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

CASE обладают следующими основными достоинствами:

    улучшают качество создаваемого ПО за счет средств автоматического контроля, прежде всего, контроля проекта;

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

    ускоряют процесс проектирования и разработки;

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

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

    поддерживают технологии повторного использования компонент разработки).

При использовании CASE-технологий изменяются фазы жизненного цикла ПП как показано ниже:

При традиционной технологии: При CASE-технологии:

Анализ Прототипирование

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

Контроль проекта

Кодирование Кодогенерация

Тестирование Системное тестирование

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

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

Технология

Этапы разработки

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

Кодирование

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

традиционная

В следующей таблице сравниваются цели и содержание этапов при традиционной разработке и с применением CASE-средств.

Традиционная разработка

CASE-технология

Основные усилия - на

кодирование и тестирование

Основные усилия - на анализ

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

‘Бумажные’ спецификации

Быстрое итеративное

прототипирование

Ручное кодирование

Автоматическая кодогенерация

Ручное документирование

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

документации

Тестирование кодов

Автоматический

Контроль проекта

Сопровождение кодов

Сопровождение специфи-

каций проектирования

Модель ЖЦ ПО определяет порядок выполнения этапов, а также критерии перехода от этапа к этапу.

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

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

Специалистами отмечаются следующие преимущества спиральной модели:

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

    ориентация на развитие и модификацию ПО в процессе проектирования;

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

Чем же принципиально CASE-технология отличается от традиционной?

Для ответа на этот вопрос несколько отвлечемся и вспомним, что нас интересует прежде всего, если мы встречаем предмет, который раньше никогда не видели? Смею утверждать, что это будут вопросы ‘Что оно делает?’ и ‘ Из чего оно состоит?’. Ответы на эти вопросы представляют собой функциональный и структурный аспект описания объекта. Исторически так сложилось, что при проектировании новых объектов структурный аспект отражается в виде схем (принципиальные электрические схемы, механические схемы, комбинированные схемы и т.п.). Так вот CASE-технологии иначе еще называют структурным системным анализом, что отражает тот факт, что и функционирование объекта (в рассматриваемом случае разрабатываемого ПО) отражается в различных схемах, таблицах, диаграммах, матрицах, картах и т.п. Можно смело утверждать, что девизом разработчиков CASE-технологий является фраза ‘одна картинка стоит тысячи слов’.

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

Большинство CASE-технологий основано на парадигме методология/метод/нотация/ средство. Понятия методологии и метода мы с Вами уже давали.

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

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

Следует отметить, что используемые в методологии структурного анализа средства весьма разнообразны, Наиболее часто и эффективно используются следующие:

    DFD (Data Flow Diagrams) - диаграммы потоков данных, совместно со словарями данных и спецификациями процессов или миниспецификациями;

    ERD (Entity-Relationship Diagrams) - диаграммы ‘сущность -связь’;

    STD (State Transition Diagrams) - диаграммы переходов состояний.

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

    по отношению к школам - Software Engineering (SE) и Information Engineering (IE);

    по порядку построения моделей - процедурно-ориентированные, ориентированные на данные и информационно-ориентированные;

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

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

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

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

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

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

CASE-средства можно классифицировать по типам, отражающим функциональную ориентацию в технологическом процессе.

Анализ и проектирование . Средства данной группы применяют для создания спецификаций системы и ее проектирования, они поддерживают методологии SE и IE:

    CASE- аналитик (Эйтекс);

    POSE (Computer Systems Advisers);

    Design/IDEF (Meta Software);

    BPWin (Logic Works);

    SELECT (Select Software Tools);

    CASE/4/0 (micro TOOl GmbH)

и ряд других средств.

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

    ERWin (Logic Works);

    S-Designor (SPD);

    Designtr/2000 (Oracle);

    Sillverrun (Computer Systems Advisers)/

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

    COBOL 2/Workbench (Mikro Focus);

  • NETRON/CAP (Netron);

    APS (Sage Softwfre).

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

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

    Adpac CASE Tools (Adpac);

    Scan/COBOL и SuperStructure (Computer Data Systems):

    Inshtctor/Recoder (language Tecnologe).

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

CASE- технологии CASE (Computer Aided Software Engeneering) Эти технологии являются естественным продолжением эволюции всей отрасли разработки ПО. CASE-1: анализ требований, проектирование спецификаций и структуры, редактирование интерфейсов. CASE-2: генерация исходных текстов и реализация интегрированного окружения поддержки полного ЖЦ разработки ПО.










Основные задачи CASE-систем 1.Разработка моделей предметной области, функциональной структуры системы, структур данных на графических языках. 2.Хранение моделей в единой базе данных – репозитории, доступном всем участникам разработки. 3.Формальный анализ разрабатываемых моделей, позволяющий избегать некоторых семантических ошибок. 4.Автоматизированная генерация структур баз данных, приложений, текстов программ. 5.Автоматизированная генерация документации на программные системы. 6.Обеспечение повторного использования наработок при модернизации, перепроектировании системы.




Методологии структурного анализа классифицируются по признакам: по отношению к школам - Software Engineering (SE) и Information Engineering (IE); по порядку построения моделей - процедурно-ориентированные, ориентированные на данные и информационно-ориентированные; по типу целевых систем - для систем реального времени и для информационных систем.












Классификация по функциональной ориентации Анализ и проектирование. CASE- аналитик (Эйтекс); POSE (Computer Systems Advisers); Design/IDEF (Meta Software); BPWin (Logic Works); SELECT (Select Software Tools); CASE/4/0 (micro TOOl GmbH) Проектирование баз данных и файлов. ERWin (Logic Works); S-Designor (SPD); Designtr/2000 (Oracle); Sillverrun (Computer Systems Advisers)/ Программирование. COBOL 2/Workbench (Mikro Focus); DECASE (DEC); NETRON/CAP (Netron); APS (Sage Softwfre). Сопровождение и реинжениринг Adpac CASE Tools (Adpac); Scan/COBOL и SuperStructure (Computer Data Systems): Inshtctor/Recoder (language Tecnologe).


CASE-средства фирмы Computer Associated AllFusion Process Modeler (ранее:BPwin) - моделирование бизнес-процессовAllFusion Process Modeler (ранее:BPwin) AllFusion ERwin Data Modeler (ранее: ERwin) - моделирование данныхAllFusion ERwin Data Modeler (ранее: ERwin) AllFusion Data Model Validator (ранее: ERwin Examiner) - проверка моделей данных.AllFusion Data Model Validator (ранее: ERwin Examiner) AllFusion Model Manager (ранее: ModelMart) - сервер для совместной работы пользователей ERwin и/или BpwinAllFusion Model Manager (ранее: ModelMart) AllFusion Saphir Option - – средство просмотра структур данных широкого набора корпоративных информационных систем.AllFusion Saphir Option AllFusion Component Modeler (Paradigm Plus) - моделирование компонентов ПОAllFusion Component Modeler (Paradigm Plus)


Альтернативой структурному подходу стали объектно-ориентированные методы разработки ИС. В первой половине 90-х годов был предложен универсальный язык объектного проектирования - Unified Modeling Language, UML (The Unified Method, Draft Edition (0.8). Rational Software Corporation, October 1995). Существует несколько CASE-средств, поддерживающих язык UML. Наиболее известными являются: CASE-средства, поддерживающие UML: Paradigm Plus фирмы PLATINUM technology (Computer Associated). Rational Rose фирмы Rational Software. SELECT фирмы SELECT Software






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


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


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


Принципы организации RAD: Обязательное использование инструментальных средств. Тесное взаимодействие между разработчиками и заказчиком. Работа ведется немногочисленными хорошо управляемыми группами профессионалов. Разработка базируется на моделях. Итерационное прототипирование (традиционно 3 прототипа). RAD группа всегда работает только над одним прототипом. Большие системы разбиваются на подсистемы и для него выделяется несколько RAD групп.




Манифест альянса гибкой разработки ПО (февраль 2001 года) 1.Люди и контакты важнее процессов и средств. 2.Работающие программы важнее идеальной документации. 3.Сотрудничество с заказчиком важнее переговоров по условиям контракта. 4.Готовность к изменениям важнее соблюдения планов.


Принципы гибкой разработки ПО: 1. Мы придаем первоочередное значение удовлетворению заказчика, быстро и постоянно предоставляя нужное ему программное обеспечение. 2.Мы приветствуем изменения требований даже на поздних этапах разработки. Гибкие процессы позволяют поддерживать изменения, обеспечивая заказчику конкурентное преимущество. 3.Новые версии работающего ПО поставляются часто, с регулярностью от нескольких недель до нескольких месяцев, причем более предпочтительны короткие временные периоды. 4.В ходе проекта бизнесмены и разработчики должны постоянно работать вместе. 5.Проекты строятся мотивированными индивидуалами. Создайте им условия, удовлетворяйте их требования и доверяйте им в том, что касается выполнения работы. 6.Наиболее производительный и эффективный способ передачи информации рабочей группе и внутри нее – это разговор лицом к лицу. 7.Работающее ПО – это основной показатель прогресса. 8.Гибкие процессы стимулируют устойчивую работу. Спонсоры, разработчики и пользователи должны быть в состоянии неограниченно долго поддерживать постоянный ритм работы. 9.Непрерывное внимание к техническому качеству и хорошему проектированию улучшает гибкость. 10.Простота – искусство минимизировать количество ненужной работы – исключительно важна. 11.Наилучшим образом архитектура, требования и проектирование формируются и выполняются самоорганизующимися командами. 12.Команда должна регулярно обсуждать, как повысить эффективность своей работы, после чего изменять и согласовывать рабочий процесс с результатами этих обсуждений.


Экстремальное программирование (XP) Ghbywbgs: Ищите самое простое решение, которое может сработать. Это вам не понадобится (не делать ничеговпрок). программный код должен быть максимально прост: –Система успешно проходит все тесты; –Код системы ясно раскрывает все изначальные замыслы; –В ней отсутствует дублирование кода; –Используется минимально возможное количество классов и методов