• 클래스 다이어그램 : 시스템을 구성하는 기본 단위인 클래스의 내부 구조, 즉 클래스의 속성과 연산, 클래스 간의 관계를 표현한다.
  • 클래스 다이어그램의 관계 요약
    • 연관관계 : 클래스 A와 클래스 B는 연관관계를 가지고 있다.
    • 포함관계 : 클래스 B는 클래스 A의 부분이다.
    • 일반화관계 : 클래스 B는 클래스 A의 하위 클래스 이다.
    • 의존관계 : 클래스 A는 클래스 B에 의존한다.
    • 인터페이스 실현 관계 : 클래스  B는 인터페이스 A를 실현한다.
    • 인터페이스 의존관계 : 클래스 A는 인터페이스  B에 의존한다.

 

  •  클래스와 객체
    • 객체는 상태와 행동을 가지는 개별적인 실체이다
    • 클래스는 유사한 객체들의 묶음이다.
    • 객체는 특정 클래스의 실체다.
    • 클래스는 오직 한가지 유형의 대상과 개념만을 나타낸다
    • 클래스의 이름은 명확하고 구체적이어야 한다.
  • 클래스 다이어그램에서 사용할 수 있는 타입의 유형
    • UML기본 타입, 사용자 정의 타입, 대상 프로그래밍 언어의 타입
  • 연산
    • 연산은 객체가 제공하는 행동을 표현한다.
    • 연산은 가시성, 이름, 인자, 반환타입으로 정의된다.
  • 분석 클래스 모델의 작성 : 요구사항을 바탕으로 시스템에 대한 분석 모델을 작성하는 첫 작업이다. 요구사항, 즉 각 유스케이스에 대한 명세서를 바탕으로 분석 수준의 클래스 모델을 작성하는 것을 목표로 한다.
     - 경계 클래스 : 시스템과 외부 액터와의 상호 작용을 전담하는 클래스
     - 제어 클래스 : 시스템이 실제로 제공하는 비즈니스 로직 및 제어 로직을 전담하는 클래스다.
     - 엔티티 클래스 : 시스템이 유지해야하는 persistent 데이터를 관리하는 기능을 전담하는 클래스다.

+ 유스케이스 모델 - 사용자 및 고개으로부터 요구사항을 누락없이 도출해 명확하게 기술하는 것을 목표
 - 액터 :
  • 시스템과 상호작용을 하는 시스템 외부의 존재
  • 액터는 개발 대상이 되는 시스템에 따라서 달라질 수 있음
  • 일반적으로 사용자, 외부시스템, 장치의 세가지 유형으로 분류


 - 유스케이스 : 

  • 개발 대상이 되는 시스템이 제공하는 개별적인 기능
  • 표현된 기능은 시스템의 사용자가 이용
  • 기능과 이를 이용하는 액터와의 관계를 연관관계를 이요해 명시적으로 표현
  • 시스템의 전체 기능적 요구사항은 표현된 유스케이스로 구체화


+ 유스케이스 상세화
 - 유스케이스에 대한 구체적인 명세를 기술한 문서를 유스케이스 명세서라 한다.
  (유스케이스 이름, 개요, 관련 액터 항목, 우선순위, 선행조건, 후행조건, 시나리오, 비기능적 요구사항)

  1. 개요 : 유스케이스가 뜻하는 시스템의 기능을 간결하고 명확하게 표현
              대부분의 UML모델링 도구들을 유스케이스 다이어그램에서 직접 기록
  2. 관련 액터 : 유스케이스와 상호작용을 하는 모든 액터를 나열
                    유스케이스를 개발 하기 위해 필요한 외부 인터페이스를 파악하는데 도움을 줌
  3. 우선 순위 : 유스케이스의 중요성을 의미, 유스케이스에 대한 프로젝트 관리 시 활용
  4. 선행 조건 : 유스케이스의 수행이 시작되기 위해 필요한 조건을 뜻함.
  5. 후행 조건 : 수행이 완료된 후에 만족되어야 하는 조건을 뜻함.
  6. 시나리오 : 기본시나리오와 대안 시나리오로 분류, 대안시나리오는 기본 시나리오로부터 분기
                      대안 시나리오는 다시 선택 시나리오와, 예외 시나리오로 분류됨.
                      시나리오는 유스케이스의 기능적 행위를 시스템과 관련 액터와의 상호작용으로서 기술
  7. 비기능적 요구사항 : 유스케이스와 관련된 비기능적 요구사항을 기술함.


+ 유스케이스 모델의 구조화
- 목표 : 유스케이스 모델의 복잡도를 낮춤
- 구조화 방법

  • 액터 일반화 : 시스템과 비슷한 방식으로 상호작용을 하는 유사한 액터를 일반화 해 부모액터를 정의
  • 유스케이스 일반화 : 유사한 기능을 제공하는 유스케이스들을 일반화해 부모 유스케이스를 정의
  • 유스케이스 포함 : 여러 유스케이스에 공통적인 시나리오를 별도의 유스케이스로 정의
  • 유스케이스 확장 : 기본 기능에 부가적인 기능을 별도의 유스케이스로 정의

 

-소프트웨어 개발 프로세스
요구 사항 정의 -> 분석 -> 설계 -> 구현 -> 시스템

- 요구사항 정의 : 사용자들이 소프트웨어에 기대하는 기능 및 특징에 대한 요구를 도출해 명세하고 검증하는 활동
+ 요구사항
   - 기능적 요구사항
   + 비 기능적 요구사항 : 품질 요구사항, 제약 사항

- 분석 단계 : 정의된 요구사항을 충족시킬 수 있는 시스템의 구성 요소를 파악하는 것을 목표
  • 플랫폼 독립적 : 응용 소프트웨어를 구성하는 컴포넌트들을 결정 , 하위는 설계단계에서 고려
  • 기능적 요구사항만의 고려, 품질 요구사항과 제약사항은 설계 단계에서 고려
- 설계 단계 : 분석의 결과물을 바탕으로 최종적으로 시스템을 구현하기 위한 구체적인 시스템 구성요소와 행위를 결정하는 활동  

 

+ Recent posts