🖋 애플리케이션 설계 #1 - 공통모듈 설계

2020. 7. 18. 23:23컴퓨터언어/소프트웨어공학

728x90
반응형

 

 

공통모듈의 개념을 설명하고, 공통모듈을 도출하고 분리해 낼 수 있다.
공통 모듈 설계를 위한 모듈화 원리를 이해할 수 있다.
모듈화 지표인 결합도와 응집도를 이해하고, 결합도의 최소화와 응집도의 최대화를 적용할 수 있다.

 

👍 공통모듈이란?

시스템을 구축할 때 여러 하위 시스템에서 공통으로 사용되는 모듈로, 클래스, 라이브러리(클래스의 묶음), 컴포넌트(라이브러리가 체계화된 형태의 소프트웨어로, 독립적으로 동작 가능), 프레임워크가 있다.

 

👊 클래스

공통모듈이 존재할 수 있는 가장 기본적인 형태

 

👊 라이브러리

여러 개의 클래스를 종합한 것

클라이언트 소프트웨어가 일방적으로 호출함

 

👊 컴포넌트

라이브러리가 체계화된 형태의 소프트웨어

독립적으로 동작하고 구현, 명세화, 패키지화, 배포가 가능하다

내/외부 인터페이스를 통해서만 접근할 수 있다.

 

👊 프레임워크

여러 기능을 하는 클래스/컴포넌트들이 서로 유기적인 관계를 맺은 형태

클라이언트 소프트웨어가 호출하기도 하고 호출을 당하기도 함


👍 공통모듈의 설계

공통모듈의 설계는 요구사항 기술서를 바탕으로 시스템이 담당해야 할 기능부분을 Use Case Diagram으로 나타낸다.

Use Case Diagram을 정적으로 나타내면 정적 모델링, 동적으로 나타 내명 동적 모델링이라고 한다.

  • 정적 모델링 : 클래스 다이어그램, 컴포넌트 다이어그램
  • 동적 모델링 : 시퀀스 다이어그램, 액티비티 다이어그램

👍 공통 모듈 평가 지표

 

응집도 : 인터페이스의 요청을 처리함에 있어서 공통 모듈 내의 클래스들 간에 얼마나 유기적으로 협업하여 처리하는가에 관한 정도

응집도가 높은 것에서 낮은 것 순으로 정렬하면 다음과 같다.

기능적 응집도(Functional) 모듈 내부의 모든 기능이 단일한 목적을 위해 수행됨
순차적 응집도(Sequential) 모듈 내에서 한 활동으로부터 나온 출력값을 다른 활동이 사용
통신적 응집도(Communication) 동일한 입력과 출력을 사용하여 다른 기능을 수행하는 활동들이 모여 있음
절차적 응집도(Procedual) 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행
시간적 응집도(Temporal) 기능이 연관되기보다는 특정 시간에 처리되어야 하는 활동들을 한 모듈에서 처리되는 것들의 모임
논리적 응집도(Logical) 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들이 한 모듈에서 처리되는 것
우연적 응집도(Coincidental) 모듈 내부의 각 구성요소들이 연관이 없는 경우

 


 

결합도 : 어떤 모듈이 다른 모듈에 의존하는 정도

결합도가 높은 것에서 낮은 것 순으로 정렬하면 다음과 같다.

내용 결합도(Content) 다른 모듈 내부에 있는 변수나 기능을 다른 모듈에서 사용
공통 결합도(Common) 파라미터가 아닌 모듈 밖에 선언되어 있는 전역 변수를 참조하고 전역 변수를 갱신하는 식으로 상호작용
외부 결합도(External) 모듈이 다수의 관련 기능을 가질 때 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행
제어 결합도(Control) 단순 처리할 대상인 값만 전달되는 것이 아니라, 어떻게 처리를 해야 한다는 제어 요소가 전달되는 경우
스탬프 결합도(Stamp) 모듈 간의 인터페이스로 배열이나 오브젝트, 스트럭처 등이 전달되는 경우
자료 결합도(Data) 모듈 간의 인터페이스로 전달되는 파라미터를 통해서만 모듈 간 상호작용이 일어나는 경우
728x90
반응형