Компьютерная разработка программного обеспечения - Computer-aided software engineering
Компьютерная разработка программного обеспечения (ДЕЛО) - это область программных инструментов, используемых для разработки и реализации приложений. Инструменты CASE похожи и частично вдохновлены системы автоматизированного проектирования (CAD) инструменты, используемые для проектирования аппаратных продуктов. Инструменты CASE используются для разработки качественного, бездефектного и обслуживаемого программного обеспечения.[1] Программное обеспечение CASE часто ассоциируется с методами разработки информационные системы вместе с автоматизированными инструментами, которые можно использовать в процесс разработки программного обеспечения.[2]
История
Проект системы проектирования и оптимизации информационных систем (ISDOS), начатый в 1968 г. университет Мичигана, инициировал большой интерес ко всей концепции использования компьютерных систем для помощи аналитикам в очень сложном процессе анализа требований и разработки систем. Несколько статей Дэниела Тейхрёва увлекли целое поколение энтузиастов потенциалом разработки автоматизированных систем. Его инструмент языка постановки проблемы / анализатора постановки проблемы (PSL / PSA) был инструментом CASE, хотя и предшествовал этому термину.[3]
Еще одна важная тема возникла как логическое продолжение словарь с данными из база данных. Расширяя диапазон метаданные При этом атрибуты приложения могут храниться в словаре и использоваться во время выполнения. Этот «активный словарь» стал предшественником более современного модельно-ориентированная инженерия возможности. Однако активный словарь не обеспечивал графического представления каких-либо метаданных. Это было объединение концепции словаря, содержащего метаданные аналитиков, полученного в результате использования интегрированного набора методов, вместе с графическим представлением таких данных, которое привело к появлению более ранних версий CASE.[4]
Следующим игроком на рынке был Excelerator из Index Technology в Кембридже, штат Массачусетс. В то время как DesignAid использовала Convergent Technologies, а затем и сетевые микрокомпьютеры Burroughs Ngen, Index запустил Excelerator на IBM PC / AT Платформа. Хотя на момент запуска и в течение нескольких лет платформа IBM не поддерживала сети или централизованную базу данных, как это делали машины Convergent Technologies или Burroughs, привлекательность IBM была сильной, и Excelerator приобрел известность. По пятам за Excelerator последовала целая серия предложений от таких компаний, как Knowledgeware (Джеймс Мартин, Фрэн Таркентон и Дон Аддингтон), Texas Instrument's CA Gen и Андерсен Консалтинг Набор инструментов FOUNDATION (DESIGN / 1, INSTALL / 1, FCP).[5]
Инструменты CASE достигли своего пика в начале 1990-х годов.[6] Согласно Журнал ПК на январь 1990 года более 100 компаний предлагали около 200 различных инструментов CASE.[5] В то время IBM предложил AD / Cycle, альянс поставщиков программного обеспечения, основанный на Репозиторий программного обеспечения с помощью IBM DB2 в мэйнфрейм и OS / 2:
- Инструменты разработки приложений могут быть получены из нескольких источников: от IBM, от поставщиков и от самих заказчиков. IBM вошла в отношения с Bachman Information Systems, Index Technology Corporation и Knowledgeware при этом выбранные продукты этих поставщиков будут продаваться через дополнительную маркетинговую программу IBM, чтобы предоставлять предложения, которые помогут достичь полного покрытия жизненного цикла.[7]
С упадком мэйнфреймов инструменты AD / Cycle и Big CASE вымерли, открыв рынок для основных инструментов CASE сегодня. Многие лидеры CASE-рынка начала 1990-х были куплены Computer Associates, включая IEW, IEF, ADW, Cayenne и Learmonth & Burchett Management Systems (LBMS). Другой тенденцией, которая привела к развитию инструментов CASE, было появление объектно-ориентированных методов и инструментов. Большинство различных поставщиков инструментов добавили некоторую поддержку объектно-ориентированных методов и инструментов. Вдобавок появились новые продукты, которые были разработаны снизу вверх для поддержки объектно-ориентированного подхода. Андерсен разработал свой проект Eagle как альтернативу Foundation. Некоторые лидеры в области объектно-ориентированной разработки разработали каждый свою собственную методологию и набор инструментов CASE: Якобсен, Рамбо, Буч и т. д. В конце концов, эти разнообразные наборы инструментов и методов были объединены с помощью стандартов под руководством Группа управления объектами (МОЙ БОГ). OMG Единый язык моделирования (UML) в настоящее время широко признан отраслевым стандартом объектно-ориентированного моделирования.
Программное обеспечение CASE
А. Фуггетта разделил программное обеспечение CASE на 3 категории:[8]
- Инструменты поддерживать конкретные задачи в жизненный цикл программного обеспечения.
- Верстаки объединить два или более инструментов, ориентированных на определенную часть жизненного цикла программного обеспечения.
- Среды объединить два или более инструментов или инструментальных средств и поддержать полный жизненный цикл программного обеспечения.
Инструменты
Инструменты CASE поддерживают определенные задачи в жизненном цикле разработки программного обеспечения. Их можно разделить на следующие категории:
- Бизнес и аналитическое моделирование. Инструменты графического моделирования. Например, E / R-моделирование, объектное моделирование и т. Д.
- Разработка. Этапы жизненного цикла проектирования и строительства. Среды отладки. Например., НИСЭ ЛКО.
- Верификация и валидация. Проанализировать код и спецификации для правильность, производительность и т. д.
- Управление конфигурацией. Контролируйте регистрацию и возврат объектов и файлов репозитория. Например., SCCS, МИСЭ.
- Метрики и измерения. Проанализируйте код на предмет сложности, модульности (например, «не надо переходить»), производительности и т. Д.
- Управление проектом. Управляйте планами проектов, назначениями задач, расписанием.
Еще один распространенный способ различать инструменты CASE - это различие между верхним и нижним регистром. Инструменты Upper CASE поддерживают бизнес-моделирование и аналитическое моделирование. Они поддерживают традиционные языки диаграмм, такие как Диаграммы ER, Схема потока данных, Структурные диаграммы, Деревья решений, Таблицы решений и т. д. Инструменты более низкого уровня CASE поддерживают деятельность по разработке, например физическое проектирование, отладку, создание, тестирование, интеграцию компонентов, обслуживание и обратное проектирование. Все остальные действия охватывают весь жизненный цикл и в равной степени применимы к верхнему и нижнему CASE.[9]
Верстаки
Рабочие среды объединяют два или более CASE-инструментария и поддерживают определенные программные процессы. Таким образом они достигают:
- однородный и последовательный интерфейс (интеграция презентаций).
- бесшовная интеграция инструментов и цепочек инструментов (управление и интеграция данных).
Примером рабочей среды является Microsoft Visual Basic среда программирования. Он включает в себя несколько инструментов разработки: построитель графического интерфейса, интеллектуальный редактор кода, отладчик и т. Д. Большинство коммерческих продуктов CASE, как правило, представляют собой такие рабочие среды, которые легко интегрируют два или более инструментов. Верстаки также можно классифицировать так же, как инструменты; как сосредоточение внимания на анализе, разработке, проверке и т.д., а также сосредоточение внимания на верхнем и нижнем регистре или процессах, таких как управление конфигурацией, которые охватывают полный жизненный цикл.
Среды
Среда - это набор инструментов или инструментальных средств CASE, которые пытаются поддерживать весь процесс программного обеспечения. Это контрастирует с инструментами, которые сосредоточены на одной конкретной задаче или определенной части жизненного цикла. CASE-среды классифицируются Fuggetta следующим образом:[8]
- Наборы инструментов. Слабо связанные наборы инструментов. Обычно они строятся на рабочих средах операционной системы, таких как Unix Programmer's Workbench или VMS VAX set. Обычно они выполняют интеграцию через конвейер или какой-либо другой базовый механизм для обмена данными и передачи управления. Сила простой интеграции также является одним из недостатков. Простая передача параметров с помощью таких технологий, как сценарии оболочки, не может обеспечить такой сложной интеграции, которую может обеспечить общая база данных репозитория.
- Четвертое поколение. Эти среды также известны как 4GL, что означает языковые среды четвертого поколения из-за того, что ранние среды были разработаны на основе определенных языков, таких как Visual Basic. Они были первыми средами, обеспечивающими глубокую интеграцию множества инструментов. Обычно эти среды были ориентированы на определенные типы приложений. Например, приложения с пользовательским интерфейсом, которые выполняли стандартные атомарные транзакции с реляционной базой данных. Примеры: Informix 4GL и Focus.
- Ориентирован на язык. Среды, основанные на одном, часто объектно-ориентированном языке, например, среда Symbolics Lisp Genera или VisualWorks Smalltalk от Parcplace. В этих средах все ресурсы операционной системы были объектами объектно-ориентированного языка. Это обеспечивает мощные возможности отладки и графические возможности, но разрабатываемый код в основном ограничен конкретным языком. По этой причине эти среды были в основном нишей в CASE. Их использовали в основном для прототипов и проектов НИОКР. Общей основной идеей для этих сред была модель-представление-контроллер пользовательский интерфейс, позволяющий поддерживать несколько презентаций одного и того же дизайна в соответствии с базовой моделью. Архитектура MVC была принята в других типах сред CASE, а также во многих приложениях, которые были созданы с их помощью.
- Интегрированный. Эти среды являются примером того, о чем большинство ИТ-специалистов обычно думают в первую очередь, когда думают о CASE. Такие среды, как IBM AD / Cycle, Andersen Consulting's FOUNDATION, ICL CADES система и DEC Cohesion. Эти среды пытаются охватить полный жизненный цикл от анализа до обслуживания и предоставить интегрированный репозиторий базы данных для хранения всех артефактов программного процесса. Интегрированный репозиторий программного обеспечения был определяющей особенностью для такого рода инструментов. Они предоставили несколько различных моделей дизайна, а также поддержку кода на гетерогенных языках. Одной из основных целей для этих типов сред была «разработка в оба конца»: возможность вносить изменения на уровне проектирования и автоматически отражать их в коде и наоборот. Эти среды также обычно были связаны с определенной методологией разработки программного обеспечения. Например, пакет FOUNDATION CASE от Andersen был тесно связан с методологией Andersen Method / 1.
- Ориентирован на процесс. Это самый амбициозный вид интеграции. Эти среды пытаются не только формально определить объекты анализа и проектирования программного процесса, но и сам процесс, а также использовать этот формальный процесс для управления и руководства проектами программного обеспечения. Примеры: East, Enterprise II, Process Wise, Process Weaver и Arcadia. Эти среды по определению были привязаны к определенной методологии, поскольку сам программный процесс является частью среды и может контролировать многие аспекты вызова инструментов.
На практике различие между рабочими столами и средой было гибким. Например, Visual Basic был средой программирования, но многие также считали его средой 4GL. Функциональные возможности, которые отличали рабочие места от сред, заключались в глубокой интеграции через общий репозиторий или общий язык и некоторой методологии (интегрированные и ориентированные на процессы среды) или специфичности домена (4GL).[8]
Основные факторы риска CASE
Некоторые из наиболее значительных факторов риска для организаций, применяющих технологию CASE, включают:
- Неадекватная стандартизация. Организации обычно должны адаптировать и адаптировать методологии и инструменты к своим конкретным требованиям. Это может потребовать значительных усилий для интеграции как расходящихся технологий, так и различных методов. Например, до принятия стандарта UML соглашения о диаграммах и методы проектирования объектно-ориентированных моделей сильно различались среди последователей Якобсена, Буча и Рамбо.
- Нереалистичные ожидания. Сторонники технологии CASE - особенно продавцы, продающие дорогостоящие наборы инструментов - часто возлагают надежды на то, что новый подход станет серебряной пулей, решающей все проблемы. На самом деле никакая такая технология не может этого сделать, и если организации подходят к CASE с нереалистичными ожиданиями, они неизбежно будут разочарованы.
- Неадекватное обучение. Как и в случае с любой новой технологией, CASE требует времени, чтобы обучить людей тому, как использовать инструменты, и быстро освоить их. Проекты CASE могут потерпеть неудачу, если практикующим специалистам не будет предоставлено достаточно времени для обучения или если первый проект, связанный с новой технологией, сам по себе является критически важным и сопряжен с риском.
- Неадекватный контроль процесса. CASE предоставляет значительные новые возможности для инновационного использования новых типов инструментов. Без надлежащего руководства процессом и контроля эти новые возможности также могут вызвать новые серьезные проблемы.[10]
Смотрите также
- Моделирование данных
- Доменно-ориентированное моделирование
- Методология
- Модельно-управляемая архитектура
- Язык моделирования
- Быстрая разработка приложений
- Автоматическое программирование
Рекомендации
- ^ Кун, Д.Л. (1989). «Выбор и эффективное использование средств компьютерной разработки программного обеспечения». Ежегодный компьютерный симпозиум Westinghouse; 6–7 ноября 1989 г .; Питтсбург, Пенсильвания (США); Проект DOE.
- ^ П. Лукопулос и В. Каракостас (1995). Системные требования Инженерное программное обеспечение, которое будет эффективно работать.
- ^ Тейхроев, Даниэль; Херши, Эрнест Аллен (1976). «PSL / PSA - автоматизированный метод структурированного документирования и анализа систем обработки информации». Proceeding ICSE '76 Proceedings of the 2nd International Conference on Software Engineering. Издательство IEEE Computer Society Press.
- ^ Коронель, Карлос; Моррис, Стивен (4 февраля 2014 г.). Системы баз данных: проектирование, внедрение и управление. Cengage Learning. С. 695–700. ISBN 978-1285196145. Получено 25 ноября 2014.
- ^ а б Inc, Зифф Дэвис (30 января 1990 г.). PC Mag. Ziff Davis, Inc.
- ^ Юрдон, Эд (23 июля 2001 г.). "Могут ли проекты XP расти?". Computerworld. Получено 25 ноября 2014.
- ^ «Стратегия и архитектура AD / Cycle», IBM Systems Journal, Том 29, № 2, 1990; п. 172.
- ^ а б c Альфонсо Фуггетта (декабрь 1993 г.). «Классификация технологии CASE». Компьютер. 26 (12): 25–38. Дои:10.1109/2.247645. S2CID 954775. Получено 2009-03-14.
- ^ Программная инженерия: инструменты, принципы и методы. Автор: Сангита Сабхарвал, Umesh Publications.
- ^ Компьютерная разработка программного обеспечения В архиве 2012-01-20 на Wayback Machine. В: Справочник ИТ-экзаменов FFIEC InfoBase. Дата обращения 3 марта 2012.