소프트웨어 설계 1단원 정리
1. 행위적 다이어그램
- 유스케이스, 시퀀스, 커뮤니케이션, 상태, 활동 다이어그램
2. 유스케이스 다이어그램
- 확장(Extend): 특정 조건에서 추가되는 관계
- 포함(Include): 반드시 포함되는 관계
- 의존 관계: 사물의 변화가 다른 사물에도 영향을 주는 관계
3. 개발 방법론
- XP(eXtreme Programming): 용이한 단순 설계, 단위 테스트, 피드백, 지속적인 통합
- 애자일: 모듈 중심이 아닌 기능 중심 개발
- UML: 사물, 관계, 다이어그램으로 구성 (터미널 X)
4. 데이터 흐름 및 모델링
- DFD(Data Flow Diagram): 시간 흐름을 명확하게 표현할 수 없음
- 유스케이스 구성 요소: 연관, 포함, 확장, 일반화
- UML 사물 유형: 구조(구조적), 행동(행위적), 그룹(그룹화), 주해(주석)
5. 스프린트 및 다이어그램 요소
- 스프린트: 번다운 차트를 통해 작업량 추적
- 전이(Transition): 객체의 상태 변화를 유발하는 자극
6. CASE(Computer-Aided Software Engineering)
- 과정 전체 또는 일부 자동화
- 일괄처리 X → 분산처리 O
- 상위 CASE: 자료 흐름도 중심
- 하위 CASE: 구문 중심
7. UI/UX 원칙
- 유효성: 목표를 달성할 수 있도록 제작
- 직관성: 쉽게 사용할 수 있어야 함
- 유연성: 다양한 환경에서 동작 가능
8. 소프트웨어 아키텍처 설계 (4+1 뷰)
- 유스케이스 뷰: 사용자 관점
- 논리 뷰: 기능 중심
- 프로세스 뷰: 비기능적 요구사항
- 구현 뷰: 정적인 소프트웨어 모듈 구성
- 배포 뷰: 컴포넌트의 물리적 배치
9. 디자인 패턴
- 파이프-필터: 데이터 스트림 기반, 단방향, 서브시스템 연결
- 브로커: 클라이언트-서버 간 리다이렉션 역할
- MVC(Model-View-Controller): 대화형 애플리케이션 설계
- 마스터-슬레이브: 실시간 시스템에 사용
10. 소프트웨어 품질 속성
- 가변성, 보안성, 시각화 (독립성 X)
11. 모듈화 원칙
- 유일한 이름 보유
- 다른 모듈에 접근 가능
12. 응집도 & 결합도
- 통신적 응집도 = 교환적 응집도 (유사한 데이터 사용)
13. 오버로딩 vs 오버라이딩
- 오버로딩: 같은 이름, 다른 매개변수(유형 다름)
- 오버라이딩: 상속받은 메서드 재정의(리셋)
14. 디자인 패턴 유형
- 생성 패턴: 빌더, 프로토타입, 팩토리, 싱글톤
- 구조 패턴: 브릿지, 프록시, 어댑터, 컴포지트, 데코레이터, 파사드
15. 객체지향 개념
- 객체 지시 = 메시지
- 확장 = 상속
- 객체지향 개발 = 상향식 접근
16. 관계 개념
- 일반화 (Generalization): is-a 관계
- 집단화 (Aggregation): part-of 관계
- 분류화 (Classification): is-instance-of 관계
- 연관화 (Association): is-member-of 관계
17. 템플릿 메서드 패턴
- 상위 클래스에서 골격 정의, 하위 클래스에서 세부 구현
18. 요구사항 분석
- 정형 요구사항: 숫자, 수식 등 명확한 요구
- 비정형 요구사항: 자연어 기반 요구
19. 요구사항 개발 절차
- 도출 → 분석 → 명세 → 확인
20. 시스템 간 통신
- 송신 시스템: 데이터를 송신
- 수신 시스템: 데이터를 수신
- 중계 시스템: 송수신 현황을 모니터링
21. TP 모니터 & 미들웨어
- TP 모니터: 트랜잭션 감시
- 메시지 지향 미들웨어(MOM): 비동기 방식, 느리지만 안정적




'자격증 > 정보처리기사' 카테고리의 다른 글
정보시스템 구축관리(필기 5단원) (0) | 2025.02.22 |
---|---|
프로그래밍 언어활용(필기 4단원) (0) | 2025.02.21 |
데이터베이스 구축(필기 3단원) (0) | 2025.02.21 |
소프트웨어 개발(필기 2단원) (0) | 2025.02.21 |