KR100656419B1 - 정보시스템 개발장치 및 방법 - Google Patents

정보시스템 개발장치 및 방법 Download PDF

Info

Publication number
KR100656419B1
KR100656419B1 KR1020050081616A KR20050081616A KR100656419B1 KR 100656419 B1 KR100656419 B1 KR 100656419B1 KR 1020050081616 A KR1020050081616 A KR 1020050081616A KR 20050081616 A KR20050081616 A KR 20050081616A KR 100656419 B1 KR100656419 B1 KR 100656419B1
Authority
KR
South Korea
Prior art keywords
information
module
development
information system
target
Prior art date
Application number
KR1020050081616A
Other languages
English (en)
Inventor
김휘강
이동준
박형식
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020050081616A priority Critical patent/KR100656419B1/ko
Application granted granted Critical
Publication of KR100656419B1 publication Critical patent/KR100656419B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Abstract

정보시스템 개발장치 및 방법이 개시된다. 정보입력부를 통해 개발대상 정보시스템에 적용될 플랫폼정보 및 프레임워크정보를 포함하는 개발환경정보 및 개발대상 정보시스템의 분류식별정보를 입력받는다. 데이터베이스부에는 복수의 모듈의 계층적 결합구조 및 각각의 모듈의 속성정보가 마크업언어에 의해 표현된 개발완료 정보시스템의 애플리케이션 구조명세서가 저장된다. 검색부는 개발환경정보 및 분류식별정보에 대응되는 개발완료 정보시스템의 애플리케이션 구조명세서를 데이터베이스부로부터 검색하여 재사용대상 애플리케이션 구조명세서로서 출력한다. 모듈변환부는 재사용대상 애플리케이션 구조명세서를 구성하는 모듈 중에서 사용자가 선택한 모듈을 변경대상모듈로 설정하고, 개발완료 정보시스템을 구성하는 모듈 중에서 개발대상 정보시스템의 환경정보 및 분류식별정보를 기초로 변경대상모듈에 대응하는 재사용대상모듈을 결정하고, 변경대상모듈의 상위모듈정보 및/또는 하위모듈정보를 포함하는 모듈변환정보 및 개발환경정보에 의해 재사용대상모듈을 변환한 후 변경대상모듈을 상기 변환된 재사용대상모듈로 변경한다. 구조명세서 생성부는 변환된 재사용대상모듈의 구조명세정보를 기초로 재사용대상 애플리케이션 구조명세서를 변경하여 개발대상 정보시스템에 대응하는 애플리케이션 구조명세서를 생성한다.

Description

