자격증/정보처리 기사 1. 소프트웨어 설계

3. 애플리케이션 설계

Mt.Hwang 2025. 2. 6. 13:27

소프트웨어 아키텍처

기능적 요구사항

비기능적 요구사항

소프트웨어 상위 설계

소프트웨어 하위 설계

 

 

모듈화 (Modualarity)

모듈 (Module)

추상화 (Abstraction)

추상화 과정

 1. 과정 추상화

 2. 데이터 추상화

 3. 제어 추상화

단계적 분해 (Stepwise Refinement)

정보 은닉 (Information Hiding)

 

 

소프트웨어 아키텍처의 품질 속성

 1. 시스템 측면

 2. 비즈니스 측면

 3. 아키텍처 측면

시스템 품질 속성

 1. 성능

 2. 보안

 3. 가용성

 4. 기능성

 5. 사용성

 6. 변경 용이성

 7. 확장성

 8. 테스트 용이성

 9. 배치성

 10. 안정성

비즈니스 품질 속성

 1. 시간 적시성

 2. 비용과 혜택

 3. 예상 시스템 수명

 4. 목표 시장

 5. 공개 일정

 6. 기존 시스템과 통합

 

 

아키텍처 품질 속성

 1. 개념적 무결성

 2. 정확성, 완결성

 3. 구축 가능성

4. 변경성

 5. 시험성

 6. 적응성

 7. 일차성

 8. 대체성

아키텍처 패턴

소프트웨어 아키텍처의 설계 과정

 1. 설계 목표 설정

 2. 시스템 타입 결정

 3. 아키텍처 패턴 적용

 4. 서브 시스템 구체화

 5. 구체화

 

 

아키텍처 (Patternsm 아키텍처 스타일, 표준 아키텍처)

레이어 패턴 (Layers pattern)

 1. 상위 계층

 2. 하위 계층

 

 

OSI 참조모델

 1. 물리 계층

 2. 데이터 링크 계층

 3. 네트워크 계층

 4. 전송 계층

 5. 세션 계층

 6. 표현 계층

 7. 응용 계층

클라이언트 서버 패턴 (Client-Server Pattern)

 

 

컴포넌트 (Component)

파이프-필터 패턴 (Pipe-Filtter Pattern)

파이프라인 (Pipeline)

데이터 스트림 (Data Stream)

 

 

모델-뷰-컨트롤러 패턴 (MVC, Model-View-Controller Pattern)

 1. 모델 (Model)

 2. 뷰 (View)

 3. 컨트롤러 (Controller)

대화형 애플리케이션

 

 

마스터-슬레이브 패턴 (Master-Slave Pattern)

 1. 마스터 컴포넌트

 2. 슬레이브 컴포넌트

장애 허용 시스템 (Fault Tolerance System)

멀티스레딩 (Multi Threading)

메시지 (Message)

 

 

브로커 패턴 (Borker Pattern)

피어 투 피어 패턴 (Peer-To-Peer Pattern)

이벤트-버스 패턴 (Event-Bus Pattern)

 1. 소스 (Source)

 2. 리스너 (Listener)

 3. 채널 (Channer)

 4. 버스 (Bus)

 

 

블랙보드 패턴 (Blackboard Pattern)

인터프리터 패턴 (Interpreter Pattern)

소프트웨어 아키텍처

데이터 중심 아키텍처

 

 

객체지향 (Object-Oriented)

객체지향 구성 요소

 1. 객체 (Object)

 2. 클래스 (Class)

 3. 캡슐화 (Encapsulation)

 4. 상속 (Inheritance)

 5. 다형성 (Polymorphism)

 6. 연관성 (Relationship)

현실 세계의 개체

 

 

구조적 기법

구조적 기법의 문제점

객체 (Object)

 1. 데이터

 2. 함수

 

 

객체 특성

 1. 이름

 2. 상태 (State)

 3. 관계

 4. 행위

 5. 기억 장소

클래스 (Class)

인스턴스 (Instance)

인스턴스화 (Instantiation)

클래스와 객체

 

 

캡슐화 (Encapsulation)

상속 (Inheritance)

다중 상속 (Multiple Inheritance)

다형성 (Polymorphism)

 

 

연관성 (Relationship)

 1. 연관화 (Association) (is member of)

 2. 분류화 (Classfication) (is instance of)

 3. 집단화 (Aggregation) (is part of)

 4. 일반화 (Generalization), 특수화/상세화 (Specialization) (is a)

 

 

객체지향 분석 및 설계

