CASE

У этого термина существуют и другие значения, см. Case (значения).

Пример CASE-инструментария

CASE (англ. computer-aided software engineering) — набор инструментов и методов программной инженерии для проектирования программного обеспечения, которые помогают обеспечить высокое качество программ, отсутствие ошибок и простоту в обслуживании программных продуктов.[1] Также под CASE понимают совокупность методов и средств проектирования информационных систем с использованием CASE-инструментов[2].

Средства автоматизации разработки программ (CASE-средства) — инструменты автоматизации процессов проектирования и разработки программного обеспечения для системного аналитика, разработчика ПО и программиста. Первоначально под CASE-средствами понимались только инструменты для упрощения наиболее трудоёмких процессов анализа и проектирования, но с приходом стандарта ISO/IEC 14102 CASE-средства стали определять как программные средства для поддержки процессов жизненного цикла ПО[3].

## Содержание

* 1 Общая информация
* 2 Классификация
* 3 Примечания
* 4 Литература
* 5 Ссылки

## Общая информация

[править | править код]

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

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

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

1. SADT (structured analysis and design technique);
2. DFD (data flow diagrams);
3. ERD (entity-relationship diagrams).

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

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

## Классификация

[править | править код]

В функции CASE входят средства анализа, проектирования и программирования программных средств, проектирования интерфейсов, документирования и производства структурированного кода на каком-либо языке программирования.[4]

CASE-инструменты классифицируются по типам и категориям.

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

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

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

Типичными CASE-инструментами являются:

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

## Примечания

[править | править код]

1. ↑ Kuhn, D. L. (1989) Selecting and effectively using a computer aided software engineering tool. Annual Westinghouse computer symposium; 6-7 Nov 1989; Pittsburgh, PA (USA); DOE Project.
2. ↑ P. Loucopoulus, V. Karakostas. System Requirement Engineering.
3. ↑ Одинцов, 2004, с. 370—371.
4. ↑ CASE Архивировано 18 февраля 2012 года. в словаре Telecom Glossary 2000

## Литература

[править | править код]

* Одинцов И. О. Профессиональное программирование. Системный подход. — 2-е изд.. — СПб.: БХВ-Петербург, 2004. — 624 с. — ISBN 5-94157-457-6.
* Куликов Г.Г. Набатов А.Н. Речкалов А.В. Автоматизированное проектирование информационно-управляющих систем. Системное моделирование предметной области.. — Уфа: Уфимский государственный авиационный технический университет, 1998. — 104 с. — ISBN 5-89611-190-0.

## Ссылки

[править | править код]

* Описание технологии CASE на citforum.ru

Разработка программного обеспечения

Процесс|

* Стадии разработки
* Анализ требований
* Проектирование
* Программирование
* Тестирование
* Документирование

Высокоуровневые
концепции|

* Архитектура ПО
* Парадигма
* Методология
* Процесс разработки
* Качество

Направления|

* Программирование (Аспектно-ориентированное
* Объектно-ориентированное
* Предметно-ориентированное)

Методологии
разработки|

* Agile
* Cleanroom
* CASE
* UP
* RUP
* OpenUP
* RAD
* Scrum
* SAFe
* Модель Spotify
* MSF
* XP
* DSDM

Модели|

* Итеративная
* Каскадная
* Спиральная
* V-Model
* Dual Vee Model
* CMM
* CMMI
* Данных
* Function model[англ.]
* IDEF
* Информационная
* Метамодель
* Object model[англ.]
* View model[англ.]
* UML

Известные
деятели|

* Кент Бек
* Гради Буч
* Фред Брукс
* Уорд Каннингем
* Оле-Йохан Даль
* Том Демарко
* Эдсгер Дейкстра
* Дональд Кнут
* Алан Кэй
* Мартин Фаулер
* Энтони Хоар
* Ивар Якобсон
* Бертран Мейер
* Никлаус Вирт
* Эдвард Йордан
* Стив Макконнелл
* Джеймс Рамбо
* Барри Боэм
* Уоттс Хамфри[англ.]
* Майкл А. Джексон[англ.]
* Крэг Ларман
* Роберт Мартин
* Джеймс Мартин[англ.]
* Дэвид Парнас[англ.]
* Уинстон Ройс

*[СПб.]: Санкт-Петербург