Post

시스템 품질 속성, UML

시스템 품질 속성, UML

시스템 품질속성

: 소프트웨어 시스템이 얼마나 잘 동작하는지를 평가하는 특성들을 말합니다. 이 속성들은 시스템의 성능, 유지보수성, 확장성, 보안성 등 다양한 측면에서 시스템의 품질을 나타냅니다. 다음은 주요 품질속성들입니다:

  • 성능(Performance): 시스템이 주어진 시간 내에 얼마나 빠르게 작업을 수행하는지를 나타냅니다. 예를 들어, 응답 시간, 처리율 등이 포함됩니다.

  • 유지보수성(Maintainability): 시스템이 얼마나 쉽게 수정, 확장 또는 오류 수정을 할 수 있는지를 나타냅니다. 코드의 가독성, 모듈화, 재사용성 등이 포함됩니다.

  • 확장성(Scalability): 시스템이 증가하는 작업량이나 사용자 수를 처리하기 위해 얼마나 확장될 수 있는지를 나타냅니다. 하드웨어 및 소프트웨어의 확장이 포함됩니다.

  • 신뢰성(Reliability): 시스템이 오류 없이 얼마나 오랫동안 안정적으로 동작하는지를 나타냅니다. 장애 발생 빈도, 복구 시간 등이 포함됩니다.

  • 보안성(Security): 시스템이 불법적인 접근이나 공격으로부터 얼마나 안전한지를 나타냅니다. 데이터 암호화, 인증, 권한 부여 등이 포함됩니다.

  • 사용성(Usability): 사용자가 시스템을 얼마나 쉽게 사용할 수 있는지를 나타냅니다. 인터페이스의 직관성, 사용자 경험 등이 포함됩니다.

  • 이식성(Portability): 시스템이 다양한 하드웨어나 소프트웨어 환경에서 얼마나 쉽게 이동될 수 있는지를 나타냅니다. 다양한 플랫폼에서의 실행 가능성 등이 포함됩니다.

  • 가용성(Availability): 시스템이 필요한 시간 동안 얼마나 이용 가능한지를 나타냅니다. 가동 시간, 다운타임 등이 포함됩니다.

객체

  • instance : 객체지향 기법에서 같은 클래스에 속한 각각의 객체를 의미
  • message : 객체에게 어떤 행위를 하도록 지시
  • method : 객체에 소속된 함수
  • module : 실행코드와 객체들(함수, 클래스, 변수)의 묶음
  • class : 객체를 정의해 놓은 것. 객체의 설계도, 틀
  • package : 클래스를 묶어두는 물리적 단위. 클래스들의 집함.
  • object(객체) : 실제로 존재하는 것. 클래스에 정의된 내용대로 메모리에 생성된 것

UML 다이어그램

  • 클래스 다이어그램 (Class Diagram): 시스템 내의 클래스와 그들 간의 관계를 나타냅니다. 클래스의 속성 및 메서드도 포함됩니다.

  • 객체 다이어그램 (Object Diagram): 특정 시점에서의 객체와 그들 간의 관계를 나타냅니다. 클래스 다이어그램의 인스턴스를 나타냅니다.

  • 시퀀스 다이어그램 (Sequence Diagram): 객체들 간의 메시지 교환을 시간 순서대로 나타냅니다. 주로 시스템의 동작을 설명하는 데 사용됩니다.

  • 유스 케이스 다이어그램 (Use Case Diagram): 시스템의 기능 및 사용자와의 상호작용을 나타냅니다. 사용자가 시스템과 상호작용하는 방법을 설명합니다.

  • 활동 다이어그램 (Activity Diagram): 시스템 내의 활동 흐름을 나타냅니다. 워크플로우 및 비즈니스 프로세스를 설명하는 데 사용됩니다.

  • 상태 다이어그램 (State Diagram): 객체의 상태와 상태 간의 전이를 나타냅니다. 객체의 라이프사이클을 설명합니다.

  • 컴포넌트 다이어그램 (Component Diagram): 시스템의 물리적 구성 요소와 그들 간의 의존성을 나타냅니다. 시스템의 구조적인 측면을 설명합니다.

  • 배치 다이어그램 (Deployment Diagram): 시스템의 물리적 배포와 노드 간의 관계를 나타냅니다.

UML 모델 의미적 관계

  • 연관 관계 (Association): 두 개 이상의 클래스가 서로 관련이 있음을 나타냅니다.
    예: 학생과 강의 간의 관계

  • 일반화 관계 (Generalization): 상위 클래스가 하위 클래스로 확장될 수 있음을 나타냅니다.
    하위 클래스는 상위 클래스의 속성과 오퍼레이션을 상속받습니다.
    예: Vehicle과 Car 간의 관계 (Car는 Vehicle의 하위 클래스)

  • 실체화 관계 (Realization): 인터페이스와 이를 구현하는 클래스 간의 관계를 나타냅니다. 구현 클래스는 인터페이스의 메서드를 실제로 구현합니다. 예: 한 객체가 다른 객체에게 오퍼레이션을 수행하도록 지정

  • 의존 관계 (Dependency): 한 클래스가 다른 클래스의 변화에 영향을 받는 관계를 나타냅니다. 예: Order 클래스가 Customer 클래스에 의존하는 경우

  • 집합 관계 (Aggregation): 클래스들 간의 부분-전체 관계를 나타냅니다.
    부분 객체가 전체 객체에 포함되지만, 독립적으로 존재할 수 있습니다.
    예: Library 클래스와 Book 클래스 간의 관계 (책은 도서관의 일부이지만, 독립적으로 존재할 수 있습니다)

  • 합성 관계 (Composition): 클래스들 간의 강한 부분-전체 관계를 나타냅니다.
    부분 객체는 전체 객체에 종속적으로 존재하며, 전체 객체가 사라지면 부분 객체도 함께 사라집니다.
    예: House 클래스와 Room 클래스 간의 관계 (방은 집의 일부이며, 집이 사라지면 방도 함께 사라집니다)

This post is licensed under CC BY 4.0 by the author.