소프트웨어 설계
1. 현행 시스템 파악
새로 개발하려는 시스템의 개발 범위를 명확히 설정하기 위한 구성과 제공 기능
1단계 : 시스템 구성, 시스템 기능, 시스템 인터페이스 파악
2단계 : 아키텍처 구성,소프트웨어 구성 파악
3단계 : 하드웨어 구성, 네트워크 구성 파악
2. 개발 기술 환경 파악
개발 기술 환경이란 개발하고자 하는 소프트웨어와 관련된 운영체제, 데이터베이스 관리 시스템,
미들웨어* 등을 선정할 때 고려해야 할 사항을 기술하고 오픈소스 사용 시 주의해야 할 내용을 제시
#미들웨어 : 운영체제가 제공하는 서비스 이외에 추가적인 서비스를 제공하는 소프트웨어,
서로 다른 여러 프로그램을 함께 운용할 수 있는 소프트웨어
3.요구사항 정의
요구사항이란 말 그대로 어떠한 문제를 해결하기 위해 필요한 조건이나 제약사항을 요구하는 것,
소프트웨어는 사용자의 요구사항을 충족시키기 위해 설계되고 개발
1) 요구사항의 유형
- 기능 요구사항 (Functional requirements) - 시스템에 대한 사항, 입출력, 데이터 저장이나 연산을 수행 혹은 반드시 수행해야 하는 기능들, 사용자가 시스템을 통해 제공받기 원하는 기능들
- 비기능 요구사항 (Non-functional requirements) - 시스템의 장비 구성, 또는 성능, 인터페이스, 테스트 요구 사항 등
쉽게 사용자는 회원 ID와 Password를 가지고 있어야 하며 입력하여 로그인해야 한다 -> 기능 요구사항
이 시스템은 365일 24시간 가동되어야 한다 -> 비기능 요구사항 이다
2) 요구사항 개발 프로세스
도출(Elicitation),요구 수집 | 분석(Analysis) | 명세(Specification) | 확인(Validation) |
요구사항 개발 프로세스는 개발 대상에 대한 요구사항을 체계적으로 도출하고 이를 분석한 후 분석 결과를 명세서에 정리한 다음 마지막으로 이를 확인 미 검증하는 일련의 구조화된 활동,
타당성 조사(Feasibility Study)가 선행되어야 함
4. 요구사항 분석 기법
1. 요구사항 분류 - 요구사항을 명확히 확인
2. 개념 모델링 - 요구사항 보다 쉽게 이해할 수 있도록 상황을 단순화하여 개념적으로 표현한 것을 모델, 이러한 모델을 만드는 과정을 모델링이라고 함
3. 요구사항 할당 - 요구사항을 만족시키기 위한 구성요소 식별
4. 요구사항 협상 - 요구사항이 충돌될 경우 이를 적절히 해결하는 과정
5. 정형 분석 - 구문(Syntax)과 의미(Semantics)를 갖는 정형화된 언어를 이용해 요구사항을 수학적 기호로 표현한 후 이를 분석하는 것
5. 요구사항 확인 기법
1) 요구사항 검토 - 문서화된 요구사항을 훑어보면서 확인하는 일반적인 검증 방법
2) 프로토타이핑 - 초기 도출된 요구사항을 토대로 프로토타입 제작 후 도출되는 요구사항 반영, 지속적인 프로토타입을 재작성
3) 모델 검증 - 분석 단계에서 개발된 모델이 요구사항을 충족시키는지 검증
4) 인수 테스트 - 사용자가 실제로 사용될 환경에서 요구사항들이 모두 충족되는지 사용자 입장에서 확인