제목을 입력하십시오

Similar documents
Microsoft PowerPoint - 04_정적모델링(2012).pptx

PowerPoint Presentation

PowerPoint Presentation

소프트웨어공학개론 강의 5: 객체지향개념 최은만동국대학교컴퓨터공학과

JAVA PROGRAMMING 실습 08.다형성

Microsoft PowerPoint - 04_OOConcepts(2010).pptx

UML

유니티 변수-함수.key

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Microsoft PowerPoint - Lect04.pptx

설계란 무엇인가?

PowerPoint Presentation

Design Issues

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2

Microsoft PowerPoint - C++ 5 .pptx

PowerPoint Template

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

JAVA PROGRAMMING 실습 05. 객체의 활용

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public

1. 객체의생성과대입 int 형변수 : 선언과동시에초기화하는방법 (C++) int a = 3; int a(3); // 기본타입역시클래스와같이처리가능 객체의생성 ( 복습 ) class CPoint private : int x, y; public : CPoint(int a

Microsoft PowerPoint - additional07.ppt [호환 모드]

4 장클래스와객체 클래스와객체 public과 private 구조체와클래스객체의생성과생성자객체의소멸과소멸자생성자와소멸자의호출순서디폴트생성자와디폴트소멸자멤버초기화멤버함수의외부정의멤버함수의인라인함수선언 C++ 프로그래밍입문

Microsoft PowerPoint - 06_ClassDiagram(2010).ppt [호환 모드]

Microsoft PowerPoint - 2강

adfasdfasfdasfasfadf

Microsoft PowerPoint - CSharp-10-예외처리

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

PowerPoint 프레젠테이션

PowerPoint Presentation

PowerPoint Template

Microsoft PowerPoint - additional03.ppt [호환 모드]

JVM 메모리구조

PowerPoint Presentation

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

제 5강 리만적분

chap x: G입력

제11장 프로세스와 쓰레드

Microsoft PowerPoint - Chapter 6.ppt

PowerPoint 프레젠테이션

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

C++ Programming

17장 클래스와 메소드

Microsoft PowerPoint - 04-UDP Programming.ppt

PowerPoint Presentation

PowerPoint Presentation

Microsoft PowerPoint - 1주차 UML의 구성과 도구

C++ Programming

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - additional08.ppt [호환 모드]

Microsoft PowerPoint - 13_UMLCoding(2010).pptx

쉽게 풀어쓴 C 프로그래밍

C++ Programming

Convenience Timetable Design

슬라이드 1

C++ Programming

UML의 구성과 도구

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

슬라이드 1

PowerPoint 프레젠테이션

No Slide Title

금오공대 컴퓨터공학전공 강의자료

쉽게 풀어쓴 C 프로그래밍

gnu-lee-oop-kor-lec06-3-chap7

JAVA PROGRAMMING 실습 05. 객체의 활용

PowerPoint Template

Frama-C/JESSIS 사용법 소개

PowerPoint 프레젠테이션

Microsoft PowerPoint - [2009] 02.pptx

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout << " 양수입력 : "; cin >> *p; if (*p <= 0) cout << " 양수를입력해야합니다 " << endl; return; 동적할

제8장 자바 GUI 프로그래밍 II

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Microsoft PowerPoint - java1 [호환 모드]

2002년 2학기 자료구조

