요구 사항 프로세스
- 도출 : 인터뷰, 브레인 스토밍, 이해관계자와의 의사소통
- 분석 : 타당성 조사, 상충 해결, 범위 파악
- 명세 : 문서화, 잘못된 부분 추적
- 확인 : 검토, 요구사항 관리도구, 형상 관리
디자인 패턴 : 모듈설계 해결 방식
- 생성 패턴 : 객체 생성
- 추상 팩토리 : 추상적인 클래스에 의존 하지 않고, 인터페이스를 통해 객체 그룹을 생성
- 빌더 : 인스턴스 조합으로 객체 생성, 같은 객체를 생성하지만, 다른 결과가 나올수 있다.
- 팩토리 메소드 : 서브 클래스, 캡슐화로 객체를 생성, 상위 : 인터페이스 정의, 서브 : 생성
- 프로토 타입 : 원복 객체 복제 후 생성
- 싱글 톤 : 클래스 내에 인스턴스가 한개임을 보장해, 메모리 최소화
- 구조 패턴 : 클랙스 객체를 조합하여 더큰 구조
- 어댑터 : 호환성 없는 클래스의 인터페이스를 타 클래스가 이용
- 브릿지 : 구현부 - 추상층 분리, 기능/ 구현 두개의 별도 클래스
- 컴포지트 : 복합 객체, 단일 객체 구분없이 사용, 트리처럼 복합 객체 속에 복합 객체
- 데코레이터 : 임의의 객체에서 부가 기능 추가
- 퍼싸드 : wrapper 객체, 상위에 인터페이스 구성하여 , 간편하게 서브 클래스 사용
- 플라이웨이트 : 인스턴스 공유로 메모리 저약
- 프록시 : 집근이 어려운 객체에서 연결, 인터페이스 역할
- 행위 패턴 : 클래스 객체 상호 작용, 책임 분배
- 책임 연쇄 : 다음 객체로 넘어간다
- 커맨드 : 요청을 객체의 형태로 캡슐화하여 재이용과 취소 쉽게!, 명령어 단순화
- 인터프리터 : 언어의 문법 표현 정의 패턴, SQL-통신 프로토콜 개발시 사용
- 이터레이터 : 자료 구조같은 접근이 잦은 인터페이스에 동일 인터페이스 사용
- 중재자 : 상호작용(인터페이스) 캡슐화하여 객체 정의
- 메멘토 : 되돌리기
- 옵서버 : 상태변화한 객체의 상속객체들에게 상태 전달
- 상태 : 동일 동작을 다르게 처리
- 전략 : 동일 계열, 알고리즘, 상호 교환
- 템플릿 메소드 : 상위 클래스 : 골격 정의 하위 : 세부 처리 구체화
- 방문자 : 분산 처리 기능은 각 클래스를 방문하여 수행
럼바우 분산 기법
- SW 구성 요소를 그래픽 표기법을 이용하여 모델링
- 객체 모델링 : 객체 다이어그램
- 동적 모델링 : 상태 다이어그램, 시간 흐름
- 기능 모델링 : 자료 흐름도
SW 생명 주기 모형
- 폭포수 : 이전 단계 회귀 불가 , 검토 -> 계획 -> 분석 -> 설계 -> 구현 -> 시험 -> 유지보수
- 프로토타입 : 견본 제작
- 나선형 : 여러번의 SW 개발 과정
- 애자일 : 고객 요구사항 반영
미들웨어
- DB : 2-Tier 아키텍처
- RPC (Remote Procedure Call) : 프로시져 호출 , 사용
- MOM (Message Oriented Midleware) : 메시지 기반 비동기형 메시지 전달
- TP(Transaction Processing)-Monitor : 트랜잭션 업무, 공항 철도
- ORB(Object Request Broker) : 객체 지향
- WAS(Web Application Server) : 웹앱 서버
- MW 식별
UML (Unified Modeling Language)
- 사물 : 구조(클래스), 행동(상호작용), 그룹(패키지), 주해 (주석)
- 관계
- 연관 관계 : 사람 -> 집
- 집합 관계 : 컴퓨터 < >- 프린터(다른 컴퓨터에서도 프린터 사용가능)
- 포함 관계 : 문 «»- 키(다른 문에서 키 사용 불가)
-
- 의존 관계 : 등급 …..> 할인율
-
- 다이어그램
- 구조적 다이어그램
- 클래스
- 객체
- 컴포넌트
- 배치 : 노드 , 위치
- 복합체 구조
- 패키지
- 행위 다이어그램
- 유스케이스 : 요구
- 시퀀스 : 상호작용, 메시지, 활성박스, 라이프라인, 실행
- 커뮤니케이션 : 시퀀스 + 객체 연관
- 상태 : 상속 상태
- 활동 : 처리 흐름 순서
- 상호작용
- 타이밍
객체 지향
- 객체 : 하나의 SW 모듈
- 클래스 : 객체 집합
- 캡슐화 : 정보 은닉, 재사용 높, 결합도 낮
- 상속
- 다형성 : 클래스에 따른 다른 의미를 가진다.