정보시스템 개발장치 및 방법{Apparatus and method for developing information system}
도 1은 본 발명에 따른 정보시스템 개발장치에 대한 일 실시예의 상세한 구성을 도시한 블록도,
도 2 내지 도 4는 각각 현재의 기업 정보시스템(200)의 상세한 구조 및 이에 대응하는 본 발명에 따른 정보시스템 생성장치(100)에 의해 생성된 애플리케이션 구조명세서(300)의 구조를 도시한 도면,
도 5는 기업 정보시스템을 구성하는 객체의 연관관계를 도시한 도면,
도 6은 전체기판의 상세한 구조를 도시한 도면,
도 7은 중간기판의 상세한 구조를 도시한 도면,
도 8은 작은기판의 상세한 구조를 도시한 도면,
도 9는 부품의 상세한 구조를 도시한 도면,
도 10은 기판과 부품의 연결관계를 도시한 도면,
도 11은 검색부(150)를 포함하는 데이터베이스 관리부(1000)의 상세한 구성을 도시한 도면,
도 12는 본 발명에 따른 정보시스템 개발방법의 바람직한 수행과정을 도시한 흐름도,
도 13은 사용자로부터 입력받은 개발환경정보를 애플리케이션 구조 스키마의 형태로 저장부(120)에 저장하는 과정을 도시한 흐름도,
도 14는 모듈변환부(160)에 의한 모듈변환과정의 수행절차를 도시한 흐름도,
도 15는 애플리케이션 구조명세서를 기초로 산출물을 생성하는 과정을 도시한 흐름도,
도 16은 프로토타입 시스템 생성과정의 수행절차를 도시한 흐름도,
도 17은 전체기판을 정의하고 작성하는 과정을 도시한 흐름도,
도 18은 중간기판을 정의하고 작성하는 과정을 도시한 흐름도,
도 19는 작은기판을 정의하고 작성하는 과정을 도시한 흐름도, 그리고,
도 20은 부품을 정의하고 작성하는 과정을 도시한 흐름도이다.
본 발명은 정보시스템 개발장치 및 방법에 관한 것으로, 보다 상세하게는, 기업에서 사용되는 정보시스템을 개발하기 위한 장치 및 방법에 관한 것이다.
시스템 통합(System Integration) 사업은 시스템 구축 분야, 애플리케이션 소프트웨어 운영 및 유지보수 분야, 네트워크 및 하드웨어, 유틸리티 등과 같은 IT 인프라 지원분야, IT 교육분야 등 크게 네 가지의 주요 사업 분야로 구분될 수 있다. 이중에서도 대부분의 자원과 인력이 집중되어 있는 분야는 시스템의 구축 분야와 운영 및 유지보수 분야이다.
다양한 업종의 기업 고객으로부터 정보시스템을 구축하고 운영하는 일을 위탁받아 서비스하는 ITO(Information Technology Outsourcing) 사업 분야는 업종별 서비스 라인 정의가 필요하다. 또한, 이에 상응하는 애플리케이션들의 공통적이고 가변적인 면들을 적절하게 정의하고 관리하여 재사용성 증대를 토대로 개발 생산성을 높이려는 노력이 필요하다. 이러한 요구에 부흥하는 한 가지 방법이 제품 라인 공학(Software Product Lines)적 접근방법이다. 제품라인공학은 Product Line 개발, Domain 엔지니어링, 애플리케이션 엔지니어링을 핵심적인 활동범위(Activity)로 가진다. 이러한 활동범위에 대한 정의는 소프트웨어 재사용을 통해 생산성 향상을 추구하려는 컴포넌트기반개발(CBD; Component Based Development)개념의 기초가 되었다.
최근의 소프트웨어 재사용과 관련하여 검증받은 소프트웨어 부품을 조립하여 완제품을 만든다는 컴포넌트기반 개발방식을 적용하면 소프트웨어 재사용이 쉽게 달성되는 것으로 이해되고 있다. 그러나 현재 제시되고 있는 컴포넌트기반 개발방법은 사용가능한 컴포넌트 명세서의 생성과 시스템의 구현을 분리한 상태에서 소프트웨어 재사용을 언급하고 있다. 따라서 실제로 재사용하려고 관심을 가지고 운영 중인 애플리케이션 프로그램 자체는 컴포넌트 명세서와는 다른 관점에서 고려해야 되므로, 컴포넌트기반 개발방법 자체가 기대만큼 소프트웨어의 재사용성을 높여 주지 못한다. 나아가 현재의 컴포넌트기반 개발방법에 따르면 초기부터 소프트웨어의 재사용성을 고려하여 주의 깊게 개발하지 않으면 컴포넌트의 재사용은 실질적으로 불가능하다는 문제가 있다.
한편, 현재 개발되어 운영되는 기업 정보시스템은 실제 운영 중인 소스와 그것의 사양을 명세하는 사양서가 요구정의, 분석, 설계, 구현, 시험과 같은 각 단계별 일반화, 추상화 요구수준에 맞추어 일정한 시간 간격을 갖고 최종적으로 정의된다. 또한 개발과정 또는 운영 중에 변경이 발생되면 형상관리가 되어 여러 버전의 프로그램 소스 및 사양이 존재하게 된다. 이렇게 되면 최종 프로그램과 프로그램사양서 관련된 내용이 많아지고, 복잡해지는 문제로 인해 최종 운영 중인 프로그램과 그것의 사양서 전체 내용을 한 눈에 알아보게 하는 것이 어려워지게 된다.
또한 기업 정보시스템 개발 및 운영과정에서는 기존 개발된 프로그램을 재사용을 통해서 생산성을 향상하려는 시도를 하게 된다. 하지만 개발과정 중에 생성되는 리포지터리 만으로는 이러한 요구를 충족시킬 수 없다. 따라서, 추가적으로 확장된 리포지터리가 필요하고, 이 리포지터리는 구조가 잘 정의되고 개발 결과로 나오는 프로그램들이 재사용이 용이하도록 지속적으로 축적되게 하는 프로세스가 또한 정의되어야 한다. 그리고 기존의 개발 방법론에 재사용을 고려한 추가적인 개발 절차 정의가 필요하다. 리포지터리 구조는 설계사양과 운영 중인 프로그램과의 통합뷰를 통해 재사용 단위 및 변경요소 식별이 용이하도록 구조화되어야 한다. 만약 그렇지 못할 경우 시스템 사양을 구성하는 모델, 문서산출물, 프로그램소스가 분리되어 개별적으로 관리 및 유지됨으로써 재사용 대상을 찾고 식별하는데 어려움이 있다. 나아가 재사용시 프로그램의 구동환경인 플랫폼이나 미들웨어에 대한 정보가 누락 되어 있거나 통합되어 있지 못함으로써 실행가능 모듈 재사용이 원천적으로 불가능하게 되는 경우가 발생하며, 현재까지 제시된 기업 정보시스템의 개발과 관 련된 장치 또는 방법들은 모두 이러한 문제를 내포하고 있다.
또한, 기업 정보시스템을 합리적이고 효과적으로 구축 및 운영하기 위해서는 구조적 개발방법론, 객체지향 개발방법론, 컴포넌트기반 개발방법론 등과 같은 소프트웨어 개발 생명주기(Software Development Life Cycle : SDLC)기반의 개발 방법론에 따라 요구정의, 분석, 설계, 구현, 시험 등의 단계별 과정을 통해 문제 영역을 소프트웨어의 해결 영역으로 도출한다. 방법론별로 다소 차이가 있지만 구조적 개발방법론에서는 이러한 단계 수행의 결과물로 시스템, 서브시스템, 프로그램, 프로그램 리소스 등을 명세하는 모델링 다이어그램 또는 문서로 시스템사양이 정의된다. 시스템 사양은 기능차트, 시스템 구조도, 화면 레이아웃, 프로그램 목록, 프로그램 사양서, 테이블 목록, 테이블 레이아웃, 프로그램 대 테이블상관도와 같은 산출물로 세분화된다.
한편, 객체지향 개발방법론과 컴포넌트기반 개발방법론은 객체 또는 컴포넌트를 중심으로 상속성, 다형성, 캡슐화, 추상화, 인터페이스 등과 같은 개념을 적용한 재사용성을 고려한 방법론이다. 이들 방법론에서는 주로 UML(Unified Modeling Language)을 활용한 다이어그램을 통해 단계별 산출물과 시스템 사양을 정의한다. 시스템 사양은 클래스 다이어그램, 오브젝트 다이어그램과 같은 시스템의 정적인 측면을 기술하는 내용과 유스케이스 다이어그램, 시퀀스 다이어그램, 액티비티 다이어그램과 같이 시스템의 동적인 측면을 기술하는 모델자료와 문서로 구성된다. 따라서 어떠한 방법론을 적용하여 시스템을 실체화하든 간에 시스템 사양은 영속적으로 관리될 데이터 사양, 시스템간 의존관계를 정의한 구조 사양, 제어 나 데이터가 흐르는 흐름통제 프로시져 사양, 사용자와 시스템간 인터페이스 사양으로 정리 될 수 있으며, 개발자들은 이러한 사양서를 참조하여 프로그램 코딩 및 시험을 통해서 시스템을 개발한다.
시스템 구현을 위한 코딩 및 시험 단계에서는 통합개발환경(IDE : Integrated Development Environment)이 정의되고 주로 통합개발도구를 활용하여 개발 단위 시스템별로 작업공간이 할당되어 프로그램 소스의 코딩 및 시험이 이루어진다. 통합개발도구는 문서 및 모델 다이어그램 형태의 시스템 사양을 응용프로그램으로 전환하는데 있어 핵심 도구이며, 데이터베이스 연계, 모델 다이어그램 연계, 소스 버전 관리 및 배포, 소스파일 에디팅, 컴파일, 빌드, 디버그 기능을 포함하고 있다. 동시에 문서 및 프로그램 소스와 같은 개발자원을 통합 관리하는 리포지터리가 정의되고 소프트웨어 형상관리가 진행된다. 개발 자원을 관리하는 리포지터리 구조는 개발주기를 중심으로 산출물 단위로 구성되며, 이것들은 형상관리의 결과 여러 버전이 함께 관리되는 형태가 됨으로써 대단히 복잡한 구조가 된다. 또한 개발 생산성을 높이기 위한 산출물의 재사용 요구는 추상화 단계가 높아지는 개발주기상 후반부에 속하는 설계 및 구현 단계에서 많아지게 된다. 하지만 상대적으로 산출물은 세분화 되어있고, 변경 및 형상관리 결과 여러 버전이 존재하게 됨으로써 재사용 하는데 있어서는 개발 참여자간의 의사소통 횟수와 소요시간이 증가하게 되어 세심한 주의가 요구된다.
결과적으로 이와 같은 방식의 개발 진행에서 재사용은 상대적으로 이해하고 적용하기 쉬운 문서나 모델파일과 같은 단편적인 산출물 위주로 이루어 진다. 그러 나 프로그램소스와 같이 추상화되어 있어 그 자체만으로는 이해하기 어려워 반드시 사양을 설명하는 다른 산출물과 통합해서 검토한 후 재사용 여부를 결정해야 하는 추상화정도가 높은 산출물들은 재사용이 활성화되기 어렵다는 문제가 있다. 따라서 기 개발된 산출물을 재사용하여 생산성을 높이려는 노력은 프로그램소스와 같이 추상화 정도가 높은 산출물들을 효과적으로 재사용하려는 노력에 집중하여야 한다.
본 발명이 이루고자 하는 기술적 과제는, 기업의 정보시스템 구축 및 운영 시에 시스템 사양정보의 관리 및 표현 방법을 개선하여 프로그램의 분해 및 조립을 가능하게 하고, 이를 통해 프로그램 재사용성을 높여 프로그램 개발 및 변경 작업을 쉽고 단순하게 함으로써 정보시스템 개발 및 운영에 있어서의 생산성을 향상시킬 수 있는 정보시스템 개발방치 및 방법을 제공하는 데 있다.
본 발명이 이루고자 하는 다른 기술적 과제는, 기업의 정보시스템 구축 및 운영 시에 시스템 사양정보의 관리 및 표현 방법을 개선하여 프로그램의 분해 및 조립을 가능하게 하고, 이를 통해 프로그램 재사용성을 높여 프로그램 개발 및 변경 작업을 쉽고 단순하게 함으로써 정보시스템 개발 및 운영에 있어서의 생산성을 향상시킬 수 있는 정보시스템 개발방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는 데 있다.
상기의 기술적 과제를 달성하기 위한, 본 발명에 따른 정보시스템 개발장치는, 사용자로부터 개발대상 정보시스템에 적용될 플랫폼정보 및 프레임워크정보를 포함하는 개발환경정보 및 상기 개발대상 정보시스템의 분류식별정보를 입력받는 정보입력부; 복수의 모듈의 계층적 결합구조 및 각각의 모듈의 속성정보가 마크업언어에 의해 표현된 적어도 하나 이상의 개발완료 정보시스템의 애플리케이션 구조명세서가 저장되는 데이터베이스부; 상기 사용자로부터 입력받은 개발환경정보 및 분류식별정보에 대응되는 개발완료 정보시스템의 애플리케이션 구조명세서를 상기 데이터베이스부로부터 검색하여 재사용대상 애플리케이션 구조명세서로서 출력하는 검색부; 상기 재사용대상 애플리케이션 구조명세서를 구성하는 모듈 중에서 사용자가 선택한 모듈을 변경대상모듈로 설정하고, 상기 데이터베이스부에 저장되어 있는 개발완료 정보시스템을 구성하는 모듈 중에서 상기 개발대상 정보시스템의 환경정보 및 분류식별정보를 기초로 상기 변경대상모듈에 대응하는 재사용대상모듈을 결정하고, 상기 변경대상모듈의 상위모듈정보 및/또는 하위모듈정보를 포함하는 모듈변환정보 및 상기 개발환경정보에 의해 상기 재사용대상모듈을 변환한 후 상기 변경대상모듈을 상기 변환된 재사용대상모듈로 변경하는 모듈변환부; 및 상기 재사용대상 애플리케이션 구조명세서에 포함되어 있는 상기 변환된 재사용대상모듈에 대응하는 구조명세정보를 기초로 상기 재사용대상 애플리케이션 구조명세서를 변경하여 상기 개발대상 정보시스템에 대응하는 애플리케이션 구조명세서를 생성하는 구조명세서 생성부;를 구비한다.
상기의 다른 기술적 과제를 달성하기 위한, 본 발명에 따른 정보시스템 개발방법은, 사용자로부터 개발대상 정보시스템에 적용될 플랫폼정보 및 프레임워크정보를 포함하는 개발환경정보 및 상기 개발대상 정보시스템의 분류식별정보를 입력 받는 단계; 개발완료 정보시스템의 애플리케이션 구조명세서를 구성하는 복수의 모듈의 계층적 결합구조 및 각각의 모듈의 속성정보가 마크업언어에 의해 표현된 적어도 하나 이상의 개발완료 정보시스템의 애플리케이션 구조명세서가 저장되어 있는 데이터베이스로부터 상기 사용자가 입력한 개발환경정보 및 분류식별정보에 대응되는 개발완료 정보시스템의 애플리케이션 구조명세서를 검색하여 재사용대상 애플리케이션 구조명세서로서 출력하는 단계; 상기 재사용대상 애플리케이션 구조명세서를 구성하는 모듈 중에서 사용자가 선택한 모듈을 변경대상모듈로 설정하고, 상기 개발완료 정보시스템의 애플리케이션 구조명세서를 구성하는 모듈 중에서 상기 개발대상 정보시스템의 개발환경정보 및 분류식별정보를 기초로 상기 데이터베이스로부터 상기 변경대상모듈에 대응하는 재사용대상모듈을 검색하여 출력하는 단계; 상기 변경대상모듈의 상위모듈정보 및/또는 하위모듈정보를 포함하는 모듈변환정보 및 상기 개발환경정보에 의해 상기 재사용대상모듈을 변환한 후 상기 변경대상모듈을 상기 변환된 재사용대상모듈로 변경하는 단계; 및 상기 재사용대상 애플리케이션 구조명세서에 포함되어 있는 상기 변환된 재사용대상모듈에 대응하는 구조명세정보를 기초로 상기 재사용대상 애플리케이션 구조명세서를 변경하여 상기 개발대상 정보시스템에 대응하는 애플리케이션 구조명세서를 생성하는 단계;를 갖는다.
이에 의해, 기업의 정보시스템 구축 및 운영 시에 시스템 사양정보의 관리 및 표현 방법을 개선하여 프로그램의 분해 및 조립을 가능하게 하여 프로그램 재사용성을 높여 프로그램 개발 및 변경 작업을 쉽고 단순하게 함으로써 정보시스템 개 발 및 운영에 있어서의 생산성을 향상시킬 수 있다.
이하에서 첨부된 도면들을 참조하여 본 발명에 따른 정보시스템 개발장치 및 방법의 바람직한 실시예에 대해 상세하게 설명한다.
도 1은 본 발명에 따른 정보시스템 개발장치에 대한 일 실시예의 상세한 구성을 도시한 블록도이다.
도 1을 참조하면, 본 발명에 따른 정보시스템 개발장치(100)는, 정보입력부(110), 저장부(120), 제1데이터베이스부(130), 제2데이터베이스부(140), 검색부(150), 모듈변환부(160), 구조명세서 생성부(170), 산출물 출력부(180) 및 프로토타입 생성부(190)를 구비한다.
정보입력부(110)는 사용자로부터 개발대상 정보시스템에 적용될 플랫폼정보 및 프레임워크정보를 포함하는 개발환경정보 및 상기 개발대상 정보시스템의 분류식별정보를 입력받는 구성요소이다. 정보입력부(110)를 통해 입력된 정보는 저장부(120)에 저장되며, 검색부(150), 모듈변환부(160), 구조명세서 생성부(170), 산출물 출력부(180) 및 프로토타입 생성부(190)에 각각의 구성요소의 동작수행의 기준정보로 제공된다. 개발환경정보에는 리눅스, 윈도우 등 애플리케이션 운영시 기반이 되는 OS 시스템에 대한 정보인 운영시스템정보, .NET, J2EE 등과 같은 컴포넌트 플랫폼정보, 데이터베이스관리시스템(DataBase Management System : DBMS)과 같은 시스템 소프트웨어, 웹 애플리케이션 서버와 같은 미들웨어정보 등을 포함하는 플랫폼정보 및 애플리케이션 소프트웨어 구조에서 뼈대와 같은 역할을 하는 애플리케이션 프레임워크에 대한 정보인 프레임워크정보로 구성된다. 이와 같은 개발환경정 보는 소프트웨어 아키텍쳐 전문가에 의해 사전에 입력되어 지식베이스의 형태로 구축될 수 있으며, 본 발명에 따른 정보시스템 개발장치(100)를 구성하는 다른 구성요소들의 동작수행시 기준정보, 참조정보, 규칙정보 등으로 사용된다.
한편, 개발환경정보는 애플리케이션 구조 스키마로 정의될 수 있다. 애플리케이션 구조 스키마는 개발 및 유지보수 대상 개발대상 시스템을 각각의 모듈(이하에서는 개념적인 이해를 돕기 위해 각각의 모듈을 계층구성상의 위치에 따라 '전체기판', '중간기판', '작은기판' 및 '부품'으로 지칭한다)로 구조화하기 위해 필요한 기준정보, 참조정보, 규칙정보를 정의한다. 이렇게 정의된 스키마 정보를 활용하여 애플리케이션 구조 명세서를 작성할 수 있게 된다. 결과적으로 애플리케이션 구조 스키마는 기준정보와 참조정보를 제공하는 데이터베이스로서의 역할과 기판과 부품으로 개발대상 시스템을 분할할 때 분할 규칙을 제공하여 시스템을 구조화하는 구조화 엔진으로서 역할을 병행한다.
애플리케이션 구조 스키마의 기준정보는 애플리케이션 구조를 명세할 때 기준정보로서 역할을 하며, 주요 내용은 시스템에 적용될 플랫폼 정보와 애플리케이션 프레임워크 정보, 개발 방법론 및 산출물 템플릿정보, 전체기판, 중간기판, 작은기판 및 부품으로 정의되는 시스템 구조화를 구성하는 단위정보와 같은 애플리케이션의 전체 구조를 정의하는 정보이다. 애플리케이션 구조 스키마에는 구조 정보의 실제 내용물도 포함되며, 애플리케이션 구조 스키마의 구조 정보의 내용물은 애플리케이션 구조를 명세할 때 참조정보로서 역할을 한다. 애플리케이션 구조 스키마의 구조 정보를 채우는 내용물 정보의 예로는 플랫폼의 경우 OS(Operating System)로는 UNIX, LINUX, WINDOWS와 같은 시스템 구축시 실제적으로 활용되는 제품정보이다.
애플리케이션 구조 스키마는 구성 항목을 정의하는 구성요소와 각각의 구성요소에 대응되는 실제 값으로 이루어지며, 여기서 각각의 구성요소들의 관계가 애플리케이션 구조를 명세할 때 규칙으로서 역할을 하게 된다. 플랫폼 정보가 정의되면 여기에 구성가능한 애플리케이션 프레임워크 정보가 도출되고, 전체기판이 정의되면 중간기판은 애플리케이션 프레임워크 정보와 전체기판 정보를 토대로 해서 생기는 생성규칙에 의거하여 정의된다. 이와 같은 원리에 준하여 작은기판, 부품이 정의되고 각각의 적합성 여부를 검증할 수 있게 되며, 개발 또는 유지보수 대상 개발대상 시스템을 구조화하고 이것을 기초로 애플리케이션 구조 명세서로 작성하게 된다.
한편, 시스템 사양정보를 기판과 부품으로 단순화하여 표현하고 분해 조립이 가능한 형태로 정의하는 애플리케이션 구조 명세서와 애플리케이션 구조 스키마는 XML(eXtensible Markup Language)을 활용하는 것이 필수적이다. 애플리케이션의 논리적인 구조 정보와 물리적 구성 정보를 분리하고 논리적인 정보를 활용하여 물리적인 구성정보를 제어하는 것을 XML을 활용하여 구현할 수 있다. 애플리케이션 구조 스키마는 XML 스키마로 정의되어 애플리케이션 구조 명세서의 내용 및 구조를 정의하고 유효화하는 데 사용되며 XML로 작성된 애플리케이션 구조 명세서의 올바른 구조, 올바른 데이터 내용 및 관계를 정의하는데 사용된다.
제1데이터베이스부(130)에는 복수의 모듈의 계층적 결합구조 및 각각의 모듈 의 속성정보가 마크업언어에 의해 표현된 적어도 하나 이상의 개발완료 정보시스템의 애플리케이션 구조명세서가 저장된다. 제2데이터베이스부(130)에는 제1데이터베이스부(130)에 저장되어 있는 개발완료 정보시스템의 애플리케이션 구조명세서를 구성하는 각각의 모듈에 대응하는 소스코드가 저장된다.
도 2 내지 도 4는 각각 현재의 기업 정보시스템(200)의 상세한 구조, 본 발명에 따른 정보시스템 생성장치(100)에 의해 생성된 애플리케이션 구조명세서(300)의 구조 및 현재의 기업 정보시스템(200)과 본 발명에 따른 정보시스템 생성장치(100)에 의해 생성된 애플리케이션 구조명세서(300)의 상호관계를 도시한 도면이다.
도 2 내지 도 4를 참조하면, 기업 정보시스템(200)은 운영플랫폼(210), 애플리케이션 프레임워크(220), 시스템(230), 서브시스템(240), 단위프로세스(250) 및 단위프로그램(260)으로 구성된다. 운영플랫폼(210)에는 운영시스템, DBMS와 같은 시스템 소프트웨어, 컴포넌트 운영플랫폼 및 웹 애플리케이션서버와 같은 미들웨어가 포함된다. 애플리케이션 프레임워크(220)에는 프레임워크 종류, 계층구조정보, 디자인 패턴정보, 구현 가이드정보, 클래스 목록정보, 프레임워크, 참조라이브러리, 템플릿 코드 등이 포함된다. 시스템(230)은 기업의 인사관리시스템, 회계관리시스템 등과 같이 특정한 업종의 특정한 업무를 처리하는 전체 시스템을 의미한다. 서브시스템(230)은 전체 시스템(230)이 제공하는 각각의 기능을 처리하는 구성요소로서, 회계관리시스템을 예로 들면 매출전표처리, 매입전표처리 등을 수행하는 구성요소이다. 단위프로세스(250)는 각각의 서브시스템(230)에 공통적으로 적용되는 기능과 같이 서브시스템(230)에 종속적인 기능을 처리하는 구성요소로서, 회계관리시스템을 예로 들면 전표입력기능, 전표출력기능 등을 수행하는 구성요소이다. 단위프로그램(260)은 각각의 서브시스템(230) 또는 단위프로세스(250)를 수행하기 위한 소스코드 또는 클래스에 해당하는 구성요소이다. 도 2에 도시된 현재의 기업 정보시스템(200)의 운영플랫폼(210) 및 애플리케이션 프레임워크(220)는 도 3에 도시된 본 발명에 따른 정보시스템 생성장치(100)에 의해 생성된 애플리케이션 구조명세서(300)의 운영플랫폼(310) 및 애플리케이션 프레임워크(320)에 대응된다. 또한, 현재의 기업 정보시스템(200)의 나머지 구성요소들은 본 발명에 따른 정보시스템 생성장치(100)에 의해 생성된 애플리케이션 구조명세서(300)를 계층적으로 구성하는 객체에 대응된다. 즉, 현재의 기업 정보시스템(200)을 구성하는 시스템(230), 서브시스템(240), 단위프로세스(250) 및 단위프로그램(260)은 각각 본 발명에 따른 정보시스템 생성장치(100)에 의해 생성된 애플리케이션 구조명세서(300)를 구성하는 전체기판(330), 중간기판(340), 작은기판(350) 및 부품(360)에 대응된다.
상술한 바와 같이 본 발명에 따른 정보시스템 생성장치(100)는 애플리케이션 구조명세서(300)에 의해 비교적 복잡한 기업 정보시스템 구조를 논리적 구성요소인 기판과 부품으로 추상화하고, 하부 인프라이면서 물리적 구성요소인 애플리케이션 프레임워크와 운영플랫폼으로 추상화한 후 이들 각각을 연계하여 기업 정보시스템을 단순하게 표현한다. 결과적으로 기업 정보시스템은 애플리케이션 구조명세서라는 형태로 표현되며, 애플리케이션 구조명세서는 기업 정보시스템을 구축하기 위한 기준 및 참조정보와 규칙을 정의하는 개발환경정보를 활용하여 작성된다.
도 5는 기업 정보시스템을 구성하는 객체의 연관관계를 도시한 도면이다.
기판은 시스템의 논리적 구조를 정의하는 가장 중요한 요소이며 부품은 시스템을 구성하는 최소단위이고 단위프로그램과 대응된다. 또한 기판은 재사용 가능성에 기초하여 이식성과 확장성이 있으며, 시스템의 기능 및 프로세스와 대응한다. 따라서 기판은 그 자체로서 입력, 출력, 처리과정과 관련된 기능요소를 포함하며, 시스템 내의 의미있는 기능을 수행할 수 있는 독립된 실행 단위이다. 또한 기판은 시스템내의 다른 기판들과는 낮은 결합도를 가지며, 기판 내에 정의된 부품들은 그들 간에 높은 응집도를 갖는다. 부품은 시스템을 작은 단위로 분할해 가는 과정에서 최종적으로 나타나는 최소단위의 시스템 구성요소이다. 따라서 부품은 그 자체로서 의미있는 기능을 수행하는 실행 단위는 아니며, 항상 기판과 연계되어 자신이 속하는 기판의 구성요소로서의 역할을 수행한다. 결론적으로 부품은 개발시 코딩 대상이며, 개발 대상인 단위 프로그램과 대응된다.
한편, 기판은 다시 구조화하고자 하는 대상 시스템을 의미하는 전체기판, 시스템을 구성하는 서브시스템 및 단위기능을 포괄하는 중간기판, 그리고, 단위 프로세스로 대응되는 작은기판으로 세분화된다. 또한 작은기판은 더 작은 단위인 단위 프로그램으로 세분화되고 이것은 개발 및 조립 대상중 최소단위인 부품과 대응되어 결과적으로 시스템을 기판과 부품으로 구조화하여 표현할 수 있다. 나아가, 기판과 부품은 컴포넌트와는 다르게 재사용 단위가 보다 더 작은 단위인 컴포넌트를 구성하는 클래스 또는 프로그램단위까지 확장한 것이다. 따라서 개발대상 시스템을 의미 있는 단위로 분해할 때 컴포넌트 기반 개발 방법에서는 최소의 분해단위를 컴포 넌트로 한정하지만, 본 발명에 따른 정보시스템 개발장치(100)의 기판/부품에서는 컴포넌트를 구성하는 구성품, 즉 클래스 또는 단위 프로그램까지도 의미있는 단위로 인식 및 분해하여 시스템을 구조화하는 것이 특징이다. 이것은 재사용 관점에서 컴포넌트 기반 개발에서 이야기하는 컴포넌트의 재사용, 즉 실행 가능한 모듈 재사용을 포함하고 추가적으로 소스코드 재사용도 가능하게 하는 컴포넌트기반 개발에서 컴포넌트 단위 재사용의 확장된 개념이다.
기판과 부품으로 시스템을 구조화하여 표현하는 것이 필요한 시기는 개발생명주기(SDLC : Software Development Life Cycle)상 변경 및 형상관리로 인해 시스템사양을 구성하는 양이 많아지고 복잡해지는 구현 바로 전 단계로서 상세 설계가 완료된 시점이다. 이 시점에 시스템 사양정보를 정의한 완성된 산출물을 활용하게 되면 보다 더 쉽게 기판 및 부품을 정의할 수 있다. 이렇게 시스템을 기판과 부품으로 단순화하여 표현하면 시스템의 구현 단계에서 프로그램을 코딩할 때 개발 참여자간의 원활한 의사소통이 가능하다는 이점이 있다.
도 6은 전체기판의 상세한 구조를 도시한 도면이다.
도 6을 참조하면, 전체기판은 개발 및 운영하려는 개발대상 시스템의 하부 구조와 대응되는 것으로서 시스템이 필요로 하는 기준 정보를 포함하고 있다. 기준정보 요소는 운영을 위해 필요한 OS, 컴포넌트 플랫폼, 시스템 소프트웨어와 개발 구축과 밀접한 관련성을 갖고 있는 애플리케이션 프레임워크이다. 또한 다른 업무를 구현한 시스템과 식별을 가능하게 하는 업종 및 업무 정보와 구현할 개발대상 시스템의 업무정보이면서 해당 시스템이 유지 및 관리해야 하는 데이터 항목을 표 현하는 해당 업무영역의 영속성 객체정보를 포함한다.
전체기판에서 관리되는 중요한 정보요소는 업종/업무 구분, 영속성 객체(Persistence)정보, 사용할 애플리케이션 프레임워크(Application Framework) 정보, 시스템이 운영될 플랫폼 정보 등이다. 부가적으로 프로젝트정보, 시스템이 공통으로 참조하는 라이브러리정보, 전체기판과 관련된 프로그램 자원이 위치할 디렉토리 이름을 포함한다. 이들 참조 라이브러리정보 및 프로그램 자원이 위치한 디렉토리 정보는 전체기판을 구성하는 물리적 정보이며 애플리케이션의 논리적 명세에서 정의되고 참조된다.
업종/업무 구분은 시스템이 속하는 업종 정보와 해당 업종에서 영위하는 업무정보를 포함하며 이러한 정보요소는 재사용 대상을 식별하는데 있어서 중요한 단서를 제공한다. 그리고 여러 전체기판들 간에 식별자와 업무영역의 범위 구분자로서 역할을 하며, 영속성 객체(Persistence)정보와 연계되어 있다.
영속성 객체(Persistence)는 특정 업무영역에서 그 업무영역을 구현한 시스템의 기능들에 의해 관리 및 유지되어야하는 대상으로서 여러 관리항목들로 구성되고 영속성 객체들 간에는 서로 관계가 정의되며 관련되어 있다. 이들은 시스템으로 구현할 때 파일시스템에서는 파일로, 데이터베이스 시스템에서는 테이블로 구현된다. 이렇게 하나의 전체기판에 도출되어 정의된 영속성 객체들은 그들 상호간에 밀접한 연관관계를 갖고 있는 몇 개의 영속성 객체들의 그룹으로 표현될 수 있다. 이러한 영속성 객체의 그룹들은 각각 전체기판상의 중간기판으로 도출되어 정의된다. 중간기판으로 도출할 수 있는 영속성 객체그룹은 애플리케이션 프레임워크에 정의 되는 계층구조(Layered Architecture)와 결합되는데 이것은 영속성 객체를 유지 및 관리하기 위하여 계층(Layer)을 화면, 업무로직, 데이터접근처리 등의 관점에서 나누어서 접근하며 관리한다는 개념이다.
애플리케이션 프레임워크 정보는 프레임워크 종류, 프레임워크 기반 프로젝트 템플릿이 위치한 디렉토리 정보, 개발 표준 아키텍쳐, 정의된 계층별 적용 디자인 패턴정보를 포함한다. 이러한 애플리케이션 프레임워크는 애플리케이션을 개발 및 운영함에 있어서 필요한 공통적인 제어, 표준 아키텍처, 인터페이스에 대한 API(Application Programming Interface)를 미리 정의하여 개발자가 프레임워크가 제공하는 애플리케이션의 제어 흐름이나 리소스 관리에 대해 신경쓸 필요없이 비즈니스 로직 자체에만 집중할 수 있게 한다. 따라서 시스템의 구현시 개발자로 하여금 개발 사양을 올바르게 이해하여 요구되는 비즈니스 기능에 맞는 내용만 코딩하게 하고 시험을 통해 결함이나 변경 발생시 해당 사항을 용이하고 정확하게 반영할 수 있도록 하는 역할을 한다.
또한 운영 플랫폼 정보는 애플리케이션 프레임워크에 사용 가능한 미들웨어 정보, 자바JDK버전 정보, .NET프레임워크 버전, OS 종류 및 버전 정보를 포함한다. 개발 및 유지보수의 대상인 개발대상 시스템의 운영환경이 달성되기 전에 애플리케이션 프레임워크가 구동되기 위한 환경정보를 먼저 제공하여야 한다. 이와 같은 운영 플랫폼 정보는 애플리케이션 프레임워크의 기반이 된다고 할 수 있다.
전체기판은 영속성 객체정보를 통해 추후 정의될 중간기판들과 연결되어 있으며, 영속성 객체정보는 중간기판 도출을 위해 가장 기본적으로 필요한 입력요소 가 된다. 이와 같이 전체기판은 하부의 플랫폼 및 애플리케이션 프레임워크 정보와 연계되고 상부에는 중간기판들이 위치한다. 중간기판과의 연계는 전체기판이 참조하는 하부의 애플리케이션 프레임워크에의 정의된 계층구보정보와 영속성 객체정보의 결합으로 이루어진다. 이 때, 계층구조 상의 특정 계층에 응집도가 강한 영속성 객체들을 모아 업무기능을 정의하고 구현하는 형태로 중간기판을 실체화한다. 따라서 전체기판과 중간기판은 영속성 객체로 연결되어 있다고 할 수 있다.
이렇게 정의된 전체기판은 재사용 관점에서 그 자체로서 애플리케이션 빌딩 블록 속에서 하나의 시스템으로 재사용될 수 있다. 전체기판 상에 정의된 중간기판, 작은기판, 및 부품을 재사용할 때 해당 객체들이 포함하고 있는 기반 인프라 정보는 재사용 여부 결정시 중요한 참조 정보역할을 수행한다. 이와 같이 전체기판은 개발대상 시스템의 개발 운영시 필요한 인프라 정보를 포괄하고 있다.
도 7은 중간기판의 상세한 구조를 도시한 도면이다.
도 7을 참조하면, 중간기판은 전체기판과 작은기판의 중간에 정의된다. 따라서 중간기판은 전체기판으로부터 정보를 입력받아 생성되며, 이렇게 생성된 중간기판은 그 위에 구성될 중간기판 또는 작 기판 생성에 필요한 입력정보를 제공한다. 이러한 중간기판의 다른 기판과 연관관계를 위한 입출력 정보는 개발대상 시스템에서 중간기판의 역할과 제공기능을 정의해 봄으로써 확인할 수 있다. 중간기판은 시스템을 구성하는 서브시스템 및 단위기능을 포괄하는 것으로서 연관된 중요 정보 요소는 서브시스템이 제공하는 주요 기능들로 파악될 수 있다. 중간기판의 중요 정보 요소는 각 기능을 구현한 인터페이스의 오퍼레이션들로 구성된 인터페이스 정 보, 서브시스템이 참조하는 영속성 객체 정보, 부품이 구성될 디자인 패턴정보, 디자인 패턴정보의 기반이 되는 계층구조정보 등이다. 또한 인터페이스의 오퍼레이션 정보가 유지관리 하는 영속성 객체 중에는 개발대상 시스템이 참조만 하는 것도 포함되게 되는데 이것은 개발대상 시스템의 내외부 경계를 정의하는 기준정보가 된다. 이러한 영속성 객체는 개발대상 시스템 밖에 존재하여 시스템간 인터페이스를 통해 목적시스템으로 통합하는 역할을 담당하는 또 다른 중간기판의 주요 입력요소가 되며, 이러한 중간기판은 중간기판상 추가로 도출된 중간기판이 된다. 이상에서와 같이 중간기판은 하부의 전체기판에 정의된 애플리케이션 프레임워크의 계층구조정보와 영속성 객체 정보를 입력받아 생성되며, 중간기판의 인터페이스 정보와 영속성 객체 정보가 또 다른 중간기판 및 작은 기판을 생성하는데 중요한 입력정보로 제공된다.
중간기판에서 정의된 인터페이스 정보는 상술한 바와 같이 중간기판이 제공할 수 있는 주요기능들의 집합이라고 정의할 수 있다. 인터페이스 정보를 구성하는 오퍼레이션들은 이 기판에 연관된 영속성 객체 정보를 생성(Create), 조회(Read), 수정(Update), 삭제(Delete)하는 기본 조작기능을 중심으로 도출된다. 또한 중간기판이 참조하는 영속성 객체 정보는 기판을 통해서 관리 유지되어야 하는 영속성 객체들이며 이것은 이 기판이 입력 받아 처리하여 결과물로 생성해야 할 관리 항목들의 정보 모델이다. 정보 모델은 인터페이스의 오퍼레이션 정보와 밀접한 관련을 갖고 있으며 자체 또는 하위기판에서 데이터가 관리 및 유지된다. 이러한 인터페이스의 오퍼레이션 정보는 계층구조정보 상에 정의될 디자인 패턴정보와 관련되어 있 다. 디자인 패턴정보는 인터페이스에 정의된 생성, 조회, 수정, 삭제 등과 같은 오퍼레이션 특성에 맞게 선택되어지며, 부품으로 정의될 포함 객체들, 즉 해당 디자인 패턴으로 정의 될 수 있는 클래스들 또는 프로그램들과 그들 간의 관계에 대한 정보가 사전에 정의되어 있어 인터페이스 정보와 결합되면 필요한 부품이 자동으로 정의될 수 있다. 결과적으로 중간기판에 정의되는 부품들은 이러한 연관관계에 의해 정의되고 도출된다.
중간기판과 연관된 계층구조정보는 통상 유저 인터페이스, 비즈니스 로직, 데이터와 같이 3계층으로 분류되나 개발 표준아키텍쳐 정보를 포함하는 애플리케이션 프레임워크에서 정의한 계층구조정보가 우선한다. 따라서 3계층 보다 더 세분화될 수 있다. 기판에서 정의되는 부품은 계층구조정보를 적용하여 계층별로 구분되어 정의된다. 중간기판에서 정의되는 부품 또한 계층별로 분류되어 정의된다.
중간기판은 전체기판과 작은기판 사이에서 가교 역할을 담당하는 것이어서 또 다른 중간기판을 하위 기판으로 포함할 수 있는데, 이럴 경우에는 부품을 포함하지 않을 수도 있다. 일반적인 경우에 중간기판은 작은기판이 공유하는 부품과 하위에 작은기판을 포함하고 있다. 계층구조에서 비즈니스 로직 및 데이터베이스 액세스를 담당하는 계층상에 정의된 부품은 유저 인터페이스 계층상에 정의된 부품보다는 공유 및 다른 기판에 의해 재사용될 가능성이 높다. 이러한 현상은 기업 정보시스템 속성상 데이터베이스와 같은 것을 활용하는 영속성 정보관리가 거의 필수적이기 때문에 모든 업무 처리 기능 및 프로세스는 관리되어야 하는 영속성 정보를 중심으로 수렴되거나 발산된다. 결과적으로 중간기판에 정의된 비즈니스로직 및 데 이터베이스 액세스 계층에 정의된 부품은 하위 중간기판이나 작은 기판에 영향을 주고 참조된다.
상술한 바에 따르면, 중간기판에서 다른 중간기판 또는 작은기판과 실제적인 연결은 계층구조정보와 부품을 통해 이루어지게 된다. 동일한 전체기판상의 중간기판과 중간기판 간의 연결은 계층구조상에서 적용 가능한 디자인 패턴이 포괄하는 객체가 담당하며, 이것은 클래스 또는 프로그램으로 구현되어 부품으로 정의된다. 또한 중간기판과 작은기판의 연결에 있어 각각 적용되는 계층구조는 다르지만 여기서도 역시 해당 계층구조 상에 적용 가능한 디자인 패턴과 이것을 기반으로 한 객체, 즉 부품에 의해 연결된다. 여기서 부품간의 연결에는 객체간의 상관관계를 정의하는데 사용하는 연관관계, 상속관계, 포함관계 등과 같은 용어를 사용할 수 있고, 주로 연관관계와 포함관계를 사용하여 중간기판상에 정의된 다른 기판과의 관계를 정의할 수 있다.
중간기판의 재사용은 개발 및 유지보수 하려는 개발대상 시스템의 애플리케이션 빌딩 블록 속의 전체기판상에 하나의 중간기판으로 조립될 수 있으나 재사용하려는 시스템 전체기판의 하부를 구성하는 정보에 영향을 받는다. 따라서 재사용을 통한 중간기판 조립시는 전제조건인 전체기판의 애플리케이션 프레임워크 및 플랫폼 정보의 일치여부를 확인하는 과정이 필요하고, 불일치할 경우 변환을 통해 적용하여야 한다. 변환이 필요한 정보요소는 영속성 객체와 인프라를 구성하는 애플리케이션 프레임워크 및 플랫폼 정보와 관련된 요소이다.
또한 중간기판의 주요 관리항목은 디렉토리정보, 참조라이브러리, 및 기능점 수산정정보이다. 디렉토리정보는 중간기판에 속하는 프로그램 자원이 위치한 디렉토리 경로이고, 참조 라이브러리는 이 기판이 참조하는 라이브러리들이며, 나머지 다른 속성 정보들은 소프트웨어 규모정보를 표시하는 기능점수(Function Point)관련된 내용이다. 여기서 디렉토리정보와 참조라이브러리는 중간기판의 논리적 명세를 개발대상 시스템의 물리적 형태로 구현한 것과의 연계 정보요소이다.
도 8은 작은기판의 상세한 구조를 도시한 도면이다.
도 8을 참조하면, 작은기판은 개발 및 유지보수 하려는 개발대상 시스템상에서 단위프로세스에 대응되는 것으로서, 중간기판상에 정의된 인터페이스의 오퍼레이션을 구현한 것이다. 따라서 작은기판은 상위의 중간기판으로부터 인터페이스의 오퍼레이션을 입력받아 생성되는 것이며, 이를 구현하기 위해서는 전체기판에서 정의한 애플리케이션 프레임워크의 계층구조정보, 계층구조 상에 적용가능한 디자인 패턴, 그리고, 이를 기반으로 도출된 객체가 부품으로 전환 및 매핑되어 구현된다.
중간기판에서 정의된 인터페이스 정보는 작은 기판의 주요 입력 정보로서 인터페이스에 정의된 오퍼레이션들은 생성, 조회, 수정, 삭제 등과 같은 기본기능을 처리하는 요소을 중심으로 필요한 추가적 기능들이 정의되며, 각각은 작은기판으로 도출된다. 이러한 인터페이스 오퍼레이션들의 특성을 구현한 작은기판은 애플리케이션 프레임워크상에 정의된 계층구조 중에서 주로 유저 인터페이스가 속하는 계층을 구현한다. 작은기판에 속하는 부품은 비즈니스 로직이나 데이터액세스 계층에 속하는 부품들처럼 다른 계층의 부품들로부터 빈번히 참조되는 부품이라기보다는 다른 계층의 부품을 참조하는 부품이다. 클라이언트 서버 구조로 대입하면 작은기 판에 속하는 부품은 주로 정보를 요청하는 클라이언트에 해당되고 중간기판에 속한 부품들은 요청받은 내용을 서비스하는 서버에 해당된다. 따라서 작은기판상에 정의될 수 있는 계층구조와 그 위에 적용될 디자인 패턴이 구분될 수 있다. 작은기판 상에 정의된 인터페이스의 오퍼레이션들의 각 특성이 존재하며, 결과적으로 계층구조, 디자인 패턴, 오퍼레이션들의 각 특성 들이 상호 결합하여 작은기판으로 정의된다.
이상과 같이 작은기판은 중간기판을 세분화하여 구현한 것이고 중간기판이 갖고 있던 인터페이스의 오퍼레이션을 구현한 작은기판은 중간기판과는 포함관계가 성립되어 강한 기능 응집도가 생기게 된다. 또한 동일한 중간기판상의 작은기판 간에는 느슨한 결합도를 갖게 된다. 이와 같은 기판 간의 관계는 기판상에 정의된 부품간의 관계로 파악된다. 중간기판상의 부품이 작은기판상에 정의된 부품과 연관관계로 설정되어 상호 연결되며, 동일한 중간기판에 작은기판상에 정의된 부품간에는 서로 간에 연관관계가 없다. 따라서 작은기판의 재사용은 관련된 중간기판에 종속적으로 재사용되는 경우가 많으며, 작은기판이 독립으로 재사용될 때는 중간기판상에 동일한 속성을 갖는 오퍼레이션, 즉 영속성 객체를 유지하는데 있어서 정보를 유지하는 속성을 등록, 조회, 변경, 삭제와 같이 정의하면 등록 속성은 다른 기판의 등록 속성을 구현하는 작은기판으로 재사용된다. 이와 같이 작은기판이 재사용되기 위해서는 중간기판과의 연관관계를 구성하는 세부정보가 모듈변환부(160)에 의해 재설정되어야 한다.
한편, 작은기판의 주요 관리항목에는 기능점수산정정보, 디렉토리 경로정보, 참조정보 등이 있다. 기능점수산정정보는 소프트웨어 규모정보를 표시하는 기능점수(Function Point)와 관련된 항목으로 트랜젝션 기능유형, FTR(File Type Referenced), DET(Data Element Type), UFP(Unadjusted Function Point)정보 등이 포함된다. 디렉토리 경로정보는 프로그램 자원이 위치한 경로에 대한 정보로서 작은기판의 논리적 명세를 개발대상 시스템의 물리적 형태로 구현한 것과의 연계 정보요소이다. 참조정보에는 중간기판의 인터페이스정보, 애플리케이션 프레임워크의 계층구조정보, 디자인 패턴, 그리고, 작은기판을 구성하는 주요 객체, 즉 부품 정보가 포함된다.
도 9는 부품의 상세한 구조를 도시한 도면이다.
도 9를 참조하면, 부품은 구현시 사용하는 클래스 또는 프로그램과 대응되는 개념으로서 시스템 구조상에서 말단에 위치해 시스템을 작은 단위로 분할해 가는 과정에서 최종적으로 나타나는 최소단위의 시스템 구성 요소이다. 부품은 계층구조 상에 적용가능한 디자인 패턴을 활용하여 중간기판과 작은기판상에 정의된다. 부품을 포괄하고 있는 계층구조는 전체기판에서 정의된 애플리케이션 프레임워크에 종속적이며 애플리케이션 프레임워크에서 정의한 세분화된 계층에 따라 연계된 객체들이 부품으로 정의되고 분류된다. 또한 부품 정의에 영향을 주는 요소는 세분화된 계층별로 권고된 디자인패턴 정보이다.
여기서 디자인패턴은 Erich Gamma, Richard Helm과 Ralph Johnson과 John Vlissides, 일명 Gang of Four(GoF)가 저술하여 출판한 "Design Patterns: Elements of Reusable Object Oriented Software(Addison-Wesley, 1994)"에서 언급 된 내용이다. 각각의 부품이 다른 부품들과 상호작용을 할 때 필요한 동작원리와 정보 참조방법은 디자인패턴 정보에 의해 가이드된다. 이에 따르면 부품은 애플리케이션 프레임워크를 중심으로 개발 시스템에 적용될 계층구조가 정의되고 계층별로 참조하거나 적용해야할 디자인패턴이 정리되고 정의된 계층별 특성과 디자인패턴에 따라 정의된다.
부품은 각 기판을 연결하는 연결고리 역할을 수행한다. 중간기판과 또 다른 중간기판, 중간기판과 작은기판 간의 연계는 해당 기판들이 포함하고 있는 부품의 참조정보에 의해 연결된다. 따라서 부품은 항상 참조정보를 포함하는데 이것은 두 가지로 분류된다. 하나는 참조하는 부품이고 다른 하나는 참조되는 부품이다. 참조하는 부품은 일반적으로 부품간의 연관관계로 표시되고 참조되는 부품은 의존관계와 연관관계를 혼용하여 표시된다. 결과적으로 부품은 하나의 기판에서 여러 개가 정의될 수 있고 서로 간에는 강한 기능 응집도를 갖게 되며, 항상 기판은 적정한 수의 부품을 보유한다. 이러한 원칙은 하나의 기판을 여러 개의 기판으로 분할 구성되게 하는 원칙으로 적용될 수 있다. 디자인 패턴은 이와 같은 원리를 포함하고 있어 부품을 도출하고 분류하는데 있어 중요한 역할을 담당한다.
부품은 또한 사용자 인터페이스용 부품과 그렇지 않은 것으로 나눌 수 있는데 프로그램으로 구현된 결과를 보게 되면 확연히 구분되는 특징이 있다. 사용자 인터페이스용이 아닌 부품들은 대부분 C++, JAVA, C#과 같은 단일언어로 구현되지만 사용자 인터페이스용은 여러 가지 추가적인 구성품을 필요로 한다. 대표적인 예가 화면의 버튼과 같은 것은 대부분 이미지로 표현되기 때문에 처리 스크립트 언어 와 이미지가 화면 버튼을 구현한 부품으로 각각 구성될 수 있다. 이와 같이 사용자 인터페이스용 부품은 상당히 작은 부분까지 세분화되어 구성되며, 따라서 많은 참조정보를 갖게 된다.
부품의 재사용은 기판과 연계 또는 부품 그 자체로 재사용될 수 있다. 부품 그 자체가 재사용될 때는 사전에 디자인 패턴정보, 계층구조정보, 기판정보가 제약조건으로 작용하여 재사용하려는 부품이 속한 디자인 패턴정보, 계층구조정보, 기판정보와 재사용을 적용하여 속하게 될 개발대상 시스템의 디자인 패턴정보, 계층구조정보, 기판정보가 일치하는지 여부가 체크되어야 한다. 이와 같이 부품이 재사용되기 위해서는 기판별 또는 계층별, 디자인 패턴별, 부품의 속성 등과 같은 여러 가지가 고려된 사항들이 체크되어 재사용 가능여부가 판단된 후 모듈변환부(160)에 의해 개발대상 시스템에 부합되게 부품을 변환하는 과정을 수행하여야 한다.
부품이 갖고 있는 속성정보는 부품 이름과 부품의 종류를 구분하는 부품타입, 부품이 클래스로 정의되면 필요한 속성 및 메소드 정보, 다른 부품 참조정보, 실제로 디렉토리상에 부품이 존재할 때 필요한 디렉토리 경로정보로 구성된다. 여기서 다른 부품 참조정보는 부품에 정의되는 부품 속성정보의 확장으로 정의될 수 있다.
도 10은 기판과 부품의 연결관계를 도시한 도면이다.
도 10을 참조하면, 기업 정보시스템은 전체기판 단위로 정의될 수 있고, 전체기판을 하부구조로 하여 중간기판, 작은기판, 부품으로 시스템의 논리적 구성요소가 정의될 수 있다. 이렇게 정의된 기업정보시스템은 전체기판, 중간기판, 작은 기판, 부품단위로 분해 및 조립이 가능하게 된다.
전체기판 단위의 분해 및 조립에 있어서 전체기판과 그 위에 정의된 중간기판, 작은기판, 부품 전체의 재사용은 특정 업종 및 업무에 적용된 것이 신규로 개발하여 적용할 또 다른 업종 및 업무에 적용될 수 있는 경우가 있을 수 있는데 이러한 경우가 가장 단순하면서도 완성도가 높은 형태로 전체기판이 재사용되는 경우에 해당한다. 이러한 형태는 상용 솔루션 패키지 소프트웨어를 도입하여 적용하는 경우와 거의 유사한 형태로 볼 수 있다. 다른 한 가지 형태는 전체기판만 재사용되어 조립되는 경우가 있을 수 있는데 이 경우는 전체기판에 정의된 영속성 객체정보가 기존에 정의된 중간기판들과 연계될 수 있는지 여부가 먼저 점검되어야 한다. 또한 중간기판이나 작은기판에서 적용 중인 애플리케이션 프레임워크와 재사용 조립하려는 전체기판의 애플리케이션 프레임워크가 같은지가 점검되어야 한다. 만약, 재사용하고자 하는 전체기판이 기존에 정의된 중간기판들과 연계될 수 없다면 중간기판, 작은기판, 부품이 재사용되는 전체기판을 기준으로 하여 재정의되어야 하고, 연계가 가능하다면 중간기판에 재사용하려는 전체기판에 정의된 영속성 객체들과의 연결관계 재설정을 통해 재사용 및 조립이 가능하다.
중간기판 단위의 분해 및 조립은 기본적으로 관련된 전체기판 및 작은기판과의 관계 재설정을 통해 가능하다. 재사용되어 조립될 중간기판은 전체기판에 정의된 애플리케이션 프레임워크와 영속성 객체와의 정합성에 따라 조립을 위한 추가적 조치 필요여부가 결정된다. 애플리케이션 프레임워크가 같고 영속성 객체가 이미 전체기판에 정의되어 있다면 추가적 조치가 필요 없이 바로 조립이 가능하다. 이와 달리, 애플리케이션 프레임워크가 다를 경우에는 중간기판에 적용된 계층구조, 디자인 패턴정보 및 부품정보의 변경이 필요하다. 이 때, 전체기판의 애플리케이션 프레임워크정보에 따라 해당 사항이 변경되며, 관련된 작은기판과의 연계 관계도 작은기판에 속한 부품의 참조정보가 새롭게 정의된 중간기판의 부품정보로 변경된다. 또한 재사용될 중간기판에 정의된 영속성 객체가 전체기판에 없을 경우에는 전체기판에 영속성 객체를 정의하여 삽입하여 연결하고 작은기판과는 부품의 참조정보 변경을 통한 연결관계 재설정을 통해 조립이 가능하게 된다.
작은기판 단위의 분해 및 조립도 중간기판과 마찬가지로 관련된 중간기판과 부품과의 관계 재설정을 통해 가능하다. 재사용되어 조립될 작은기판도 작은기판내 적용된 계층구조정보와 전체기판의 애플리케이션 프레임워크에서 정의된 계층구조정보와의 일치여부가 중요한 정보요소이다. 일치될 경우에는 작은기판에 정의된 부품의 참조정보를 중간기판에 정의된 부품으로 재설정하는 것으로서 간단하게 재사용 및 조립이 가능하다. 이와 달리, 일치하지 않을 경우는 재사용하려는 작은기판의 계층구조정보, 디자인 패턴정보 및 부품정보를 전체기판의 애플리케이션 프레임워크에서 정의된 계층구조정보 및 디자인 패턴정보를 활용하여 부품을 재생성한 후 부품에서 참조하는 중간기판의 부품정보를 재설정하여 재사용 및 조립이 가능하게 된다.
부품단위의 분해 및 조립은 그 부품이 생성된 배경이 된 디자인 패턴정보에 영향을 받는다. 단순히 대체 조립되기 위해서는 디자인 패턴정보가 동일해야 한다. 부품의 재사용을 통한 조립은 부품의 참조정보 변경만으로 가능하여 가장 손쉬운 재사용 및 조립 단위이다. 재사용을 통한 조립은 같은 기판 또는 부품끼리가 가장 효과적이다. 전체기판을 중간기판 또는 작은기판으로 재사용 및 조립은 원칙적으로 불가능하다. 또한 전체기판상에 다른 시스템의 작은기판을 재사용하여 조립하는 것 또한 불가능하다. 그리고 작은기판에서 다른 시스템의 전체기판 또는 중간기판을 재사용하여 조립하려는 것과 같은 하위기판에서 상위기판을 재사용하여 조립하는 것 역시 불가능하다.
검색부(150)는 사용자로부터 입력받은 개발환경정보 및 분류식별정보에 대응되는 개발완료 정보시스템의 애플리케이션 구조명세서를 제1데이터베이스(130)로부터 검색하여 재사용대상 애플리케이션 구조명세서로 출력한다. 이 때, 검색부(150)는 제1데이터베이스(130)를 관리하는 데이터베이스 관리부의 구성요소로 구비될 수 있다.
도 11은 검색부(150)를 포함하는 데이터베이스 관리부(1000)의 상세한 구성을 도시한 도면이다.
도 11을 참조하면, 데이터베이스 관리부(1100)는 검색부(1110) 및 정보관리부(1120)로 구성된다.
검색부(1110)는 사용자로부터 입력받은 개발환경정보 및 분류식별정보에 대응되는 개발완료 정보시스템의 애플리케이션 구조명세서를 제1데이터베이스(130)로부터 검색한다. 정보관리부(1120)는 분류기준인 업종/업무에 의해 애플리케이션 구조명세서를 분류하고, 제1데이터베이스(130)에 저장되어 있는 각각의 애플리케이션 구조명세서의 분류정보를 관리한다. 또한, 정보관리부(1120)는 애플리케이션 구조 명세서를 구성하는 기판과 부품의 정의시 관련된 계층구조정보, 계층정보 등의 정보요소를 기판과 부품의 재사용을 위해 관리한다. 한편, 제1데이터베이스부(130)의 물리적 구성은 여러 상용 소프트웨어를 사용하여 정의될 수 있다. 이러한 상용 소프트웨어들은 소프트웨어 형상관리를 위해 사용되는 것들이다. 따라서 제1데이터베이스부(130)를 관리하는 데이터베이스 관리부(1100)는 별도로 구현될 수 있으나, 데이터베이스의 형상관리를 위해 사용되는 상용시스템 또는 상용소프트웨어의 기능을 확장하여 구현될 수도 있다. 대표적인 상용 소프트웨어는 오픈소스로서 개발소스 버전관리를 위해 많이 사용되는 CVS(Concurrent Versions System)이다.
모듈변환부(160)는 재사용대상 애플리케이션 구조명세서를 구성하는 기판 및 부품 중에서 사용자가 선택한 기판 및 부품을 변경대상모듈로 설정하고, 제1데이터베이스부(130)에 저장되어 있는 개발완료 정보시스템을 구성하는 모듈 중에서 개발대상 정보시스템의 환경정보 및 분류식별정보를 기초로 변경대상모듈에 대응하는 재사용대상모듈을 결정한다. 또한, 모듈변환부(160)는 변경대상모듈의 상위모듈정보 및/또는 하위모듈정보를 포함하는 모듈변환정보와 개발환경정보에 의해 재사용대상모듈을 변환한 후 변경대상모듈을 변환된 재사용대상모듈로 변경하여 제1데이터베이스부(130)에 저장한다.
구조명세서 생성부(170)는 변환된 재사용대상모듈의 구조명세정보를 기초로 재사용대상 애플리케이션 구조명세서를 변경하여 개발대상 정보시스템에 대응하는 애플리케이션 구조명세서를 생성한다. 생성된 개발대상 정보시스템에 대응하는 애플리케이션 구조명세서는 제1데이터베이스부(130)에 저장되어 추후 다른 정보시스 템의 개발시 재사용된다. 한편, 구조명세서 생성부(170)에 의해 생성된 개발대상 정보시스템에 대응하는 애플리케이션 구조명세서에 해당하는 프로그램 소스는 제2데이터베이스부(140)에 저장된다.
산출물 출력부(180)는 개발대상 정보시스템에 대응하여 생성된 애플리케이션 구조명세서를 기초로 개발대상 정보시스템의 데이터사양, 구조사양, 흐름통제 프로시져사양, 사용자인터페이스사양 중에서 적어도 하나를 포함하는 출력사양 중에서 사용자가 선택한 출력사양을 생성하여 출력한다. 사용자는 정보입력부(110)를 통해 애플리케이션 시스템의 유지보수, 인수인계 또는 세부적인 시스템 사양정보를 확인하고자 할 때 필요한 문서 산출물을 개발대상 시스템에 적용되는 방법론에서 정의된 액티비티, 태스크, 각각의 태스크에 대응하는 산출물 및 산출물 템플릿을 포함하는 출력정보를 입력하며, 사용자가 입력한 출력정보는 저장부(120)에 저장된다. 산출물 출력부(180)는 저장부(120)에 저장되어 있는 출력정보를 기초로 사용자가 선택한 출력사양에 정의된 필요 정보요소를 구조명세서 생성부(160)에 의해 생성된 개발대상 애플리케이션 구조명세서로부터 추출한 후 템플릿의 화면 포맷정보와 결합하여 문서 산출물을 생성한다. 사용자는 생성된 문서 산출물을 기초로 시스템 세부 사양정보를 파악 또는 분석할 수 있다.
프로토타입 생성부(190)는 개발대상 정보시스템에 대응하여 생성된 애플리케이션 구조명세서를 구성하는 각각의 모듈에 대응하는 소스코드를 제2데이터베이스부(140)로부터 독출하고, 개발환경정보 및 개발대상 정보시스템에 대응하여 생성된 애플리케이션 구조명세서를 기초로 제2데이터베이스부(140)로부터 독출한 소스코드 들을 결합하여 개발대상 정보시스템의 프로토타입 시스템을 생성한다. 사용자가 프로토타입 시스템의 생성메뉴를 선택하면 프로토타입 생성부(190)는 먼저 소스코드를 생성할 대상 디렉토리를 입력받는다. 다음으로, 애플리케이션 구조명세서를 통해 소스 및 소스가 위치할 디렉토리와 같이 필요한 프로그램자원을 정의하고 전체기판의 애플리케이션 프레임워크 정보와 플랫폼 정보를 기준으로 애플리케이션 구조 스키마에 정의된 소스코드 생성을 위한 템플릿과 런타임 라이브러리(Runtime Library)를 참조하여 소스코드를 생성하며, 생성된 소스코드를 빌드하여 프로토타입 시스템을 완성한다. 최종적으로 시스템을 테스트 및 운영하기 위해서 프로토타입 생성부(190)는 운영을 위한 서버 정보를 입력받아 필요한 시스템환경을 설정하고 빌드된 시스템을 배포한다. 이와 같이 생성된 프로토타입 시스템에 의해 시스템 개발자는 시스템 사용자의 핵심 요구사항의 반영 여부를 확인할 수 있고, 애플리케이션 시스템에 대한 프로토타입 시스템의 실행을 통해 시스템을 테스트하고 개선사항을 도출할 수 있다.
도 12는 본 발명에 따른 정보시스템 개발방법의 바람직한 수행과정을 도시한 흐름도이다.
도 12를 참조하면, 정보시스템을 구축하고자 하는 업무영역이 정해지면 애플리케이션 구조명세서는 정해진 업무영역의 업무지식을 주요 입력으로 하여 애플리케이션 구조 스키마를 활용하여 작성된다. 먼저 사용자는 업무영역의 특성 및 시스템 구축을 위한 주요 요구사항에 따라 적합한 애플리케이션 프레임워크정보 및 관련된 플랫폼 정보를 포함하는 개발환경정보와 개발대상 정보시스템의 분류식별정보 를 입력한다(S1200). 검색부(150)는 개발완료 정보시스템의 애플리케이션 구조명세서를 구성하는 복수의 모듈의 계층적 결합구조 및 각각의 모듈의 속성정보가 마크업언어에 의해 표현된 적어도 하나 이상의 개발완료 정보시스템의 애플리케이션 구조명세서가 저장되어 있는 제1데이터베이스부(130)로부터 사용자가 입력한 개발환경정보 및 분류식별정보에 대응되는 개발완료 정보시스템의 애플리케이션 구조명세서를 검색하여 재사용대상 애플리케이션 구조명세서로 출력한다(S1210). 모듈변환부(160)는 재사용대상 애플리케이션 구조명세서를 구성하는 모듈 중에서 사용자가 선택한 모듈을 변경대상모듈로 설정하고, 개발완료 정보시스템의 애플리케이션 구조명세서를 구성하는 모듈 중에서 개발대상 정보시스템의 개발환경정보 및 분류식별정보를 기초로 제1데이터베이스부(130)로부터 변경대상모듈에 대응하는 재사용대상모듈을 검색하여 출력한다(S1220). 다음으로, 모듈변환부(160)는 변경대상모듈의 상위모듈정보 및/또는 하위모듈정보를 포함하는 모듈변환정보 및 개발환경정보에 의해 재사용대상모듈을 변환한 후 변경대상모듈을 변환된 재사용대상모듈로 변경한다(S1230). 구조명세서 생성부(170)는 변환된 재사용대상모듈의 구조명세정보를 기초로 재사용대상 애플리케이션 구조명세서를 변경하여 개발대상 정보시스템에 대응하는 애플리케이션 구조명세서를 생성한다(S1240). 산출물 생성부(180) 및 프로토타입 생성부(190)는 사용자의 선택에 따라 각각 개발대상 정보시스템에 대응하여 생성된 애플리케이션 구조명세서를 기초로 개발대상 정보시스템의 데이터사양, 구조사양, 흐름통제 프로시져사양, 사용자인터페이스사양 중에서 적어도 하나를 포함하는 출력사양 중에서 사용자가 선택한 출력사양을 생성하여 출력하거나 제2데이터 베이스부(140)로부터 독출한 개발대상 정보시스템에 대응하여 생성된 애플리케이션 구조명세서를 구성하는 각각의 모듈에 대응하는 소스코드들을 결합하여 개발대상 정보시스템의 프로토타입 시스템을 생성한다(S1250).
도 13은 사용자로부터 입력받은 개발환경정보를 애플리케이션 구조 스키마의 형태로 저장부(120)에 저장하는 과정을 도시한 흐름도이다.
도 13을 참조하면, 사용자가 시스템환경정보의 입력을 선택하면, 정보시스템 개발장치(100)는 사용자에게 입력가능한 시스템환경정보항목을 제시한다(S1300). 사용자가 운영플랫폼 정보정의를 선택하면(S1310), 정보시스템 개발장치(100)는 XML로 작성된 애플리케이션 스키마 구조상에서 사용자가 정의할 정보목록을 제시한다(S1320). 이 때, 정보시스템 개발장치(100)는 사용자에게 정의할 정보목록으로 개발대상 시스템의 OS와 컴포넌트 플랫폼을 순차적으로 표시하며, 사용자로부터 입력받은 각각의 정보목록과 관련된 입력 항목을 기초로 XML로 작성된 애플리케이션 구조스키마를 저장부(120)에 저장한다(S1330). 한편, 사용자가 애플리케이션 프레임워크 정보 정의를 선택하면(S1340), 정보시스템 개발장치(100)는 XML로 작성된 애플리케이션 스키마 구조상에서 애플리케이션 프레임워크와 관련된 항목의 입력을 순차적으로 사용자에게 요청한다(S1350). 또한, 정보시스템 개발장치(100)는 관련된 계층별 적용 디자인패턴정보, 추상클래스, 구현가이드, 소스코드 생성 템플릿, 관련 라이브러리 파일을 사용자로부터 입력받는다(S1360). 마지막으로, 정보시스템 개발장치(100)는 사용자로부터 입력받은 각각의 정보를 저장부(120)에 저장되어 있는 XML로 작성된 애플리케이션 구조스키마에 반영한다(S1360). 이상의 과정을 통해 등록된 플랫폼정보와 애플리케이션 프레임워크정보는 시스템을 기판과 부품으로 구조화할 때 구조화되는 기판 및 부품 종류별로 생성 규칙을 제공하고 검증하는 역할을 담당하며, 프로토타입 시스템 생성을 위한 프로그램 소스생성시 소스 템플릿 정보와 결합하여 빌드, 배포 및 운영을 가능하게 하는 기준정보로서 역할을 담당한다.
도 14는 모듈변환부(160)에 의한 모듈변환과정의 수행절차를 도시한 흐름도이다.
도 14를 참조하면, 모듈변환부(160)는 먼저 제1데이터베이스부(130)로부터 재사용 대상 기판/부품을 검색한다(S1400). 제1데이터베이스부(130)에 축적된 시스템은 시스템 구조화 정의부에서 정의된 원칙과 원리에 의거하여 구조화되어 전체기판의 식별정보로 정의된 해당 업종 업무정보, 애플리케이션 프레임워크 그리고 플랫폼과 같이 적용된 기반구조에 의거 분류된다. 모듈변환부(160)는 중간기판, 작은 기판, 부품이 적용된 계층, 부품종류와 같은 시스템 세부 구조화 정보를 이용하여 재사용 대상을 검색하고 재사용 단위별로 재사용 대상을 카탈로그화하여 제공한다(S1410). 이 때, 모듈변환부(160)는 사전에 정의된 기판과 부품의 의미론적인 재사용 가능 단위 및 대상을 검색하는 규칙을 기초로 개발대상 정보시스템에서 재사용하려는 기판 또는 부품을 기초로 제1데이터베이스부(130)에 저장되어 있는 애플리케이션 구조명세서를 구성하는 기판 및 부품 중에서 재사용 가능한 기판 부품을 검색하여 재사용 대상을 카탈로그 정보로 표시하여 사용자가 선택할 수 있도록 한다. 다음으로, 모듈변환부(160)는 개발대상 시스템에 부합되도록 재사용 단위로 선택된 기판 또는 부품의 의존관계를 분석하며(S1420), 분석된 의존관계와 개발대상 정보시스템의 인프라 정보요소를 기초로 재사용 적합여부를 판단한다(S1430). 마지막으로, 모듈변환부(160)는 재사용이 가능한 것으로 판단되면, 변경대상모듈의 상위모듈정보 및/또는 하위모듈정보를 포함하는 모듈변환정보와 개발환경정보에 의해 재사용대상모듈을 변환한다. 또한, 변경대상모듈을 변환된 재사용대상모듈로 변경하고, 변환된 재사용대상모듈 구조명세로 추출하여 구조명세서 생성부(170)의 주요입력으로 제공한다(S1440).
도 15는 애플리케이션 구조명세서를 기초로 산출물을 생성하는 과정을 도시한 흐름도이다.
도 15를 참조하면, 정보시스템 개발장치(100)는 사용자로부터 방법론 정보, 액티비티 태스크 정보 및 산출물 탬플릿 정보를 포함하는 출력정보를 입력받는다(S1500). 다음으로, 정보시스템 개발장치(100)는 입력받은 출력정보를 기초로 저장부(120)에 저장되어 있는 개발대상 정보시스템에 대해 XML로 작성된 애플리케이션 구조스키마의 구조를 변경한다(S1510). 한편, 개발대상 정보시스템에 대응하는 애플리케이션 구조명세서가 생성된 후 사용자로부터 개발대상 정보시스템의 데이터사양, 구조사양, 흐름통제 프로시져사양, 사용자인터페이스사양 중에서 적어도 하나를 포함하는 출력사양 중에서 사용자가 희망하는 출력사양을 입력받는다(S1520). 산출물 출력부(180)는 저장부(120)에 저장되어 있는 애플리케이션 구조스키마에 정의되어 있는 출력정보를 기초로 사용자가 선책한 출력사양에 정의된 필요 정보요소를 구조명세서 생성부(160)에 의해 생성된 개발대상 애플리케이션 구조명세서로부 터 추출한 후 템플릿의 화면 포맷정보와 결합하여 문서 산출물을 생성한다(S1530).
도 16은 프로토타입 시스템 생성과정의 수행절차를 도시한 흐름도이다.
도 16을 참조하면, 사용자가 프로토타입 시스템의 생성을 선택하면 프로토타입 생성부(190)는 먼저 사용자로부터 소스코드를 생성할 대상 디렉토리를 입력받거나 임의로 대상 대렉토리를 생성한다(S1600). 다음으로, 프로토타입 생성부(190)는 저장부(120)에 저장되어 있는 애플리케이션 구조스키마에 정의되어 있는 전체기판의 애플리케이션 프레임워크 정보와 플랫폼 정보를 기준으로 참조할 템플릿과 런타임 라이브러리를 결정한다(S1610). 마지막으로, 프로토타입 생성부(190)는 개발대상 정보시스템에 대응하는 애플리케이션 구조명세서를 기초로 결정된 템플릿과 런타임 라이브러리를 참조하여 소스코드를 생성하며, 생성된 소스코드를 빌드하여 프로토타입 시스템을 완성한다(S1620).
이상에서는 기개발된 정보시스템의 애플리케이션 구조명세서를 구성하는 기판 및 부품을 변경하여 새로운 정보시스템에 대응하는 애플리케이션 구조명세서를 생성하는 경우에 해당하는 정보시스템 개발방법을 설명하였다. 상술한 바에 따르면, 개발대상 시스템이 전체기판, 중간기판, 작은 기판, 부품으로 구조화되면 애플리케이션 구조명세서가 작성되는데 이것은 시스템을 기판과 부품으로 구조화해 나가는 과정에서 지속적으로 애플리케이션 구조명세서가 변경되면서 완성되어져 간다. 그러나 이와 달리 개발대상 정보시스템에 대응하는 개발완료 정보시스템이 존재하지 않거나 기판 또는 부품의 변경이 가능하지 않은 경우에는 기판 또는 부품을 새롭게 생성할 필요가 존재한다. 이하에서는 기판과 부품을 신규로 생성하는 과정 을 통해 개발대상 정보시스템의 애플리케이션 구조명세서를 생성하는 방법을 설명한다.
도 17은 전체기판을 정의하고 작성하는 과정을 도시한 흐름도이다.
도 17을 참조하면, 사용자가 전체기판 작성을 선택한 후 기판식별정보, 프로젝트정보, 디렉토리정보, 업종/업무정보 및 영속성 객체정보를 포함하는 전체기판정보를 입력하면(S1700), 정보시스템 개발장치(100)는 입력받은 전체기판정보를 포함하는 애플리케이션 구조명세서를 생성한다(S1710). 다음으로, 정보시스템 개발장치(100)는 사용자로부터 입력받은 프레임워크정보 및 플랫폼정보를 포함하는 개발환경정보를 기초로 XML로 작성된 애플리케이션 구조스키마를 생성한다(S1720). 마지막으로, 정보시스템 개발장치(100)는 생성한 애플리케이션 구조스키마를 기초로 애플리케이션 구조명세서에 포함되어 있는 전체기판정보를 변경한다(S1730). 이와 같이 생성된 전체기판에 대한 정보는 중간기판 생성규칙으로 정의되어 중간기판 생성시 가이드로서 역할과 정합성 여부 체크기능을 수행한다.
도 18은 중간기판을 정의하고 작성하는 과정을 도시한 흐름도이다.
도 18을 참조하면, 사용자가 중간기판을 생성할 전체기판을 선택하고 기판식별정보 및 디렉토리정보를 포함하는 중간기판정보를 입력하면(S1800), 정보시스템 개발장치(100)는 입력받은 중간기판정보를 기초로 기생성한 애플리케이션 구조명세서를 변경하여 중간기판을 부가한다(S1810). 다음으로, 정보시스템 생성장치(100)는 사용자로부터 중간기판의 부품 포함여부를 입력받는다(S1820). 이 때, 부품을 포함하지 않는 중간기판은 단순히 시스템을 구조화하는 과정에 서브시스템의 분류 및 영향 범위 설정의 역할을 담당하기 위해 정의된다. 만약 사용자가 부품을 포함하는 중간기판을 생성하고자 하면, 추가적인 정보요소를 정의할 필요가 있다 . 추가적인 정보요소는 중간기판이 참조하거나 유지하는 영속성 객체정보로서, 정보시스템 생성장치(100)는 사용자로부터 입력받은 영속성 객체정보를 기초로 기본적인 인터페이스 정보와 영속성 객체를 유지하기 위한 트랜젝션 정보를 추출한다(S1830). 여기서 중간기판의 인터페이스 정보 및 관련된 영속성 객체의 속성정보는 컴포넌트기반개발(CBD; Component Based Development)에서 이야기하는 컴포넌트 명세로 정의되는 컴포넌트의 인터페이스 및 정보모델 명세와 유사한 속성을 갖고 있다. 하지만 여기서 중간기판은 하나의 단위 모듈정의를 위한 명세에 치중하여 설계와 구현을 분리하는데 역점을 두고 있는 컴포넌트와는 다르게 개발 구축시 필요한 애플리케이션 프레임워크 정보와 운영을 위한 플랫폼 정보를 포괄하며 이러한 정보의 구성 및 정의를 유연성있게 구성 유지하여 활용과 적용 측면에 보다 더 중점을 두고 있다는 점이 큰 차이점이라고 할 수 있다. 정보시스템 생성장치(100)는 이와 같이 추출되어 설정된 중간기판의 인터페이스 및 트랜젝션 정보에 대한 사용자에 의한 최종 확인 및 조정과정을 수행한 후 상기의 과정에 의해 정의된 중간기판과 관련된 정보를 애플리케이션 구조명세서에 중간기판 구조명세로 입력한다(S1840). 이상의 과정에 의해 생성된 중간기판은 추후 작은기판 생성시 가이드 및 정합성 체크기능을 수행하며, 중간기판 상에 생성될 수 있는 부품의 생성 규칙으로서 부품의 정합성 체크기능을 수행한다.
도 19는 작은기판을 정의하고 작성하는 과정을 도시한 흐름도이다.
도 19를 참조하면, 작은기판은 중간기판에 종속적이며 중간기판 중 영속성 객체와 그것에 대한 인터페이스를 포함하고 있는 중간기판의 하위기판으로 정의된다. 따라서 중간기판 중에 단순히 시스템의 분류를 위한 연결고리 역할을 하는 중간기판의 하위기판으로는 정의되지 않는다. 사용자가 작은기판을 정의하려고 하는 중간기판을 선택하면 정보시스템 생성장치(100)는 애플리케이션 구조명세서에 포함되어 있는 해당 중간기판에 대한 정보를 기초로 작은기판의 생성가능여부를 판단한다(S1900). 만약 작은기판의 생성이 가능한 것으로 판단되면, 정보시스템 생성장치(100)는 중간기판이 제공하는 인퍼테이스 목록을 사용자에게 출력한다(S1910). 다음으로, 정보시스템 생성장치(100)는 사용자가 선택한 변환대상 목록을 기초로 인터페이스를 변환한 후 사용자로부터 입력받은 기판식별정보 및 디렉토리정보를 포함하는 작은기판정보를 애플리케이션 구조명세서에 작은기판 구조명세로 입력한다(S1920). 이상의 과정을 거쳐 작성된 작은기판 구조명세에는 부품 생성규칙이 정의되어 부품생성시 정합성 체크기능을 수행한다.
도 20은 부품을 정의하고 작성하는 과정을 도시한 흐름도이다.
도 20을 참조하면, 부품은 중간기판과 작은기판 상에 정의된다. 부품은 그 속성상 중간기판에 정의되는 부품과 작은기판에 정의되는 부품으로 구분된다. 중간기판에 정의되는 부품은 영속성 객체를 유지하는 역할을 수행하여 서버로서 역할을 담당하며 반면에 작은기판에 정의되는 부품은 사용자 인터페이스를 통해 도출되는 명령을 수행하여 영속성 객체가 유지하는 정보를 조회하거나 유지관리하기 위한 정보 처리를 요청하는 등의 클라이언트로서의 역할을 담당한다. 먼저, 사용자가 부품 생성을 선택하면, 정보시스템 생성장치(100)는 사용자가 선택한 기판의 종류를 확인한다(S2000). 만약, 사용자가 선택한 기판이 중간기판이면(S2010), 정보시스템 생성장치(100)는 서버단 계층구조(Server Tier Layered Architecture)를 적용하고 계층별로 정의된 해당 부품들을 생성한다(S2020). 이와 달리, 사용자가 선택한 기판이 작은기판이면(S2010), 사용자단 계층구조(Client Tier Layered Architecture)를 적용하고 계층별로 정의된 해당 부품들을 생성한다(S2030). 다음으로, 정보시스템 개발장치(100)는 생성하고자 하는 부품이 화면용 부품인지 여부를 확인한다(S2040). 만약, 화면용 부품으로 확인되면, 정보시스템 개발장치(100)는 화면에 표시하는 정보 표현형태를 제목 표시부, 조건 처리부, 주요 정보 표시 및 편집부, 버튼 표시부, 페이지 네비게이션 처리부로 일반화하고, 주요 정보표시 및 편집부를 정보 편집 및 입력, 정보상세조회, 정보 목록조회로 세분화해서 화면표시영역을 생성/조정한다(S2050). 다음으로, 정보시스템 개발장치(100)는 출력형태조정기능을 이용하여 정의된 부품을 그룹화하거나 부품간의 연관관계를 재설정하여 화면표시영역과 관련된 부품에 대한 정의를 조정하고 생성된 화면의 내용을 표시하기 위한 처리로직 영역 부품과 연관관계를 정의하여 부품의 생성을 완료한다(S2060). 마지막으로, 정보시스템 생성장치(100)는 생성한 부품의 부품정보를 기초로 대응되는 중간기판 또는 작은기판에 대한 부품 구조명세를 작성하여 중간기판 또는 작은기판이 애플리케이션 구조 명세로서의 완전성을 갖도록 처리한다(S2070).
이상에서 설명한 본 발명에 따른 정보시스템 개발장치 및 방법은 개발대상 정보시스템의 규모를 나타내는 기능점수(Function Point)를 산정하는 구성요소를 추가적으로 구비할 수 있다. 이 때, 기능점수는 각종 소프트웨어 메트릭을 위해 필요한 지표로서 최근에는 개발 대가산정을 위한 기본자료로 활용되는 데이터이다. 기능점수의 산정은 구조명세서 생성부(170)에 의해 수행되며, 구조명세서 생성부(170)는 기능점수 산정에 필요한 데이터기능 측정 기본정보와 트랜젝션기능 측정을 위한 기본정보를 정의된 애플리케이션 구조명세서로부터 추출하여 기능점수 산정 규칙에 의거하여 기능점수를 산정하며, 산정된 기능정수를 다시 애플리케이션 구조명세서에 반영하여 최종적인 애플리케이션 구조명세서를 완성한다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서 본 발명의 바람직한 실시예에 대해 도시하고 설명하였으나, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.
본 발명에 따른 정보시스템 개발장치 및 방법에 의하면, 프로그램사양정보를 단순화하여 정의함으로써 용이하게 시스템의 구조를 파악할 수 있고, 시스템의 변경요구에 효과적으로 대응할 수 있다. 또한, 개발생명주기 기반의 개발 방법론에서 자주 나타나는 단계전환시 발생하는 문제, 특히, 설계사양을 프로그램으로 코딩하는 단계에서 참여자가 상이함으로서 발생하는 설계자와 코딩 개발자간의 커뮤니케이션 오류를 최소화할 수 있다. 또한, 기업의 정보시스템 구축 및 운영시에 시스템 사양정보의 관리 및 표현 방법을 개선하여 프로그램의 분해 및 조립을 가능하게 하고, 이를 통해 프로그램 재사용성을 높여 프로그램 개발 및 변경 작업을 쉽고 단순하게 함으로써 정보시스템 개발 및 운영에 있어서의 생산성을 향상시킬 수 있다.

