자격증/정보처리기사

필기 - 1. 소프트웨어 설계_ch3. 애플리케이션 설계

권동동 2024. 7. 2. 14:07

1. 공통 모듈 설계

(1) 재사용

1️⃣ 재사용의 개념

  • 기존의 소프트웨어 또는 소프트웨어 지식을 활용항여 새로운 소프트웨어을 구축하는 작업

2️⃣ 재사용의 유형

유형 설명
함수와 객체 재사용 클래스나 함수 단위로 구현한 소스 코드를 재사용
컴포넌트 재사용 컴포넌트 단위로 재사용
애플리케이션 재사용 공통기능을 제공하는 애플리케이션과 기능을 공유하여 재사용

(2) 공통 모듈

1️⃣ 공통 모듈의 개념

  • 모듈은 크게 독립된 하나의 소프트웨어 또는 하드웨어 단위를 지칭하는 용어
  • 공통 모듈은 독립성, 다양한 조합, 재사용, 영향 최소화의 특징이 있다
  • 공통 모듈의 개념은 전체 프로그램의 기능 중 특정 기능을 처리할 수 있는 실행 코드를 의미한다.

2️⃣ 공통 모듈 원칙

정명완일추 - 정말 명작 완성된 일본의 추억

원칙 설명
정확성 실제 시스템 구현 시 필요한지
명확성 일관되게 이해하고 한 가지로 해석
완전성 시스템이 구현될 때 필요하고 요구되는 모든 것
일관성 공통 기능 간에 상호 충돌이 없도록 작성
추적성 공통 기능에 대한 요구사항 출처와 관련 시스템 등의 유기적 관계에 대한 식별이 가능하도록

3️⃣ 모듈화 

① 모듈화의 개념

  • 시스템을 분해하여 사용이 용이하도록 기능 단위의 모듈로 분해하는 설계 및 구현 기법

② 모듈화의 필요성

  • 모듈의 크기가 너무 작으면 ->  모듈의 개수 증가, 모듈 간 통합 비용 상승
  • 모듈의 크기가 너무 크면 ->  모듈의 개수 감소, 모듈 당 개발 비용 상승

③ 바람직한 모듈 설계 방안

  • 모듈의 독립성과 재사용성을 높이기 위하여 결합도는 낮추고 응집도는 높인다.
  • 모듈의 복잡도와 중복성을 줄이고 일관성을 유지한다.
  • 모듈의 기능은 예측이 가능해야 하며, 지나치게 제한적이어서는 안된다.
  • 적다한 모듈의 크기를 유지한다
  • 모듈 간의 효과적인 제어를 위해 설계에서 계층적 자료 조직이 제시되어야 한다.
  • 유지보수가 용이해야 하고, 이식성을 고려해야한다

 

4️⃣ 모듈화 측정 지표

  • 모듈화의 적정성을 칙정하는 지표는 응집도와 결합도

 

5️⃣ 모듈화 유형

응집도

우논시절 통순기 - 우리가 논 시절에 통합짱은 순한 기요미다

우연적 < 논리적 < 시간적 < 절차적 < 통신적 < 순차적 < 기능적 응집도 순서로 응집도가 높아진다

 

② 결합도 ❗

내공 외제 스자 - 내공 100 외제차 쓰자내용 > 공통 > 외부 > 제어 > 스탬프 > 자료 결합도 순으로 결합도가 낮아진다.

 

6️⃣ 팬인(Fan-In) 및 팬아웃(Fan-Out)

① 팬인 및 팬아웃 개념

  • 팬 인 - 어떤 모듈을 제어하는 모듈의 수
  • 팬 아웃 - 어떤 모듈에 의해 제어되는 모듈의 수

② 팬인 및 팬아웃 특징

구분 팬인(Fan-In) 팬아웃(Fan-Out)
모듈 숫자 계산 모듈 자신을 기준으로 들어옴 모듈 자신을 기준으로 나감
고려사항 팬인이 높으면 관리 비용 및 테스트 비용 증가 팬아웃이 높으면 단수화 여부 검토 필요

둘 다 낮게 설계해야함

 

(3) 설계 모델링

1️⃣ 설계 모델링

설계 모델링 개념

  • 요구사항 분석 단계에서 규명된 필수 기능들의 구체적인 구현 방법을 명시하는 기법

2️⃣ 소프트웨어 설계 유형

설계 유형 설명
자료 구조 설계  요구분석 단계에서 생선된 정보를 바탕으로 소프트웨어를 구현하는데 필요한 자료 구조로 변환하는 과정을 설계
아키텍처 설계 소프트웨어의 시스템의 전체 구조를 기술
인터페이스 설계 소프트웨어와 상호 작용하는 컴퓨터 시스템, 사용자 등의 통신 설계
프로시저 설계 모듈이 수행할 기능을 절차적 기술로 바꾸는 설계
협약에 의한 설계 클래스에 대한 여러 가정을 공유하도록 명세한 설계

자료 구조, 아키텍처, 인터페이스, 프로시저, 협약에 의한 설계는 상위 설계

모듈 설계는 하위 설계

 

3️⃣ 소프트웨어 설계 원리

구분 설명
상향식 설계 하위 기능들로부터 시작하여 제일 상위에 있는 기능 접근해가는 방식
하향식 설계 소프트웨어 설계 시 제일 상위에 있는 기능에서 시작하여 기능을 하위 기능들로 분할해 가면서 설계하는 방식
레벨이 낮은 데이터 구조의 세부사항은 설계 초기 단계에서 필요

 

4️⃣ 코드 설계

① 코드의 기능

코드의 기능으로는 표준화, 분류, 식별, 배열, 간소화, 연상, 암호화, 오류 검출 기능이 있다.

 

② 코드 설계 종류

종류 설명
연상 코드 코드만 보고 대상을 연상할 수 있도록 명칭 일부를 약호 형태롤 넣어 구성된 코드(ex : 나라이름)
블록 코드 공통성이 있는 것끼리 블록으로 구분하고, 각 블록 내에서 일련번호를 부여하는 코드(ex : 지역번호)
순차 코드 일정한 기준에 따라 순서대로 일련번호를 부여한 코드(ex : 반에서의 번호)
표의 숫자 코드 대상 자료의 물리적인 수치인 길이, 넓이, 용량 등을 표시한 코드
십진 코드 10진수 형태로 표현한 코드
그룹 분류 코드 대상을 기준에 따라 대분류, 중분류, 소분류로 구분하여 번호를 부여한 코드(ex : 학번)

 

5️⃣ HIPO

① HIPO(Hierachy Input Process Output) 개념

  • 하향식 소프트웨어 개발을 위한 문서화 도구

② HIPO 특징

  • 체계적인 문서 관리가 가능
  • 기능과 자료의 의존 관계를 동시에 표현
  • 변경, 유지보수 용이