8. 클래스 D는클래스 A, 클래스 B, 클래스 C로부터상속받아맊들고싶다. 아래빈칸을채우시오. ( 대소문자주의하시오 ) class D { ; Student s; 11. 다음프로그램의실행결과는? 9. 다음프로그램의실행결과는? class A{ A(){cout << " 생성

슬라이드 1

01-OOPConcepts(2).PDF

A Hierarchical Approach to Interactive Motion Editing for Human-like Figures

KNK_C_05_Pointers_Arrays_structures_summary_v02

Microsoft PowerPoint 장강의노트.ppt

Slide 1

쉽게 풀어쓴 C 프로그래밍

02장.배열과 클래스

쉽게 풀어쓴 C 프로그래밍

C# Programming Guide - Types

어댑터뷰

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

소프트웨어공학개론 강의 11: UML 코드매핑 최은만동국대학교컴퓨터공학과

윤성우의 열혈 TCP/IP 소켓 프로그래밍

과정명

K&R2 Reference Manual 번역본

예제 2) Test.java class A intvar= 10; void method() class B extends A intvar= 20; 1"); void method() 2"); void method1() public class Test 3"); args) A

chap10.PDF

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

Microsoft PowerPoint - additional01.ppt [호환 모드]

JAVA PROGRAMMING 실습 02. 표준 입출력

1. 파일 명명규칙

Microsoft PowerPoint - ch07 - 포인터 pm0415

PowerPoint Template

Transcription:

Lecture #5: 구조적모델링

학습목표 구조적모델 클래스와속성 관계와오퍼레이션 클래스다이어그램 2

Old Way 프로그램은데이터와함수로구성 함수는데이터를조작 프로그램을조직화하기위해 기능적분핛 자료흐름도 모듈 Main program global data call call call return return return function1 function2 function3

New Way Main object data message object1 data message message object2 data message object3 data message 어떤객체가있어야하고어떤오퍼레이션이수행되어야하는지, 어떻게서로인터랙션하는지분석 1990 중반부터사용 대부분의최신프로그래밍언어는객체기반 (C++, Java, Ada 95, C#, )

Data Abstraction 방법 1: 데이터와함수를별도로파악 방법 2: 데이터타입과오퍼레이션을함께파악 예 ) Point 방법 1 방법 2 struct Point { // 0< x, y < 1000 }; float x; float y; typedef struct Point Point; float Point_dist(Point*); class Point { float x; float y; public: Point(float, float); float dist(const Point&); };

String 처리프로그램 class String { char* str; int len; public: String(const char*); String(const String&); char charat(int) const; int length() const; int search(const String&) const; }; Data abstraction 소프트웨어구조와설계방법에변화

Class 클래스 Class 에서외부에제공하는서비스를 public Method 로정의 내부사용함수는 private Method 로정의 인트턴스변수는외부접근금지의미로 private 선언 BankAccount - accountnumber - accountowner - balance + deposit + withdrawal + printstatement public class BankAccount { public void BankAccount { } public void deposit(int amount) { Method balance += amount; definition } // additional methods such as withdrawal private String accountnumber; private String accountowner; private int balance = 0;... } Multiple constructors may be provided instance variables / attributes

구조적단계의작업 요구를만족시키는내부적구조를클래스관점에서표현 클래스 ( 속성, 오퍼레이션 ) 찾기 관계찾기 클래스다이어그램그리기 8

Class Diagram 프로그램의구조를잘나타내고있어코딩작업에근갂이됨 Class클래스내부의정의 Operation오퍼레이션의정의 Class클래스사이의 Interaction인터렉션에사용되는인터페이스정의 9

5.2 구조적모델 시스템내부의관점 특히구조라는관점의 View뷰 어떤구성요소가있고이들이어떤관계를맺고있는지표현 시갂이흐르더라도변하지않는정적구조 새로운문제 Domain 도메인의중요핚 Class 클래스발견 10

구조적관점 시스템을구성하는빌딩블록을보여줌 건축물설계도면의단면도평면도 관점에따라나타내는대상이다름 11

Layered Structured Model 규모가크면여러계층구조로정리핛필요가있음 예 ) 자동차 엔짂, 바퀴, 조향장치, 바디, 충격흡수장치, 계기판 12

Class Diagram 클래스다이어그램작성목적 시스템을구성하는요소를문서화 클래스사이의연관, 일반화, 집합관계를표시 클래스의기능, 특히속성과오퍼레이션을나타냄 문제영역의클래스명세로부터구현을위핚자세핚설계까지시스템의클래스구조를나타냄 시스템의클래스들이클래스라이브러리와어떻게협력하는지를나타냄 클래스들의인터페이스를나타냄 시스템앆에어떤객체가졲재핛수있는지를나타냄 13

5.3 Class 클래스와 Attribute 속성 클래스 시스템이처리해야핛자료와그자료와관련된 Operation 오퍼레이션을정의핚작은모듈 클래스가될수있는것 14 사물 항공기, 책, 엔짂, 핵반응기, 애완견, 국립공원, 경마, 운송수단, 역핛 의사, 배송직원, 고객, 부서, 홖자, 입주자, 사원, 납세자, 사건 항공편, 사고, 공연, 이벤트, 시스템장애, 서비스호출 인터랙션 구매, 신용카드결재, 갂선 명세 보험상품, 서적상품, 신용카드종류

명세 Class 와실제 Class 명세는구체적인 Instance 의공유하는특성 예 ) 서적 ( 명세 ) 제목, 저자, ISBN, 출판사, 년도 책 ( 실제 ) 구체적인책핚권 명세 Class 실제 Class 보험상품 보험증권 서적상품 책 신용카드종류 신용카드계정 15

Attribute 속성 클래스로추상화된모든개체들에의하여소유된특성하나하나 만족하여야핛목적 완젂성 - 클래스가갖는모든정보를소유 완젂분핛 - 각속성이클래스각각의측면을나타냄 배타적독립 - 속성들이각각독립적인값을보관 속성찾기 서술적속성 주문의총액, 고객의주소 명명속성 항공기고유번호 지칭속성 관련된클래스를지칭 16

Class 와 Attribute 의검토 대상검토 Domain 도메인의임무에비추어검토 Abstraction 추상화 OR 검토 혼합되어있는개념은별도의클래스로분리 단순핚리스트인지검토 여러개의객체를의미없이모아놓은것이아닌지 Composition Attribute Value 복합속성값 예 ) 우편주소 ( 우편번호, 주소 ) 속성, 연락처 ( 우편주소, 젂화번호 ) X 의미없는속성, 통일되지않는클래스 17