Claims (19)

  1. 사용자로부터 개발대상 정보시스템에 적용될 플랫폼정보 및 프레임워크정보를 포함하는 개발환경정보 및 상기 개발대상 정보시스템의 분류식별정보를 입력받는 정보입력부;
    복수의 모듈의 계층적 결합구조 및 각각의 모듈의 속성정보가 마크업언어에 의해 표현된 적어도 하나 이상의 개발완료 정보시스템의 애플리케이션 구조명세서가 저장되는 데이터베이스부;
    상기 사용자로부터 입력받은 개발환경정보 및 분류식별정보에 대응되는 개발완료 정보시스템의 애플리케이션 구조명세서를 상기 데이터베이스부로부터 검색하 여 재사용대상 애플리케이션 구조명세서로서 출력하는 검색부;
    상기 재사용대상 애플리케이션 구조명세서를 구성하는 모듈 중에서 사용자가 선택한 모듈을 변경대상모듈로 설정하고, 상기 데이터베이스부에 저장되어 있는 개발완료 정보시스템을 구성하는 모듈 중에서 상기 개발대상 정보시스템의 환경정보 및 분류식별정보를 기초로 상기 변경대상모듈에 대응하는 재사용대상모듈을 결정하고, 상기 변경대상모듈의 상위모듈정보 및/또는 하위모듈정보를 포함하는 모듈변환정보 및 상기 개발환경정보에 의해 상기 재사용대상모듈을 변환한 후 상기 변경대상모듈을 상기 변환된 재사용대상모듈로 변경하는 모듈변환부; 및
    상기 재사용대상 애플리케이션 구조명세서에 포함되어 있는 상기 변환된 재사용대상모듈에 대응하는 구조명세정보를 기초로 상기 재사용대상 애플리케이션 구조명세서를 변경하여 상기 개발대상 정보시스템에 대응하는 애플리케이션 구조명세서를 생성하는 구조명세서 생성부;를 포함하는 것을 특징으로 하는 정보시스템 개발장치.
  2. 제 1항에 있어서,
    상기 개발대상 정보시스템에 대응하여 생성된 애플리케이션 구조명세서를 기초로 상기 개발대상 정보시스템의 데이터사양, 구조사양, 흐름통제 프로시져사양, 사용자인터페이스사양 중에서 적어도 하나를 포함하는 출력사양 중에서 사용자가 선택한 출력사양을 생성하여 출력하는 산출물 출력부를 더 포함하는 것을 특징으로 하는 정보시스템 개발장치.
  3. 제 1항에 있어서,
    상기 개발완료 정보시스템에 대응하는 애플리케이션 구조명세서를 구성하는 각각의 모듈에 대응하는 소스코드가 저장되는 코드저장부를 더 포함하며,
    상기 개발대상 정보시스템에 대응하여 생성된 애플리케이션 구조명세서를 구성하는 각각의 모듈에 대응하는 소스코드를 상기 코드저장부로부터 독출하고, 상기 개발환경정보 및 상기 개발대상 정보시스템에 대응하여 생성된 애플리케이션 구조명세서를 기초로 상기 독출한 소스코드들을 결합하여 상기 개발대상 정보시스템의 프로토타입 시스템을 생성하는 프로토타입 생성부를 더 포함하는 것을 특징으로 하는 정보시스템 개발장치.
  4. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    상기 모듈은,
    사용자로부터 입력받은 상기 정보시스템의 분류식별정보와 기능별 관리항목으로 구성되는 객체정보 및 상기 개발환경정보를 포함하는 제1모듈;
    상기 제1모듈 상에 정의되어 상기 정보시스템이 제공하는 각각의 기능에 대응하여 구비되며, 상기 프레임워크정보에 포함되어 있는 계층구조정보, 상기 계층구조정보를 기초로 정의되는 디자인 패턴정보, 상기 정보시스템의 해당되는 기능을 구현한 인터페이스 운영자로 구성된 인터페이스정보 및 상기 정보시스템의 해당되는 기능에 대응하는 관리항목을 포함하는 제2모듈; 및
    상기 제2모듈의 계층구조정보에 적용가능한 디자인 패턴정보를 기초로 상기 제2모듈 상에 정의되며, 상기 정보시스템의 구현시 사용되는 클래스 또는 소스코드에 대응되는 제3모듈;을 포함하는 것을 특징으로 하는 정보시스템 개발장치.
  5. 제 4항에 있어서,
    상기 제1모듈 및 제2모듈은 각각의 모듈에 고유하게 부여되는 모듈식별정보, 각각의 모듈과 관련된 프로그램 자원이 위치하는 디렉토리의 경로정보 및 상기 정보시스템이 공통으로 참조하는 참조라이브러리정보를 포함하며,
    상기 제3모듈은 각각의 모듈에 고유하게 부여되는 모듈식별정보 및 상기 제3모듈에 대응하는 클래스 또는 소스코드가 위치하는 디렉토리의 경로정보를 포함하는 것을 특징으로 하는 정보시스템 개발장치.
  6. 제 4항에 있어서,
    상기 모듈변환정보는 상기 재사용대상모듈의 계층구조정보 및 디자인 패턴정보를 포함하는 것을 특징으로 하는 정보시스템 개발장치.
  7. 제 1항 내지 제 3항 중 어느 한 항에 있어서,
    상기 모듈은,
    사용자로부터 입력받은 상기 정보시스템의 분류식별정보와 기능별 관리항목으로 구성되는 객체정보 및 상기 개발환경정보를 포함하는 제1모듈;
    상기 제1모듈 상에 정의되어 상기 정보시스템이 제공하는 각각의 기능에 대응하여 구비되며, 상기 프레임워크정보에 포함되어 있는 계층구조정보, 상기 계층구조정보를 기초로 정의되는 디자인 패턴정보, 상기 정보시스템의 해당되는 기능을 구현한 인터페이스 운영자로 구성된 인터페이스정보 및 상기 정보시스템의 해당되는 기능에 대응하는 관리항목을 포함하는 제2모듈;
    상기 제2모듈 상에 정의되어 상기 제2모듈에 의해 구현되는 기능을 수행하기 위한 단위프로세스에 대응하여 구비되며, 상기 프레임워크정보에 포함되어 있는 계층구조정보, 상기 계층구조정보를 기초로 정의되는 디자인 패턴정보, 상기 제2모듈의 관리항목 및 상기 제2모듈과의 인터페이스 운영자로 구성된 인터페이스정보를 포함하는 제3모듈; 및
    상기 제2모듈 또는 제3모듈의 계층구조정보에 적용가능한 디자인 패턴정보를 기초로 상기 제2모듈 또는 제3모듈 상에 정의되며 상기 정보시스템의 구현시 사용되는 클래스 또는 소스코드에 대응되는 제4모듈;을 포함하는 것을 특징으로 하는 정보시스템 개발장치.
  8. 제 7항에 있어서,
    상기 제1모듈 내지 제3모듈은 각각의 모듈에 고유하게 부여되는 모듈식별정보, 각각의 모듈과 관련된 프로그램 자원이 위치하는 디렉토리의 경로정보 및 상기 정보시스템이 공통으로 참조하는 참조라이브러리정보를 포함하며,
    상기 제4모듈은 각각의 모듈에 고유하게 부여되는 모듈식별정보 및 상기 제4 모듈에 대응하는 클래스 또는 소스코드가 위치하는 디렉토리의 경로정보를 포함하는 것을 특징으로 하는 정보시스템 개발장치.
  9. 제 7항에 있어서,
    상기 모듈변환정보는 상기 재사용대상모듈의 계층구조정보 및 디자인 패턴정보를 포함하는 것을 특징으로 하는 정보시스템 개발장치.
  10. 사용자로부터 개발대상 정보시스템에 적용될 플랫폼정보 및 프레임워크정보를 포함하는 개발환경정보 및 상기 개발대상 정보시스템의 분류식별정보를 입력받는 단계;
    개발완료 정보시스템의 애플리케이션 구조명세서를 구성하는 복수의 모듈의 계층적 결합구조 및 각각의 모듈의 속성정보가 마크업언어에 의해 표현된 적어도 하나 이상의 개발완료 정보시스템의 애플리케이션 구조명세서가 저장되어 있는 데이터베이스로부터 상기 사용자가 입력한 개발환경정보 및 분류식별정보에 대응되는 개발완료 정보시스템의 애플리케이션 구조명세서를 검색하여 재사용대상 애플리케이션 구조명세서로서 출력하는 단계;
    상기 재사용대상 애플리케이션 구조명세서를 구성하는 모듈 중에서 사용자가 선택한 모듈을 변경대상모듈로 설정하고, 상기 개발완료 정보시스템의 애플리케이션 구조명세서를 구성하는 모듈 중에서 상기 개발대상 정보시스템의 개발환경정보 및 분류식별정보를 기초로 상기 데이터베이스로부터 상기 변경대상모듈에 대응하는 재사용대상모듈을 검색하여 출력하는 단계;
    상기 변경대상모듈의 상위모듈정보 및/또는 하위모듈정보를 포함하는 모듈변환정보 및 상기 개발환경정보에 의해 상기 재사용대상모듈을 변환한 후 상기 변경대상모듈을 상기 변환된 재사용대상모듈로 변경하는 단계; 및
    상기 재사용대상 애플리케이션 구조명세서에 포함되어 있는 상기 변환된 재사용대상모듈에 대응하는 구조명세정보를 기초로 상기 재사용대상 애플리케이션 구조명세서를 변경하여 상기 개발대상 정보시스템에 대응하는 애플리케이션 구조명세서를 생성하는 단계;를 포함하는 것을 특징으로 하는 정보시스템 개발방법.
  11. 제 10항에 있어서,
    상기 개발대상 정보시스템에 대응하여 생성된 애플리케이션 구조명세서를 기초로 상기 개발대상 정보시스템의 데이터사양, 구조사양, 흐름통제 프로시져사양, 사용자인터페이스사양 중에서 적어도 하나를 포함하는 출력사양 중에서 사용자가 선택한 출력사양을 생성하여 출력하는 단계를 더 포함하는 것을 특징으로 하는 정보시스템 개발방법.
  12. 제 10항에 있어서,
    상기 개발대상 정보시스템에 대응하여 생성된 애플리케이션 구조명세서를 구성하는 각각의 모듈에 대응하는 소스코드들을 코드저장수단으로부터 독출하고, 상기 독출한 소스코드들을 결합하여 상기 개발대상 정보시스템의 프로토타입 시스템 을 생성하는 단계를 더 포함하는 것을 특징으로 하는 정보시스템 개발방법.
  13. 제 10항 내지 제 12항 중 어느 한 항에 있어서,
    상기 모듈은,
    사용자로부터 입력받은 상기 정보시스템의 분류식별정보와 기능별 관리항목으로 구성되는 객체정보 및 상기 개발환경정보를 포함하는 제1모듈;
    상기 제1모듈 상에 정의되어 상기 정보시스템이 제공하는 각각의 기능에 대응하여 구비되며, 상기 프레임워크정보에 포함되어 있는 계층구조정보, 상기 계층구조정보를 기초로 정의되는 디자인 패턴정보, 상기 정보시스템의 해당되는 기능을 구현한 인터페이스 운영자로 구성된 인터페이스정보 및 상기 정보시스템의 해당되는 기능에 대응하는 관리항목을 포함하는 제2모듈; 및
    상기 제2모듈의 계층구조정보에 적용가능한 디자인 패턴정보를 기초로 상기 제2모듈 상에 정의되며, 상기 정보시스템의 구현시 사용되는 클래스 또는 소스코드에 대응되는 제3모듈;을 포함하는 것을 특징으로 하는 정보시스템 개발방법.
  14. 제 13항에 있어서,
    상기 제1모듈 및 제2모듈은 각각의 모듈에 고유하게 부여되는 모듈식별정보, 각각의 모듈과 관련된 프로그램 자원이 위치하는 디렉토리의 경로정보 및 상기 정보시스템이 공통으로 참조하는 참조라이브러리정보를 포함하며,
    상기 제3모듈은 각각의 모듈에 고유하게 부여되는 모듈식별정보 및 상기 제3 모듈에 대응하는 클래스 또는 소스코드가 위치하는 디렉토리의 경로정보를 포함하는 것을 특징으로 하는 정보시스템 개발방법.
  15. 제 13항에 있어서,
    상기 모듈변환정보는 상기 재사용대상모듈의 계층구조정보 및 디자인 패턴정보를 포함하는 것을 특징으로 하는 정보시스템 개발방법.
  16. 제 10항 내지 제 12항 중 어느 한 항에 있어서,
    상기 모듈은,
    사용자로부터 입력받은 상기 정보시스템의 분류식별정보와 기능별 관리항목으로 구성되는 객체정보 및 상기 개발환경정보를 포함하는 제1모듈;
    상기 제1모듈 상에 정의되어 상기 정보시스템이 제공하는 각각의 기능에 대응하여 구비되며, 상기 프레임워크정보에 포함되어 있는 계층구조정보, 상기 계층구조정보를 기초로 정의되는 디자인 패턴정보, 상기 정보시스템의 해당되는 기능을 구현한 인터페이스 운영자로 구성된 인터페이스정보 및 상기 정보시스템의 해당되는 기능에 대응하는 관리항목을 포함하는 제2모듈;
    상기 제2모듈 상에 정의되어 상기 제2모듈에 의해 구현되는 기능을 수행하기 위한 단위프로세스에 대응하여 구비되며, 상기 프레임워크정보에 포함되어 있는 계층구조정보, 상기 계층구조정보를 기초로 정의되는 디자인 패턴정보, 상기 제2모듈의 관리항목 및 상기 제2모듈과의 인터페이스 운영자로 구성된 인터페이스정보를 포함하는 제3모듈; 및
    상기 제2모듈 또는 제3모듈의 계층구조정보에 적용가능한 디자인 패턴정보를 기초로 상기 제2모듈 또는 제3모듈 상에 정의되며 상기 정보시스템의 구현시 사용되는 클래스 또는 소스코드에 대응되는 제4모듈;을 포함하는 것을 특징으로 하는 정보시스템 개발방법.
  17. 제 16항에 있어서,
    상기 제1모듈 내지 제3모듈은 각각의 모듈에 고유하게 부여되는 모듈식별정보, 각각의 모듈과 관련된 프로그램 자원이 위치하는 디렉토리의 경로정보 및 상기 정보시스템이 공통으로 참조하는 참조라이브러리정보를 포함하며,
    상기 제4모듈은 각각의 모듈에 고유하게 부여되는 모듈식별정보 및 상기 제4모듈에 대응하는 클래스 또는 소스코드가 위치하는 디렉토리의 경로정보를 포함하는 것을 특징으로 하는 정보시스템 개발방법.
  18. 제 16항에 있어서,
    상기 모듈변환정보는 상기 재사용대상모듈의 계층구조정보 및 디자인 패턴정보를 포함하는 것을 특징으로 하는 정보시스템 개발방법.
  19. 제 10항 내지 제 12항 중 어느 한 항에 기재된 정보시스템 개발방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020050081616A 2005-09-02 2005-09-02 정보시스템 개발장치 및 방법 KR100656419B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050081616A KR100656419B1 (ko) 2005-09-02 2005-09-02 정보시스템 개발장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050081616A KR100656419B1 (ko) 2005-09-02 2005-09-02 정보시스템 개발장치 및 방법

