[소프트웨어공학] SDLC Model, 요구사항, 시스템 모델링, Activity Diagram
2023. 9. 13. 20:05ㆍ소프트웨어공학
# 소프트웨어
- 소프트웨어란?
- 컴퓨터 프로그램과 그와 관련된 문서, 라이브러리 등을 포함하는 개념
- 소프트웨어는 특정 고객 혹은 범용적 목적으로 개발될 수 있다.
- 소프트웨어 엔지니어링이란?
- 초기 구상에서부터 운영과 유지 보수 과정 등 전문적인 소프트웨어 제품을 만드는데 필요한 모든 과정에 대한 공학적 규율
- 소프트웨어 품질 중요 요소 4가지
- 수용성 (Acceptability) - 사용자가 이해하기 쉽고 유용해야 하며, 다른 시스템과 호환이 돼야 한다.
- 신뢰도와 보안 (Dependability and securitiy)
- 효율성 (Efficiency) - 불필요한 리소스 사용을 최소화, 일정한 응답속도와 성능을 제공한다.
- 유지 보수성 (Maintainability)
# SDLC (Software Development Life-Cycle) Model - 소프트웨어 개발 주기
- 폭포수 모델과 애자일 모델이 실무에 가장 많이 사용된다.
- 구현 단계 : 요구사항 분석 -> 시스템 및 S/W 설계 -> 구현 및 유닛 테스트 -> 통합 및 테스트 -> 운영 및 유지 보수
- 모든 개발 주기에서 필수적으로 수행하는 활동
- 명세 (Specofocation) - 소프트웨어가 제공해야 할 기능과 제약 등을 명세
- 개발 (Development) - 명세에 따라 소프트웨어 개발
- 검증 (Validation) - 명세대로 구현되었는지 검증
- 개선 (Evolution) - 요구사항의 변경을 반영
- 계획 주도 모델 (Plan-driven Model)
- 소프트웨어 개발 주기의 활동을 미리 계획하고, 이 계획에 따른 진척도를 측정하는 모델이다.
- 폭포수 모델 (Waterfall Model)이 여기에 속한다.
- 개발 중 변경 및 요구사항 반영이 어렵다.
- 애자일 모델 (Agile Model)
- 소프트웨어 전체가 아닌 일부분에 대해서, 모든 활동을 수행한 후, 이를 반복적으로 수행하여 전체 소프트웨어를 만드는 방법론이다.
- 임베디드 시스템이나 규모가 크고 복잡한 시스템을 만드는 경우 문제가 발생한다.
- 계약 과정에서 명세를 확정 짓지 못하여 법적 계약서에 내용을 명시하기 어렵다.
- 신규 소프트웨어 개발에는 적합하지만 유지 보수에는 부적절하다.
- 계획 주도 모델과 상반되는 개념
# 요구사항 (Requirements)
- 요구사항이란?
- 시스템이 제공해야 할 서비스와 서비스가 동작 중에 지켜져야 할 제약사항
- 육하원칙에 따라 작성 되어야 전달력 높은 문서가 된다.
- 요구사항의 유형
- 사용자 요구사항
- 서비스가 제공해야 할 기능이나, 지켜져야 할 제약사항을 문장이나 다이어그램을 통해 고차원적이고, 추상적으로 표현한 것
- 기술적인 배경지식이 없는 최종 사용자와 발주 고객이 이해할 수 있어야 한다.
- 시스템 요구사항 (개발자가 주로 작성)
- 서비스가 제공해야 할 기능이나, 지켜져야 할 제약사항에 대한 세부적인 명세를 구조화된 문서나 다이어그램으로 작성한 것
- 자연어, 도표 기반 표기법 등으로 기술 가능하다.
- 기능적 요구사항 (Functional Requirements)
- 시스템이 제공해야 할 기능
- 비기능적 요구사항 (Non-Functional Requirements)
- 시스템이 전체에서 지켜져야 할 제약사항
- 사용자 요구사항
# 시스템 모델링 (System Modeling)
- 시스템에 대해 동일한 인식을 갖고 사용자의 요구사항이 의도한대로 반영될 수 있도록 도움을 주기위해 수행한다.
- UML (Unified Modeling Language)이란?
- 소프트웨어 시스템을 모델링 하기 위한 13가지 종류의 표기법들의 집합
- 대표적인 모델링 표기법 5가지
- High-Level 모델링
- Activity Diagram
- Use case Diagram
- Low-Level 모델링
- Sequence Diagram
- Class Diagram
- State Diagram
- High-Level 모델링
# Activity Diagram
- 업무의 흐름을 행위 단위로 절차를 표현하는 다이어그램
- 제어의 흐름도 표기할 수 있다.
- 시작점 (Start Point) : 검정색 점으로 표현

- 액티비티 또는 액션 : 수행되어야 할 동작

- 결정 : 조건에 따라 다음 수행될 액티비티 결정

- 결합/분할 노드 : 동시에 수행되어야 할 동작들을 분할하거나, 병합

- 액션 플로우 : 액션들 간의 연결을 통해 업무의 흐름을 표현

- 종료점 : 업무 흐름의 종료
