module / component / service

reference:
Service, Component-based software engineering, Module, Modularity , Cohesion, Coupling - Wikipedia
A Definition of "Services", A Definition of "Component" - Managability, Carlos E. Perez.
모듈(module)
- 더 큰 시스템 내에서 다른 구성요소의 동작과는 무관하게(독립적으로) 동작하는 자기 충족적(self-contained) 구성요소.

모듈은 인터페이스(interface)와 구현(implementation)으로 나뉜다. 인터페이스는 모듈이 제공하고 모듈이 요구하는 요소를 표현 및 정의하며 이들 요소는 다른 모듈에게 공개된다. 한편 그 요소에 해당하는 동작 코드를 가리켜 구현이라 칭한다. 모듈의 품질(quality)은 일반적으로 응집도와 결합도를 통해 측정된다.

* 응집도(Cohesion)
- 어떤 소프트웨어 모듈의 여러 기능(책임: responsiblity)이 얼마나 강하게 연계(related)되어 있고 집중(focused)되어 있는지를 나타내는 척도. 응집성은 보통 '높은 응집도', '낮은 응집도' 등으로 표현되며 높은 응집도를 가진 모듈이 선호된다. 높은 응집도는 소프트웨어의 여러 장점, 즉 강건함(robustness), 신뢰성(reliablity), 재사용성(reusability), 그리고 이해가능성(understandablity)과 짝을 이루는 한편, 낮은 응집도는 유지보수하기 어려움, 테스트에 어려움, 낮은 재사용성 등의 소프트웨어의 단점과 짝을 이룬다.

* 결합도(coupling) 또는 의존도(dependency)
- 각각의 소프트웨어 모듈이 다른 모듈(들)에 얼마나 의존하고 있는지를 나타내는 척도

결합도는 보통 응집도에 대비된다. 낮은(또는 느슨한, 약한) 결합도는 종종 높은(또는 강한) 응집도와 관련되며 그 반대도 마찬가지이다.

more..

'digging IT 인프라 > 소프트웨어공학' 카테고리의 다른 글

Requirements Engineering : Requirements Engineering Processes  (0) 2008.03.26
Requirements Engineering : Software Requirements  (0) 2008.03.24
module / component / service  (0) 2007.09.15
PMA : Post-Mortem Analysis  (0) 2007.09.13
PSP/TSP  (2) 2007.09.12
Use Case model  (2) 2007.09.11
Posted by 어쨌건간에