코딩뿌셔

[1과목] 소프트웨어 설계 - 애플리케이션 설계 본문

자격증/정보처리기사

[1과목] 소프트웨어 설계 - 애플리케이션 설계

He__o 2022. 7. 6. 00:38

01 공통 모듈

02 설계 모델링


01 공통 모듈

▶ 모듈(Module)

  : 독립된 하나의 소프트웨어 또는 하드웨어 단위

 

▷ 공통 모듈

  : 전체 프로그램 기능 중 특정 기능을 처리할 수 있는 실행 코드, 자체적 컴파일 및 재사용 가능

 

▷ 공통 모듈 원칙

정확성
(Correctness)
명확성
(Clarity)
완전성
(Completeness)
일관성
(Consistency)
추적성
(Traceability)

 

▶ 모듈화(Modularity)

  : 프로그램이 효율적으로 관리될 수 있도록 시스템 분해, 추상화 → 소프트웨어 제품 성능 향상, 시스템 수정 및 재사용, 유지관리 용이

 

▷ 모듈 설계 방안

  - 모듈 독립성과 재사용을 높이기 위하여 결합도는 낮추고 응집도는 높인다

  - 모듈 복잡도와 중복성을 줄이고 일관성을 유지한다

  - 모듈 기능은 예측이 가능해야 하며, 지나치게 제한적이어서는 안된다

  - 적당한 모듈 크기를 유지한다

  - 모듈 간 효과적 제어를 위해 설계에서 계층적 자료 조직이 제시되어야 한다

  - 유지보수가 용이해야 하고, 이식성을 고려해야 한다

 

02 설계 모델링

▶ 설계 모델링

  : 요구사항 분석 단계에서 규명된 필수 기능들의 구체적인 구현 방법을 명시하는 기법으로 소프트웨어 내부 기능, 구조 및 동적 행위들을 모델링하여 표현, 분석, 검증하는 과정

 

▷ 유형

구조 모델링 행위 모델링
프로시저, 데이터 구조, 모듈, 파일 구조 입력 데이터, 출력 데이터, 데이터 흐름/변환/저장

 

▶ 소프트웨어 설계

▷ 유형

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

 

▷ 원리

  - 하향식 설계 : 시스템 명세가 명확한 경우, 모든 것을 새로 개발하는 작업에 적합 (모듈 설계)

  - 상향식 설계 : 기존 컴포넌트를 조합하여 시스템 개발하는 경우 적합 (자료 구조/아키텍처/인터페이스/프로시저/협약에 의한 설계)

 

▶ 코드 설계

▷ 기능

표준화 분류 식별 배열
간소화 연상 암호화 오류 검출

 

▶ 소프트웨어 아키텍처

▷ 프레임워크 구성요소

▷ 4+1 뷰

  : 고객의 요구사항을 정리해 놓은 시나리오를 4개의 관점에서 바라보는 소프트웨어적 접근 방법, 또한, 4개 구조가 서로 충돌되지 않는지, 시스템 요구사항을 충족시키는지 증명하기 위해 체크 방법으로 유스케이스 사용

설명
유스케이스 뷰
(Usecase View)
유스케이스 또는 아키텍처 도출, 설계, 다른 뷰 검증
논리 뷰
(Logical View)
시스템 기능적 요구사항이 어떻게 제공되는지 설명
프로세스 뷰
(Process View)
시스템 비기능적 속성으로 자원의 효율적인 사용, 병행 실행, 비동기, 이벤트 처리 등 표현
구현 뷰
(Implementation View)
개발 환경 안에서 정적 소프트웨어 모듈의 구성, 컴포넌트 구조와 의존성을 보여줌
배포 뷰
(Deployment View)
컴포넌트가 물리적인 아키텍처에 어떻게 배치되는가 매핑해서 보여줌

 

03 객체 지향 설계

▶ 객체 지향(Object Oriented)

▷ 구성요소

 

▷ 기법

 

▶ 디자인 패턴

▷ 구성요소

▷ 종류

생성 패턴 구조 패턴 행위 패턴
Builder, Prototype, Factory Method,
Abstract Factory, Singleton
Bridge, Decorator, Facade, Flyweight,
Proxy, Composite, Adapter
Mediator, Interpreter, Iterator, State,
Observer, Template Method, Visitor,
Command, Memento
더보기

Prototype : 프로토타입을 먼저 생성하고 인스턴스를 복제하여 사용하는 구조

Factory Method : 상위 클래스에서 객체를 생성하는 인터페이스 정의하고, 하위 클래스에서 인스턴스를 생성하도록 하는 방식

Bridge : 

Mediator : 객체 간 통제와 지시 역할을 하는 중재자를 두어 객체 지향의 목표를 달성

 

▷ 장단점

  - (장점) 요구사항 변경에 따른 소스 코드 변경 최소화

  - 소프트웨어 코드 품질 및 생산성 향상

  - 설계 변경 요청에 대한 유연한 대처

  - 개발자 간의 원활한 의사소통, 재사용을 통한 개발 시간 단축

  - 범용적 코딩 스타일 적용 가능

  - (단점) 객체 지향 설계/구현 위주로 사용

  - 초기 투자 비용 부담

 

 

 

출처 : 수제비 2022 정보처리기사 필기

Comments