Введение
Компьютерная инженерия программного обеспечения (CASE) – это область программных средств, используемых для проектирования и разработки приложений. Инструменты CASE аналогичны и частично вдохновлены инструментами автоматизированного проектирования (CAD), применяемыми для разработки аппаратных средств. Инструменты CASE предназначены для создания высококачественного, безошибочного и удобного в сопровождении программного обеспечения. Программное обеспечение CASE часто связывалось с методологиями разработки информационных систем, а также с автоматизированными инструментами, которые могут использоваться в процессе разработки программного обеспечения.
Computer aided software engineering (CASE) is a domain of software tools used to design and implement applications. CASE tools are similar to and are partly inspired by computer aided design (CAD) tools used for designing hardware products. CASE tools are intended to help develop high quality, defect free, and maintainable software. CASE software was often associated with methods for the development of information systems together with automated tools that could be used in the software development process.
История
Проект "Разработка и оптимизация информационных систем" (ISDOS), начатый в 1968 году в Мичиганском университете, вызвал значительный интерес к самой идее использования компьютерных систем для помощи аналитикам в сложнейшем процессе анализа требований и разработки систем. Ряд работ Дэниела Тейхроу вдохновили целое поколение энтузиастов потенциалом автоматизированной разработки систем. Его инструмент "Язык описания проблем / Анализатор описания проблем" (PSL/PSA) был инструментом CASE, хотя термин появился позже. Другое важное направление возникло как логическое расширение словаря данных базы данных. Расширяя спектр хранимых метаданных, атрибуты приложения можно было хранить в словаре и использовать во время выполнения. Этот "активный словарь" стал предшественником современных возможностей разработки, основанной на моделях. Однако активный словарь не предоставлял графического представления метаданных. Именно объединение концепции словаря, содержащего метаданные аналитиков, полученные в результате использования интегрированного набора методов, с графическим представлением этих данных привело к появлению ранних версий CASE-средств. Следующим игроком на рынке стал Excelerator от Index Technology из Кембриджа, штат Массачусетс. В то время как DesignAid работал на сетевых микрокомпьютерах Convergent Technologies, а затем Burroughs Ngen, Index запустил Excelerator на платформе IBM PC/AT. Хотя на момент запуска и в течение нескольких лет платформа IBM не поддерживала сетевые соединения или централизованную базу данных, как машины Convergent Technologies или Burroughs, привлекательность IBM была сильна, и Excelerator завоевал популярность. Сразу после Excelerator появилось множество предложений от таких компаний, как Knowledgeware (Джеймс Мартин, Фран Таркентон и Дон Аддингтон), CA Gen от Texas Instrument и инструментарий FOUNDATION от Andersen Consulting (DESIGN/1, INSTALL/1, FCP). Инструменты CASE достигли пика своей популярности в начале 1990-х годов. По данным журнала PC Magazine за январь 1990 года, более 100 компаний предлагали почти 200 различных CASE-средств. С упадком мэйнфреймов, AD/Cycle и крупные CASE-средства исчезли, освободив рынок для современных CASE-средств. Многие лидеры рынка CASE начала 1990-х годов были приобретены компанией Computer Associates, включая IEW, IEF, ADW, Cayenne и Learmonth & Burchett Management Systems (LBMS). Другой тенденцией, способствовавшей эволюции CASE-средств, был рост популярности объектно-ориентированных методов и инструментов. Большинство поставщиков инструментов добавили некоторую поддержку объектно-ориентированных методов и инструментов. Кроме того, появились новые продукты, разработанные с нуля для поддержки объектно-ориентированного подхода. Andersen разработал проект Eagle как альтернативу Foundation. Несколько ведущих экспертов в области объектно-ориентированной разработки разработали свои собственные методологии и наборы CASE-средств: Джейкобсон, Рамбо, Буч и другие. В конечном итоге эти разнообразные наборы инструментов и методы были стандартизированы под руководством Объектного управления группы (OMG). Единый язык моделирования (UML) OMG в настоящее время широко признан отраслевым стандартом для объектно-ориентированного моделирования.
Инструменты
Инструменты CASE поддерживают конкретные задачи в жизненном цикле разработки программного обеспечения. Их можно разделить на следующие категории:
Бизнес- и аналитическое моделирование: инструменты графического моделирования. Например, E/R-моделирование, объектное моделирование и т.д. Разработка: фазы проектирования и реализации жизненного цикла. Отладочные среды. Например, IISE LKO. Верификация и валидация: анализ кода и спецификаций на корректность, производительность и т.д. Управление конфигурацией: контроль за добавлением и извлечением объектов и файлов из репозитория. Например, SCCS, IISE. Метрики и измерения: анализ кода на сложность, модульность (например, отсутствие операторов "goto"), производительность и т.д. Управление проектами: управление планами проектов, назначением задач, составлением расписания. Другой распространенный способ классификации инструментов CASE – разделение на Upper CASE и Lower CASE. Инструменты Upper CASE поддерживают бизнес- и аналитическое моделирование. Они поддерживают традиционные диаграммы, такие как ER-диаграммы, диаграммы потоков данных, структурные схемы, деревья решений, таблицы решений и т.д. Инструменты Lower CASE поддерживают этапы разработки, такие как физическое проектирование, отладка, кодирование, тестирование, интеграция компонентов, сопровождение и обратная разработка. Все остальные виды деятельности охватывают весь жизненный цикл и применимы как к Upper CASE, так и к Lower CASE.
Business and analysis modeling: Graphical modeling tools. E. g., E/R modeling, object modeling, etc. Development: Design and construction phases of the life cycle. Debugging environments. E. g., IISE LKO. Verification and validation: Analyze code and specifications for correctness, performance, etc. Configuration management: Control the check in and check out of repository objects and files. E. g., SCCS, IISE. Metrics and measurement: Analyze code for complexity, modularity (e. g., no "go to's"), performance, etc. Project management: Manage project plans, task assignments, scheduling. Another common way to distinguish CASE tools is the distinction between Upper CASE and Lower CASE. Upper CASE Tools support business and analysis modeling. They support traditional diagrammatic languages such as ER diagrams, Data flow diagram, Structure charts, Decision Trees, Decision tables, etc. Lower CASE Tools support development activities, such as physical design, debugging, construction, testing, component integration, maintenance, and reverse engineering. All other activities span the entire life cycle and apply equally to upper and lower CASE.
Окружающая среда
Окружающая среда – это набор CASE-инструментов или рабочих мест, предназначенный для поддержки полного процесса разработки программного обеспечения. Это отличается от инструментов, ориентированных на конкретную задачу или определенный этап жизненного цикла. CASE-среды классифицируются Фугеттой следующим образом:
Toolkits: Loosely coupled collections of tools. These typically build on operating system workbenches such as the Unix Programmer's Workbench or the VMS VAX set. They typically perform integration via piping or some other basic mechanism to share data and pass control. The strength of easy integration is also one of the drawbacks. Simple passing of parameters via technologies such as shell scripting can't provide the kind of sophisticated integration that a common repository database can. Fourth generation: These environments are also known as 4GL standing for fourth generation language environments due to the fact that the early environments were designed around specific languages such as Visual Basic. They were the first environments to provide deep integration of multiple tools. Typically these environments were focused on specific types of applications. For example, user interface driven applications that did standard atomic transactions to a relational database. Examples are Informix 4GL, and Focus. Language centered: Environments based on a single often object oriented language such as the Symbolics Lisp Genera environment or VisualWorks Smalltalk from Parcplace. In these environments all the operating system resources were objects in the object oriented language. This provides powerful debugging and graphical opportunities but the code developed is mostly limited to the specific language. For this reason, these environments were mostly a niche within CASE. Their use was mostly for prototyping and R&D projects. A common core idea for these environments was the model–view–controller user interface that facilitated keeping multiple presentations of the same design consistent with the underlying model. The MVC architecture was adopted by the other types of CASE environments as well as many of the applications that were built with them. Integrated: These environments are an example of what most IT people tend to think of first when they think of CASE. Environments such as IBM's AD/Cycle, Andersen Consulting's FOUNDATION, the ICL CADES system, and DEC Cohesion. These environments attempt to cover the complete life cycle from analysis to maintenance and provide an integrated database repository for storing all artifacts of the software process. The integrated software repository was the defining feature for these kinds of tools. They provided multiple different design models as well as support for code in heterogenous languages. One of the main goals for these types of environments was "round trip engineering": being able to make changes at the design level and have those automatically be reflected in the code and vice versa. These environments were also typically associated with a particular methodology for software development. For example, the FOUNDATION CASE suite from Andersen was closely tied to the Andersen Method/1 methodology. Process centered: This is the most ambitious type of integration. These environments attempt to not just formally specify the analysis and design objects of the software process but the actual process itself and to use that formal process to control and guide software projects. Examples are East, Enterprise II, Process Wise, Process Weaver, and Arcadia. These environments were by definition tied to some methodology since the software process itself is part of the environment and can control many aspects of tool invocation. In practice, the distinction between workbenches and environments was flexible. Visual Basic for example was a programming workbench but was also considered a 4GL environment by many. The features that distinguished workbenches from environments were deep integration via a shared repository or common language and some kind of methodology (integrated and process centered environments) or domain (4GL) specificity.
Наборы инструментов (Toolkits): Слабо связанные наборы инструментов. Обычно они построены на рабочих местах операционных систем, таких как Unix Programmer's Workbench или набор VMS VAX. Интеграция в них обычно осуществляется посредством конвейеров или других базовых механизмов для обмена данными и передачи управления. Простота интеграции является одновременно и преимуществом, и недостатком. Простая передача параметров с использованием технологий, таких как скрипты оболочки, не обеспечивает такой сложной интеграции, как общая репозиторная база данных.
Toolkits: Loosely coupled collections of tools. These typically build on operating system workbenches such as the Unix Programmer's Workbench or the VMS VAX set. They typically perform integration via piping or some other basic mechanism to share data and pass control. The strength of easy integration is also one of the drawbacks. Simple passing of parameters via technologies such as shell scripting can't provide the kind of sophisticated integration that a common repository database can. Fourth generation: These environments are also known as 4GL standing for fourth generation language environments due to the fact that the early environments were designed around specific languages such as Visual Basic. They were the first environments to provide deep integration of multiple tools. Typically these environments were focused on specific types of applications. For example, user interface driven applications that did standard atomic transactions to a relational database. Examples are Informix 4GL, and Focus. Language centered: Environments based on a single often object oriented language such as the Symbolics Lisp Genera environment or VisualWorks Smalltalk from Parcplace. In these environments all the operating system resources were objects in the object oriented language. This provides powerful debugging and graphical opportunities but the code developed is mostly limited to the specific language. For this reason, these environments were mostly a niche within CASE. Their use was mostly for prototyping and R&D projects. A common core idea for these environments was the model–view–controller user interface that facilitated keeping multiple presentations of the same design consistent with the underlying model. The MVC architecture was adopted by the other types of CASE environments as well as many of the applications that were built with them. Integrated: These environments are an example of what most IT people tend to think of first when they think of CASE. Environments such as IBM's AD/Cycle, Andersen Consulting's FOUNDATION, the ICL CADES system, and DEC Cohesion. These environments attempt to cover the complete life cycle from analysis to maintenance and provide an integrated database repository for storing all artifacts of the software process. The integrated software repository was the defining feature for these kinds of tools. They provided multiple different design models as well as support for code in heterogenous languages. One of the main goals for these types of environments was "round trip engineering": being able to make changes at the design level and have those automatically be reflected in the code and vice versa. These environments were also typically associated with a particular methodology for software development. For example, the FOUNDATION CASE suite from Andersen was closely tied to the Andersen Method/1 methodology. Process centered: This is the most ambitious type of integration. These environments attempt to not just formally specify the analysis and design objects of the software process but the actual process itself and to use that formal process to control and guide software projects. Examples are East, Enterprise II, Process Wise, Process Weaver, and Arcadia. These environments were by definition tied to some methodology since the software process itself is part of the environment and can control many aspects of tool invocation. In practice, the distinction between workbenches and environments was flexible. Visual Basic for example was a programming workbench but was also considered a 4GL environment by many. The features that distinguished workbenches from environments were deep integration via a shared repository or common language and some kind of methodology (integrated and process centered environments) or domain (4GL) specificity.
Четвертое поколение (Fourth generation): Эти среды также известны как 4GL (среды языков четвертого поколения), поскольку ранние среды были разработаны вокруг конкретных языков, таких как Visual Basic. Они стали первыми средами, обеспечивающими глубокую интеграцию нескольких инструментов. Как правило, эти среды были ориентированы на определенные типы приложений, например, приложения с пользовательским интерфейсом, выполняющие стандартные атомарные транзакции к реляционной базе данных. Примеры: Informix 4GL и Focus.
Toolkits: Loosely coupled collections of tools. These typically build on operating system workbenches such as the Unix Programmer's Workbench or the VMS VAX set. They typically perform integration via piping or some other basic mechanism to share data and pass control. The strength of easy integration is also one of the drawbacks. Simple passing of parameters via technologies such as shell scripting can't provide the kind of sophisticated integration that a common repository database can. Fourth generation: These environments are also known as 4GL standing for fourth generation language environments due to the fact that the early environments were designed around specific languages such as Visual Basic. They were the first environments to provide deep integration of multiple tools. Typically these environments were focused on specific types of applications. For example, user interface driven applications that did standard atomic transactions to a relational database. Examples are Informix 4GL, and Focus. Language centered: Environments based on a single often object oriented language such as the Symbolics Lisp Genera environment or VisualWorks Smalltalk from Parcplace. In these environments all the operating system resources were objects in the object oriented language. This provides powerful debugging and graphical opportunities but the code developed is mostly limited to the specific language. For this reason, these environments were mostly a niche within CASE. Their use was mostly for prototyping and R&D projects. A common core idea for these environments was the model–view–controller user interface that facilitated keeping multiple presentations of the same design consistent with the underlying model. The MVC architecture was adopted by the other types of CASE environments as well as many of the applications that were built with them. Integrated: These environments are an example of what most IT people tend to think of first when they think of CASE. Environments such as IBM's AD/Cycle, Andersen Consulting's FOUNDATION, the ICL CADES system, and DEC Cohesion. These environments attempt to cover the complete life cycle from analysis to maintenance and provide an integrated database repository for storing all artifacts of the software process. The integrated software repository was the defining feature for these kinds of tools. They provided multiple different design models as well as support for code in heterogenous languages. One of the main goals for these types of environments was "round trip engineering": being able to make changes at the design level and have those automatically be reflected in the code and vice versa. These environments were also typically associated with a particular methodology for software development. For example, the FOUNDATION CASE suite from Andersen was closely tied to the Andersen Method/1 methodology. Process centered: This is the most ambitious type of integration. These environments attempt to not just formally specify the analysis and design objects of the software process but the actual process itself and to use that formal process to control and guide software projects. Examples are East, Enterprise II, Process Wise, Process Weaver, and Arcadia. These environments were by definition tied to some methodology since the software process itself is part of the environment and can control many aspects of tool invocation. In practice, the distinction between workbenches and environments was flexible. Visual Basic for example was a programming workbench but was also considered a 4GL environment by many. The features that distinguished workbenches from environments were deep integration via a shared repository or common language and some kind of methodology (integrated and process centered environments) or domain (4GL) specificity.
Языко-ориентированные (Language centered): Среды, основанные на одном, часто объектно-ориентированном языке, например, Symbolics Lisp Genera или VisualWorks Smalltalk от Parcplace. В этих средах все ресурсы операционной системы были представлены как объекты в объектно-ориентированном языке. Это обеспечивает мощные возможности отладки и графического представления, но разработанный код в основном ограничен конкретным языком. По этой причине эти среды занимали нишевую позицию в CASE. Их использование было в основном ограничено прототипированием и проектами НИОКР. Основной идеей этих сред был пользовательский интерфейс "модель-представление-контроллер", который облегчал поддержание согласованности нескольких представлений одного и того же проекта с базовой моделью. Архитектура MVC была принята и другими типами CASE-сред, а также многими приложениями, разработанными с их использованием.
Toolkits: Loosely coupled collections of tools. These typically build on operating system workbenches such as the Unix Programmer's Workbench or the VMS VAX set. They typically perform integration via piping or some other basic mechanism to share data and pass control. The strength of easy integration is also one of the drawbacks. Simple passing of parameters via technologies such as shell scripting can't provide the kind of sophisticated integration that a common repository database can. Fourth generation: These environments are also known as 4GL standing for fourth generation language environments due to the fact that the early environments were designed around specific languages such as Visual Basic. They were the first environments to provide deep integration of multiple tools. Typically these environments were focused on specific types of applications. For example, user interface driven applications that did standard atomic transactions to a relational database. Examples are Informix 4GL, and Focus. Language centered: Environments based on a single often object oriented language such as the Symbolics Lisp Genera environment or VisualWorks Smalltalk from Parcplace. In these environments all the operating system resources were objects in the object oriented language. This provides powerful debugging and graphical opportunities but the code developed is mostly limited to the specific language. For this reason, these environments were mostly a niche within CASE. Their use was mostly for prototyping and R&D projects. A common core idea for these environments was the model–view–controller user interface that facilitated keeping multiple presentations of the same design consistent with the underlying model. The MVC architecture was adopted by the other types of CASE environments as well as many of the applications that were built with them. Integrated: These environments are an example of what most IT people tend to think of first when they think of CASE. Environments such as IBM's AD/Cycle, Andersen Consulting's FOUNDATION, the ICL CADES system, and DEC Cohesion. These environments attempt to cover the complete life cycle from analysis to maintenance and provide an integrated database repository for storing all artifacts of the software process. The integrated software repository was the defining feature for these kinds of tools. They provided multiple different design models as well as support for code in heterogenous languages. One of the main goals for these types of environments was "round trip engineering": being able to make changes at the design level and have those automatically be reflected in the code and vice versa. These environments were also typically associated with a particular methodology for software development. For example, the FOUNDATION CASE suite from Andersen was closely tied to the Andersen Method/1 methodology. Process centered: This is the most ambitious type of integration. These environments attempt to not just formally specify the analysis and design objects of the software process but the actual process itself and to use that formal process to control and guide software projects. Examples are East, Enterprise II, Process Wise, Process Weaver, and Arcadia. These environments were by definition tied to some methodology since the software process itself is part of the environment and can control many aspects of tool invocation. In practice, the distinction between workbenches and environments was flexible. Visual Basic for example was a programming workbench but was also considered a 4GL environment by many. The features that distinguished workbenches from environments were deep integration via a shared repository or common language and some kind of methodology (integrated and process centered environments) or domain (4GL) specificity.
Интегрированные (Integrated): Эти среды – пример того, о чем в первую очередь думают большинство ИТ-специалистов, когда речь заходит о CASE. Примеры: AD/Cycle от IBM, FOUNDATION от Andersen Consulting, система ICL CADES и DEC Cohesion. Эти среды стремятся охватить весь жизненный цикл разработки, от анализа до сопровождения, и предоставляют интегрированное хранилище баз данных для хранения всех артефактов процесса разработки программного обеспечения. Интегрированное хранилище программного обеспечения было определяющей характеристикой этих инструментов. Они предоставляли несколько различных моделей проектирования, а также поддержку кода на разнородных языках. Одной из основных целей этих сред была "двусторонняя разработка" (round trip engineering): возможность вносить изменения на уровне проектирования и автоматически отражать их в коде и наоборот. Эти среды также обычно были связаны с определенной методологией разработки программного обеспечения. Например, набор FOUNDATION CASE от Andersen был тесно связан с методологией Andersen Method/1.
Toolkits: Loosely coupled collections of tools. These typically build on operating system workbenches such as the Unix Programmer's Workbench or the VMS VAX set. They typically perform integration via piping or some other basic mechanism to share data and pass control. The strength of easy integration is also one of the drawbacks. Simple passing of parameters via technologies such as shell scripting can't provide the kind of sophisticated integration that a common repository database can. Fourth generation: These environments are also known as 4GL standing for fourth generation language environments due to the fact that the early environments were designed around specific languages such as Visual Basic. They were the first environments to provide deep integration of multiple tools. Typically these environments were focused on specific types of applications. For example, user interface driven applications that did standard atomic transactions to a relational database. Examples are Informix 4GL, and Focus. Language centered: Environments based on a single often object oriented language such as the Symbolics Lisp Genera environment or VisualWorks Smalltalk from Parcplace. In these environments all the operating system resources were objects in the object oriented language. This provides powerful debugging and graphical opportunities but the code developed is mostly limited to the specific language. For this reason, these environments were mostly a niche within CASE. Their use was mostly for prototyping and R&D projects. A common core idea for these environments was the model–view–controller user interface that facilitated keeping multiple presentations of the same design consistent with the underlying model. The MVC architecture was adopted by the other types of CASE environments as well as many of the applications that were built with them. Integrated: These environments are an example of what most IT people tend to think of first when they think of CASE. Environments such as IBM's AD/Cycle, Andersen Consulting's FOUNDATION, the ICL CADES system, and DEC Cohesion. These environments attempt to cover the complete life cycle from analysis to maintenance and provide an integrated database repository for storing all artifacts of the software process. The integrated software repository was the defining feature for these kinds of tools. They provided multiple different design models as well as support for code in heterogenous languages. One of the main goals for these types of environments was "round trip engineering": being able to make changes at the design level and have those automatically be reflected in the code and vice versa. These environments were also typically associated with a particular methodology for software development. For example, the FOUNDATION CASE suite from Andersen was closely tied to the Andersen Method/1 methodology. Process centered: This is the most ambitious type of integration. These environments attempt to not just formally specify the analysis and design objects of the software process but the actual process itself and to use that formal process to control and guide software projects. Examples are East, Enterprise II, Process Wise, Process Weaver, and Arcadia. These environments were by definition tied to some methodology since the software process itself is part of the environment and can control many aspects of tool invocation. In practice, the distinction between workbenches and environments was flexible. Visual Basic for example was a programming workbench but was also considered a 4GL environment by many. The features that distinguished workbenches from environments were deep integration via a shared repository or common language and some kind of methodology (integrated and process centered environments) or domain (4GL) specificity.
Процессо-ориентированные (Process centered): Это наиболее амбициозный тип интеграции. Эти среды стремятся не только формально определить объекты анализа и проектирования процесса разработки программного обеспечения, но и сам процесс, а также использовать этот формальный процесс для управления и направления программных проектов. Примеры: East, Enterprise II, Process Wise, Process Weaver и Arcadia. По определению, эти среды связаны с определенной методологией, поскольку сам процесс разработки программного обеспечения является частью среды и может контролировать многие аспекты вызова инструментов.
Toolkits: Loosely coupled collections of tools. These typically build on operating system workbenches such as the Unix Programmer's Workbench or the VMS VAX set. They typically perform integration via piping or some other basic mechanism to share data and pass control. The strength of easy integration is also one of the drawbacks. Simple passing of parameters via technologies such as shell scripting can't provide the kind of sophisticated integration that a common repository database can. Fourth generation: These environments are also known as 4GL standing for fourth generation language environments due to the fact that the early environments were designed around specific languages such as Visual Basic. They were the first environments to provide deep integration of multiple tools. Typically these environments were focused on specific types of applications. For example, user interface driven applications that did standard atomic transactions to a relational database. Examples are Informix 4GL, and Focus. Language centered: Environments based on a single often object oriented language such as the Symbolics Lisp Genera environment or VisualWorks Smalltalk from Parcplace. In these environments all the operating system resources were objects in the object oriented language. This provides powerful debugging and graphical opportunities but the code developed is mostly limited to the specific language. For this reason, these environments were mostly a niche within CASE. Their use was mostly for prototyping and R&D projects. A common core idea for these environments was the model–view–controller user interface that facilitated keeping multiple presentations of the same design consistent with the underlying model. The MVC architecture was adopted by the other types of CASE environments as well as many of the applications that were built with them. Integrated: These environments are an example of what most IT people tend to think of first when they think of CASE. Environments such as IBM's AD/Cycle, Andersen Consulting's FOUNDATION, the ICL CADES system, and DEC Cohesion. These environments attempt to cover the complete life cycle from analysis to maintenance and provide an integrated database repository for storing all artifacts of the software process. The integrated software repository was the defining feature for these kinds of tools. They provided multiple different design models as well as support for code in heterogenous languages. One of the main goals for these types of environments was "round trip engineering": being able to make changes at the design level and have those automatically be reflected in the code and vice versa. These environments were also typically associated with a particular methodology for software development. For example, the FOUNDATION CASE suite from Andersen was closely tied to the Andersen Method/1 methodology. Process centered: This is the most ambitious type of integration. These environments attempt to not just formally specify the analysis and design objects of the software process but the actual process itself and to use that formal process to control and guide software projects. Examples are East, Enterprise II, Process Wise, Process Weaver, and Arcadia. These environments were by definition tied to some methodology since the software process itself is part of the environment and can control many aspects of tool invocation. In practice, the distinction between workbenches and environments was flexible. Visual Basic for example was a programming workbench but was also considered a 4GL environment by many. The features that distinguished workbenches from environments were deep integration via a shared repository or common language and some kind of methodology (integrated and process centered environments) or domain (4GL) specificity.
На практике различие между рабочими местами и средами было гибким. Например, Visual Basic был рабочей платформой для программирования, но многие считали его и средой 4GL. Основными характеристиками, отличающими рабочие места от сред, были глубокая интеграция через общий репозиторий или общий язык, а также наличие определенной методологии (в интегрированных и процессо-ориентированных средах) или специфики предметной области (в 4GL).
Toolkits: Loosely coupled collections of tools. These typically build on operating system workbenches such as the Unix Programmer's Workbench or the VMS VAX set. They typically perform integration via piping or some other basic mechanism to share data and pass control. The strength of easy integration is also one of the drawbacks. Simple passing of parameters via technologies such as shell scripting can't provide the kind of sophisticated integration that a common repository database can. Fourth generation: These environments are also known as 4GL standing for fourth generation language environments due to the fact that the early environments were designed around specific languages such as Visual Basic. They were the first environments to provide deep integration of multiple tools. Typically these environments were focused on specific types of applications. For example, user interface driven applications that did standard atomic transactions to a relational database. Examples are Informix 4GL, and Focus. Language centered: Environments based on a single often object oriented language such as the Symbolics Lisp Genera environment or VisualWorks Smalltalk from Parcplace. In these environments all the operating system resources were objects in the object oriented language. This provides powerful debugging and graphical opportunities but the code developed is mostly limited to the specific language. For this reason, these environments were mostly a niche within CASE. Their use was mostly for prototyping and R&D projects. A common core idea for these environments was the model–view–controller user interface that facilitated keeping multiple presentations of the same design consistent with the underlying model. The MVC architecture was adopted by the other types of CASE environments as well as many of the applications that were built with them. Integrated: These environments are an example of what most IT people tend to think of first when they think of CASE. Environments such as IBM's AD/Cycle, Andersen Consulting's FOUNDATION, the ICL CADES system, and DEC Cohesion. These environments attempt to cover the complete life cycle from analysis to maintenance and provide an integrated database repository for storing all artifacts of the software process. The integrated software repository was the defining feature for these kinds of tools. They provided multiple different design models as well as support for code in heterogenous languages. One of the main goals for these types of environments was "round trip engineering": being able to make changes at the design level and have those automatically be reflected in the code and vice versa. These environments were also typically associated with a particular methodology for software development. For example, the FOUNDATION CASE suite from Andersen was closely tied to the Andersen Method/1 methodology. Process centered: This is the most ambitious type of integration. These environments attempt to not just formally specify the analysis and design objects of the software process but the actual process itself and to use that formal process to control and guide software projects. Examples are East, Enterprise II, Process Wise, Process Weaver, and Arcadia. These environments were by definition tied to some methodology since the software process itself is part of the environment and can control many aspects of tool invocation. In practice, the distinction between workbenches and environments was flexible. Visual Basic for example was a programming workbench but was also considered a 4GL environment by many. The features that distinguished workbenches from environments were deep integration via a shared repository or common language and some kind of methodology (integrated and process centered environments) or domain (4GL) specificity.