코딩뿌셔
[1과목] 소프트웨어 설계 - 애플리케이션 설계 본문
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 정보처리기사 필기
'자격증 > 정보처리기사' 카테고리의 다른 글
[2과목] 소프트웨어 개발 - 통합 모듈 (0) | 2022.07.07 |
---|---|
[1과목] 소프트웨어 설계 - 인터페이스 설계 (0) | 2022.07.07 |
[1과목] 소프트웨어 설계 - 화면 설계 (0) | 2022.07.05 |
[5과목] 정보시스템 구축관리 - 소프트웨어 개발방법론 (0) | 2022.07.04 |
[4과목] 프로그래밍 언어 활용 - 네트워크 기초 활용 (0) | 2022.07.03 |