-
요구사항 분석과 명세화Topcit/소프트웨어 개발 2018. 6. 11. 15:05
- 소프트웨어 요구사항 분석
- 요구사항 분석 개요
- 요구사항은 프로젝트 범위와 규모를 결정하는 가장 중요한 정보이다.
- 프로젝트 전체 과정 중 적극적인 변경, 추적 관리를 통한 현행화가 반드시 필요하다.
- 요청자의 요구사항을 개발하고자 하는 시스템의 범위와 특징에 맞추어 정제해 가는 과정
- 설계를 진행하기 이전 주어진 시스템에 대한 이해도를 높여가는 과정
- 요구사항 분석 단계의 주요 초점은 How가 아닌 What에 맞춰져 있다.
- 시스템이 수행할 가능에 초점을 맞추어 시스템의 목표를 기술하며 어떻게 수행 될지는 기술하지 않는다.
- 요구사항 분류
- 기능적 측면
- 기능적 요구사항
- 목표 시스템 구현을 위하여 요구되는 소프트웨어 기능과 속성
- 시스템에서 필요한 기능, 동작, 행위를 직접적으로 기술
- 비기능적 요구사항
- 시스템의 전체 품질, 특성을 정의하기 위한 요구사항
- 관리적 측면
- 지속적 요구사항
- 조직의 핵심 활동 관련 안정된 요구사항
- 문제 영역을 모델로부터 유도
- 휘발성 요구사항
- 시스템의 개발 환경이나 사용자의 요구에 의해 변화하는 요구사항
- 요구사항 분석의 어려움
- 문제영역에 대한 전문적인 지식보유가 어려움
- 참여자간 관점 차이로 인한 분석의 일관성 유지의 어려움
- 프로젝트 대규모화에 따른 의사소통 복잡성 증가로 인한 어려움
- 요구사항의 지속적인 변경으로 인한 추적관리의 어려움
- 기능적 요구사항, 비 기능적 요구사항 추출 방법
- 기능적 요구사항 추출 방법
- 기능
- 시스템의 수행 목적 파악
- 시스템의 수행 시점, 운용 시 수행 모드 파악
- 시스템의 변경, 확장 시점 파악
- 자료
- 입력, 출력 자료 및 자료형태
- 자료의 정확도 및 시스템에 유입되는 자료량
- 데이터 보관 기간
- 인터페이스
- 자료 전달에 사용되는 특정 미디어 유무 파악
- 외부 시스템에서 유출, 유입되는 입력 파악
- 데이터의 특정 형태 여부
- 사용자
- 시스템의 사용자 파악
- 사용자 그룹, 사용자 그룹의 컴퓨터 사용 경험 파악
- 사용자 그룹별 필요 교육 파악
- 비 기능적 요구 사항 추출 방법
- 자원
- 시스템 구축 및 유지보수 시 필요한 자원, 인력 파악
- 개발자가 갖추어야 할 역량
- 사용할 하드웨어의 특징
- 시스템의 전력, 온도, 습도에 대한 연구
- 개발 시스템의 저장 공간 제약 사항
- 성능
- 시스템 속도, 반응 시간, 처리율, 처리 자료의 크기
- 보안
- 자료, 시스템에 대한 접근 통제 여부
- 사용자의 역할, 책임 별 권한 할당
- 시스템 백업 기간 및 책임자
- 재난에 의한 대비책
- 물리적 보안 대책
- 품질
- 신뢰성, 가용성, 유지보수성, 보안 등 품질 특성에 대한 요구
- 시스템에 가동되는 평균 시간
- 시스템 작업 중단 후 복구 허용 시간
- 설계 변경의 용이성
- 자원 사용과 반응 시간 측정 방법의 효율성
- 모델링
- 정의
- 대상 시스템의 성능, 동작과정 분석을 위해 간단히 도식화 하거나 시스템의 특징을 수학적으로 표현하는 과정
- 관점
- 기능 관점
- 소프트웨어가 어떠한 기능을 수행하는 가의 관점에서 시스템을 기술
- 주어진 입력에 대하여 어떤 결과가 나오는가를 보여주는 관점
- 연산, 제약 조건 묘사
- 동작 관점
- 소프트웨어의 동작, 제어에 초점을 맞춤
- 시스템의 상태, 상태를 변하게 하는 원인을 묘사
- 정보 관점
- 시스템에 사용되는 정보 객체를 찾아내고 각 객체의 특성, 객체들 사이의 관계, 연관성 규명
- 구조적 분석 기법
- 정의
- 소프트웨어를 기능 관점에서 프로세스로 바라보고 처리 위주로 모델링하는 방법
- 자료 흐름도
- 전체적인 자료의 흐름을 표현하는 분석 산출물
- 최상위 배경도부터 필요한 수준까지 지속적인 분할 과정을 거쳐 완성된다.
- 소단위 명세
- 원시 프로세스가 어떤 기능을 수행하는지 기술하는 것
- 원시 프로세스 : 분할이 완료된 자료흐름도의 최하위 프로세스
- 자료 사전
- 자료 흐름도의 자료 항목에 대한 정의에 모아 놓은 것
- 객체지향 분석
- 정의
- 주어진 문제 영역을 실 세계 안에 존재하는 객체의 집합으로 보고 객체들 사이의 상호작용을 나타낸 것
- 객체의 재사용성, 참여자의 이해도를 높일 수 있다.
- 유스케이스
- 고객과 시스템 개발자 사이에 의사소통을 원활히 해 주며, 고객의 요구사항을 알아내는데 효과적이다.
- 고객의 적극적인 참여를 유도하여 고객의 요구사항을 빠르게 파악할 수 있다.
- 유스케이스 기법은 이해 관계자를 찾아내고 이를 액터로 분류한다.
- 액터가 사용하는 기능들을 유스케이스로 식별한다.
- 이러한 각 유스케이스에 대하여 시나리오를 작성한다.
- 정보 모델링
- 유스케이스 시나리오를 바탕으로 액터와 시스템이 주고받는 정보들을 찾아낼 수 있다.
- 정보들을 바탕으로 정보 모델링을 수행하고 클래스 다이어그램으로 나타낸다.
- 정보 모델링을 통해 시스템에서 요구되는 클래스, 클래스 사이의 연관성, 속성을 찾아낸다.
- 동적 모델링
- 객체의 상태, 동작의 변화, 상호 작용에 관심을 두고 클래스의 오퍼레이션을 찾는 과정
- 시퀀스 다이어그램을 사용하여 객체들 사이의 상호작용을 밝혀내고 각 클래스의 오퍼레이션을 도출한다.
- 기능 모델링
- 액티비티 다이어그램은 복잡한 프로세스의 처리 과정을 이해하거나 추가적인 오퍼레이션을 식별하는데 사용된다.
- 요구사항 명세화
- 정의
- 요구사항 분석 과정을 통해 사용자의 요구사항, 시스템의 기능이 규명되고 문서화되어야 한다.
- 요구사항 분석 과정의 산출물을 요구사항 명세서라고 한다.
'Topcit > 소프트웨어 개발' 카테고리의 다른 글
객체지향 설계 과정 (0) 2018.06.11 소프트웨어 아키텍처 설계 (0) 2018.06.11 소프트웨어 설계 원리 (0) 2018.06.11 소프트웨어 기반 기술 (0) 2018.06.11 소프트웨어 개발 및 관리 (0) 2018.06.11 댓글