본문 바로가기
Learning/Software Engeenering

3. Software Engeenering Principles(1)

by 가판이 2008. 11. 18.

위의 그림은 Software engeenering의 관계들을 도식화 한것이다. 가장 기본이 되는 Principle(원리)로 부터 방법들과 기술들, 방법론, 도구로써 계층적으로 분류하였으며, 외곽으로 벗어날 수록 변경도가 커진다.
 
Priciples
- Rigor and Formality
- Separation of Concerns
- Modularity
- Abstraction
- Anticipation of Changes
- Generality
- Incrementality
Principle는 방법과 기술과 방법론 그리고 도구들의 기반이 되는 형태이다.
Principle은 S/W 개발의 모든 단계에 사용할 수 있다.
Modularity는 분기점 원리를 S/W 설계에 지원할 수 있다.

Rigor and Formality
- Rigor는 완전하게 하는 creativity를 필요로 한다. 그것은 우리의 개발에서 신뢰가 향상되는것을 말한다.
- Formaility는 Rigor의 최상위 단계이다.
 Process 응용
  - 개발 각 단계들의 Rigorus 문서화는 Project 관리와 timeliness에 평가에 도움을 준다.
 Product 응용
  - 프로그램의 correctness의 수학적(formal) 분석
  - Systematic(rigorus) test data 유도

Separation of Concerns
 복잡한것들을 나누는 방법
 여러가지 방법들 중에서 관심 대상만 분리한다.
 Process 응용
 - Waterfall 모델처럼 한 단계에서 다음 단계로 통과하면서 
   : 분배하는 것과 시간을 고려해서 관심 대상을 분리하여야 한다.
 Product 응용
 - 제품 요구사항을 분리해두어야 한다.
   : Functionality, performance, user interface and usability
우리는 Separation of concerns 때문에 몇몇 전체적 최적화를 실패한적 있나?

반응형

'Learning > Software Engeenering' 카테고리의 다른 글

2. Software : Its Nature and Qulities(3)  (0) 2008.11.18
2. Software : Its Nature and Qualities(2)  (0) 2008.11.06
2. Software : Its Nature and Qualities(1)  (0) 2008.11.04
1. Introduction(2)  (0) 2008.10.31
1. Introduction(1)  (0) 2008.10.30