- XP(eXtreme Programing) 12 실천 사항
- Pair Programing
- Planning game
- Test Driven Development
- Whole team
- Continuous Intergration
- Desing Improvement
- Small Releases
- Coding Standards
- Collective Code Ownership
- Simple Design
- System Metaphor
- Sustainable pace
- 럼바우(Rumbaugh) 객체지향 분석 기법
- 객체 모델링 : 객체 다이어그램
- 동적 모델링 : 상태 다이어그램 (시간에 흐름에 따라)
- 기능 모델링 : 자료 흐름도
- CASE (Computer Aided Software Engineering) 기능
- 신속한개발 · 생명주기 연결 및 자동화 · 문서화 및 명세화를 위한 그래픽 · 오류수정이 쉬워 품질 향상
- S/W 개발 단계 표준화 · 모순검사 · 다양한 개발모형 지원 · 자료흐름도 작성 기능
- 객체 지향 기법의 캡슐화
- 서로 관련성이 높은 데이터와 그와 관련된 기능을 묶는다 (속성 <ㅡ> 함수)
- 결합도는 낮고 재사용성이 높다
- 정보은닉 · 인터페이스 단순화
- 변경시 오류 파급효과 낮음
- 객체 지향 설계 원칙 (SOLID)
- SRP (단일 책임 원칙) : 모든 클래스는 단일 목적으로 생성, 하나의 책임
- OCP (개방 · 폐쇄 원칙) : 확장 -> 개방, 수정 -> 폐쇄
- LSP (리스코프 치환 원칙) : 부모클래스 자리에 자식클래스가 들어가도 정상작동 해야함.
- ISP (인터페이스 분리 원칙) : 클라이언트는 사용하지 않는 메소드 의존 X, 클라이언트가 사용하지 않는 인터페이스 영향 X
- DIP (의존 관계 역전 원칙) : 변하기쉽고 빈도가 높은것이 변하기 어렵고 빈도가 낮은 것을 의존함
- 파이프 필터 (Pipe-filter)
- 데이터 흐름을 생성하고 처리하는 시스템을 위한 구조
- 필터는 파이프로 데이터 받고 변경시키고 결과 전송
- 처리과정 -> 필터컴포넌트, 데이터흐름 -> 파이프(버퍼링 또는 동기화목적으로 사용)
- 컴파일러, 연속필터는 어휘분석,파싱,의미분석, 코드 생성 수행
- 표의 숫자 코드 (유효숫자코드)
- 코드화 대상 항목의 길이, 넓이, 부피 , 무게등을 나타내는 문자나 숫자, 기호를 그대로 코드로 사용
- 코드의 추가 및 삭제 용이 · 같은 코드 반복으로 오류 저하
- 디자인 패턴 장 ·단점
- 장점
- 개발자간 원활한 의사소통
- 소프트웨어 구조파악 쉬움
- 재사용 통해 개발시간 단축
- 설계변경 요청에 유연한 대처 가능
- 객체지향 설계 및 구현 생산성 높음
- 단점
- 객체지향 설계/구현 위주
- 초기투자 비용 부담
- 장점
- DFD (Data Flow Diagram) 자료 흐름도
- 자료흐름도는 시스템이나 프로그램 간의 총체적인 데이터 흐름 표시
- 기본적인 데이터요소와 그들 사이에서 데이터 흐름 형태로 기술
- UML의 기본구성
- Things(사물) : 객체지향 모델을 구성하는 기본요소 · 객체간 관계형성 대상
- Relationship(관계) : 객체간의 연관성 표현 · 종류로는 연관,집합,포함,일반화,의존,실체화
- Diagram(다이어그램) : 객체 관계 도식화 · 다양한 관점의 View 제공 · 정적 - 구조 다이어그램 · 동적 - 행위 다이어그램
- 소프트웨어 설계 분류
- 상위 : 아키텍쳐 · 데이터 · 인터페이스 · 사용자 인터페이스
- 하위 : 모듈 · 자료구조 · 알고리즘
- 자료 사전 (Data Dictionary) 표기법
| 기호 | 의미 |
| = | 자료의정의 |
| + | 연결 |
| ( ) | 생략 |
| [ ] | 선택 |
| { } | 반복 |
| ** | 설명 |
| | | 대체 |
- 사용자 인터페이스 개발시스템 (User Interface Devlopment System) 기능
- 입력검증 · 에러처리, 에러메시지처리 · 도움 및 프롬포트 제공
- 요구사항 명세 기법
| 구분 | 정형 | 비정형 |
| 기법 | 수학적 기반 모델링 기반 |
상태/기능/객체 중심 자연어 기반 |
| 종류 | Z, VDM Petri-net (모형기반) LOTOS(대수적 방법) CSP, CCS |
FSM Decision table , ER 모델링 State Chart (SADT) Usecase 사용자 기반 모델링 |
| 장점 | 시스템 요구 특성 정확, 간결 명세/구현 일치성 |
명세작성 이해 용이 의사전달 다양 |
| 단점 | 낮은 이해도 이해관계자 부담 높음 |
불충분한 명세 기능 모호성 |
- 소프트웨어 개발 단계
- 요구분석
- 분석결과 문서화 -> 유지보수 유용
- 자료흐름도, 자료사전 활용 효과적
- 소단위 명세서활용 (Mini-spec)
- 유지보수
- 개발비용 가장 많이 소요
- 요구분석
- 애자일 방법론 종류
- 익스트림 프로그래밍 (XP) · 스크럼(Scrum) 린(Lean) · 동적 시스템 개발 방법론(DSDM) · 기능중심개발 (FDD) · Crystal · 적응형 소프트웨어 개발 방법론 (ASD) · 학습 애자일 배포 (DAD)
- 미들 웨어
- 클라이언트와 서버간의 통신을 담당하는 시스템 소프트웨어
- GOF( Gangs of Four) 디자인 패턴 분류
- 생성 · 구조 · 행위
- 모듈의 결합도와 응집도 (바람직한 소프트웨어 설계)
- 응집도 높음, 결합도 낮음
- 유지보수 높음, 복잡도 낮음 중복X
- 입구와 출구는 하나씩