프로그래밍 기본/소프트웨어 설계
소프트웨어 설계 - 설계 단계
리그캣
2018. 1. 25. 19:37
기본구성(추상적 단계)
Specification -> Design&Implementation -> Validation -> Evolution
구체적 단계
요구사항 -> 분석 및 설계 -> 구현 -> 시험 -> 배치
반복적 개발(중요-폭포수 모델과 비교)
장점
주요 기능이나 기술적 위험이 높은 기능을 먼저 구현함으로써 프로젝트의 불확실성을 초기에 감소시킬 수 있고 실패의 위험을 줄일 수 있다. 뿐만 아니라 요구사항 변화에 효과적으로 대응할 수 있다.
Business Modeling
feasibility study - 타당성 조사
cost estimation - 경제성 조사
planning - 계획 판단
Requirements 요구사항
end-user 입장에서 ??
Functions of the system
Characteristics of the system
Analysis & Design
Analysis(분석) : 문제가 무엇인지(개발자 입장에서) vs Requirement (소비자 입장)
Design : how to solve the problem 설계?? 데이터베이스 테이블 what?
Implementation (설계된 것을 실행.)
Coding
Unit testing(단위 자체를 테스트)
Testing
Integration testing
System testing
Deployment
기민한(aAgile) 프로세스(중요)
문서를 최소한으로 줄이자. 개발에 더 투자. 테스트를 강조
Software Design
시스템의 설계는 처음부터 끝까지 나누는 작업.
Coupling (결합도) : 모듈간의 의존도. 결합도는 낮게
Cohesion (응집도) : 한개의 목적. 응집도는 높게.