KR101307711B1 - 소프트웨어 자산 기반 솔루션을 개발하기 위한 일관된 방법, 시스템 및 컴퓨터 프로그램 - Google Patents

소프트웨어 자산 기반 솔루션을 개발하기 위한 일관된 방법, 시스템 및 컴퓨터 프로그램 Download PDF

Info

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
Application number
KR1020097018829A
Other languages
English (en)
Other versions
KR20090120481A (ko
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 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20090120481A publication Critical patent/KR20090120481A/ko
Application granted granted Critical
Publication of KR101307711B1 publication Critical patent/KR101307711B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0637Strategic 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

소프트웨어 자산 기반 솔루션을 개발하기 위한 일관된 방법, 시스템 및 컴퓨터 프로그램{A CONSISTENT METHOD SYSTEM AND COMPUTER PROGRAM FOR DEVELOPING SOFTWARE ASSET BASED SOLUTIONS}
본 발명은 일반적으로 소프트웨어 솔루션의 개발에 관한 것이고, 보다 구체적으로는, 소프트웨어 자산 기반 솔루션을 개발하기 위한 방법에 적용된다.
소프트웨어 자산은 그 자산을 반복적으로 그 후의 콘텍스트에서 적용하기 위해 생성 또는 채집된(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) 및 자산 자체가 설계에 의해 공동으로 보내지는데, 이는 다음을 가능하게 한다:
Figure 112009055392018-pct00001
지시 가이던스는 자산의 구조에 의해 일관되게 운영되므로, 모순 또는 불일치가 없다: 자산 및 가이던스는 동기화된다.
Figure 112009055392018-pct00002
자산 공급자는 더 이상 한 측의 저장소에 자산을 공급하고, 다른 측의 다른 저장소에 자산 가이던스(예를 들어, 텍스트 파일들)를 공급할 필요가 없고, 대신 올-인-원 자료(자산+가이던스)를 가이드된 자산 데이터베이스에 제공한다.
Figure 112009055392018-pct00003
가변성 포인트 정의들(가변성 포인트 의존성들을 포함)은 소비자의 자산 소비를 가이드하는데 필요한 결정 트리의 레이아웃을 반영한다.
- 가이던스는 지속적으로 모든 규율에 대한 역할이 가능하게 되는데, 이는 협동(적합한 핸드 오버를 포함함)이 있는 끝에서 끝의 연계 모델을 지원하는데, 이는 다음을 허용한다:
Figure 112009055392018-pct00004
이는 자산과 함께 부분적으로 채워진 파라미터 세트들의 저장을 가능하게 하여, 그 시점에 이루어진 결정들을 반영한다.
Figure 112009055392018-pct00005
자산 소비자는 커스텀화할 수 있는 자산을 소비하는 과정에서 그/그녀의 역할 및 관련 기술에 관한 결정을 내렸을 때 멈출 수 있다. 그/그녀는 이어서 그 이후의 결정을 담당하는 팀의 다음 소비자에게 결과 자산을 건네줄 수 있다. 이 프로세스는 서로 다른 역할들이 원래의 자산의 가변성 포인트들을 해결하는데 협동할 수 있도록 한다. 예를 들어, 사업 분석가가 사업 프로세스에 관한 모든 결정을 내리고, 이어서 그/그녀는 변경된 자산을 소프트웨어 기획자에게 건네주는데, 소프트웨어 기획자는 구조적 결정 등을 내릴 수 있다.
Figure 112009055392018-pct00006
임의의 레벨에서 이루어진 결정들은 또한 자동적으로 기록되어, 그 측면에서 그들의 기록을 필요로 하지 않는다.
- 가이던스는 모두 규율에 대해 지속적으로 툴을 사용가능하게 된다:
Figure 112009055392018-pct00007
각각의 가변성 포인트 정의가 표준 포맷(우리의 구현에서 RAS)으로 형식적으로 캡처되기 때문에, 사용자에게 변형들을 제시하는 것, 및 결정들을 내리는 프로세스는, 현재 결정이 요구사항, 구조, 사업 모델링, 설계, 또는 코드를 다루는지 여부에 관계없이, 툴에 의해 가능해질 수 있다.
Figure 112009055392018-pct00008
자산 콘텐츠와 지시 가이던스를 캡처하는데 동일한 표준(바람직한 실시예에서 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). 이 정보는 다음을 포함한다:
Figure 112009055392018-pct00009
결정 포인트의 이름: 이름은 가변성 포인트(결정 포인트)를 고유하게 식별하도록 자산 내에서 고유해야 한다;
Figure 112009055392018-pct00010
기술: 이것은 인간(사용자들) 대상의 텍스트적 정보인데, 이 지점에서 이루어질 결정을 기술한다;
Figure 112009055392018-pct00011
변형들(variants)의 한 세트: 결정 포인트는 이미 자산과 함께 패키징된 적어도 하나의 가능한 선택 또는 대안(이하 문서에서 '변형들'이라 불림)의 한 세트를 포함한다. 또한, 이 변형들 중 하나는 자산 소비자에 의해 변경이 이루어지지 않는 경우 디폴트로 사용되는 것일 수 있다;
Figure 112009055392018-pct00012
변형들의 종류: 하나의 결정 포인트에 대해, 일정한 종류의 변형들만이 수용가능하다. 이 변형들은 치환될 수 있다(예를 들어, 모델, 코드);
Figure 112009055392018-pct00013
변형들 간의 동거(cohabitation)의 규칙을 식별하는 파라미터(예를 들어, 변형 로직: 포괄적(inclusive), 배타적(exclusive), 선택적(optional));
Figure 112009055392018-pct00014
툴들: 자동화 및 콘텍스트를 지원하기 위해, 각각의 가변성 (결정) 포인트는 그것을 처리할 수 있는 소프트웨어 툴들(결정을 만들기 위해 사용될 수 있는 툴들)을 열거할 필요가 있다. 도 5는 가변성 포인트들의 상세한 예들을 도시한다.
Figure 112009055392018-pct00015
결정 트리 내의 결정 포인트의 자리를 식별하는 파라미터: 예를 들어, 이는 트리의 이전 노드의 이름일 수 있다.
트리의 모든 결정 포인트들이 탐사될(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)

  1. 재사용가능 소프트웨어 자산들을 소비하기 위해 컴퓨터 상에서 실행되는 방법으로서, 상기 방법은,
    구조적 언어를 사용하는 각각의 자산의 기술(description)을 저장하는 단계 - 상기 각각의 자산의 기술에 사용된 구조적 언어는 자산 커스텀화를 위해 사용되는 결정 트리의 결정 포인트들을 포함하고 요소들 및 속성들을 포함하며, 각각의 결정 포인트는 적어도 하나의 가변 요소에 대응하고, 각각의 가변 요소는 적어도 하나의 변형 요소를 포함함 - ;
    사용자가 하나의 선택된 자산을 소비하길 원한다는 정보를 상기 컴퓨터가 수집하는 단계 - 상기 선택된 자산에는 상기 결정 트리가 임베딩(embedding)되어 있음 - ; 및
    상기 컴퓨터가 상기 결정 트리를 순회하여(traversing) 상기 선택된 자산의 상기 기술을 판독하고, 각각의 결정 포인트에서,
    상기 사용자에게, 상기 가변 요소의 상기 적어도 하나의 변형 요소를 포함하는 상기 결정 포인트와 관계된 상기 가변 요소를 제공하고,
    상기 가변 요소의 변경을 상기 사용자로부터 수집하고,
    상기 가변 요소를 상기 사용자로부터 수집된 상기 가변 요소의 변경에 따라 변경하고,
    상기 변경된 자산 기술을 저장하는 단계
    를 포함하는 재사용가능 소프트웨어 자산들 소비 방법.
  2. 제1항에 있어서,
    상기 결정 트리를 순회하는 것은 원 패스(one pass)로 수행되는, 재사용가능 소프트웨어 자산들 소비 방법.
  3. 제1항에 있어서,
    상기 결정 트리를 순회하는 단계는 전체 결정 트리를 순회하기 위해 필요한 횟수만큼의 패스로 계속해서 부분적으로 수행되고, 이는 각각의 부분적으로 순회하는 패스에서 이전의 부분적으로 순회하는 패스에서 저장된 상기 변경된 자산 기술을 판독함으로써, 그리고 상기 이전의 패스 동안 최후 처리된 결정 포인트(들) 이후에 각각의 결정 포인트의 상기 처리를 시작함으로써 이루어지는, 재사용가능 소프트웨어 자산들 소비 방법.
  4. 제3항에 있어서,
    상기 결정 트리를 순회하는 단계는,
    루트 식별 속성을 가진 상기 가변 요소를 판독하는 단계(420);
    루트 의존성 속성을 가진 모든 상기 가변 요소를 판독하는 단계;
    루트에 의존하는 상기 가변 요소들의 식별 속성을 판독하는 단계; 및
    이미 판독된 상기 가변 요소들의 상기 식별 속성을, 의존성 속성으로 가진 모든 상기 가변 요소를 연속적으로 판독하는 단계
    를 더 포함하는 재사용가능 소프트웨어 자산들 소비 방법.
  5. 제1항에 있어서,
    상기 트리를 부분적으로 순회하는 각각의 패스는 상기 사용자가 멈추기로 결정한 것에 응답하여 결정포인트를 처리한 이후 상기 컴퓨터에 의해 멈춰지는, 재사용가능 소프트웨어 자산들 소비 방법.
  6. 제1항에 있어서,
    상기 자산들은 재사용가능 자산 상세내역(RAS)을 구조적 언어로서 사용하여 기술되고,
    의존성 속성은 RAS '레퍼런스' 속성인, 재사용가능 소프트웨어 자산들 소비 방법.
  7. 제1항에 있어서,
    대응하는 자산 결정 트리 내의 각각의 결정 포인트에 대해 식별 속성 및 의존성 속성(레퍼런스)이 있는 요소 - 상기 의존성 속성은 상기 자산 결정 트리에서 상기 결정 포인트가 의존하는 상기 요소의 상기 식별 속성을 포함함 - 를 포함하는 자산 기술(가이드된 자산)을 생성하는 초기 단계를 더 포함하는 재사용가능 소프트웨어 자산들 소비 방법.
  8. 제1항에 있어서,
    상기 결정 트리의 상기 순회의 완료 이후에, 커스텀화된 자산을 생성하기 위해 상기 변경된 자산 기술을 상기 자산의 콘텐츠에 적용하는, 재사용가능 소프트웨어 자산들 소비 방법.
  9. 프로그래밍 코드 명령어들을 포함하는 컴퓨터 판독가능한 기록매체로서,
    상기 프로그램 코드 명령어들은 컴퓨터 상에서 실행되었을 때, 제1항 내지 제8항 중 어느 한 항에 따른 방법의 상기 단계들을 실행하는, 컴퓨터 판독가능한 기록매체.
  10. 제1항 내지 제8항 중 어느 한 항에 따른 방법을 실행하도록 구성된 수단을 포함하는 시스템.
KR1020097018829A 2007-05-16 2008-03-04 소프트웨어 자산 기반 솔루션을 개발하기 위한 일관된 방법, 시스템 및 컴퓨터 프로그램 KR101307711B1 (ko)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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