자격증/정보처리기사

소프트웨어 설계(3)

짱뚱짱 2025. 4. 28. 11:27

클래스(Class)

  • 공통된 속성과 연산(행위)을 갖는 객체의 집합이다.
  • 클래스에 속한 각각의 객체를 인스턴스(Instance)라 한다.
  • 객체지향 프로그램에서 데이터를 추상화하는 단위이다.

캡슐화(Encapsulation)

  • 데이터와 데이터를 처리하는 함수를 하나로 묶는 것을 의미한다.
  • 외부 모듈의 변경으로 인한 파급 효과가 적다.
  • 인터페이스가 단순화된다.
  • 재사용이 용이하다.

상속(Inheritance)

상위 클래스(부모 클래스)의 모든 속성과 연산을 하위 클래스(자식 클래스)가 물려받는 것이다.

다형성(Polymorphism)

  • 오버로딩(Overloading) : 메소드의 이름은 같지만 인수를 받는 자료형과 개수를 달리하여 여러 기능을 정의할 수 있음
  • 오버라이딩(Overriding) : 메소드의 일음은 같지만 메소드 안의 실행 코드를 달리하여 자식 클래스에서 재정의해서 사용할 수 있음

객체지향분석 방법론 - Coad와 Yourdon 방법

  • E-R 다이어그램을 사용하여 객체의 행위를 모델링한다.
  • 객체 식별, 구조 식별, 주제 정의, 속성과 인스턴스 연결 정의, 연산과 메시지 연결 정의 등의 과정으로 구성하는 기법이다.

럼바우(Rumbaugh)의 분석 기법

  • 객체(Object) 모델링 : 정보 모델링이라고도 하며, 객체들 간의 관계를 규정하여 객체 다이어그램으로 표시하는 것
  • 동적(Dynamic) 모델링 : 상태 다이어그램을 이용하여 객체들 간의 동적인 행위를 표현하는 모델링
  • 기능(Functional) 모델링 : 자료 흐름도를 이용하여 자료 흐름을 표현한 모델링

객체지향 설계 원칙(SOLID 원칙)

  • 단일 책임 원칙(SRP; Single Responsibility Principle) : 객체는 단 하나의 책임만 가져야 한다는 원칙
  • 개방-폐쇄 원칙(OCP; Open-Closed Principle) : 기존의 코드를 변경하지 않고 기능을 추가할 수 있도록 설계해야 한다는 원칙
  • 리스코프 치환 원칙(LSP; Liskov Substitution Principle) : 자식 클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다는 설계 원칙
  • 인터페이스 분리 원칙(ISP; Interface Segregation Principle) : 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다는 원칙
  • 의존 역전 원칙(DIP; Dependency Inversion Principle) : 각 객체들 간의 의존 관계가 성립될 때, 추상성이 낮은 클래스보다 추상성이 높은 클래스와 의존 관계를 맺어야 한다는 원칙

모듈(Module)

  • 모듈화를 통해 분리된 시스템의 각 기능들이다.
  • 단독으로 컴파일이 가능하다.
  • 재사용 할 수 있다.
  • 다른 모듈에서의 접근이 가능하다.

결합도의 정도(약함→강함)

데스형 제 외저래 공유랑 내가 닮았대

결합도의 종류

  • 자료(Data) 결합도 : 모듈 간의 인터페이스가 자료 요소로만 구성될 때의 결합도
  • 스탬프(Stamp) 결합도 : 배열이나 레코드 등의 자료 구조가 전달될 때의 결합도
  • 제어(Control) 결합도 : 제어 신호를 이용하여 통신하거나 제어 요소를 전달하는 결합도
  • 외부(External) 결합도 : 데이터(변수)를 외부의 다른 모듈에서 참조할 때의 결합도
  • 공통(Common) 결합도 : 공유되는 공통 데이터 영역을 여러 모듈이 사용할 때의 결합도
  • 내용(Content) 결합도 : 다른 모듈의 내부 자료를 직접 참조하거나 수정할 때의 결합도

응집도의 정도(약함→강함)

우리 논 시절 먹었던 통통한 순대 참 기가 막혔지

주요 응집도

  • 절차적(Procedural) 응집도 : 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행할 경우의 응집도
  • 시간적(Temporal) 응집도 : 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우의 응집도
  • 우연적(Coincidental) 응집도 : 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도

팬인(Fan-In) / 팬아웃(Fan-Out)

  • 팬인 : 어떤 모듈을 제어(호출)하는 모듈의 수
  • 팬아웃 : 어떤 모듈에 의해 제어(호출)되는 모듈의 수
  • 다음의 시스템 구조도에서 각 모듈의 팬인(Fan-In)과 팬아웃(Fan-Out)을 구한다면 다음과 같다.

 

 
  • 팬인(Fan-In) : A는 0, B/C/D/E/G는 1, F/H/I는 2
  • 팬아웃(Fan-Out) : H/I는 0, C/E/F/G는 1, B/D는 2, A는 3

NS 차트

  • ​논리의 기술에 중점을 둔 도형을 이용한 표현 방법이다.
  • 연속, 선택 및 다중 선택, 반복 등의 제어 논리 구조를 표현한다.
  • GOTO나 화살표를 사용하지 않는다.
  • 시각적으로 명확히 식별하는 데 적합하다.
  • 이해하기 쉽고, 코드 변환이 용이하다.

재사용(Reuse)

  • 이미 개발된 기능을 새로운 시스템이나 기능 개발에 사용할 수 있는 정도를 의미한다.
  • 재사용 규모에 따른 분류 : 함수와 객체, 컴포넌트, 애플리케이션

'자격증 > 정보처리기사' 카테고리의 다른 글

소프트웨어 개발(2)  (0) 2025.05.26
소프트웨어 개발(1)  (0) 2025.05.12
소프트웨어 설계(4)  (0) 2025.05.09
소프트웨어 설계(2)  (0) 2025.04.09
소프트웨어 설계(1)  (0) 2025.03.25