소프트웨어 설계

(2024-12-05)

디자인 패턴


1. 소프트웨어 설계

  ㅇ 크고 복잡한 소프트웨어 시스템의 목적을 충족시키고자, 
     - 기본 구조 및 구현 프로그램을 고안,선택하여, 실현시키는 과정

  ㅇ 소프트웨어 설계 과정
     - 아키텍처 설계 
     - 데이터베이스 설계
     - 서브시스템 설계
     - 컴포넌트 설계
     - 자료구조, 알고리즘 설계


2. 5가지 객체 지향 설계 원칙 (SOLID)

  ㅇ 단일 책임 원칙 (Single Responsibility Principle)
     - 클래스는 하나의 책임만 가져야 함
  ㅇ 개방 폐쇄의 원칙 (Open Closed Principle)
     - 확장에는 열려 있고, 수정에는 닫혀 있어야 함
  ㅇ 리스코프 교체의 원칙 (Liskov Substitution Principle)
     - 서브클래스는 상위 타입을 대체할 수 있어야 함
  ㅇ 인터페이스 분리의 원칙 (Interface Segregation Principle)
     - 클라이언트는 자신이 사용하는 인터페이스만 알아야 함
  ㅇ 의존 관계 역전의 원칙 (Dependency Inversion Principle)
     - 고수준 모듈이 저수준 모듈에 의존하지 않도록 설계3. 디자인 패턴 (Design Pattern)

  ㅇ 모든 프로그램 형식에, 일반적으로 적용 가능한,
     - 자료 구조프로그램 구조를 다루는 이론

  ㅇ 주로, 
     - 소프트웨어 아키텍처 수준 보다 낮은 수준의 설계 문제에서, 
     - 자주 접하는 문제에 대해,
     - 객체 간의 상호관계 등을 이용하여,
     - 재사용 가능한 솔루션을 제공하기 위함

  ㅇ 주요 종류
     - 싱글톤 패턴  :  하나의 클래스에 단 하나의 인스턴스 만 생성,존재하도록 보장하는 패턴
     - 반복자 패턴  :  컬렉션의 요소를 순차적으로 접근하도록 하는 패턴
     - 어댑터 패턴  :  호환되지 않는 인터페이스를 연결하는 변환 패턴
     - 데코레이터 패턴  :  객체에 추가 기능을 동적으로 제공하는 패턴
     - 팩토리 메소드 패턴  :  객체 생성 과정을 서브클래스에서 정의하는 패턴
     - 추상 팩토리 패턴  :  관련 객체의 생성을 일관되게 제공하는 패턴
     - 상태 패턴  :  객체상태에 따라 행위를 변경하는 패턴
     - 옵저버 패턴  :  객체 상태 변화를 감지하고 자동으로 업데이트하게 하는 패턴
        . 객체 상태 변화를 관찰자들에게 알림
           .. 주체가 어떤 객체상태 변화를 관찰하면서, 
           .. 상태 변화 발생시, 메서드 등을 통해, 옵저버 목록에 있는 옵저버들에게 변화를 알려줌
        . 옵저버 (observer) : 객체 상태 변화시, 이에따라 추가 변화가 생기는 객체
     - MVC 패턴  :  UI(User Interface)와 비즈니스 로직을 분리하는 패턴

소프트웨어공학 기초
1. 소프트웨어 공학   2. 버전 관리   3. 요구 분석   4. 소프트웨어 설계   5. 소프트웨어 아키텍처   6. CBD (컴포넌트기반개발)   7. MDA (모델주도형구조)   8. 순기/생명주기   9. 분할 후 정복  

"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"
     [정보통신기술용어해설]       편집·운영 ( 차재복, 건강 문제로 휴식중 )
[소프트웨어공학 기초]1. 소프트웨어 공학   2. 버전 관리   3. 요구 분석   4. 소프트웨어 설계   5. 소프트웨어 아키텍처   6. CBD (컴포넌트기반개발)   7. MDA (모델주도형구조)   8. 순기/생명주기   9. 분할 후 정복  

  1. Top (분류 펼침)      :     1,604개 분류    6,618건 해설