반응형

제목: 시뮬레이션 모델 개발 생명 주기 전반에 거친 객체 지향 산출물의 검증 및 확인(Verification And Validation Of Object-Oriented Artifacts Throughout The Simulation Model Development Life Cycle)

저자: John T. Carr 1 , 미국

문서유형: 컨퍼런스 페이퍼( 6페이지), 2000

 

객체 지향 개발 생명 주기 동안에 대표적으로 생성되는 산출물(artifacts)V&V에 활용할 수 있는 일련의 평가 질문을 제시한 자료



검증 및 확인(Verification and Validation: V&V)

검증(Verification)은 변형 정확성(transformational accuracy)을 다루고 확인(Validation)은 표현 정확성(representational accuracy) 또는 동작 정확성(behavioral accuracy)을 다룬다.


객체 지향 모델의 대표적인 산출물

  • 객체 지향 개발 방법 적용 시 공통적으로 생성되는 대표 산출물로 유스케이스(use cases), 유스케이스 다이어그램(use case diagrams), 시퀀스 다이어그램(sequence diagrams), 클래스 다이어그램(class diagrams)을 들 수 있음
  • 본 페이퍼는 생성된 산출물(모델)들의 정확성, 완전성, 일관성을 평가하여 다음 개발 단계로 가기 전에 문제점(결함)을 식별하는데 도움이 되는 평가 질문/지표(assessment questions or indicators)를 제시함


유스케이스의 검증 및 확인(V&V of Use Cases)

각각의 유스케이스는 한 명 또는 다수의 액터(actors)에 의한 시스템의 단일 사용을 기술하며 선택 사항(alternatives)과 예외 사항(exceptions)도 포함하고 있다. 유스케이스에 대한 평가 질문으로 아래와 같은 것들이 있다.

1.      표준 템플리트를 사용하여 유스케이스가 작성되었는가

2.      액터와 유스케이스가 표준 명명 규칙과 형식을 따르는가

3.      액터가 시스템 외부 요인인가(액터는 시스템의 일부가 아니어야 함)

4.      액터가 유스케이스 경계(the use case boundary)의 외부 요인인가

5.      유저의 액션이 각 유스케이스를 시작시키는가

6.      각 유스케이스의 시작점이 명확한가

7.      유스케이스가 말이 되는가(일리가 있는가)

8.      유스케이스가 요구사항에 명세된 동작(behavior)을 정확하게 표현하는가

9.      유스케이스가 의사결정(decisions), 선택(alternates), 예외(exceptions) 경로를 포함한 모든 경로를 커버하는가

10.    사전조건(the preconditions)이 정확한가

11.    유스케이스가 유용하고 적절한 결과를 생성하는가? , 사후조건(the post conditions)이 정확한가

12.    명세된 유스케이스에 의해 요구사항이 캡쳐되는가

13.    비슷한 여러 유스케이스가 하나의 유스케이스로 통합되어야 하는가

14.    유스케이스 및 관련 요구사항이 여러 개의 요구사항과 유스케이스로 분할되어야 하는가

15.    각 기능 요구사항(functional requirement)이 적어도 하나의 유스케이스와 연관되어 있는가

16.    하나 또는 여러 기능 요구사항을 공유하는 유스케이스들이 일관성을 가지는가

17.    유스케이스가 테스트 될 수 있는가 


유스케이스 다이어그램의 검증 및 확인(V&V of Use Case Diagrams)

각 유스케이스 다이어그램이 상응하는 유스케이스와 일관성을 가지는 것이 중요하며 이와 관련된 평가 질문은 아래와 같다.

1.      각 유스케이스에 대한 유스케이스 다이어그램이 존재하는가

2.      모든 유스케이스 다이어그램이 동일한 표기법(되도록이면 UML)을 사용하여 작성되었는가

3.      각 액터가 자신과 관련된 유스케이스 다이어그램에 표현(반영)되어 있는가

4.      유사한 여러 개의 유스케이스 다이어그램이 유스케이스 연관성(use case associations)을 통해 하나로 통합되어야 하는가 


시퀀스 다이어그램의 검증 및 확인(V&V of Sequence Diagrams)

