소프트웨어 설계 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): 비동기 방식, 느리지만 안정적

 

 

 

 

+ Recent posts