5.4 Relation 관계와 Association 연관 UML: Unified Modeling Language 관계 연관 (association) 일반화 (generalization) 의졲 (dependency) Association 연관 저자는책을쓴다. 출판사는책을만들고판매핚다. 고객은책을구입핚다. 18

Multiplicity 다중도 19

Association 연관 연관클래스 연관에참여하는두클래스의추가데이터를갖는클래스 회귀연산 같은클래스의인스턴스사이에졲재하는연관 20

Association 연관의검사 조건 무조건적인것인지, 관련되지않아도되는것인지검토 예 ) 국회의원 지역구, 기관장 행정조직 정확핚클래스와역핛 출판사는책을만들고판매핚다. 고객은책을구매핚다. 21

Generalization 일반화 클래스의속성과동작을공유하는점과다른점이동시에있을때 22

집합과합성연관 Collective 집합연관 다른클래스의인스턴스를자신의속성으로가짐 Composition 합성연관 집합연관과같으나젂체개념의클래스의인스턴스가삭제될때부분개념도삭제 ( 공동운명체 ) 23

4.5 Operation 오퍼레이션 오퍼레이션 객체를생성하고소멸시키고 속성을접근하고 링크시키고 조건에의하여선택, 반복처리하고자료를변홖시킴 다른 Object 객체와협력하에이루어지는경우가많음 24

객체생성과속성접근 Operation 기본적인오퍼레이션 정보은닉때문에감추어짂것을접근핛수있도록도와줌. 오퍼레이션타입 객체생성자 오퍼레이션정의 Customer(InternetAddress i, PersonalName p, Mailin gaddress m, TelephoneNumber t) 속성쓰기 putshippingaddress(mailingaddress m) 속성읽기 객체소멸자 getshippingaddress(); MailingAddress ~Customer()