유스케이스와 시퀀스 다이어그램 간의 추적성(traceability) 관련 평가 질문으로 아래와 같은 것들이 있다.

1.      시퀀스 다이어그램이 일관성 있는 표기법(되도록이면 UML)을 사용하여 작성되었는가

2.      시퀀스 다이어그램이 파생해 나온 유스케이스가 존재하는가

3.      각 시퀀스 다이어그램을 시작시키는 액터가 존재하며, 이 액터가 시퀀스 다이어그램이 파생된 유스케이스를 시작시키는 액터와 동일한가

4.      생성(creation)을 암시하는 모든 명사, 명사구, 동사가 오브젝트로 표현되었는가

5.      다이어그램이 의미 있는 종결점(termination)을 가지고 있는가

6.      시퀀스 다이어그램에 표현된 모든 오브젝트가 설계 클래스 다이어그램에 연관 클래스(associated classes)를 가지고 있는가

7.      다이어그램이 선택 사항(alternatives)과 예외 사항(exceptions)을 포함하고 있는가

8.      각 유스케이스에 대한 적어도 하나 이상의 시퀀스 다이어그램이 존재하는가


클래스 다이어그램의 검증 및 확인(V&V of Class Diagrams)

소스 코드를 제외한 경우 객체 지향 소프트웨어의 유지보수성(maintainability)과 관련된 가장 중요한 산출물이 클래스 다이어그램이다. 설계 클래스 다이어그램은 코드로 구현되는 것들의 패턴을 포함하며, 클래스들간의 관계에 부여된 제약(constraints)은 소프트웨어가 어떻게 수정, 확장, 재사용 가능한지를 결정한다. 클래스 다이어그램이 설게 패턴을 기반으로 하는지에 대한 평가 질문으로 아래와 같은 것들이 있다.

1.      UML을 사용하여 클래스 다이어그램이 작성되었는가

2.      모든 시퀀스 다이어그램 오브젝트가 클래스 다이어그램에 연관 클래스(associated classes)를 가지고 있는가

3.      설계 패턴을 사용하여 공통 관계(common relationships)에 대한 연관성(associations)을 생성하는가

4.      콘테이너 클래스 외에도 클래스 다이어그램에 상응하는 오브젝트가 없는 클래스가 존재하는가

5.      요구사항 또는 유스케이스로 추적이 불가능한 클래스가 존재하는가

6.      역할(roles)이 식별되었는가

7.      중복 클래스(redundant classes)가 존재하는가

8.      다중 관계(multiplicities)가 표현되었고 정확한가

9.      다이어그램에 containmentaggregation이 적절하게 사용되었는가

10.    문제 도메인의 오브젝트에 상응하지 않은 콘테이너(container)/경계(boundary)/콘트롤(control)/연관(association)/서비스(service)/생성자(creator) 클래스의 사용을 피하였는가


상속 클래스 모델(The inheritance class model)에 대한 평가 질문으로 아래와 같은 것들이 있다.

1.      서브 클래스(derived class)가 베이스 클래스(base class)의 한 종류(‘‘a kind of”)인가

2.      서브 클래스가 하나 또는 여러 개의 베이스 클래스 오퍼레이션을 구현하는가

3.      베이스 클래스의 인스턴스가 사용될 때마다 서브 클래스 오브젝트가 사용될 수 있는가

4.      다중 상속(multiple inheritance) 사용 시 모든 모호성이 해결되었는가

 

설계 클래스 다이어그램에 대한 평가 질문은 아래와 같다.

1.      설계 클래스 다이어그램이 개념 모델과 일관성을 가지는가

2.      역할(roles)이 식별되었는가

3.      다중 관계(multiplicities)가 명세 되었는가

4.      다이어그램에 containment aggregation이 존재하는가

5.      문제 도메인의 오브젝트에 상응하지 않는 콘테이너(container)/경계(boundary)/콘트롤(control)/연관(association)/서비스(service)/생성자(creator) 클래스가 존재하는가

6.      클래스가 낮은 결합도(coupling)를 가지는가

7.      클래스가 높은 응집도(cohesion)를 가지는가

8.      애트리뷰트를 클래스로 잘못 생각한 경우는 없는가 


반응형

+ Recent posts