Publications (1)

Publication Number Publication Date
KR100656419B1 true KR100656419B1 (ko) 2006-12-11

Family

ID=37732936

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050081616A KR100656419B1 (ko) 2005-09-02 2005-09-02 정보시스템 개발장치 및 방법

Country Status (1)

Country Link
KR (1) KR100656419B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8850389B2 (en) 2010-10-28 2014-09-30 Samsung Sds Co., Ltd. Apparatus and method for generating applications automatically
KR101647765B1 (ko) * 2015-03-20 2016-08-12 (주)솔트웍스 문서 통합 관리 시스템
KR20170072023A (ko) * 2015-12-16 2017-06-26 (주) 지플러그 게임 서버 운용의 최적화 방법
KR101754258B1 (ko) * 2016-06-27 2017-07-05 주식회사 한글과컴퓨터 마크업 언어 기반 문서에 대한 동시 편집 정합성 검증 장치 및 방법
KR101774267B1 (ko) * 2016-06-27 2017-09-04 주식회사 한글과컴퓨터 전자 문서의 공동 편집을 위한 협업 지원 장치 및 그 동작 방법
KR101826625B1 (ko) * 2016-08-04 2018-02-07 주식회사 한글과컴퓨터 문서의 동시 편집을 지원하는 문서 협업 지원 장치 및 그 동작 방법

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8850389B2 (en) 2010-10-28 2014-09-30 Samsung Sds Co., Ltd. Apparatus and method for generating applications automatically
KR101647765B1 (ko) * 2015-03-20 2016-08-12 (주)솔트웍스 문서 통합 관리 시스템
KR20170072023A (ko) * 2015-12-16 2017-06-26 (주) 지플러그 게임 서버 운용의 최적화 방법
KR101754258B1 (ko) * 2016-06-27 2017-07-05 주식회사 한글과컴퓨터 마크업 언어 기반 문서에 대한 동시 편집 정합성 검증 장치 및 방법
KR101774267B1 (ko) * 2016-06-27 2017-09-04 주식회사 한글과컴퓨터 전자 문서의 공동 편집을 위한 협업 지원 장치 및 그 동작 방법
KR101826625B1 (ko) * 2016-08-04 2018-02-07 주식회사 한글과컴퓨터 문서의 동시 편집을 지원하는 문서 협업 지원 장치 및 그 동작 방법