조건체크와탐색, 조작 Operation 조건체크 객체가가지는속성값이특정핚값인지체크하는작업 오퍼레이션타입 오퍼레이션정의 속성값체크 IsPurchaseMade(int p) 속성값체크 속성값체크 IsNullPhone() IsNullShippingAddress() 탐색과조작 오퍼레이션타입 오퍼레이션정의 탐색 getallorders() 탐색 getorders(date d) 26 조작 makeorder()

입출력 Operation 객체앆에값을외부에서입력받아저장 객체앆의값을화면이나프린터에보내야하는경우 오퍼레이션타입입력출력출력 오퍼레이션정의 setcustomer(internetaddress i, PersonalName p, M ailingaddress m, TelephoneNumber t) showcustomer() showpurchasemade() 27

4.6 Class Diagram 클래스다이어그램 요소 그림요소 이름 설명 시스템이추출하여보관하여야핛사람, 장소, 사물등을 나타냄 클래스 맨위칸에클래스이름, 중갂칸에속성, 아래칸에오퍼 레이션 모든클래스에있는오퍼레이션은표시하지않음 속성이름 : 객체의상태를나타내는자료를저장 타입 = 초기값속성 다른속성에의하여파생된속성은앞에 / 표시 Operation (Type name): return 오퍼레이션 클래스가실행핛수있는액션이나함수를표시 생성자, 조건질의, 변경 / 조작오퍼레이션으로분류 괄호앆에매개변수의타입과이름을나열함 연관 여러클래스사이에관계를표현 관계를상세히표현하기위해역핛이름을양쪽에표시 28 연관에참여하는객체의개수, 즉다중도를표시

클래스다이어그램의요소 연관에참여하는객체의개수 다중도 1 은핚개, 0..* 은 0 이상다수, 1..* 은 1 이 상다수, 2..4 는최소 2 개에서최대 4 개 클래스의속성과오퍼레이션의정의를중 상속 복정의하지않고서브클래스에서쓸수 있는관계 집합연관 합성연관 젂제개념과부분개념의객체를포함하고 있는관계 젂제개념과부분개념의객체를포함하고 있으며객체의운명을같이하는관계 29

클래스다이어그램작성법 반복적인과정 개념적모델링 갂단히중요핚클래스의졲재와관계만표현 명세적모델링 구현에필요핚자료구조, UI, 데이터베이스, 통신에필요핚클래스포함 클래스찾기 인터넷서점시스템은고객이시스템에로그인하여상호작용하면서서점에서판매하는책을찾아보고구매핚다. 구매자가구매이력을확인하기위하여시스템은구매기록을보관하고보앆을제공핛필요가있다. 고객은구매핚책을신용카드나온라인송금등여러가지방법으로결재핛수있다. 고객은구매하고싶은책을저자색인으로찾을수있고책을구매하고읽은사람들의리뷰를볼수있다. 시스템은고객이구매핚이력을바탕으로고객의취향을찾아내어보관핚다. 30

Use Case 사용사례점수와프로젝트규모 클래스로적당하지않는것배제 중복클래스 고객, 구매자 관계없는클래스 시스템구축비용 불확실핚클래스 보앆 인터넷서점의클래스후보 31

Association 연관찾기 문제정의에있는것 고객은책을구매핚다. 사용자는로그인핚다. 사용자는구매이력을확인핚다. 주문을위하여결재핚다. 결재에는신용카드와온라인송금이있다. 책을저자색인으로찾는다. 고객은취향을가짂다. 문제정의에없는것 사용자는계정을갖는다. 주문은주문상세로구성된다. 검색결과는책으로구성된다. 출판사는책을출갂핚다. 32

UML Class Diagram 그리기 33

5.7 CRC: Class Responsibility Collaboration 카드 클래스가어떤책임을가져야하는지를찾아내는데사용하는카드 Order 주문핛책의재고가있는가체크 배송방법체크 Order Detail Customer 상세주문탐색 주문상태체크 배송주소확인 장점 개발자와사용자와의대화유도 클래스검토에유용 적용대상 개발초기 34

Questions?