Software engineering #6 object oriented design

19
2012 년년 N4tech ¼ 년년 년년년 이이이 2012.02.10( 이 )

description

Software engineering

Transcript of Software engineering #6 object oriented design

Page 1: Software engineering #6 object oriented design

2012 년도 N4tech ¼ 분기 세미나

이오준2012.02.10( 금 )

Page 2: Software engineering #6 object oriented design

Schedule 소프트웨어 공학

1st weak - chapter 01. 소개

2nd weak - chapter 02. 프로세스

3rd weak - chapter 03. 계획

4th weak - chapter 04. 요구 분석

5th weak - chapter 05. 설계원리와 아키텍처

6th weak - chapter 06. 객체지향 설계

7th weak - chapter 07. 상세 설계와 UI 설계

8th weak - chapter 08. 코딩

9th weak - chapter 09. 테스팅

10th weak - chapter 10. 유지 보수

11th weak - chapter 11. 품질

12th weak - chapter 12. 첨단 소프트웨어 공학 기술

Page 3: Software engineering #6 object oriented design

객체지향 분석과 설계 – 객체 지향 분석과 설계는 명확한 구분이 어렵다 .

사용 사례다이어그램

클래스 후보선정 및 개념적

다이어그램 작성

순서 다이어그램

액티비티 다이어그램

상태 다이어그램 클래스

다이어그램

Page 4: Software engineering #6 object oriented design

객체지향

Page 5: Software engineering #6 object oriented design

객체 – 자료와 이에 대한 함수를 가진 모듈 .

클래스 – 객체들의 속성과 적용 연산을 정의하고 있는 틀 .

Page 6: Software engineering #6 object oriented design

연관 관계 – 객체가 다른 객체의 동작을 이용하는 관계 .

집합 관계 – 객체가 다른 객체를 자신의 구성 요소로 이용하는 관계 .

상속 관계 – 자식 클래스가 부모 클래스의 속성과 연산을 그대로 물려 받는 관계 .

객체 사이의 관계

Page 7: Software engineering #6 object oriented design

클래스 찾기

Page 8: Software engineering #6 object oriented design

엔티티 클래스

시스템에 저장되어 사용될 자료를 보관하는 역할 .

- 사용 사례를 이해하기 위하여 사용자와 개발자가 명확히 규정한 용어 .

- 사용 사례에서 반복되어 나오는 용어 .

- 시스템이 계속 추적해야 하는 실 세계의 엔티티 .

- 자료 저장소 또는 단말 .

- 자주 사용하는 응용 도메인 용어 .

Page 9: Software engineering #6 object oriented design

경계 클래스

시스템 외부의 엑터와 상호작용하는 클래스 .

- 사용자가 자료를 시스템에 입력하기 위해 필요한 양식과 윈도우 찾기 .

- 시스템이 사용자에게 반응하는 메시지나 알림 찾기 .

- 인터페이스의 시각적 형태를 모델링 하지 않기 .

- 인터페이스를 나타내는 언어는 구현과는 관계 없는 용어 이용하기 .

Page 10: Software engineering #6 object oriented design

제어 클래스

자료를 다른 클래스로부터 받아 처리하는 클래스 .

- 사용 사례를 여러 개의 소규모 이벤트로 나눌 경우 , 사용 사례당 한 개

이상의 제어 클래스 찾기 .

- 사용 사례에서 엑터 하나당 하나의 제어 클래스 찾기 .

- 제어 클래스는 사용 사례 또는 사용자 세션 안에서만 유효함 .

Page 11: Software engineering #6 object oriented design

연관 관계 찾기

- 동사 구를 찾기 .

- 연관 관계와 역할에 대한 적당한 이름을 붙이기 .

- 주요 특징을 나타내기 위해 수식어를 사용하기 .

- 다른 연관 관계에 의해 유추될 수 있는 관계는 제거하기 .

- 연관 관계가 확실해질 때까지 다중도는 생각하지 않기 .

- 너무 많은 연관 관계를 형성하지 않기 .

Page 12: Software engineering #6 object oriented design

패키징 하기

클래스를 논리적으로 그룹핑 하여 서브 시스템으로 나누는 것 .

- 같은 사용 사례에서 발견된 객체는 같은 서브 시스템으로 구분하기 .

- 서브 시스템 사이에 데이터를 전달하기 위해 사용되는 객체는 단독 서브

시스템으로 만들기 .

- 서브 시스템 경계에 있는 연관 관계는 최소화 하기 .

- 같은 서브 시스템 안에 있는 모든 객체는 기능적으로 연관되도록 하기 .

Page 13: Software engineering #6 object oriented design

동적 모델링

Page 14: Software engineering #6 object oriented design

순서 다이어그램

Page 15: Software engineering #6 object oriented design

상태 다이어그램

Page 16: Software engineering #6 object oriented design

액티비티 다이어그램

Page 17: Software engineering #6 object oriented design

클래스 다이어그램

Page 18: Software engineering #6 object oriented design

클래스 다이어그램

Page 19: Software engineering #6 object oriented design

감사합니다 .

질문 & 답변