컴퓨터 지원 소프트웨어 엔지니어링
Computer-aided software engineering컴퓨터 지원 소프트웨어 엔지니어링(CASE)은 애플리케이션 설계 및 구현에 사용되는 소프트웨어 도구의 도메인입니다.CASE 도구는 하드웨어 제품 설계에 사용되는 CAD(컴퓨터 지원 설계) 도구와 유사하며 부분적으로 영감을 받았습니다.CASE 툴은 고품질,[1] 결함 없는 유지보수 가능한 소프트웨어를 개발하기 위해 사용되었습니다.CASE 소프트웨어는 소프트웨어 개발 [2]프로세스에서 사용할 수 있는 자동화된 도구와 함께 정보 시스템 개발 방법과 관련된 경우가 많습니다.
역사
1968년 미시간 대학에서 시작된 ISDOS(Information System Design and Optimization System) 프로젝트는 요구사항을 분석하고 시스템을 개발하는 매우 어려운 과정에서 분석가를 돕기 위해 컴퓨터 시스템을 사용하는 개념 전체에 많은 관심을 불러일으켰다.Daniel Teichrow의 여러 논문은 자동 시스템 개발의 가능성을 가진 모든 세대의 열광자들을 해고했습니다.그의 Problem Statement Language / Problem Statement Analyzer (PSL/PSA) 툴은 CASE 툴이었지만,[3] 이 툴은 CASE 툴이었습니다.
또 다른 메이저 스레드가 데이터베이스의 데이터 사전에 대한 논리 확장으로 등장했습니다.보관 유지 메타데이터의 범위를 확장함으로써, 애플리케이션의 속성을 사전 내에 보관 유지하여 런타임에 사용할 수 있습니다.이 "액티브 딕셔너리"는 보다 현대적인 모델 중심 엔지니어링 기능의 전조가 되었습니다.그러나 활성 사전은 메타데이터를 그래픽으로 표현하지 않았습니다.CASE의 [4]이전 버전을 탄생시킨 것은 통합된 기술 집합의 사용에서 파생된 분석가의 메타데이터를 보유한 사전의 개념과 그러한 데이터의 그래픽 표현을 연결하는 것이었다.
다음 시장 진입자는 매사추세츠주 캠브리지에 있는 Index Technology의 Excelerator였습니다.DesignAid가 Convergent Technologies와 나중에 Burroughs Ngen 네트워크 마이크로컴퓨터에서 실행되는 동안 Index는 IBM PC/AT 플랫폼에서 Exclerator를 출시했습니다.출시 당시와 몇 년 동안 IBM 플랫폼은 Convergent Technologies 또는 Burroughs 기계처럼 네트워킹이나 중앙 집중식 데이터베이스를 지원하지 않았지만 IBM의 매력은 강력했고 Exclerator가 두각을 나타냈습니다.Excelerator의 뒤를 이어 Knowledgeware(James Martin, Fran Tarkenton 및 Don Addington), Texas Instrument의 CA Gen 및 Andersen Consulting의 Foundation 툴 세트(DESIGN/1, INSTALL/1, FCP)[5] 등의 기업이 잇달아 출시했습니다.
CASE 툴은 1990년대 [6]초에 최고조에 달했습니다.1990년 1월 PC Magazine에 따르면 100개 이상의 기업이 거의 200개의 CASE [5]툴을 제공하고 있었습니다.당시 IBM은 AD/Cycle을 제안했습니다. AD/Cycle은 메인프레임 및 OS/2에서 IBM DB2를 사용하는 IBM의 소프트웨어 저장소를 중심으로 한 소프트웨어 공급업체의 연합입니다.
- 애플리케이션 개발 툴은 IBM, 벤더, 고객 자체 등 여러 소스로부터 제공받을 수 있습니다. IBM은 Bachman Information Systems, Index Technology Corporation 및 Knowledgeware와 관계를 맺었으며, 이 공급업체의 선별된 제품은 IBM의 보완 마케팅 프로그램을 통해 마케팅되어 완전한 라이프사이클 [7]커버리지를 달성하는 데 도움이 되는 제품을 제공합니다.
메인프레임의 쇠퇴와 함께 AD/Cycle 및 Big CASE 툴은 소멸되어 오늘날 주류 CASE 툴의 시장이 열렸습니다.1990년대 초반 CASE 시장의 선두 주자는 IEW, IEF, ADW, 카이엔, Learmonth & Burchett Management Systems(LBMS) 등 Computer Associates에 의해 매수되었습니다.CASE 툴의 진화를 이끈 또 다른 경향은 객체 지향적인 메서드와 툴의 출현이었습니다.다양한 툴 벤더의 대부분은 오브젝트 지향 메서드 및 툴에 대한 지원을 추가했습니다.또한 객체 지향적 접근법을 지원하기 위해 밑에서부터 위로 설계된 새로운 제품들이 등장했습니다.안데르센은 재단의 대안으로 이글 프로젝트를 개발했다.오브젝트 지향 개발의 몇몇 리더는 각각 독자적인 방법론과 CASE 툴 세트를 개발했습니다.Jacobson, Rumbaugh, Boch 등입니다.결국 이러한 다양한 도구 세트와 방법은 객체 관리 그룹(OMG)이 주도하는 표준을 통해 통합되었습니다.OMG의 통합 모델링 언어(UML)는 현재 객체 지향 모델링의 업계 표준으로 널리 받아들여지고 있습니다.
케이스 소프트웨어
도구들
CASE 툴은 소프트웨어 개발 라이프 사이클에서 특정 태스크를 지원합니다.이러한 범주는 다음과 같은 범주로 나눌 수 있습니다.
- 비즈니스 및 분석 모델링.그래픽 모델링 도구.예: E/R 모델링, 객체 모델링 등
- 발전.라이프 사이클의 설계 및 시공 단계디버깅 환경예: IISE LKO.
- 검증 및 검증코드와 사양의 정확성, 퍼포먼스 등을 분석합니다.
- 구성 관리.저장소 개체 및 파일의 체크인 및 체크아웃을 제어합니다.예: SCCS, IIE
- 측정 기준 및 측정.코드의 복잡성, 모듈러성(예를 들어 "이동" 없음), 성능 등을 분석합니다.
- 프로젝트 관리프로젝트 계획, 작업 할당, 일정 관리
CASE 도구를 구별하는 또 다른 일반적인 방법은 대문자와 소문자를 구별하는 것입니다.대문자 툴은 비즈니스 및 분석 모델링을 지원합니다.ER 다이어그램, 데이터 흐름 다이어그램, 구조 차트, 의사 결정 트리, 의사 결정 테이블 등의 기존 다이어그램 언어를 지원합니다.Lower CASE 툴은 물리 설계, 디버깅, 구축, 테스트, 컴포넌트 통합, 유지보수, 리버스 엔지니어링 등의 개발 액티비티를 지원합니다.기타 모든 활동은 전체 라이프 사이클에 걸쳐 대문자와 [8]소문자에 동일하게 적용됩니다.
워크벤치
워크벤치는 2개 이상의 CASE 툴을 통합하여 특정 소프트웨어 프로세스 액티비티를 지원합니다.그 결과, 다음과 같은 것이 실현됩니다.
- 균질하고 일관성 있는 인터페이스(프레젠테이션 통합)
- 도구와 도구 체인의 원활한 통합(제어 및 데이터 통합)
워크벤치의 예로는 Microsoft의 Visual Basic 프로그래밍 환경을 들 수 있습니다.GUI 빌더, 스마트 코드 에디터, 디버거 등 여러 개발 도구를 포함하고 있습니다.대부분의 상용 CASE 제품은 2개 이상의 툴을 심리스하게 통합하는 워크벤치인 경향이 있었습니다.워크벤치는 툴과 같은 방법으로 분류할 수도 있습니다.분석, 개발, 검증 등에 중점을 두고 대문자, 소문자 또는 전체 라이프 사이클에 걸친 구성 관리 등의 프로세스에 초점을 맞춥니다.
환경
환경은 소프트웨어 프로세스 전체를 지원하려는 CASE 도구 또는 워크벤치의 집합입니다.이는 하나의 특정 태스크 또는 라이프 사이클의 특정 부분에 초점을 맞춘 도구와 대조됩니다.CASE 환경은 Fugetta에 의해 [9]다음과 같이 분류된다.
- 툴킷느슨하게 연결된 도구 모음입니다.이들은 보통 Unix Programmer's Workbench나 VMS VAX 세트 등의 운영체제 워크벤치를 기반으로 합니다.일반적으로 데이터 공유 및 통과 제어를 위해 배관 또는 기타 기본 메커니즘을 통해 통합을 수행합니다.용이한 통합의 장점도 단점 중 하나입니다.셸 스크립팅 등의 테크놀로지를 통한 파라미터 전달만으로는 일반적인 저장소 데이터베이스와 같은 고도의 통합을 실현할 수 없습니다.
- 4세대.이러한 환경은 Visual Basic과 같은 특정 언어를 중심으로 초기 환경이 설계되었기 때문에 4세대 언어 환경을 의미하는 4GL이라고도 합니다.이들은 여러 툴을 완벽하게 통합한 최초의 환경입니다.일반적으로 이러한 환경은 특정 유형의 애플리케이션에 초점을 맞췄습니다.예를 들어 릴레이셔널 데이터베이스에 표준 원자 트랜잭션을 수행한 사용자 인터페이스 구동 애플리케이션입니다.예를 들어 Informix 4GL과 Focus가 있습니다.
- 언어 중심.Symbolics Lisp Obtries 환경 또는 Parcplace의 VisualWorks Smalltalk와 같은 객체 지향 언어를 기반으로 하는 환경입니다.이러한 환경에서 운영 체제 리소스는 모두 객체 지향 언어의 객체였습니다.이를 통해 강력한 디버깅 및 그래픽 기회가 제공되지만 개발된 코드는 대부분 특정 언어로 제한됩니다.이러한 이유로 이러한 환경은 대부분 CASE 내의 틈새 환경이었다.주로 시제품 제작 및 R&D 프로젝트에 사용되었습니다.이러한 환경의 공통적인 핵심 아이디어는 모델-뷰-컨트롤러 사용자 인터페이스로, 기본 모델과 일관되게 동일한 설계의 여러 프레젠테이션을 유지할 수 있었습니다.MVC 아키텍처는 다른 유형의 CASE 환경과 함께 구축된 많은 애플리케이션에 채택되었습니다.
- 통합된.이러한 환경은 대부분의 IT 담당자가 CASE를 생각할 때 가장 먼저 떠올리는 예입니다. IBM의 AD/Cycle, Andersen Consulting의 Foundation, ICL CADS 시스템 및 DEC Consolidation과 같은 환경입니다.이러한 환경은 분석에서 유지보수에 이르는 전체 라이프 사이클을 커버하고 소프트웨어 프로세스의 모든 아티팩트를 저장하기 위한 통합 데이터베이스 저장소를 제공합니다.통합 소프트웨어 저장소는 이러한 종류의 도구에 대한 정의 기능입니다.이들은 이종 언어의 코드 지원뿐만 아니라 여러 가지 다른 설계 모델을 제공했습니다.이러한 유형의 환경에 대한 주요 목표 중 하나는 "라운드 트립 엔지니어링"이었습니다. 즉, 설계 수준에서 변경을 가하고 이를 자동으로 코드에 반영할 수 있도록 하는 것, 또는 그 반대도 마찬가지입니다.이러한 환경은 일반적으로 소프트웨어 개발을 위한 특정 방법론과도 관련되어 있습니다.예를 들어 Andersen의 Foundation CASE 스위트는 Andersen Method/1 Methodology와 밀접하게 관련되어 있습니다.
- 프로세스 중심이것은 가장 야심찬 통합 유형입니다.이러한 환경은 소프트웨어 프로세스의 분석 및 설계 객체뿐만 아니라 실제 프로세스 자체를 공식적으로 지정하고 소프트웨어 프로젝트를 제어 및 안내하기 위해 해당 정식 프로세스를 사용하려고 합니다.예를 들어 East, Enterprise II, Process Wise, Process Weaver 및 Arcadia가 있습니다.소프트웨어 프로세스 자체는 환경의 일부이며 툴 부팅의 많은 측면을 제어할 수 있기 때문에 이러한 환경은 정의상 일부 방법론과 관련되어 있습니다.
실제로 워크벤치와 환경의 구분이 유연했다.예를 들어, Visual Basic은 프로그래밍 워크벤치였지만 많은 사람들이 4GL 환경으로 여겼습니다.워크벤치를 환경과 구별하는 기능은 공유 저장소 또는 공통 언어를 통한 긴밀한 통합과 방법론(통합 및 프로세스 중심 환경) 또는 도메인(4GL)의 [9]특정성입니다.
주요 케이스 리스크 요인
CASE 테크놀로지를 채용하고 있는 조직에 있어서 가장 중요한 리스크 요인에는 다음과 같은 것이 있습니다.
- 표준화가 불충분하다.조직은 보통 특정 요건에 맞게 방법론과 도구를 조정하고 채택해야 합니다.이를 위해서는 서로 다른 기술뿐만 아니라 서로 다른 방법을 통합하기 위한 상당한 노력이 필요할 수 있습니다.예를 들어 UML 표준을 채택하기 전에 객체 지향 모델을 설계하기 위한 다이어그램 규칙과 방법은 Jacobsen, Boch 및 Rumbaugh의 추종자들 사이에서 크게 달랐다.
- 비현실적인 기대.CASE 테크놀로지의 지지자(특히 고가의 툴 세트를 판매하는 벤더)는, 새로운 어프로치가 모든 문제를 해결할 수 있을 것이라는 기대를 부풀리는 경우가 많습니다.실제로는, 그러한 테크놀로지는 실현되지 않습니다.조직이 비현실적인 기대를 가지고 CASE에 접근하면 실망할 수밖에 없습니다.
- 불충분한 훈련다른 새로운 테크놀로지와 마찬가지로 CASE는 툴의 사용법을 교육하고 최신 정보를 얻기 위해 시간이 필요합니다.CASE 프로젝트는 실무자에게 충분한 트레이닝 시간이 주어지지 않거나 새로운 테크놀로지를 사용하여 최초로 시도한 프로젝트 자체가 매우 미션 크리티컬하고 리스크가 많은 경우 실패할 수 있습니다.
- 부적절한 프로세스 제어.CASE는 새로운 유형의 툴을 혁신적인 방법으로 활용할 수 있는 새로운 기능을 제공합니다.적절한 프로세스 가이던스와 제어가 없으면 이러한 새로운 기능에 의해 중대한 새로운 문제가 발생할 [10]수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ 쿤, D.L(1989)"컴퓨터 지원 소프트웨어 엔지니어링 도구를 선택하여 효과적으로 사용"연례 Westinghouse 컴퓨터 심포지엄; 1989년 11월 6-7일; 미국 펜실베이니아주 피츠버그; DOE 프로젝트.
- ^ P. 루코풀로스와 V. 카라코스타스(1995).효과적으로 동작하는 시스템 요건 엔지니어의 비실현성 소프트웨어.
- ^ Teichroew, Daniel; Hershey, Ernest Allen (1976). "PSL/PSA a computer-aided technique for structured documentation and analysis of information processing systems". Proceeding ICSE '76 Proceedings of the 2nd International Conference on Software Engineering. IEEE Computer Society Press.
- ^ Coronel, Carlos; Morris, Steven (February 4, 2014). Database Systems: Design, Implementation, & Management. Cengage Learning. pp. 695–700. ISBN 978-1285196145. Retrieved 25 November 2014.
- ^ a b Inc, Ziff Davis (1990-01-30). PC Mag. Ziff Davis, Inc.
- ^ Yourdon, Ed (Jul 23, 2001). "Can XP Projects Grow?". Computerworld. Retrieved 25 November 2014.
- ^ "AD/Cycle 전략 및 아키텍처", IBM Systems Journal, Vol 29, NO 2, 1990; 페이지 172.
- ^ 소프트웨어 엔지니어링:Umesh 출판사 Sangeeta Sabharwal의 도구, 원칙 및 기술
- ^ a b Alfonso Fuggetta (December 1993). "A classification of CASE technology". Computer. 26 (12): 25–38. doi:10.1109/2.247645. S2CID 954775. Retrieved 2009-03-14.
- ^ 2012년 1월 20일 Wayback Machine에서 아카이브된 컴퓨터 지원 소프트웨어 엔지니어링.입력: FIEC IT 검사 핸드북 InfoBase.2012년 3월 3일 취득.