객체지향 분석 방법론

 1. Coad와 Yourdon

 2. Booch

 3. Jacobson

 4. Rumbaugh

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

 1. 단일 책임 원칙

 2. 개방-폐쇄 원칙

 3. 리스코프 치환 원칙

 4. 인터페이스 분리 원칙

 5. 의존 역전 원칙

Use Case

객체 다이어그램

상태 다이어그램

 

 

모듈 (Module)

루틴 (Routine)

메인 루틴 (Main Routine)

서브 루틴 (Sub Routine)

서브 시스템 (Sub System, 단위 시스템)

 

 

결합도 (Coupling)

 1. 자료 결합도

 2. 스탬프 결합도 (검인 결합도)

 3. 제어 결합도

 4. 외부 결합도

 5. 공통 결합도 (공유 결합도)

 6. 내용 결합도

제어 요소

권리 전도현상

 

 

응집도 (Cohesion)

 1. 기능적 응집도

 2. 순차적 응집도

 3. 교환적 응집도 (통신적 응집도)

 4. 절차적 응집도

 5. 시간적 응집도

 6. 논리적 응집도

 7. 우연적 응집도

팬 인 (Fan-In)

팬 아웃 (Fan-Out)

 

 

단일 장애점 (SPOF, Single Point Of Failure, 단일 실패점)

N-S 차트 (Nassi-Schneiderman Chart, 박스 다이어그램, Chapin Chart)

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

 1. 단일 책임 원칙 (SRP, Single Responsibility Principle)

 2. 개방-폐쇄 원칙 (OCP, Open-Closed Principle)

 3. 리스코프 치환 법칙 (LSP, Liskov Subsitution Principle)

 4. 인터페이스 분리 원칙 (ISP, Interface Segregation Principle)

 5. 의존 역전 원칙 (DIP, Dependery Inversion Principle)

리스코프 치환 원칙

 

 

공통 모듈

공통 모듈 명세 기법

 1. 정확성

 2. 명확성

 3. 완전성

 4. 일관성

 5. 추적성

재사용 Reuse

재사용 규모에 따른 분류

 1. 함수와 객체

 2. 컴포넌트

 3. 애플리케이션

 

 

애플리케이션

모듈의 제어 영역

모듈의 영향 영역

 

 

코드 (Code)

코드의 주요 기능

 1. 식별 기능

 2. 분류 기능

 3. 배열 기능

 4. 표준화 기능

 5. 최소화 기능

 

 

코드의 분류

 1. 순차 코드 (순서 코드, 일련번호 코드)

 2. 블록 코드

 3. 10진 코드 (도서 분류식 코드)

 4. 그룹 분류 코드

 5. 연상 코드

 6. 표의 숫자 코드 (유효 숫자 코드)

 7. 합성 코드

개체

코드 부여 체계

 

 

디자인 패턴 (Design Pattern)

GoF의 디자인 패턴

 1. 생성 패턴 (Creational Pattern)

 2. 구현 패턴 (Structural Pattern)

 3. 행위 패턴 (Behavioral Pattern)

 

 

생성 패턴

 1. 추상 팩토리 (Abstraction Factory)

 2. 빌더 (Builder)

 3. 팩토리 메소드 (Factory Method, 가상 생성자 패턴, Virtual Constructor)

  (1) 상위 클래스

  (2) 하위 클래스

 4. 프로토타입 (Prototype)

 5. 싱글톤 (Sinleton)

인스턴스 (Instance)

 

 

구조 패턴

 1. 어댑터 (Adapter)

 2. 브리지 (Bridge)

 3. 컴포지트 (Composite)

 4. 데코레이터 (Decorator)

 5. 퍼싸드 (Facade)

 6. 플라이웨이트 (Flyweight)

 7. 프록시 (Proxy)

 

 

행위 패턴

 1. 책임 연쇄 (Chain of Responsibility)

 2. 커맨드 (Command)

  (1) 추상 클래스

  (2) 구체 클래스

 3. 인터프리터 (Interpreter)

 4. 반복자 (Iterator)

 5. 중재자 (Meditator)

 6. 메멘토 (Memento)

 7. 옵서버 (Observer)

 8. 상태 (State)

 9. 전략 (Strategy)

 10. 템플릿 메소드 (Template Method)

  (1) 상위 클래스

  (2) 하위 클래스

  11. 방문자 (Visitor)

추상 클래스 (Abstract Class)

구체 클래스 (Concrete Class, 구현 클래스) 

'자격증 > 정보처리 기사 1. 소프트웨어 설계' 카테고리의 다른 글

4. 인터페이스 설계  (0) 2025.02.07
2. 화면 설계  (0) 2025.02.03
1. 요구사항 확인  (0) 2025.02.03