KR101307711B1 - 소프트웨어 자산 기반 솔루션을 개발하기 위한 일관된 방법, 시스템 및 컴퓨터 프로그램 - Google Patents
소프트웨어 자산 기반 솔루션을 개발하기 위한 일관된 방법, 시스템 및 컴퓨터 프로그램 Download PDFInfo
- Publication number
- KR101307711B1 KR101307711B1 KR1020097018829A KR20097018829A KR101307711B1 KR 101307711 B1 KR101307711 B1 KR 101307711B1 KR 1020097018829 A KR1020097018829 A KR 1020097018829A KR 20097018829 A KR20097018829 A KR 20097018829A KR 101307711 B1 KR101307711 B1 KR 101307711B1
- Authority
- KR
- South Korea
- Prior art keywords
- asset
- decision
- decision tree
- assets
- tree
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000004590 computer program Methods 0.000 title abstract description 3
- 238000003066 decision tree Methods 0.000 claims abstract description 66
- 230000008859 change Effects 0.000 claims abstract description 9
- 238000012545 processing Methods 0.000 claims description 7
- 238000013461 design Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 238000010276 construction Methods 0.000 description 9
- 238000011161 development Methods 0.000 description 5
- 230000004913 activation Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0637—Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Educational Administration (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Game Theory and Decision Science (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 재사용가능 소프트웨어 자산들을 소비하기 위한 방법, 컴퓨터 프로그램 및 시스템에 관한 것으로서, 상기 자산은 요소들 및 속성들로 기술되고, 상기 자산들은 스스로 적어도 하나의 변형을 포함하는 적어도 하나의 가변 요소(VPs)를 포함한다. 사용자는 처음으로 소비될 자산을 선택함으로써 컴퓨터 상에 프로그램을 실행시킨다. 자산에 대응하는 결정 트리가 순회되는데, 여기서 각각의 결정 포인트는 가변 요소에 대응한다. 결정 포인트는 사용자에게 대응하는 가변 요소들의 변형들을 변경하기 위한 입력을 요청함으로써 처리된다. 변경된 가변 요소들은 저장된다. 결정 포인트의 의존성은 가변 요소의 의존성 속성에 의해 지시된다. 프로그램은 사용자의 주도로 또는 결정 트리가 완전히 순회되었을 때 멈출 수 있다. 결정 트리가 부분적으로 순회되었을 때, 프로그램은 최후의 처리된 결정 포인트 이후 부분적으로 변경된 대응하는 가변 요소로부터 시작하여 다시 시작할 수 있다.
자산 기반 솔루션, RAS, 결정 트리, 결정 포인트, 가이드된 자산, 가변성 포인트
Description
본 발명은 일반적으로 소프트웨어 솔루션의 개발에 관한 것이고, 보다 구체적으로는, 소프트웨어 자산 기반 솔루션을 개발하기 위한 방법에 적용된다.
소프트웨어 자산은 그 자산을 반복적으로 그 후의 콘텍스트에서 적용하기 위해 생성 또는 채집된(harvested) 하나 이상의 관련 아티팩트(artifacts)의 세트이다. 자산 소비자는 솔루션 비즈니스 모델링, 분석(사용되는 자산은 모델들임) 및 설계로부터 애플리케이션 개발(사용되는 자산은 코드의 부분들임)까지를 망라하는 임의 유형의 IT 또는 비즈니스 프로세스 솔루션의 기획자 또는 설계자이다.
IT 산업은 소프트웨어 자산 패키징을 표준화해 왔다. OMG(Object Management Group)(OMG는 미국 또는 다른 국가들에서 Object Management Group, Inc.의 상표 또는 등록상표임)의 RAS(Reusable Asset Specification)는 재사용가능 소프트웨어 자산의 구조, 콘텐츠 및 기술(descriptions)에 관한 한 세트의 가이드라인 및 권고사항이다(2005년 11월의 버전 2.2 참조). RAS는 일관된 패키징을 갖는 소프트웨어 자산들의 카테고리를 식별한다. RAS는 자산들의 커스텀화(customization)를 지원하는데, 이는 소프트웨어 자산 소비자에게 중요한 것이다. RAS에서, 자산은 아티팩트들의 용기이고, 가변성 포인트(Variability point)는 소비자에 의해 목적 솔루션으로 맞추어질 것으로 예상되는 아티팩트의 부분이다. RAS의 가변성 지원으로, 예를 들어, 자산의 서브세트만을 소비하는 것이 가능하다.
2003.3.6에 공개된 미국특허출원 제2003/0046282호는 자산 라이브러리로부터 사용자의 입력에 기초하여 소프트웨어의 서브세트를 선택적으로 검색하는 자산 검색 모듈을 개시한다. 이 특허출원은 또한 커스텀화에 대한 소비자의 결정에 기초하여 소프트웨어 자산들에 액세스하는 단계를 용이하게 하기 위한 솔루션을 제공하는 것을 목적으로 한다. 그러나, 이 특허출원의 목적은 자산의 액세스나 탐색보다는 자산의 생성 및 소비에 초점을 맞추고 있다.
소프트웨어 자산 패키징 및 액세스의 지원에 기초하여, 재사용가능 소프트웨어 자산의 소비에 대한 전적인 지원을 제공할 필요가 있다. RAS는 소프트웨어 자산의 설치, 커스텀화 및 사용에 대한 규칙들을 특정하는데 사용될 수 있다. RAS에서, 자산의 사용법 섹션은 자산의 설치, 커스텀화 및 사용에 대한 규칙들을 포함한다. 사용법 텍스트는 사용자에 의해 수행될 활동 또는 자산을 사용하기 위한 툴링(tooling)을 설명하지만, 이 개방형의 텍스트는 충분한 구조적 가이드를 제공하지 않는다.
자산을 소비하기 위해, 사용자는 또한 그가 구현하고자 하는 자산 기반 솔루션을 생각하고 있어야 한다. 1996년에 발행된, 노키아 연구 센터의 알랙산더 란(Alexandre Ran) 및 유하 쿠셀라(Juha Kuusela) 저의 설계 결정 트리(Design Decision Trees)라는 제목의 논문(IEEE, Proceedings of IWSSD-8)에는 설계 패턴의 계층적 구조를 이전의 결정에 의해 부과된 설계 결정 제약조건의 부분적 정렬인 설계 결정 트리에 적용하는 것이 권고되어 있다. 일반적으로, 결정 트리는 사용자가 최종 목적인 트리의 하나의 리프에 도달하기 위한 일련의 결정들을 하는데 있어서 도움을 줄 수 있다. 소프트웨어 자산 소비자는 한 세트의 소프트웨어 자산에 대응하는 설계 패턴을 적용함으로써 결정 트리를 내려올(get down) 수 있다. 일단 좋은 설계 경로(즉, 자산 기반 솔루션)가 결정되고 나면, 소비자는 RAS와 같이 저장소(repository)를 사용하여 목적 솔루션의 각각의 소프트웨어 자산의 커스텀화를 수행해야 한다.
이러한 유형의 접근법의 주요한 단점은, 자산 공급자가 자산 저장소들을 한 편에 생성하고 보통 텍스트 파일들(편집된 텍스트, HTML, XML, SGML 등을 포함)로 문서를 분리하기 때문에, 소프트웨어 자산 기반 솔루션을 만드는 자산 소비자는 정보의 두 개의 별도의 정보원(즉, 소비할 자산(들) 및 이 소비를 가이드할 결정 트리)에 의존하는데, 이렇게 되면: 결정 트리를 브라우징하고 어떤 경로를 택할지 결정(즉, 목적지로 가는 경로를 선택)하고, 둘째로, 자산을 커스텀화하기 위해 이 경로를 따라가는 두 단계의 접근법이 된다는 것이다. 소프트웨어 자산 소비자에게 두-단계(경로 결정, 소프트웨어 자산 커스텀화) 프로세스를 회피하는 목적 소프트웨어 솔루션을 만들기 위한 방법을 제공할 필요가 있다.
본 발명의 목적은 재사용가능 소프트웨어 자산들의 소비자에게 그의 자산 기반 솔루션을 설계하는 동시에 재사용된 소프트웨어 자산들을 커스텀화하기 위한 방법을 제공하는 것이다.
이 목적은, 특허청구범위의 청구항 1에 따라, 재사용가능 소프트웨어 자산들을 소비하기 위해 컴퓨터 상에서 실행되는 방법으로서, 각각의 자산은 결정 트리에 따라 커스텀화될 수 있고, 상기 자산들은 요소들 및 속성들을 포함하는 구조적 언어를 사용하여 기술되며, 일부 요소들은 가변 요소들(가변성 포인트들)이고, 각각의 가변 요소는 적어도 하나의 변형 요소(변형)를 포함하며, 상기 방법은, 사용자가 상기 컴퓨터에게 하나의 선택된 자산을 소비하길 원한다고 지시하는 단계; 및 상기 컴퓨터가 상기 선택된 자산의 상기 기술을 판독함으로써 결정 트리를 순회하고(traversing) - 상기 결정 트리에서는 각각의 결정 포인트가 상기 선택된 자산의 가변 요소로 코드화되어 있음 - 상기 결정 트리의 각각의 결정 포인트를 처리하는 단계를 포함하고, 상기 처리는, 상기 사용자에게 상기 가변 요소의 상기 적어도 하나의 변형 요소를 포함하는 상기 결정 포인트와 관계된 상기 가변 요소를 제공하는 단계; 상기 가변 요소의 변경을 사용자로부터 수집하는 단계; 상기 가변 요소를 그에 따라 변경하는 단계; 및 상기 변경된 자산 기술을 저장하는 단계에 의해 이루어지는 방법으로 달성될 수 있다.
본 발명의 목적은 또한 특허청구범위의 제2항 내지 제12항 중 어느 하나에 따른 재사용가능 소프트웨어 자산들을 소비하기 위한 방법에 의해 달성된다. 본 발명의 목적은 또한, 특허청구범위의 제13항에 따라, 컴퓨터 상에서 실행되었을 때 제1항 내지 제12항 중 어느 한 항에 따른 방법의 단계를 실행하기 위한 프로그래밍 코드 명령어들을 포함하는 컴퓨터 프로그램 제품에 의해 달성된다. 본 발명의 목적은 또한, 제14항에 따라, 제1항 내지 제12항 중 어느 한 항에 따른 방법을 실행하도록 구성된 수단을 포함하는 시스템에 의해 달성될 수 있다.
본 방법의 발명으로, 소프트웨어 자산 소비자는 자산을 소비하기 위해 이루어질 결정들 간의 계층적 관계들을 구현하는 기저의 결정 트리로 가이드된다. 결정 트리는 자산에 임베딩되고 각각의 결정 포인트를 자산의 가변성 포인트로 매핑함으로써 코드화된다. 결정 트리 가지들(하나의 결정 포인트로부터 이어지는 결정 포인트들로의 연계)은 가변성 포인트 의존성들에 의해 표현된다. 본 방법은 하나의 단계에서 소프트웨어 자산 기반 솔루션이 만들어지도록 허용한다.
본 솔루션의 장점은, 종래의 트리에 비해, 루트가 아닌 위치에서 결정 트리에 진입할 수 있거나, 리프가 아닌 노드에서 결정 트리를 빠져나올 수 있다는 것이다. 본 발명의 방법에 의하면, 결정들을 기록하는 동안 리프-레벨에 도달하기 전에 멈추는 것이 가능하다. 이는 매우 유연한 툴을 지원한다.
본 솔루션의 다른 장점들은 다음과 같이 열거될 수 있다:
- 본 발명의 솔수션에 의해, 자산을 소비하기 위한 지시 가이던스(prescriptive guidance) 및 자산 자체가 설계에 의해 공동으로 보내지는데, 이는 다음을 가능하게 한다:
자산 공급자는 더 이상 한 측의 저장소에 자산을 공급하고, 다른 측의 다른 저장소에 자산 가이던스(예를 들어, 텍스트 파일들)를 공급할 필요가 없고, 대신 올-인-원 자료(자산+가이던스)를 가이드된 자산 데이터베이스에 제공한다.
- 가이던스는 지속적으로 모든 규율에 대한 역할이 가능하게 되는데, 이는 협동(적합한 핸드 오버를 포함함)이 있는 끝에서 끝의 연계 모델을 지원하는데, 이는 다음을 허용한다:
자산 소비자는 커스텀화할 수 있는 자산을 소비하는 과정에서 그/그녀의 역할 및 관련 기술에 관한 결정을 내렸을 때 멈출 수 있다. 그/그녀는 이어서 그 이후의 결정을 담당하는 팀의 다음 소비자에게 결과 자산을 건네줄 수 있다. 이 프로세스는 서로 다른 역할들이 원래의 자산의 가변성 포인트들을 해결하는데 협동할 수 있도록 한다. 예를 들어, 사업 분석가가 사업 프로세스에 관한 모든 결정을 내리고, 이어서 그/그녀는 변경된 자산을 소프트웨어 기획자에게 건네주는데, 소프트웨어 기획자는 구조적 결정 등을 내릴 수 있다.
- 가이던스는 모두 규율에 대해 지속적으로 툴을 사용가능하게 된다:
각각의 가변성 포인트 정의가 표준 포맷(우리의 구현에서 RAS)으로 형식적으로 캡처되기 때문에, 사용자에게 변형들을 제시하는 것, 및 결정들을 내리는 프로세스는, 현재 결정이 요구사항, 구조, 사업 모델링, 설계, 또는 코드를 다루는지 여부에 관계없이, 툴에 의해 가능해질 수 있다.
자산 콘텐츠와 지시 가이던스를 캡처하는데 동일한 표준(바람직한 실시예에서 RAS)을 사용하는 것은 소프트웨어 벤더에게 상당한 규모의 경제를 가져올 수 있다: 하나의 툴링 프레임워크가 가이던스 및 자산 소비의 실행자를 지원할 수 있다. 이는 일반적인 툴링(각각의 자산 종류에 대해 전용인 툴링의 개발에 반해)으로부터 자산 소비를 가능하게 한다.
- 본 발명은 의존성들에만 제약된(일반적으로, 의존성들은 트리가 아닌 숲을 발생시킨다), 파라미터들 내의 다수의 경로를 얻는다. 본 발명의 트리는 동적이고 소비자의 전문적 목적에 따라 소비 방법의 각각의 소비자 패스에 의해 변경된다.
본 발명은 RAS v2.2를 사용하여 구현될 수 있다. 본 발명은 특정 표준 또는 상세내역(RAS 등)에 의존적이지 않고, RAS로 구현될 수 있다는 것에 주목할 필요가 있다. 또한, 이는 이어서 RAS(IBM RSA(Rational Software Architext)를 포함)를 지원하는(이해하는) 임의의 툴 또는 프레임워크에 의해 이용될 수 있다는 것을 암시하는데, RSA는 구성요소 기반 애플리케이션(SOA, J2EE 및 포탈)을 만드는 모델-주도 개발자들 및 소프트웨어 기획자들을 위한 모델-주도의 개발 및 정적 분석 툴이다.
도 1은 본 발명의 바람직한 실시예에 따라 '가이드된 자산들'의 데이터베이스를 생성하기 위한 논리 블록들을 도시하는 도면.
도 2는 본 발명의 바람직한 실시예에 따라 '가이드된 자산들'을 소비하기 위한 논리 블록들을 도시하는 도면.
도 3은 본 발명의 바람직한 실시예에 따라 '가이드된 자산들'을 생성하는 방법의 순서도.
도 4는 본 발명의 바람직한 실시예에 따라 '가이드된 자산들'을 소비하기 위한 방법의 순서도.
도 5(5A, 5B, 5C)는 본 발명의 바람직한 실시예에 따른 '가이드된 자산'의 한 예의 RAS 표현.
도 6은 도 5에 도시된 가이드된 자산의 RAS 표현 내에 구현되는 결정 트리의 그래픽 표현.
도 7은 본 발명의 다른 일 실시예에 따라 다수의 엔트리 포인트를 포함하는 '가이드된 자산들'을 소비하기 위한 방법의 순서도.
바람직한 실시예에서, 본 발명은 RAS v2.2로 구현된다.
도 1은 본 발명의 바람직한 실시예에 따라 '가이드된 자산들'의 데이터베이스를 생성하기 위한 논리 블록들을 도시한다. 사용자가 자산 기반 솔루션을 개발할 수 있도록 하기 위해, 가이드된 재사용가능 소프트웨어 자산들을 포함하는 데이터베이스가 생성되어야 한다. 일반적으로, 자산 데이터베이스들은 바람직하게는 데이터로의 용이한 액세스를 제공하는 관계형 데이터베이스들(소위 자산 저장소들)이다. 이 문서의 나머지 부분에서, 데이터베이스 또는 저장소는 관계없이 사용된다. 저장소들에서, 자산들은 RAS 기반 구조적 언어로 오브젝트들로 기술되는데, RAS 기반 구조적 언어는 파일 아티팩트 자신들(모델, 코드)로의 링크들 및 속성들로 검증된 요소들을 포함한다. 도 1은 저장소의 자산의 변경된 기술을 포함하는 가이드된 자산을 생성하기 위한 주요한 단계들을 도시한다. '가이드된 자산'의 기술은 자산을 어떻게 소비할지에 대한 정보를 포함하는데, 이 정보는 자산 소비자에게 단계별 가이던스를 제공할 것이다.
바람직한 실시예에서, '가이드된 자산' 데이터베이스를 생성하기 위한 방법은 컴퓨터(160) 상에서 실행되는 자산들을 소비하기 위한 소프트웨어 애플리케이션(120) 내의 초기 동작(130, 140)이다. 이 동작(130, 140)은 자산 공급자 자신에 의해 또는 솔루션을 개발하고 IT 전문가에게 가이드된 소프트웨어 자산들을 제공하는 회사에 의해 수행될 수 있다. 자산 자신들(모델, 코드)은 자산 저장소(100)에 위치되고, 입력으로 사용된다. '가이드된 자산들'의 생성의 순서도는 이후 이 문서에서 도 3의 설명과 관련하여 설명된다. 전체적으로, 자산 저장소로부터 판독된 각각의 자산에 대해, 결정 트리가 자산 소비 정보(110)로부터 검색되고(130), 이어서 코드화되고(codified) 자산에 임베딩된다(140). 결과적인 '가이드된 자산'은 '가이드된 자산' 저장소(150)에 저장된다.
바람직한 실시예에서, 자산 소비 정보는 '자산 소비 가이던스 정보' 데이터베이스에 텍스트 파일들(편집된 텍스트, HTML, XML, SGML 등을 포함)으로 저장된 다. 이 텍스트 파일들은 프로그램의 자동 실행에 의한 데이터로부터 결정 트리의 자동 추출을 허용하지 않는다. 이것이 결정 트리의 생성(130)이 보통 검증된 오퍼레이터(138)에 의해 사용자 인터페이스(바람직하게는 그래픽 사용자 인터페이스(135))를 통해 수행되는 이유이다. 만약 소프트웨어 자산 소비 가이던스 정보가 표준화된 방법으로 저장된다면, 이러한 인간의 개입은 더 이상 필요하지 않다. 장래에는, 자산 공급자가 더 이상 자산 저장소 및 자산 정보 데이터베이스를 유지하지 않을 것이고, 대신 하나의 공급된 '가이드된 자산' 저장소를 직접적으로 처리할 것이다.
또한, '가이드된 자산 데이터베이스'의 생성을 가져오는 모든 언급된 프로그램(130, 135 및 140)은 서로 다른 컴퓨터들에서 실행될 수 있다.
도 2는 본 발명의 바람직한 실시예에 따라 '가이드된 자산들'을 소비하기 위한 논리 블록들을 도시한다. 일단 가이드된 자산 저장소가 만들어지고 나면, 자산-기반 솔루션을 생성하기 위해, IT 전문가(자산 소비자)는 같은 컴퓨터(160) 또는 서로 다른 컴퓨터에서 실행될 수 있는 자산을 소비하기 위한 프로그램(120)의 부분(230, 240)을 실행함으로써 가이드된 방법으로 소프트웨어 자산들을 커스텀화할 것이다. 자산 소비자는 커스텀화된 가이드된 자산(220)을 생성하기 위해 바람직하게는 그래픽 사용자 인터페이스(200)를 통하여 가이드된 자산 데이터베이스(150)에 액세스할 것이다. 프로그램은 사용자에게 그리고 각각의 자산에 대해 결정 트리를 디스플레이할 것이다(230). 프로그램은 이어서 결정 트리의 각각의 결정 포인트에서 사용자의 입력을 캡처하고(240) 가이드된 자산들을 그에 따라 커스텀화할 것이 다. 자산이 소비될 때, 최종 솔루션(추가적 사용법을 위해 갱신된 모델 또는 코드)의 발전이 당업자에게 잘 알려진 것처럼 이루어지며, 솔루션을 완성하는 이 단계는 본 발명의 범위 밖이다.
도 3은 본 발명의 바람직한 실시예에 따라 '가이드된 자산들'을 생성하는 방법의 순서도이다. 가이드된 자산을 생성하기 위한 프로그램(130, 140)은 자산이 동일한 컴퓨터(160) 또는 서로 다른 컴퓨터 상의 자산들을 소비하기 위한 프로그램(230, 240)의 실행에 의해 소비될 수 있기 전에 컴퓨터(160) 상에 실행된다.
제1 자산이 자산 저장소 데이터베이스(100)로부터 판독된다. 바람직한 실시예에서, 자산들은 표준화된 방식(예를 들어, RAS 2.2를 사용함)으로 데이터베이스에 저장된다. 만약 자산이 발견되면(판단(310)에서 예), 대응하는 결정 트리가 자산 소비 가이던스 정보 데이터베이스(110)로부터 추출된다(320).
루트 결정 포인트가 식별된다(330). 이는 결정 트리의 가지들로 가능한 제1 선택에 대응한다. 다음 단계는, 이전에 식별된 결정 포인트(330)에서 이용가능한 정보와 이전에 자산 소비 가이던스 정보 데이터베이스(110)로부터 추출된 트리(320)에 포함된 정보를 이용함으로써, 자산 내에 가변성 포인트(VP)를 생성하고, 이 VP의 속성들을 설정한다(340). 이 정보는 다음을 포함한다:
변형들(variants)의 한 세트: 결정 포인트는 이미 자산과 함께 패키징된 적어도 하나의 가능한 선택 또는 대안(이하 문서에서 '변형들'이라 불림)의 한 세트를 포함한다. 또한, 이 변형들 중 하나는 자산 소비자에 의해 변경이 이루어지지 않는 경우 디폴트로 사용되는 것일 수 있다;
변형들 간의 동거(cohabitation)의 규칙을 식별하는 파라미터(예를 들어, 변형 로직: 포괄적(inclusive), 배타적(exclusive), 선택적(optional));
툴들: 자동화 및 콘텍스트를 지원하기 위해, 각각의 가변성 (결정) 포인트는 그것을 처리할 수 있는 소프트웨어 툴들(결정을 만들기 위해 사용될 수 있는 툴들)을 열거할 필요가 있다. 도 5는 가변성 포인트들의 상세한 예들을 도시한다.
트리의 모든 결정 포인트들이 탐사될(explored) 때까지, 즉, 결정 트리 내에 더 이상의 자식(children)이 없을 때까지(판단(350)에서 아니오) 동일한 단계(340)가 반복된다(판단(350)에서 예). 가이드된 자산은 이어서 가이드된 자산 저장소(150)에 저장되고, 다음 자산이 자산 저장소로부터 판독된다(300).
추출된 결정 트리(320) 및 VP의 속성을 채우기 위한 정보(340)는 이 데이터들이 표준 방식으로 자산 소비 가이던스 정보 데이터베이스(110)에 저장되어 있는 경우에만 자산들을 소비하기 위한 프로그램(120)에 의해 자동으로 수행될 수 있다. 이전에 기술된 바와 같이, 도 1의 설명과 관련해서, 이 정보는 오늘날 일반적으로 표준화되어 있지 않고, 오퍼레이터(138)는 정보를 생성하는 초기 단계를 그것이 프로그램(120)에 의해, 자산 소비 가이던스 정보 데이터베이스(110) 내에서 사용자 인터페이스(바람직하게는 그래픽 사용자 인터페이스(135))를 제공하는 프로그램에 의해 소비될 수 있는 방식으로 수행할 수 있다. 이 단계는 또한 가이드된 자산들을 생성하는 과정과 동시에도 수행될 수 있다.
도 4는 본 발명의 바람직한 실시예에 따라 '가이드된 자산들'을 소비하기 위한 방법의 순서도이다. 자산들을 소비하기 위한 프로그램(120)의 이 부분은 컴퓨터(160) 상에서 실행되는데, 이 컴퓨터(160)는 가이드된 자산들의 생성을 위해 사용된 컴퓨터와 동일하거나 동일하지 않을 수 있다. 자산 소비자(IT 전문가)는 프로그램의 이 부분과 바람직하게는 그래픽 사용자 인터페이스(일반적으로 마법사(wizards))를 통하여 상호작용한다. 사용자는 그가 개발중인 자산 기반 솔루션에 어떤 자산들이 포함되어야 할 지 안다. 사용자는 그가 개발중인 솔루션의 세부 사항에 다라 자산들을 커스텀화하도록 가이드될 것이다.
제1 단계는 그래픽 사용자 인터페이스를 통해 사용자가 자산을 선택(400)할 수 있는 화면을 디스플레이하는 것이다. 자산이 선택되었을 때(판단(410)에서 예), 대응하는 결정 트리의 루트의 가변성 포인트의 위치가 프로그램에 의해 파악된다(420). 루트에 대응하는 VP 기술이 디스플레이되고(430) 사용자는 VP의 콘텐츠를 변경함으로써 그의 커스텀화 선택을 반영하는 루트 VP의 변경을 도입하기 위한 입력을 제공한다. 컴퓨터는 사용자에 의해 제안된 바대로 VP 기술을 갱신한다(440). 자산의 다음 결정 포인트(판단(450)에서 예)는, 사용자에 의해 선택되는 경우(판단(460)에서 예), 결정 트리가 순회되고(traversed) 각각의 노드가 방문될 때(판단(450)에서 아니오)까지 디스플레이되고 갱신된다(430, 440). 결정 트리는 동일한 결정 포인트에 의존하는 모든 결정 포인트를 방문함으로써 또는 각각의 가지를 계속적으로 방문함으로써 순회될 수 있는데, 즉, 결정 포인트들 사이의 의존 관계를 따르는 한 모든 트리 순회 전략 및 알고리즘이 사용될 수 있다. 이는 방법을 원 패스(one pass)로 실행함에 의해 자산을 커스텀화하는 제1 옵션이다. 이 문서의 이하에서 도 7을 참조하여 더 상세하게 되는 다른 하나의 가능성은 하나의 자산을 원 패스 이상으로 커스텀화하는 것이다. 이 경우, 제1 패스는 사용자가 멈추기로 결정할 때 끝날 수 있다(판단(460)에서 아니오). 이는 커스텀화의 결과가 부분적으로 소비된 자산이라는 것을 의미하며, 도 4는 가이드된 자산을 소비하기 위한 제1 패스를 나타낸다.
자산 소비자는 자산을 소비하기 위한 그의 선택을 입력하도록 가이드되는데, 이는 다음 이유 때문이다:
- 결정 포인트들은 트리 의존성에 따라 연속적으로 디스플레이된다;
- 각각의 결정 포인트에서, 컴퓨터는 VP 및 모든 VP 변형들의 기술을 디스플레이한다.
단계(440)에서, 가이드된 자산은 소비자의 선택들을 입력함으로써 갱신된다. 소비자의 선택들은 결정 포인트를 매핑하는 VP에 적용된다. 이는 소비자에 의해 이루어진 선택을 기록한다. 소비자는, 이 문서의 이하에 도 5를 참조하여 설명되는 바와 같이 자산을 기술하는 구조적 언어를 따라서, VP의 기술 내의 모든 것을 변경할 수 있다: 변형들 간의 동거의 규칙에 따라 변형을 억제하거나 추가함, 변형들의 속성들을 변경함 등.
도 5는 결정 포인트들이 충분히 설명되는 본 발명의 바람직한 실시예에 따른 '가이드된 자산'의 RAS 표현이다. 이 세부사항들은 본 발명이 어떻게 작동하는지 예시하기 위한 목적으로만 주어진 것이고, 임의의 구조적 언어(여기서 RAS v2.2 기반 구조적 언어)를 기초로 사용하여 구현되어야 하는 방법의 한정된 정의가 아니다. 또한, 바람직한 실시예에서 RAS 2.2의 확장을 제안하는 대신, 동일한 요소들 및 속성들이 사용되지만, 그들 중 일부는 특정 의미로 사용된다. 이 예에서, 우리는 통신 산업, 예를 들어 eTOM(Enhanced Telecom Operations Maps standardizing business process in the telecommunications industry)에 정의된 바와 같이 서비스 구현 및 활성화(Service Configuration and Activation)를 지원하는 한 세트의 애플리케이션 구성요소의 소스 코드 구현으로 구성되는 소프트웨어 자산을 고려한다.
보다 상세하게, 이 자산은 서비스 구축 구현(Service Construction Implementation)(서비스 순서 관리 시스템(Service Order Management System) 내)이 몇몇 가능한 대안들과 함께 제안되고 중요 성능 지시기 컴플라이언스 확인(Key Performance Indicator Compliance Check)(서비스 활성화 관리 시스템(Service Activation Management System) 내) 또한 대체적 구현들과 보내지도록 설계되어 왔다. 통신 산업에서, 사업 프로세스는 매우 안정적이지만, 그들의 단계들의 구현은 인-하우스 또는 외부 기능들이 사용되는지 여부에 따라 다를 것이다. 우리의 예에서, 만약 자산 공급자가 설계한 것이 자산 소비자가 서비스 구축의 특정 대안을 선택하였다면, 몇몇 외부 순서 생성(External Order Creation) 구현들(서비스 설계 시스템 내) 중에서 선택할 수 있도록 한다.
도 5는 위에서 설명된 것과 같은 자산의 예에 대한 가이드된 자산의 RAS 기반 단순화된 정의를 도시한다. 이 정의는 명확성을 위해 단순화되었다. 이 정의는 RAS 2.2에 맞는데, 만약 RAS 2.2를 따를 의도가 아니라면 자산을 기술하기 위한 임의의 다른 문법 옵션이 적합할 수 있다. 이 가이드된 자산 정의는 도 1 및 3에 설명된 방법의 실행에 의해 생성된다. 요소들(<asset>, <classification>, <VariabilityPoint>, <artifact> 등)을 사용하여 오브젝트를 기술하는 구조적 언어는 RAS를 기반으로 하며, 각각의 요소는 속성들(id, description, reference 등)을 갖는다.
기술은 도 5A의 처음 <asset> 태그와 도 5C의 마지막 </asset> 태그를 갖는 XML 텍스트이다. 중간의 다양한 아티팩트 태그들은 도 1 및 3의 설명과 관련하여 이 문서에서 이전에 설명된 바와 같이 자산의 다양한 가변성 포인트 및 그들의 변형들을 기술한다. 이 가변성 포인트들은 도 6에 도시된 바와 같이 대응하는 자산의 결정 트리의 결정 포인트들로 매핑된다. 결정 트리의 결정 포인트들은 자산 소비자가 도 2 및 도 4에 도시된 방법을 실행할 때 선택해야할 자산 커스텀화의 서로 다른 옵션들에 대응된다.
도 5B에, 두 가변성 포인트들이 두 아티팩트 상에 기술되어 있는데, "Asset consumption"에 대한 "root" 가변성 포인트(VP)가 아티팩트 "Telco Service Configuration and Activation component"에 기술되어 있고, "Service Construction implementation"에 대한 "VP1" 가변성 포인트가 아티팩트 " Servcie Construction"에 기술되어 있다.
도 5B에서, 루트 VP는 도 3에 도시된 바와 같은 자산의 커스텀화를 위한 보통의 엔트리이고, 커스텀화를 위한 가능한 대안이 없다('변형'이 없다). 속성 'reference'는 결정 트리 내의 루트 결정 포인트의 자리를 기술한다(루트는 선행하는 것이 없으므로 보이드(void)이다). 보다 일반적으로, 이 'reference' 속성은 결정 트리 내의 VP의 의존성을 검증할 것이다. VP들의 기술, 변형들의 종류들뿐 아니라 변형들 간의 동거를 가이드하는 규칙들은, 만약 존재한다면, 'context-id' 속성에 의해 제공된다. 루트 VP에 대한 'context-id'의 값은 "ctxt1"이다. RAS 2.2와의 호환성 때문에, 모든 VP의 'context-id'의 값은 도 5A에서 글로벌 <classification> 태그의 <context> 태그 아래 열거된다. 도 5A의 "ctx1" 기술은 변형들이 없으므로 이름 및 기술만을 포함한다.
도 5B는 vp1 결정 포인트에서, 자산 소비자가 커스텀화를 위한 선택들을 가질 것을 보여준다. vp1 VP는 각각 아티팩트 "Service Construction implementation option 1", "Service Construction implementation option 2" 및 "Service Construction implementation option 3"에 기술되는 세 변형들을 갖는다. vp1은 결정 트리의 루트에 의존하기 때문에, vp1 VP에 대한 속성 'reference'는 루트(reference="root")이다. vp1 VP에 대한 'context-id'의 값은 "ctx2"이다. 도 5A의 "ctx2" 기술은 이름, 기술, 변형 종류 및 동거 규칙("exclusive")을 포함한 다.
도 5C에, 두 아티팩트 상에 두 가변성 포인트가 기술되어 있는데, "External Order Creation implementation"에 대한 "vp2" 가변성 포인트(VP)가 아티팩트 "Service Design System"에 기술되어 있고, "KPI Compliance Check implementation"에 대한 "VP3" 가변성 포인트가 아티팩트 "KPI Compliance Check"에 기술되어 있다.
도 5C에서, "vp2" VP는 각각 아티팩트 "External Order implementation option 1" 및 "External Order implementation option 2"에 기술되는 두 변형들을 갖는다. vp2 VP에 대한 속성 'reference'는 vp1이다(reference="vp1" 결정 트리의 부모 노드). vp2 VP에 대한 'context-id'의 값은 "ctx3"이다. 도 5A의 "ctx3" 기술은 이름, 기술, 변형 종류 및 동거 규칙("exclusive")을 포함한다.
도 5C에서, "vp3" VP는 각각 아티팩트 "KPI Compliance Check option 1" 및 "KPI Compliance Check option 2"에 기술되는 두 변형들을 갖는다. vp2 VP에 대한 속성 'reference'는 vp1이다(reference="root" 결정 트리의 부모 노드). vp2 VP에 대한 'context-id'의 값은 "ctx4"이다. 도 5A의 "ctx4" 기술은 이름, 기술, 변형 종류 및 동거 규칙("exclusive")을 포함한다.
위에 언급된 바와 같이, 가변성 포인트들과 그들의 변형들은 동일한 콘텍스트를 포인팅함으로써 서로 연결되고, 콘텍스트 정의는 변형들을 조합하거나 하지 않는(우리 예에서는 배타적임) 규칙과 같은 세부사항뿐 아니라 수용가능한 변형들의 종류를 포함한다(J2EE Enterprise Archive file, Java Archive file, Java file).
가변성 포인트들 "Service Construction implementation" 및 "KPI Compliance Check implementation"은 "Asset Consumption" 가변성 포인트를 말하는데, 이는 결정 트리의 루트를 의미한다. 이는 결정 트리로의 엔트리 포인트를 반영한다.
가변성 포인트 "External Order Creation implementation"은 "Service Construction implementation" 가변성 포인트를 말한다. 이는 결정 트리의 구조에서 의존성을 반영한다.
이 바람직한 실시예는 RAS v2.2를 작은 하나의 예외와 함께 그대로 사용한다. RAS에서, VariabilityPoint 상의 레퍼런스 속성은 추가적인 배경 및 명확성을 제공하는데 사용될 수 있다; 우리는 <variability-point> XML 태그 상의 "reference" 속성의 의미를 가변성 포인트들 사이의 선행 관계를 캡처하기 위해 결정 트리의 구조(즉, 결정 포인트들이 고려되어야할 순서)를 반영하여 변경하였다.
도 6은 도 5의 RAS 표현에 의해 도시된 가이드된 자산의 결정 트리에 의해 암시되는 의존성 트리(600)의 그래픽 표현이다. 결정 포인트들은 root, vp1, vp2, vp3이다. 이하의 의존성들이 표현된다: vp2는 vp1에 대한 의존성을 갖는다; vp1 및 vp3는 root에 대한 의존성을 갖는다. 바람직한 실시예에서, 의존성들은 가이드된 자산 내의 VP의 'reference' 속성의 값에 대응한다. 각각의 결정 포인트에 대해, 의존성들은 결정 트리의 가능한 가지들을 코드화한다.
만약 하나의 자산과 관련된 소비 가이던스 정보(110)가 설계 모델 및 구현 모델을 포함한다면, 자산에는 두 개의 자연적인 논리적 결정 트리(설계 트리 및 구현 트리)가 존재한다. 가이드된 자산 내에, 하나의 결정 트리만이 만들어진다(즉, 자산당 하나의 결정 트리가 존재한다). 다수의 자연적인 논리적 트리가 하나의 자산 내에 존재하는 경우, 우리는 하나의 결정 포인트(가변성 포인트)를 시작에 추가하는데, 이는 루트라고 불린다. 루트 가변성 포인트는 이어서 단순히 사용자에게 어떤 자연적인 논리적 트리를 따라가고 싶은지(우리 예에서 설계 모델을 소비하고자 하는지 구현 모델을 소비하고자 하는지) 묻는다. 이는 가이드된 자산의 소비를 가이드하기 위해 항상 하나의 그리고 하나뿐인 결정 트리가 존재하도록 보장한다. 자산을 소비하기 위한 방법은 이어서 의존성들에 의해서만 제약된, 파라미터들 내의 다수의 경로들을 얻는다.
도 6에서, 트리들(610, 620 및 630)은 도 5의 가이드된 자산을 소비하기 위한 세 가지 방법을 도시한다. 참조번호(610)에서, 소비자는 Service Construction implementation vp1 결정 포인트의 옵션 1을 선택하는데, 이는 다른 변형들(옵션 2 및 옵션 3)에 배타적이다("ctx2" 콘텍스트의 기술에 따름). 이어서, 소비자는 External Order Creation implementation vp2 결정 포인트에서 옵션 2를 선택한다.
참조번호(620)의 소비된 자산으로는 가이드된 자산에 변경이 이루어지지 않는데, 이는 사용자가 그것을 소비하지 않기로 결정했기 때문이다. 참조번호(630)에서, 자산 소비자는 결정 트리의 연속적인 결정 포인트들에서 상이한 변형들을 선택했다.
원 패스 이상을 허용하는 가이드된 자산을 소비하기 위한 방법의 확장은 도 7의 순서도로 설명된다. 자산을 소비하기 위한 제1 패스가 수행되었고(도 4) 가이드된 자산의 결정 트리가 전부 순회되지는 않았다고 가정하면, 트리의 모든 결정 포인트들이 처리되지 않았다(430, 440): 처리되지 않은 결정 트리의 결정 포인트들의 대응하는 가변성 포인트들은 갱신되지 않았다(440). 제1 패스에 이어지는 패스들에 대해, 소비자는 이전 패스의 이미 처리된(430, 440) 결정 포인트나 최후에 이미 방문한 결정 포인트 이후(의존성 트리에서)의 결정 포인트일 수 있는 하나의 '엔트리 포인트'에 의해 결정 트리 탐사를 재진입할 수 있다. 소비자는 이 도 7의 보다 일반적인 순서도에서, 결정 트리의 모든 엔트리 포인트들(도 4의 순서도의 제1 패스의 유일한 엔트리 포인트인 결정 트리의 루트를 포함함) 중에 하나의 엔트리 포인트를 선택하도록 제안받는다.
일단 사용자가 선택한(판단(410)에서 예) 가이드된 자산을 컴퓨터가 판독하면(400), 컴퓨터는 자산의 엔트리 가능성 포인트들의 위치를 파악한다(700): 만약 이전 패스에서 모든 결정 포인트들이 처리된 것이 아니라면(판단(710)에서 예), 소비자는 그들 중의 하나를 선택하도록 요청되고, 만약 하나가 선택되면(판단(720)에서 예), 결정 포인트가 처리되어 사용자는 그 선택을 입력하도록 요청되고(430) 컴퓨터는 자산의 대응하는 가변성 포인트를 그에 따라 갱신한다(440). 방금 처리된 결정 포인트의 가변성 포인트를 억제함으로써, 그리고 자산의 의존성 트리에 다음의 결정 포인트(들)(결정 트리의 자식)를 추가함으로써 엔트리 포인트들의 리스트를 유지하기 위해 새로운 단계가 추가된다(730). 이 리스트는 모든 엔트리 포인트들의 위치를 파악하기 위한 다음 단계(700)를 실행하기 위해 컴퓨터에 의해 판독된 다.
가이드된 자산을 소비하기 위한 프로그램은 소비자가 소비할 자산을 선택하지 않아서(판단(410)에서 아니오) 끝날 수 있다. 만약 컴퓨터가 더 이상 남아있는 엔트리 포인트가 없기 때문에 어떠한 엔트리 포인트도 발견하지 않거나(판단(710)에서 아니오), 소비자가 남아있는 엔트피 포인트들을 처리하도록 선택하지 않으면(판단(720)에서 아니오), 선택된 자산의 처리는 완료되고 컴퓨터는 자산을 처리된 대로(즉, 자산이 소비자에 의해 전체적으로(판단(710)에서 아니오) 또는 부분적으로(판단(720)에서 아니오) 소비된 대로) 저장한다(740).
도 7의 순서도로 설명된 프로세스의 변형은 소비자가 가이드된 자산의 한 부분만을 소비했을 때(판단(720)에서 아니오) 부분적으로 소비된 가이드된 자산이 새로운 가이드된 자산으로 저장되는(판단(720)에서 아니오) 것이다. 그 이유는 자산이 어떻게 소비될지에 달려있다. 소비자는 대응하는 VP의 변형을 선택함으로써 결정 포인트를 처리할 수 있다(430, 440). 그러나, 결정 포인트에서, 소비자는, 예를 들어, 새로운 변형을 추가함으로써, 그리고 도 5B의 가이드된 자산 기술에서 보이는 바와 같이 <reference value=filename.jar>를 추가하여 대응하는 코드를 추가함으로써 대응하는 VP를 풍부하게 할 수 있다(430, 440). 결과적인 변경된 가이드된 자산은 추가적인 사용자들에게 유용할 수 있고, 이 경우, 풍부해진 가이드된 자산의 결과를 새로운 '가이드된 자산'으로 저장하는 것이 유익할 수 있다. 풍부해진 가이드된 자산의 다음 사용자는 아직 처리되지 않은 결정 포인트들을 처리함으로써 그것을 커스텀화할 것이다. 소비자의 전문적 역량 및 선호에 따라, 그리고 사용되는 구조적 언어(RAS)에 의존하여 VP를 변경하는 다른 방법들이 존재할 수 있다.
결정 포인트 처리 및 대응하는 가변성 포인트 변경은 자산 생성 시점(디폴트 값들)에 일어날 수 있거나, 다른 소비자들에 의한 자산 소비 시점에 일어날 수 있다. 예를 들어, 기획자는 설계자가 자산을 얻고 설계 결정을 해야할 때 자산 상에 구조적 결정들을 이미 내렸을 수 있다.
일반적으로, 부분적으로 소비된 자산은 같은 사용자 또는 자산 소비에 관해 상이한 역할을 수행하는 다른 사용자들(기획자, 설계자, IT 보안 전문가 등)에 의한 추가적인 소비를 위해 저장된다(740).
도 7은 본 발명의 솔루션의 강한 장점을 도시하는데, 이는 자산 소비자가 커스텀화할 수 있는 자산을 소비하는 프로세스에서의 관련 기술 및 역할에 관련된 결정을 내렸을 때 멈출 수 있다는 것이다. 그/그녀는 이어서 결과 자산을 이후의 결정을 담당하는 팀의 다음 소비자에게 전달할 수 있다. 이 문서에서 이전에 언급된 바와 같이, 이 방법은 서로 다른 전문가들(보안 구현의 사업 분석가, 소프트웨어 기획자, 설계자 및 상이한 설계 전문가 등)이 원래의 자산의 가변성 포인트들을 해결하는데 협동할 수 있게 한다.
주어진 자산에 단지 하나의 트리만이 코드화되어 있지만, 사용자에게 다수의 엔트리 포인트를 제공하는 것은 자산의 소비를 가이드하는 다수의 트리(서브-트리들)를 제공하는 것과 매우 유사하다.
Claims (10)
- 재사용가능 소프트웨어 자산들을 소비하기 위해 컴퓨터 상에서 실행되는 방법으로서, 상기 방법은,구조적 언어를 사용하는 각각의 자산의 기술(description)을 저장하는 단계 - 상기 각각의 자산의 기술에 사용된 구조적 언어는 자산 커스텀화를 위해 사용되는 결정 트리의 결정 포인트들을 포함하고 요소들 및 속성들을 포함하며, 각각의 결정 포인트는 적어도 하나의 가변 요소에 대응하고, 각각의 가변 요소는 적어도 하나의 변형 요소를 포함함 - ;사용자가 하나의 선택된 자산을 소비하길 원한다는 정보를 상기 컴퓨터가 수집하는 단계 - 상기 선택된 자산에는 상기 결정 트리가 임베딩(embedding)되어 있음 - ; 및상기 컴퓨터가 상기 결정 트리를 순회하여(traversing) 상기 선택된 자산의 상기 기술을 판독하고, 각각의 결정 포인트에서,상기 사용자에게, 상기 가변 요소의 상기 적어도 하나의 변형 요소를 포함하는 상기 결정 포인트와 관계된 상기 가변 요소를 제공하고,상기 가변 요소의 변경을 상기 사용자로부터 수집하고,상기 가변 요소를 상기 사용자로부터 수집된 상기 가변 요소의 변경에 따라 변경하고,상기 변경된 자산 기술을 저장하는 단계를 포함하는 재사용가능 소프트웨어 자산들 소비 방법.
- 제1항에 있어서,상기 결정 트리를 순회하는 것은 원 패스(one pass)로 수행되는, 재사용가능 소프트웨어 자산들 소비 방법.
- 제1항에 있어서,상기 결정 트리를 순회하는 단계는 전체 결정 트리를 순회하기 위해 필요한 횟수만큼의 패스로 계속해서 부분적으로 수행되고, 이는 각각의 부분적으로 순회하는 패스에서 이전의 부분적으로 순회하는 패스에서 저장된 상기 변경된 자산 기술을 판독함으로써, 그리고 상기 이전의 패스 동안 최후 처리된 결정 포인트(들) 이후에 각각의 결정 포인트의 상기 처리를 시작함으로써 이루어지는, 재사용가능 소프트웨어 자산들 소비 방법.
- 제3항에 있어서,상기 결정 트리를 순회하는 단계는,루트 식별 속성을 가진 상기 가변 요소를 판독하는 단계(420);루트 의존성 속성을 가진 모든 상기 가변 요소를 판독하는 단계;루트에 의존하는 상기 가변 요소들의 식별 속성을 판독하는 단계; 및이미 판독된 상기 가변 요소들의 상기 식별 속성을, 의존성 속성으로 가진 모든 상기 가변 요소를 연속적으로 판독하는 단계를 더 포함하는 재사용가능 소프트웨어 자산들 소비 방법.
- 제1항에 있어서,상기 트리를 부분적으로 순회하는 각각의 패스는 상기 사용자가 멈추기로 결정한 것에 응답하여 결정포인트를 처리한 이후 상기 컴퓨터에 의해 멈춰지는, 재사용가능 소프트웨어 자산들 소비 방법.
- 제1항에 있어서,상기 자산들은 재사용가능 자산 상세내역(RAS)을 구조적 언어로서 사용하여 기술되고,의존성 속성은 RAS '레퍼런스' 속성인, 재사용가능 소프트웨어 자산들 소비 방법.
- 제1항에 있어서,대응하는 자산 결정 트리 내의 각각의 결정 포인트에 대해 식별 속성 및 의존성 속성(레퍼런스)이 있는 요소 - 상기 의존성 속성은 상기 자산 결정 트리에서 상기 결정 포인트가 의존하는 상기 요소의 상기 식별 속성을 포함함 - 를 포함하는 자산 기술(가이드된 자산)을 생성하는 초기 단계를 더 포함하는 재사용가능 소프트웨어 자산들 소비 방법.
- 제1항에 있어서,상기 결정 트리의 상기 순회의 완료 이후에, 커스텀화된 자산을 생성하기 위해 상기 변경된 자산 기술을 상기 자산의 콘텐츠에 적용하는, 재사용가능 소프트웨어 자산들 소비 방법.
- 프로그래밍 코드 명령어들을 포함하는 컴퓨터 판독가능한 기록매체로서,상기 프로그램 코드 명령어들은 컴퓨터 상에서 실행되었을 때, 제1항 내지 제8항 중 어느 한 항에 따른 방법의 상기 단계들을 실행하는, 컴퓨터 판독가능한 기록매체.
- 제1항 내지 제8항 중 어느 한 항에 따른 방법을 실행하도록 구성된 수단을 포함하는 시스템.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP07301047 | 2007-05-16 | ||
EP07301047.2 | 2007-05-16 | ||
PCT/EP2008/052608 WO2008138654A1 (en) | 2007-05-16 | 2008-03-04 | A consistent method system and computer program for developing software asset based solutions |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090120481A KR20090120481A (ko) | 2009-11-24 |
KR101307711B1 true KR101307711B1 (ko) | 2013-09-11 |
Family
ID=39705202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020097018829A KR101307711B1 (ko) | 2007-05-16 | 2008-03-04 | 소프트웨어 자산 기반 솔루션을 개발하기 위한 일관된 방법, 시스템 및 컴퓨터 프로그램 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8234634B2 (ko) |
EP (1) | EP2147370A1 (ko) |
JP (1) | JP5166519B2 (ko) |
KR (1) | KR101307711B1 (ko) |
CN (1) | CN101681263B (ko) |
WO (1) | WO2008138654A1 (ko) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9721216B2 (en) * | 2007-11-26 | 2017-08-01 | International Business Machines Corporation | Solution that automatically recommends design assets when making architectural design decisions for information services |
US8341155B2 (en) * | 2008-02-20 | 2012-12-25 | International Business Machines Corporation | Asset advisory intelligence engine for managing reusable software assets |
US8719314B2 (en) * | 2008-03-13 | 2014-05-06 | International Business Machines Corporation | Faceted search on assets packaged according to the reusable asset specification (RAS) |
US20100131326A1 (en) * | 2008-11-24 | 2010-05-27 | International Business Machines Corporation | Identifying a service oriented architecture shared services project |
US20100211925A1 (en) * | 2009-02-19 | 2010-08-19 | Interational Business Machines Corporation | Evaluating a service oriented architecture shared services project |
US20100217632A1 (en) * | 2009-02-24 | 2010-08-26 | International Business Machines Corporation | Managing service oriented architecture shared services escalation |
US8392540B2 (en) * | 2009-02-24 | 2013-03-05 | International Business Machines Corporation | Service specific service oriented architecture shared services solution |
US9268532B2 (en) * | 2009-02-25 | 2016-02-23 | International Business Machines Corporation | Constructing a service oriented architecture shared service |
US8935655B2 (en) * | 2009-02-25 | 2015-01-13 | International Business Machines Corporation | Transitioning to management of a service oriented architecture shared service |
US8607190B2 (en) * | 2009-10-23 | 2013-12-10 | International Business Machines Corporation | Automation of software application engineering using machine learning and reasoning |
US9704130B2 (en) * | 2009-10-26 | 2017-07-11 | International Business Machines Corporation | Standard based mapping of industry vertical model to legacy environments |
US8645904B2 (en) * | 2009-10-26 | 2014-02-04 | International Business Machines Corporation | Cross repository impact analysis using topic maps |
US8726236B2 (en) * | 2009-10-26 | 2014-05-13 | International Business Machines Corporation | Determining context specific content |
US9026412B2 (en) | 2009-12-17 | 2015-05-05 | International Business Machines Corporation | Managing and maintaining scope in a service oriented architecture industry model repository |
US8775462B2 (en) * | 2009-12-17 | 2014-07-08 | International Business Machines Corporation | Service oriented architecture industry model repository meta-model component with a standard based index |
US8566358B2 (en) * | 2009-12-17 | 2013-10-22 | International Business Machines Corporation | Framework to populate and maintain a service oriented architecture industry model repository |
US8631071B2 (en) * | 2009-12-17 | 2014-01-14 | International Business Machines Corporation | Recognition of and support for multiple versions of an enterprise canonical message model |
US8244768B2 (en) * | 2009-12-17 | 2012-08-14 | International Business Machines Corporation | Implementing service oriented architecture industry model repository using semantic web technologies |
US9111004B2 (en) | 2009-12-17 | 2015-08-18 | International Business Machines Corporation | Temporal scope translation of meta-models using semantic web technologies |
US9244659B2 (en) * | 2010-04-26 | 2016-01-26 | International Business Machines Corporation | Extensible meta model for capturing solution patterns |
US8572567B2 (en) | 2010-06-16 | 2013-10-29 | International Business Machines Corporation | Specifying and processing composed patterns |
US8607191B2 (en) * | 2010-06-30 | 2013-12-10 | International Business Machines Corporation | Automated discovery of programmatic resources |
US9342809B2 (en) | 2010-08-25 | 2016-05-17 | International Business Machines Corporation | Method and apparatus to populate asset variant relationships in repositories |
US9569445B2 (en) * | 2014-06-30 | 2017-02-14 | International Business Machines Corporation | Dynamic asset assembly using a rule based methodology |
US9678982B2 (en) * | 2014-07-09 | 2017-06-13 | International Business Machines Corporation | Accessibility advisement system for digital assets |
FR3024236B1 (fr) | 2014-07-25 | 2018-10-12 | Universite De Bourgogne | Capteur et dispositif pour la detection de fongicides en milieu hydro-alcoolique |
US10083369B2 (en) | 2016-07-01 | 2018-09-25 | Ricoh Company, Ltd. | Active view planning by deep learning |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003001343A2 (en) * | 2001-06-22 | 2003-01-03 | Wonderware Corporation | Supervisory process control and manufacturing information system application having an extensible component model |
US20030046282A1 (en) * | 2001-07-06 | 2003-03-06 | Carlson Brent A. | Managing reusable software assets |
US20050085937A1 (en) * | 2003-10-15 | 2005-04-21 | International Business Machines Corporation | Creating customized applications using templates having points of variability |
US20060165123A1 (en) * | 2005-01-06 | 2006-07-27 | Jerrard-Dunne Stanley K | Method, and aggregation component for aggregating application components |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4849879A (en) * | 1986-09-02 | 1989-07-18 | Digital Equipment Corp | Data processor performance advisor |
IL100986A (en) * | 1991-02-27 | 1997-01-10 | Digital Equipment Corp | Method for compiling code |
IL100990A (en) * | 1991-02-27 | 1995-10-31 | Digital Equipment Corp | Multilingual optimization compiler that uses Gladi in the production of a multi-pass cipher |
US5450575A (en) * | 1991-03-07 | 1995-09-12 | Digital Equipment Corporation | Use of stack depth to identify machine code mistakes |
JPH09198242A (ja) * | 1996-01-17 | 1997-07-31 | Sumitomo Electric Ind Ltd | オブジェクト指向設計支援装置 |
US5854929A (en) * | 1996-03-08 | 1998-12-29 | Interuniversitair Micro-Elektronica Centrum (Imec Vzw) | Method of generating code for programmable processors, code generator and application thereof |
US6405173B1 (en) * | 1998-03-05 | 2002-06-11 | American Management Systems, Inc. | Decision management system providing qualitative account/customer assessment via point in time simulation |
CA2256931A1 (en) * | 1998-12-23 | 2000-06-23 | Robert Weisz | Source editing in a graphical hierarchical environment |
US6665866B1 (en) * | 1999-05-28 | 2003-12-16 | Microsoft Corporation | Extensible compiler utilizing a plurality of question handlers |
US6681383B1 (en) * | 2000-04-04 | 2004-01-20 | Sosy, Inc. | Automatic software production system |
JP2003091416A (ja) * | 2001-09-17 | 2003-03-28 | Toshiba Corp | 業務アプリケーションシステムの機能構成定義方法 |
US8473922B2 (en) * | 2001-09-19 | 2013-06-25 | Hewlett-Packard Development Company, L.P. | Runtime monitoring in component-based systems |
US7246102B2 (en) * | 2001-12-21 | 2007-07-17 | Agere Systems Inc. | Method of improving the lookup performance of three-type knowledge base searches |
US7296223B2 (en) * | 2003-06-27 | 2007-11-13 | Xerox Corporation | System and method for structured document authoring |
US20060242180A1 (en) * | 2003-07-23 | 2006-10-26 | Graf James A | Extracting data from semi-structured text documents |
US20050229153A1 (en) * | 2004-04-07 | 2005-10-13 | International Business Machines Corporation | Method, apparatus, and program for application design based on diagram specialization |
US20050262489A1 (en) * | 2004-05-12 | 2005-11-24 | Streeter Gordon S | Knowledge representation language and knowledge processing environment |
US7735062B2 (en) * | 2005-01-21 | 2010-06-08 | Outsystems—Software Em Rede, S.A. | Software development system and method |
JP4444867B2 (ja) * | 2005-03-31 | 2010-03-31 | 富士通株式会社 | 業務プロセスモデル作成支援システムおよびプログラム,ならびに業務プロセスモデル作成処理方法 |
US20070022106A1 (en) * | 2005-07-21 | 2007-01-25 | Caterpillar Inc. | System design using a RAS-based database |
US7321883B1 (en) * | 2005-08-05 | 2008-01-22 | Perceptronics Solutions, Inc. | Facilitator used in a group decision process to solve a problem according to data provided by users |
US7873946B2 (en) * | 2006-03-23 | 2011-01-18 | Oracle America, Inc. | Scalable vector graphics, tree and tab as drag and drop objects |
US8433667B2 (en) * | 2007-08-17 | 2013-04-30 | Juniper Networks, Inc. | Embedded reactive and proactive intelligence |
-
2008
- 2008-03-04 JP JP2010507861A patent/JP5166519B2/ja active Active
- 2008-03-04 EP EP08709277A patent/EP2147370A1/en not_active Ceased
- 2008-03-04 CN CN2008800159383A patent/CN101681263B/zh active Active
- 2008-03-04 KR KR1020097018829A patent/KR101307711B1/ko active IP Right Grant
- 2008-03-04 WO PCT/EP2008/052608 patent/WO2008138654A1/en active Application Filing
- 2008-05-05 US US12/114,939 patent/US8234634B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003001343A2 (en) * | 2001-06-22 | 2003-01-03 | Wonderware Corporation | Supervisory process control and manufacturing information system application having an extensible component model |
US20030046282A1 (en) * | 2001-07-06 | 2003-03-06 | Carlson Brent A. | Managing reusable software assets |
US20050085937A1 (en) * | 2003-10-15 | 2005-04-21 | International Business Machines Corporation | Creating customized applications using templates having points of variability |
US20060165123A1 (en) * | 2005-01-06 | 2006-07-27 | Jerrard-Dunne Stanley K | Method, and aggregation component for aggregating application components |
Also Published As
Publication number | Publication date |
---|---|
WO2008138654A1 (en) | 2008-11-20 |
KR20090120481A (ko) | 2009-11-24 |
CN101681263B (zh) | 2013-12-04 |
US8234634B2 (en) | 2012-07-31 |
JP2010534870A (ja) | 2010-11-11 |
EP2147370A1 (en) | 2010-01-27 |
CN101681263A (zh) | 2010-03-24 |
JP5166519B2 (ja) | 2013-03-21 |
US20080288944A1 (en) | 2008-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101307711B1 (ko) | 소프트웨어 자산 기반 솔루션을 개발하기 위한 일관된 방법, 시스템 및 컴퓨터 프로그램 | |
US12086562B2 (en) | Applied artificial intelligence technology for performing natural language generation (NLG) using composable communication goals and ontologies to generate narrative stories | |
US11562146B2 (en) | Applied artificial intelligence technology for narrative generation based on a conditional outcome framework | |
US6571247B1 (en) | Object oriented technology analysis and design supporting method | |
US8392873B2 (en) | Methods and apparatus for implementing model-based software solution development and integrated change management | |
CN102576363B (zh) | 扩展商业智能系统的形式和功能的基于内容的方法 | |
US8683434B2 (en) | Generic method and system for lifecycle management | |
US9524279B2 (en) | Help document animated visualization | |
US7904809B2 (en) | Model-based editors for dynamic validation | |
US20110083120A1 (en) | Modeling and linking documents for packaged software application configuration | |
Valderas et al. | Introducing requirements traceability support in model-driven development of web applications | |
WO2002021314A2 (en) | Integrated design environment for a commerce server system | |
de Lange et al. | Collaborative wireframing for model-driven web engineering | |
Pepin et al. | Definition and visualization of virtual meta-model extensions with a facet framework | |
Fill | Semantic evaluation of business processes using SeMFIS | |
Caires et al. | Rapid REST API Management in a DEMO Based Low Code Platform | |
Nussbaumer et al. | The Impact of Domain-Specific Languages for Assembling Web Applications. | |
Rodríguez et al. | Model‐based assisted migration of oracle forms applications: The overall process in an industrial setting | |
Fellmann et al. | Data model development for process modeling recommender systems | |
Garrigós et al. | Weaving aspect-orientation into web modeling languages | |
ARDITO | User Interface Development of a Modern Web Application | |
Diener | Data model extraction through adaption of business process models | |
Marques | PHP Development Frameworks THE QUEST FOR THE HOLY GRAIL | |
Aguilar Umaña | Modeling features of standard Web components | |
Zamanifard et al. | An Incremental Approach to Manage Variability in Software Product Line Requirements |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
J201 | Request for trial against refusal decision | ||
B601 | Maintenance of original decision after re-examination before a trial | ||
J301 | Trial decision |
Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20120217 Effective date: 20130624 |
|
S901 | Examination by remand of revocation | ||
GRNO | Decision to grant (after opposition) | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160829 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170828 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20190829 Year of fee payment: 7 |