Learning/Software Engeenering 2008.11.18 20:08


위의 그림은 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' 카테고리의 다른 글

3. Software Engeenering Principles(1)  (0) 2008.11.18
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

태그들 , ,