Similar Documents

Publication Publication Date Title
US8312414B2 (en) Method and system for executing a data integration application using executable units that operate independently of each other
US8234634B2 (en) Consistent method system and computer program for developing software asset based solutions
US8826225B2 (en) Model transformation unit
US20100077386A1 (en) System and a method for cross-platform porting of business applications and making them contexually-aware on target platforms
US8589877B2 (en) Modeling and linking documents for packaged software application configuration
US20090083268A1 (en) Managing variants of artifacts in a software process
EP2628071A1 (en) Method and system for developing data integration applications with reusable semantic types to represent and process application data
US20050108684A1 (en) Method and system for generating an application object repository from application framework metadata
Kling et al. MoScript: A DSL for querying and manipulating model repositories
KR100656419B1 (ko) 정보시스템 개발장치 및 방법
JPWO2017033441A1 (ja) システム構築支援システム、方法および記憶媒体
Da Silva et al. Integration of RE and MDE paradigms: the ProjectIT approach and tools
Pimentel et al. Tracking and analyzing the evolution of provenance from scripts
CN111008011A (zh) 一个面向电力平台应用开发的系统构建器
KR100985192B1 (ko) 소프트웨어 개발 시스템
US20120084224A1 (en) Automatically created report generator for managing information technology service projects
Sheldon et al. Professional Visual Basic 2012 and. NET 4.5 Programming
Späth Learn Kotlin for Android Development
US20030028396A1 (en) Method and system for modelling an instance-neutral process step based on attribute categories
Kövesdán et al. Fast android application development with component modeling
Leonard et al. SQL Server 2012 integration services design patterns
Campesato Angular and Deep Learning Pocket Primer
Harzenetter Versioning of applications modeled in TOSCA
JP2001282512A (ja) アプリケーション起動メニュー定義ファイル生成装置及びアプリケーション起動メニュー生成装置
Marques Construção de Linguagens Específicas de Domínio ea sua Integração com Ides

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120906

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20131004

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140904

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20150930

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20160920

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170928

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20180927

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20191202

Year of fee payment: 14