공부하면서 정리했던 내용입니다.
폭포수 모형(Waterfall Model)
각 단계가 끝날 때마다 다음 단계를 위한 결과물이 명확하게 산출됨.
타당성 검토 → 계획 → 요구 분석 → 설계 → 구현 → 시험 → 유지보수
나선형 모형(Spiral Model, 점진적 모형)
폭포수 모형 + 프로토타입 모형 + 위험 분석
[계획 수립 → 위험 분석 → 개발 및 검증 → 고객 평가] 반복
애자일 모형(Agile Model)
핵심 가치: 개인과의 상호작용, 실행되는 SW, 고객과의 협업, 변화에 대응
스크럼(Scrum)
- 팀 중심
- 스스로 팀 구성, 스스로 해결(self-organizing, cross-functional)
- 제품 책임자(PO; Product Owner), 스크럼 마스터(SM; Scrum Master), 개발팀(DT; Development Team)
- 제품 백로그 → 스프린트 계획 회의 → 스프린트 → 일일 스크럼 회의 → 스프린트 검토 회의 → 스프린트 회고
XP(eXtreme Programming)
- 고객 참여와 개발 과정의 반복을 극대화
- 핵심 가치: 의사소통(Communication), 단순성(Simplicity), 존중(Respect), 피드백(Feedback)
요구사항 식별 시 고려사항
운영체제: 가용성, 성능, 기술 지원, 주변 기기, 구축 기용
데이터베이스 관리 시스템: 가용성, 성능, 기술 지원, 상호 호환성, 구축 비용
요구사항: 도출 → 분석 → 명세 → 확인
자료 흐름도(DFD)의 구성
- Process
- Data Flow
- Data Store
- Terminator
자료 사전(DD; Data Dictionary): 자료 흐름도의 자료를 더 자세히 정의하고 기록한 메타 데이터
기호 | 의미 |
= | 정의 |
+ | 연결 |
( ) | 생략 |
[ | ] | 선택(또는) |
{ } | 반복 |
* | 주석 |
UML
- 원활한 의사소통을 위해 표준화한 객체지향 모델링 언어. OMG에서 표준으로 지정
- 구성 요소: Things, Relationships, Diagram (사물, 관계, 다이어그램)
- 관계
□ Association (연관)
□ Aggregation (집합)
□ Composition (포함)
□ Generalization (일반화)
□ Dependency (의존)
□ Realization (실체화)
- UML다이어그램
구조적 다이어그램 (Structural Diagram) |
행위 다이어그램 (Behavioral Diagram) |
정적 | 동적 |
Class (클래스) Object (객체) Component (컴포넌트) Deployment (배치) Composite Structure (복합체 구조) |
Use Case (유스케이스) Sequence (순차) Communication (커뮤니케이션) State (상태) Activity (활동) Interaction Overview (상호작용 개요) Timing (타이밍) |
- 스테레오 타입(Stereotype): 겹화살괄호<< >>에 표현
객체지향 분석 방법론
Coad-Yourdon: E-R 다이어그램 사용
Rumbaugh: 객체, 동적, 기능 모델로 나누어 수행
Booch: 미시적/거시적 개발 프로세스 모두 사용
Jacobson: Use-Case를 강조
럼바우(Rumbaugh)의 분석 기법
=객체 모델링 기법
객체 → 동적 → 기능 모델링
- 객체: 정보 모델링, 시스템에서 요구
- 동적: 제어, 흐름, 동작
- 기능: DFD(자료 흐름도)
결합도
Data Coupling | 자료 요소 -결합도 약함 |
Stamp Coupling | 자료 구조 |
Control Coupling | 제어 신호 |
External Coupling | 참조 |
Common Coupling | 공통 데이터 영역 |
Content Coupling | 직접 참조 -결합도 강함 |
응집도
Functional Cohesion | 모든 기능 요소들이 단일 문제와 연관되어 수행 -응집도 강함 |
Sequential Cohesion | 하나의 활동으로부터 나온 출력 데이터를 다음 활동 입력 데이터로 사용 |
Communication Cohesion | 동일한 입력과 출력을 사용해 서로 다른 기능을 수행하는 구성 요소 |
Procedural Cohesion | 모듈이 다수의 관련 기능을 가질 때 구성 요소들이 그 기능을 순차적으로 수행할 경우 |
Temporal Cohesion | 특정 시간에 처리되는 기능 |
Logical Cohesion | 유사한 성격을 갖거나 특정 형태로 분류되는 요소들 |
Coincidental Cohesion | 서로 관련 없는 요소 -응집도 약함 |
*결합도가 약할수록, 응집도가 강할수록 품질이 높다.
Fan-In / Fan-Out
GoF(Gang of Four) 디자인 패턴
생성 패턴 5개 | 구조 패턴 7개 | 행위 패턴 11개 |
Abstract Factory Builder Factory Method Prototype Singleton |
Adapter Bridge Composite Decorator Facade Flyweight Proxy |
Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor |
다형성(Polymorphism)
- 오버로딩: 같은 이름의 메소드를 중복하여 정의
- 오버라이딩: 상위 클래스에서 정의한 일반 메소드의 구현을 하위 클래스에서 무시하고 재정의. 상속관계에서만 발생.
코드 종류
- 순차 코드 Sequence Code: 일련번호 부여
- 블록 코드 Block Code: 공통성 있는 블록으로 구분, 블록 내에서 일련번호 부여
- 10진 코드 Decimal Code: 0~9까지 10진 분할하고 각각에 대해 10진 분할을 반복(도서 분류식)
- 그룹 분류 코드 Group Classification Code: 대분류, 중분류, 소분류 등으로 구분
- 연상 코드 Mnemonic Code: 명칭이나 관계 있는 숫자나 문자, 기호 사용
- 표의 숫자 코드 Significant Digit Code: 물리적 수치를 코드에 적용, 유효 숫자 코드
- 합성 코드 Combined Code: 2개 이상의 코드를 조합
소프트웨어 아키텍처 설계 과정
- 설계 목표 설정
- 시스템 타입 결정
- 아키텍처 패턴 적용(스타일)
- 서브시스템 구체화
- 검토
파이프-필터 패턴 Pipe-Filter Pattern
- 데이터 스트림 절차의 각 단계를 필터 컴포넌트로 캡슐화하여 파이프를 통해 데이터를 전송
- 데이터 변환, 버퍼링, 동기화 등
- UNIX의 쉘(Shell)
마스터-슬레이브(Master-Slave) 아키텍처
- 일반적으로 실시간 시스템에서 사용
- 연산, 통신, 조정
- 마스터 프로세스가 슬레이브 프로세스 제어
클래스 설계 원칙
- 단일 책임원칙(Single Reponsibility Principle): 하나의 클래스는 하나의 목적을 위해 생성.
- 리스코프 치환의 원칙(Liskov Substitution Principle): 상속받은 하위 클래스는 어디서나 자신의 상위 클래스로 교체할 수 있어야 함.
- 인터페이스 분리의 원칙(Interface Segregation Principle): 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 않아야 함. 사용하지 않는 인터페이스 때문에 영향을 받으면 안 됨.
- 의존성 역전의 원칙(Dependency Inversion Priniciple): 추상을 매개로 메시지를 주고받아 관계를 최대한 느슨하게 만듦.
'자격증 ⁺₊' 카테고리의 다른 글
정보처리기사 필기 3과목 정리 - 데이터베이스 구축 (1) | 2024.05.21 |
---|---|
정보처리기사 필기 2과목 정리 - 소프트웨어 개발 (0) | 2024.05.21 |
경영정보시각화능력 필기 3과목 경영정보시각화 디자인 요약 정리 (0) | 2024.05.18 |
경영정보시각화능력 필기 2과목 데이터 해석 및 활용 요약 정리 (0) | 2024.05.18 |
경영정보시각화능력 필기 1과목 경영정보 일반 요약 정리 (0) | 2024.05.18 |
댓글