소프트웨어 설계

7강. 소프트웨어 설계

소프트웨어 설계에 대해 알아보자.

주요 용어

  • 소프트웨어 아키텍처: 소프트웨어 구조를 말하며 시스템을 구성하는 요소들과 그들간의 관계를 의미한다.

  • 아키텍처 스타일: 유사한 애플리케이션들에 적용되는 공통적인 아키텍처 패턴으로 같은 부류의 시스템을 설계할 때 초안으로 사용될 수 있는 아키텍처

  • 구조적 설계: 데디터 흐름을 분석하여 시스템을 기능적으로 분해하는 전통적 설계 방법

  • 결합도와 응집력: 결합도는 두 모듈 간의 상호 의존성 정도를 의미하며, 응집력은 한 모듈이 가지는 기능적 집중성에 관한 상대적 척도

정리하기

  • 아키텍처 모델은 시스템 구성 요소들과 이들 간의 관계를 표현한다.

  • 소프트웨어 아키텍처는 비기능적 요구사항과 큰 관련을 가진다.

  • 저장소 모델은 공유된 데이터베이스에 기초한 데이터 중심 아키텍처이다.

  • 클라이언트 - 서버 아키텍처는 분산 시스템에 적용되는 아키텍처이다.

  • 계층형 아키텍처는 추상화 원리를 적용한 구조이다.

  • 구조적 설계는 변환 분석과 트랜잭션 분석에 의해 데이터 흐름도로부터 구조도를 유도한다.
  • 높은 응집력을 가지고 다른 모듈과 느슨하게 결합되는 모듈을 설계해야 한다.

참고 자료

  • 새로 쓴 소프트웨어 공학, 최은만, 2014, 정익사