시스템을 기능단위로 분할하여 해결하는 Modularity

1. Module

– 모듈의 개요
모듈이란 크고 어려운 문제를 해결하기 위해 작은 단위로 분리하는 경우의 ‘작은 단위’를 지칭(분할과 정복 개념)하는 것으로 C언어등 절차적인 언어를 이용한 개발시 많이 사용된다. 모듈은 독립적인 단위이며 문제가 발생할 경우 영향을 미치는 범위가 최소할 될 수 있도록 개발되어야 하며, 문제가 발생한 모듈만 교체/수정한다면 해결이 가능한 구조여야 한다. 예를들어, 잠수함간의 충돌이 발생했을 경우 해당 사병들은 망가진 모듈(잠수함에서는 박스)만 교체하여 끼우는 것 만으로 수리가 완료되어야 한다.

– 모듈간 종속성을 평가하는 결합도(Coupling)
결합도란 각 모듈간에 변경 발생시 영향을 미치는 정도로 낮을 수록 좋다. 아래는 결합도를 평가하는 결합도의 종류이다.

– 모듈내부의 연관성을 평가하는 응집도(Cohesion)
응집도란 각 모듈이 하나의 기능을 중심으로 잘 뭉쳐져 있는지를 판단하는 것으로 높을수록 좋다. 아래는 응집도의 종류이다.

– Coding시 모듈을 구현할 수 있는 기술

  • MACRO

#define에 실행되어야 할 코드를 설정.
ex) #define SQUARE(X)(X*X)

  • Function

시스템의 일부 기능을 독립적으로 수행하고 결과를 반환활 수 있도록 구조화하여 처리할 수 있게 하는 기법

2. 구조적 언어에서 사용하는 Modularity와 객체치향 언어에서 사용하는 Object, Component와의 업무 처리 방법

    

* 모듈의 경우 단일 input/ouput를 이기 때문에, 하나의 task 처리시 순차,반복,제어를 한 flow에서 절차적으로 처리

* component나 object의 경우 Multi input/output를 이용하여 여러개의 task를 동시에 처리 가능

3. Source를 Reuse 할 수 있는 방법 Summary

시스템을 기능단위로 분할하여 해결하는 Modularity”에 대한 1개의 생각

댓글 남기기