시스템 구성요소
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
'자격증' 카테고리의 다른 글
[정처기 실기] 2021년 3회 필기 기출문제 (실기 대비 정리) (0) | 2021.09.09 |
---|---|
[정처기 필기] Ⅴ. 정보시스템 구축관리 (실기 9단원) (0) | 2021.08.03 |
[정처기 필기] Ⅳ. 프로그래밍 언어 활용 (실기 6, 8, 11단원) (0) | 2021.08.03 |
[정처기 필기] Ⅲ. 데이터베이스 구축 (실기 7단원) (0) | 2021.08.03 |
[정처기 필기] Ⅱ. 소프트웨어 개발 (실기 3~5, 10, 12단원) (0) | 2021.08.03 |