소프트웨어 설계 - 요구사항 확인
소프트웨어 설계 - 요구사항 확인
소프트웨어 설계
소프트웨어 공학의 중요성
- 대규모 프로젝트 관리 : 복잡한 대규모 소프트웨어 프로젝트를 체계적으로 관리할 수 있다.
- 품질 보증 : 다양한 단계에서 품질을 관리하고, 테스트를 통해 신뢰 할 수 있는 소프트웨어를 제공한다.
- 비용 절감 : 프로젝트의 효율적인 자원관리와 재사용 등을 통해 비용을 절감할 수 있다.
소프트웨어 생명 주기 (소프트웨어가 탄생하고 성장하며 소멸하는 전 과정을 단계별로 나눈것, SDLC)
- 요구사항 분석 : 무엇을 만들지 정의
- 설계 : 어떻게 만들지 구조를 계획
- 구현/개발 : 실제로 코드를 작성
- 테스트 : 개발된 소프트웨어를 검증
- 배포/운영 및 유지보수 : 소프트웨어를 사용자한테 제공하고 지속적으로 관리하며 개선
개발 접근법 (무엇을 만들것인가? 모델링 및 설계)
- 구조적 개발 접근법 (SDA) : 시스템을 기능(프로세스) 중심으로 하향식 으로 분해하고 모델링하는 철학
- 객체지향 개발 접근법 (OODA) : 시스템을 데이터와 기능을 결합한 객체 중심으로 캡슐화하고 모델링하는 철학
프로젝트 관리 및 프로세스 (어떻게 만들것인가?)
- 애자일 개발론 (Agile) : 짧은 반복 주기와 지속적인 피드백을 통해 변화하는 요구사항에 유연하게 대응하는 프로젝트 관리 철학
요구사항
요구사항 정의
- 기능 요구사항
- 입출력 포함, 시스템이 무엇을 저장하고 연산을 수행할지
- 시스템이 반드시 수행해야 하는 기능, 사용자가 원하는 기능
- 비기능 요구사항
- 시스템 장비 구성
- 성능
- 인터페이스
- 데이터
- 테스트
- 보안, 품질
- 제약 사항
- 프로젝트 관리
- 프로젝트 지원
요구사항 개발 프로세스
도출(Eliciation) → 분석(analysis) → 명세(specification) → 검증(validation)
- 도출: 요구사항 수집(인터뷰, 설문, 브레인스토밍, 프로토타이핑, 유스케이스…)
- 분석: 모호한 부분 필터링 → 자료흐름도(DFD), 자료사전(DD)
- 명세: 문서화
- 검증
요구사항 명세 기법
- 정형 명세 기법
- 수학적 명세
- 비정형 명세 기법
- 상태, 기능, 객체 중식 -> 자연어, 다이어그램 작성
요구사항 분석
- 유저 요구사항 이해, 타당성 조사 -> 비용, 일정 제약
- 목표, 해결방법 결정
- 도구: UML(Unified Modeling Language), 자료흐름도(DFD), 자료 사전(DD), 소단위 명세서, ERD(개체 관계도), 상태 전이도(STD), 제어 명세서
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.