자격증

[정처기 필기] Ⅰ. 소프트웨어 설계 (실기 1~2단원)

아이리스 Iris 2021. 8. 3. 13:24

시스템 구성요소

Process
Feedback
Control
(Maintenance X)


소프트웨어 개발방법론

구조적 방법론 : 분할과 정복, 하향식, 나씨-슈나이더만 차트 사용

정보공학 방법론

객체지향 방법론

컴포넌트 기반 방법론 : 컴포넌트 조립

애자일 방법론

제품 계열 방법론 : 특정 제품에 적용하고 싶은 공통된 기능 정의


애자일 방법론

: 절차보다는 사람, 기능 중심

애자일 선언문 : 인과 상호작용, 화에 대응, 작하는 소프트웨어, 객과의 협력

XP(eXtreme Programming)

- 5가지 가치 : 기 / 순성 / 사소통 / 드백 /

- 12가지 기본원리 : 짝 프로그래밍, 공동 코드 소유, 지속적인 통합, 메타포어, 리팩토링 등


린(Lean)


스크럼(SCRUM)


기능 주도 개발(FDD)


UI

UI 유형

- CLI : 명령어를 텍스트로 입력

- GUI : 마우스나 전자펜 이용

- NUI : 신체 부위 이용 (터치, 음성 포함)

- OUI : 모든 사물이 입출력장치로 변화 가능

 

UI 설계 원칙

- 관성

- 효성

- 습성

- 연성 : 요구사항 수용, 실수 방지

 

UI 설계 지침

- 용자 중심 : 이해하기 쉽고 편하게 사용

- 관성

- 순성

- 과 예측 가능

- 시성 : 주요 기능 노출, 쉬운 조작

- 준화

- 근성 : 다양한 계층 수용

- 확성

- 류 발생 해결

 

UI 품질 요구사항 (ISO/IEC 9126 기반)

- 능성(Functionality)

- 뢰성(Reliability) : 작동 시간 동안 의도하는 기능 수행

- 용성(Usability) : 어떠한 행위를 정확하고 쉽게 인지

- 율성(Efficiency)

- 지보수성(Maintainability)

- 식성(Portability)

 

UI 시나리오 문서 작성 요건

- 전성

- 관성

- 해성

- 독성

- 적 용이성

- 정 용이성


UML

구조적(정적) 다이어그램
- 래스(Class) : 클래스의 정적 구조 표현
- 체(Object)
-포넌트(Component)
- 치(Deployment) : 컴포넌트 간 종속성, 물리적 요소들의 위치 표현
- 합체 구조(Composite Structure)
- 키지(Package)

행위적(동적) 다이어그램
- 스케이스(Usecase) : 시스템 제공 기능, 외부 요소를 사용자 관점에서 표현 / 포함, 확장, 일반화 관계
- 퀀스(Sequence) : 생명선, 실행, 메시지
- 뮤니케이션(Communication) : 객체들이 주고받는 메시지, 객체 간의 연관 표현
- 태(State)
- 동(Activity) : 처리의 흐름 표현 / 시작점, 전이, 액션/액티비티, 조건/병합/포크/조인 노드, 구획면
- 이밍(Timing)

 

UML의 관계

- 관 관계(—)

- 합 관계(◇—)

- 합 관계(◆—)

- 반화 관계(◁—)

- 존 관계(‹--)

- 체화 관계(◁--)


분석 자동화 도구(CASE 도구)

원천 기술 : 구조적 기법, 프로토타입 기술, 정보저장소 기술 (일괄처리 기술 X)
주요 기능 : 그래픽 지원, 소프트웨어 생명주기의 전 단계 연결, 다양한 소프트웨어 개발 모형 지원 (언어 번역 X)

상위 CASE : 모순 검사, 오류 검증, 자료흐름도 (소스코드 X)
하위 CASE


요구사항 관리 도구

: 비용 편익 분석, 변경 추적, 영향 평가 (성능 비교 X)


HIPO

: 하향식 개발, 도표 사용, 의존 관계 동시 표현, 변경/유지보수 용이

시적 도표(Visual Table of Contents) : 시스템의 전체적인 기능, 흐름을 보여주는 계층 구조도
체적 도표(Overview Diagram) : 입력·처리·출력에 대한 정보 제공, 프로그램 구성 기능 기술
부적 도표(Detail Diagram) : 총체적 도표에 표시된 기능을 구성하는 기본 요소들을 상세히 기술


객체지향 방법론

Jacobson : 유스케이스

Rumbaugh
- 체 모델링 : 객체 다이어그램, 시스템의 정적 구조 표현
- 적 모델링 : 상태 다이어그램, 객체들 간 제어 흐름, 상호 반응 표현
- 능 모델링 : 자료 흐름도(DFD), 데이터값의 변화 과정 표현

Coad and Yourdon : E-R 다이어그램


소프트웨어 아키텍처

시스템 품질 속성 : 가용성, 변경 용이성, 사용성 (독립성 X)

 

소프트웨어 아키텍처 4+1 뷰

- 스케이스 뷰 : 유스케이스 또는 아키텍처 도출·설계, 다른 뷰 검증

- 리 뷰 : 기능적인 요구사항 / 설계자, 개발자 관점

- 로세스 뷰 : 비기능적인 속성 / 개발자, 시스템 통합자 관점

- 현 뷰 : 정적인 소프트웨어 모듈의 구성

- 포 뷰 : 컴포넌트가 물리적인 아키텍처에 어떻게 배치되는지 매핑

 

소프트웨어 아키텍처 패턴

- 계층화 패턴

- 클라이언트-서버 패턴

- 파이프-필터 패턴 : 서브 시스템으로 전달

- 브로커 패턴 : 분리된 컴포넌트들로 이루어진 분산 시스템에서 사용, 컴포넌트 간의 통신 조정


디자인 패턴

구성요소 : 턴의 이름, 제 및 배경, 루션, 례, 과, 플 코드 ★

성 패턴
- Builder
- Prototype : 일반적인 원형 생성 → 복사해서 필요한 부분만 수정
- Factory Method : 상위 클래스에서 인터페이스 정의 → 하위 클래스에서 인스턴스 생성
- Abstract Factory
- Singleton : 객체를 하나만 생성

조 패턴
- Bridge : 결합도를 낮춘 패턴
- Decorator
- Facade
- Flyweight
- Proxy
- Composite : 트리 구조, 부분-전체 계층 표현, 복합 객체와 단일 객체를 동일 취급
- Adapter

행위 패턴
- Mediator
- Interpreter
- Iterator
- Template Method
- Observer : 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에 연락 → 자동으로 내용 갱신, 일대 다의 의존성
- State
- Visitor
- Command
- Strategy
- Memento
- Chain of Responsibility


→ 실기 예상문제