객체들이책임을가지고협력하는것을어떻게설계할것인가? applying OO Design principles and the UML 책임을할당하고객체들사이의협력을설계하는것은, 설계시에가장중요하고창조적인작업이다. 2/55

Size: px
Start display at page:

Download "객체들이책임을가지고협력하는것을어떻게설계할것인가? applying OO Design principles and the UML 책임을할당하고객체들사이의협력을설계하는것은, 설계시에가장중요하고창조적인작업이다. 2/55"

Transcription

1 Ch18. GRASP 패턴을이용한객체설계예제 Professor Seung-Hoon Choi

2 객체들이책임을가지고협력하는것을어떻게설계할것인가? applying OO Design principles and the UML 책임을할당하고객체들사이의협력을설계하는것은, 설계시에가장중요하고창조적인작업이다. 2/55

3 유스케이스실체화 특정유스케이스가설계모델내에서어떻게실현될것인가를, 협력하는 객체들의관점에서기술 UML 상호작용다이어그램은, 유스케이스실체화를보여주는일반적인언어이다. 3/55

4 Business Modeling date... Sale Sample UP Artifact Relationships Domain Model 1 1..* Sales LineItem... quantity... Use-Case Model Process Sale inspiration for names of some software domain objects Requirements starting events to design for, and detailed postcondition to satisfy Cashier Process Sale Use Case Diagram Operation: enteritem( ) Post-conditions: -... Operation Contracts ideas for the postconditions use case names system operations : Register : Cashier 1. Customer arrives Cashier enters item identifier. Use Case Text system events make NewSale() enteritem (id, quantity) : System System Sequence Diagrams Design Model functional requirements that must be realized by the objects : ProductCatalog Glossary Supplementary Specification item details, formats, validation non-functional requirements domain rules : Sale Design enteritem (itemid, quantity) d = getproductdescription(itemid) addlineitem( d, quantity )... Register makenewsale() enteritem(...)... * 1... ProductCatalog getproductdescription(...)...

5 UP 산출물들간의관계 ( 이전슬라이드그림참조 ) 유스케이스는 SSD에서의시스템오퍼레이션들을제안한다. 시스템오퍼레이션은도메인계층의 Controller로들어가는시작메시지가된다. 도메인계층의인터랙션다이어그램은, 객체들이요구되는태스크를달성하기위해 어떻게상호작용하는가 (use case realization) 을보여준다. 5/55

6 이번 POS 개발 iteration 에서는 ProcessSale 유스케이스의 SSD 에 나타나는다음 4 개의시스템오퍼레이션을설계한다. makenewsale, etc., are the system operations from the SSD each major interaction diagram starts with a system operation going into a domain layer controller object, such as Register makenewsale 1:??? :Register Window objects or GUI widget objects or Web control objects... 시스템이벤트메시지 enteritem endsale :Register :Register 1:??? 1:??? makepayment :Register 1:??? UI LAYER DOMAIN LAYER 6

7 유스케이스실체화를커뮤니케이션다이어그램을이용하여 보여준다면, 시스템이벤트메시지하나당다이어그램이하나씩 필요하다. ( 그림 17.1) makenewsale() :Register 1:???() enteritem() :Register 1:???() endsale() :Register 1:???() makepayment() :Register 1:???() 7/55

8 시퀀스다이어그램을사용한다면, 하나의다이어그램에모든 시스템이벤트처리를보여주는것이가능하다. : Register makenewsale create : Sale Window objects or GUI widget objects or Web control objects... : Register : ProductCatalog enteritem(...) desc = getproductdesc( itemid )... UI LAYER DOMAIN LAYER 8

9 너무복잡해지므로, 각시스템이벤트메시지마다, 하나씩의순차 다이어그램을그려도된다.( 그림 17.3) : Register makenewsale() create() : Sale enteritem (itemid, quantity) : Register spec := getproductspec( itemid ) addlineitem( spec, quantity )... : ProductCatalog : Sale 9/55

10 약정 (Contract) 과유스케이스실체화 유스케이스텍스트로부터직접유스케이스실체화를설계하는것도가능함 약정이작성된시스템오퍼레이션에대해서는 사후조건 (post-condition) 의상태변화를다루고, 그요구사항을만족시키기위해메시지상호작용을설계한다. 10/55

11 약정 (Contract) 과유스케이스실체화 예 : enteritem 시스템오퍼레이션에대해 SalesLineItem 인스턴스 생성이라는상태변화를만족시킨다. enteritem(id, qty) :Register 1: makelineitem(...) :Sale 1.1: create(...) :SalesLineItem 11/55

12 초기화와 Start Up 유스케이스 대부분의시스템은 Start Up 유스케이스와, 응용프로그램시작과관련된 어떤초기화시스템오퍼레이션을가진다. 이 startup 시스템오퍼레이션은실행은제일먼저되지만, 초기화 활동에필요한모든정보를충분히얻기위해, 맨나중에설계한다. 12

13 고객이구입할물건을들고오면, 출납원은새로운판매를시작할것을요청함 이때, makenewsale 시스템오퍼레이션이일어난다. 약정 CO1: makenewsale 오퍼레이션 : makenewsale( ) 상호참조 : 사용사례 : Process Sale 사전조건 : 없음사후조건 : - Sale 인스턴스 s가생성되었다 ( 인스턴스생성 ) - s가 Register와연관되었다 ( 연관형성 ) - s의속성들이초기화되었다. 13/55

14 Controller 클래스선택 먼저, 시스템오퍼레이션메시지 makenewsale에대한컨트롤러를선택해야한다. Controller 패턴에의해다음과같은선택이가능하다 전체 시스템, 장치혹은서브시스템을나타내는클래스 Store, Register, POSSystem 등 하나의유스케이스시나리오의모든시스템이벤트들에대한수신자또는처리자를나타내는클래스 ProcessSaleHandler, ProcessSaleSession 14

15 Controller 클래스선택 ( 계속 ) 단지몇개의시스템오퍼레이션만있고, 외관컨트롤러 (facade controller) 가너무많은책임을맡지않는다면, Register와같은외관컨트롤러를선택하는것이바람직하다. 시스템오퍼레이션이많고, 각컨트롤러클래스를가볍게유지하기위해책임을분산시키고자한다면, 사용사례컨트롤러 (use-case controller) 를 선택하는것이적합하다. 이경우에는 Register 를선택함 :Register makenewsale create :Sale 15

16 새로운 Sale 생성 Creator 패턴은, 생성되는객체를포함하고기록하는클래스에그객체생성의책임을부여할것을제안한다. 도메인모델을분석하면, Register가 Sale을기록하는것으로생각됨 Register가 Sale을생성시키는책임을가지는후보클래스 Sale은, 여러개의 SalesLineItem 인스턴스를포함하고유지한다. 따라서, Sale을생성할때, 여러개의 SalesLineItem 인스턴스를포함하고유지할컬렉션 (List와같은컨테이너 ) 을 Sale이생성해야한다. 16

17 by Creator and Controller makenewsale :Register create Register creates a Sale by Creator :Sale by Creator, Sale creates an empty collection (such as a List) which will eventually hold SalesLineItem instances create lineitems : List<SalesLineItem> this execution specification is implied to be within the constructor of the Sale instance Collection 객체 (List 다중객체를의미함 ) 17

18 출납원이 itemid 와구매하려는물품의양을입력할때, enteritem 시스템오퍼레이션이일어난다. 약정 CO2: enteritem 오퍼레이션 : enteritem(itemid: ItemID, quantity: integer) 상호참조 : 사용사례 : Process Sale 사전조건 : 판매가진행중이다. 사후조건 : - 하나의 SalesLineItem 인스턴스 sli가생성되었다 ( 인스턴스생성 ) - sli가현재의 Sale과연관되었다 ( 연관형성 ) - sli.qunatity가 quantity로되었다 ( 속성수정 ) - itemid가일치하는 ProductDiscription과 sli가연관되었다 ( 연관형성 ) 18

19 컨트롤러클래스선택 Controller 패턴에의해, enteritem 의경우도 Register 가컨트롤러역할을 한다. 물품설명과가격의화면출력? 출력작업은비-GUI 객체 ( 예를들어, Register나 Sale) 의책임이아니다. 정보를화면에출력하는것이유스케이스에적혀있지만, 현재설계에서는이책임은무시한다. 19

20 새로운 SalesLineItem 생성 enteritem 약정에서사후조건은 SlaesLineItem의생성, 초기화, 연관을나타낸다. Sale이 SalesLineItem 인스턴스하나를생성하여컬렉션에저장한다. 사후조건을보면, SalesLienItem이생성될때수량 (quantity) 를필요로한다. 따라서, Register는 Sale에게 quantity를보내야하고, Sale은 SalesLineItem 인스턴스를생성할때, 생성자에게이 quantity를보내야한다. 20

21 ProductDescription 찾기 SalesLineItem 은 itemid 가일치하는 ProductDescription 과연관되어야 한다. 즉, itemid 가일치하는 ProductDescription 을찾아야함을의미한다. 책임명시 : itemid 가일치하는 ProductDescription 을찾을책임은누가 맡아야하는가? 21

22 ProductDescription 찾기 ( 계속 ) Information Expert 패턴적용 어떤책임을이행하기위해필요한정보를갖는객체가그일을해야한다 누가 ProductDescription 에관해모든것을알고있는가? 도메인모델을분석하면, ProductCatalog가논리적으로 ProductDescription 들을전부포함하고있다. 따라서, ProductCatalog가 ProductDescription 을찾는책임에대한좋은후보가된다. ProductCatalog.getProductDescription ( ) 메소드로구현될것이다. 22

23 ProductCatalog 에대한 Visibility( 가시성 ) ProductDescription 을요청하기위해누가 ProductCatalog 에게 getproductdescription 메시지를전달할것인가? 가정 : 초기의 Start up 사용사례동안 Register와 ProductCatalog 인스턴스가생성되고 Register객체에서 ProductCatalog 객체로영구적인연결이있다라고가정할수있다. 따라서, Register가 ProductCatalog에게 getproductdescription 메시지를전달하는것이가능하다. 23

24 Final Design by Controller by Creator enteritem(id, qty) :Register 2: makelineitem(desc, qty) :Sale 1: desc = getproductdesc(id) 2.1: create(desc, qty) by Expert :Product Catalog sl: SalesLineItem 1.1: desc = get(id) 2.2: add(sl) : Map<ProductDescription> lineitems : List<SalesLineItem> add the newly created SalesLineItem instance to the List 24

25 Partial DCD(Design Class Diagram) 1 catalog... ProductCatalog getproductdesc(...) descriptions {Map} 1..* ProductDescription description : Text price : Money itemid: ItemID... description 1 Sale... Register enteritem(...)... currentsale 1 iscomplete : Boolean time : DateTime makelineitem(...)... lineitems {ordered} 1..* SalesLineItem quantity : Integer... 25

26 데이터베이스에서 ProductDescription 들을추출하기 POS 최종버젼에서는 ProductDescription 정보들이메모리가아니라 데이터베이스에저장되어야함 그러나, 현재 iteration 에서는고려하지않음 26

27 출납원이판매가끝났음을나타내는버튼을누르면, endsale 시스템오퍼레이션이일어난다. 약정 CO3: endsale 오퍼레이션 : endsale( ) 상호참조 : 사용사례 : Process Sale 사전조건 : 판매가진행중이다. 사후조건 : - Sale.isComplete이참이되었다 ( 속성수정 ) 27

28 컨트롤러클래스선택 Controller 패턴에의거, Register 클래스를선택함 Sale.isComplet 속성설정 책임 : 누가 Sale 의 iscomplete 속성을참으로설정할것인가? Information Expert 패턴에의거, Sale 자신이어야한다. 이유 : Sale 이 iscomplete 속성을가지므로 endsale( :Register 1: becomecomplete s :Sale by Controller by Expert 28

29 판매총액계산 ProcessSale 유스케이스의주요성공시나리오마지막단계 : 7. 시스템은세금을포함한총액을보여준다 누군가가판매총액을계산해야한다. Model-View Separation 원리에의해, 판매총액이화면에어떻게표시될것인가는설계하지않는다. 컨트롤러나생성문제가아니면, Information Expert 패턴을제일먼저고려한다. 29

30 판매총액계산분석과정 1. 책임을기술한다. 누가판매총액을알책임이있는가? 2. 필요한정보를요약한다. 판매총액은, 모든판매라인아이템의소계의합이다. 판매라인아이템의소계 = 라인아이템의양 * 제품에기재된가격 판매총액계산에필요한정보 Information Expert 구현오퍼레이션 ProductDescription.price ProductDescription ProductDescription.getPrice( ) SalesLineItem.quantity SalesLineItem SalesLineItem.getSubTotal( ) 현재 Sale 의모든 SalesLineItem Sale Sale.getTotal( ) 30

31 Sale.getTotal Design Sale이 gettotal 메시지를받을때어떤일이일어나는가를상호작용다이어그램으로설계해야한다. gettotal( ) 메시지는누가보내는가? Java JFrame과같은 UI 계층의객체가될것이다. by Expert by Expert UML: note the selector notation to select elements from the lineitems collection tot = gettotal :Sale 1 * [i = 1..n]: st = getsubtotal lineitems[ i ]: SalesLineItem 1.1: pr = getprice :ProductDescription 31

32 노트기호로메소드를보여줌 쳋 ethod? public void gettotal() { int tot = 0; for each SalesLineItem, sli tot = tot + sli.getsubtotal(); return tot } tot = gettotal :Sale 1 *[ i = 1..n]: st = getsubtotal lineitems[ i ] : SalesLineItem 1.1: pr = getprice :ProductDescription 32

33 지불을위해고객이건넨현금이액수를출납원이입력할때, makepayment 시스템오퍼레이션이발생한다. 약정 CO4: makepayment 오퍼레이션 : makepayment(amount:money) 상호참조 : 사용사례 : Process Sale 사전조건 : 판매가진행중이다. 사후조건 : - Payment의인스턴스 p 가생성되었다 ( 인스턴스생성 ) - p.amounttendered가 amount로되었다 ( 속성수정 ) - p가현재의 Sale과연관되었다 ( 연관형성 ) - 현재의 Sale이 Store와연관되었다 ( 연관형성 ) ( 완료된판매들의기록에이판매내역을추가하기위하여 ) 33

34 Payment 생성 Creator 패턴적용 Register 가논리적으로 Payment 를기록 => Register 가후보 Sale 소프트웨어가 Payment 를밀접하게사용 => Sale 이후보 여러가지의설계선택이주어졌을때, 좋은응집도와결합도를가지는 설계를선택하라. 34

35 Payment 생성 ( 계속 ) Sale 이 Payment 를생성하는것으로선택하면, Register 의일이줄어들고, 결합도가낮아진다. by Controller by Creator and Low Coupling makepayment(cashtendered) :Register 1: makepayment(cashtendered) :Sale 1.1: create(cashtendered) :Payment 35

36 판매로그기록 (Logging) 판매완료후에, 판매내역을로그에기록해야한다. 책임 : 누가로그기록될판매들을알고, 로그기록을수행할것인가? 재정과밀접한관계가있는 Store가담당하는것이좋다 설계가진행되면서 Store의응집력이약해지면, SalesLeger( 판매원장 ) 라는새로운클래스를도입할수도있다. see the next slide. 36

37 Sale Sale Logs-completed * * Logs-completed Store SalesLedger... addsale(s : Sale) addsale(s : Sale)... Store is responsible for knowing and adding completed Sales. Acceptable in early development cycles if the Store has few responsibilities. SalesLedger is responsible for knowing and adding completed Sales. Suitable when the design grows and the Store becomes uncohesive. 37

38 판매로그기록 (Logging) note that the Sale instance is named 's' so that it can be referenced as a parameter in messages 2 and 2.1 makepayment(cashtendered) :Register 1: makepayment(cashtendered) s :Sale 2: addsale(s) 1.1: create(cashtendered) by Expert :Store :Payment 2.1: add(s) completedsales: List<Sale> 38

39 잔액계산 Process Sale 사용사례는, 지불의잔액이영수증에출력되고화면에도출력됨을암시한다. Model-View Separation 원리에의해, 출력방식은신경쓸필요가없다. 책임 : 누가잔액을알책임이있는가? 잔액계산에필요한정보 : 판매총액과고객이건넨금액 정보전문가는 Sale과 Payment 이다. 39

40 잔액계산 방법 #1: Payment인경우 총액을묻기위해 Sale로의가시성이필요하다. 현재로서는 Payment가 Sale에관하여알지못하므로, 이설계는결합도를높인다. 방법 #2: Sale인경우 고객이건넨금액을묻기위해 Payment로의가시성이필요하다. Sale은 Payment 생산자로서, 이미 Payment에대한가시성을가지고있다. 이접근방법은결합도를높이지않는다. => 이방법을선택함 40

41 잔액계산 { bal = pmt.amount - s.total } bal = getbalance s :Sale 1: amt = getamount pmt: Payment 2: t = gettotal 41

42 A more complete DCD Store address : Address name : Text addcompletesale(...) 1 catalog catalog 1 ProductCatalog... getproductdesc(...) descriptions {Map} 1..* ProductDescription description : Text price : Money itemid: ItemID... register... 1 Register endsale() enteritem(...) makenewsale() makepayment(...) currentsale 1 completedsales {ordered} Sale iscomplete : Boolean time : DateTime becomecomplete() makelineitem(...) makepayment(...) gettotal() * lineitems {ordered} 1..* payment 1 SalesLineItem quantity : Integer getsubtotal() Payment amount : Money... description 1 42

43 2 가지방법 방법 #1. Initializer 객체이용 Java의 main( ) 메소드에서 Initializer 객체의초기화메소드호출 Initializer 객체의초기화메소드안에서 UI 객체와 Domain 객체를생성한후 Domain 객체를 UI 객체에전달함 2. UI 객체가먼저만들어지고 UI 객체가 factory 객체등을이용하여 Domain 객체를얻은후이를 reference한다. 43

44 일단, UI 객체가 Register 인스턴스에대한연관을가지게되면 UI 객체는 enteritem 이나 endsale 같은시스템이벤트메시지들을 Register 인스턴스에게전달할수있다. presses button Cashier actionperformed( actionevent ) UI Layer :ProcessSale JFrame 1: enteritem(id, qty) system event Domain Layer :Register 44

45 enteritem 메시지의경우, 각물품들이입력될때윈도우가그 시점까지의합계를보여주어야한다. UI 객체와도메인객체와의메시지전달방식에따라여러가지설계 방법이존재한다. 45

46 해결책 #1 gettotal 메소드를 Register에추가한다. UI가 gettotal 메시지를 Register에보내고, Register는이메시지를 Sale에전달한다. 장점 : UI에서도메인계층으로의결합도를낮춘다. 단점 : Register 객체의응집력이낮아진다. presses button Cashier actionperformed( actionevent ) UI Layer :ProcessSale JFrame 1: enteritem(id, qty) system event Domain Layer :Register 46

47 해결책 2: UI가현재 Sale 객체에대한참조를 Register에게요청한다. 그후에, UI가합계 ( 혹은판매와관련된다른정보 ) 가필요하면 Sale에직접메시지를보낸다. 단점 : UI에서도메인계층으로의결합도를높임. 그러나, Sale은안정된객체라면, 안정된객체와의높은결합도는문제가되지않는다. presses button 책에서선택한설계방법 Cashier actionperformed( actionevent ) UI Layer :ProcessSale JFrame 3: t = gettotal 1: enteritem(id, qty) 2 [no sale] : s = getsale : Sale Domain Layer :Register s : Sale 47

48 UI 계층은도메인논리에대한책임을갖지않는것이좋다. 예 : Java 의윈도우 (ProcessSaleJFrame) 은응용프로그램의논리를 처리하지않고, 도메인객체로메시지를전달하는역할만담당하도록 하는것이좋다. 48

49 언제초기화를설계하는가? 초기화설계를마지막에해라 대부분의시스템은 Start Up 유스케이스와 응용프로그램시작과관련된어떤초기시스템오퍼레이션을가진다. 이 startup 시스템오퍼레이션이제일먼저실행되지만, 초기화활동에 필요한모든정보를충분히얻기위해, 맨나중에설계한다. 49

50 어플리케이션을어떻게시작하는가? 초기도메인객체 (initial domain object) 를생성하라 비교 : 도메인객체 : 도메인논리와관련된객체 UI 객체 : 사용자인터페이스와관련된객체 초기도메인객체는생성되고난후, 직접자식도메인객체를생성할책임이있다. 50

51 어플리케이션을어떻게시작하는가?( 계속 ) main( ) 메소드에서주로초기도메인객체가생성된다. 예 : Store 초기도메인객체가생성됨 => Store 객체가 Register 객체를생성함 Public class Main { public static main(string[ ] args) { Store store = new Store( ); Register register = store.getregister( ); ProessSaleJFrame frame = new ProcessSaleJFrame(register); } } 51

52 POS 응용프로그램의 startup 오퍼레이션 관리자가 POS 시스템을켜고, 소프트웨어를메모리에로드할때 startup 시스템 오퍼레이션이일어난다. 제어는, 초기도메인객체가생성된후 UI 계층 ( 예를들어, Java 의 JFrame) 에남게 된다. Event-driven 방식 52

53 초기도메인객체선택방법 어떤것이초기도메인객체클래스가되어야하는가? 도메인객체들의포함관계나, 집합관계계층구조상 root 또는 root 에서가장가까운클래스를선택하라. 예 : Register 와같은외관컨트롤러나, 다른객체들모두또는대부분을 포함하는 Store 클래스 예제에서는, Store 클래스선택함 53

54 Store.create ( 초기도메인객체의생성자 ) 설계 초기화시필요한작업 Store, Register, ProductCatalog, ProductDescription 들이생성되어야한다. ProductCatalog는 ProductDescription들과연관되어야한다. Store는 ProductCatalog와연관되어야한다. Store는 Register와연관되어야한다. Register는 ProductCatalog와연관되어야한다. 54

55 1.2: loadprodspecs( ) 메소드안에서 1.2.1*: create(id, price, description) 1.2.2*: add(ps) 메시지를차례로호출한다. pass a reference to the ProductCatalog to the Register, so that it has permanent visibility to it create :Store 2: create(pc) :Register by Creator 1: create create an empty collection object 1.1: create pc: ProductCatalog 1.2.2*: put(id, pd) descriptions: Map<ProductDescription> 1.2: loadprodspecs() the * in sequence number indicates the message occurs in a repeating section 1.2.1*: create(id, price, description) pd: ProductDescription 55

56 역속적인 (persistent) 객체 : ProductDescription ProductDescription 인스턴스는영구저장매체에위치한다. 관계형데이터베이스 객체데이터베이스 관계형데이터베이스사용시, ProductDescription 정보에대한데이터모델링이필요하다. ProductDescription들의테이블 (in DB) ItemID Price Description 새우깡 콜라 새우깡 객체 (in Memory) p:productdescription itemid: 1 price: 700 description: 새우깡 56

57 1.2.1*: create(id, price, description) in 슬라이드 p.55 ProductDescription의생성자이다. id, price, description 인자들의값은 영구저장매체 (Database) 에서읽어온값이다. 이인자들을이용하여 ProductDescription 생성자를호출한다. 57

58 58 Register id Item Store name address Sale datetime / total CashPayment amounttendered Sales LineItem quantity Cashier id Customer Product Catalog Product Description itemid description price Stocks * Houses 1..* Used-by * Contains 1..* Describes * Captured-on Contained-in 1..* Records-sale-of 0..1 Paid-by Is-for Logscompleted * Works-on * Ledger Recordsaccountsfor 1 1

소프트웨어개발방법론

소프트웨어개발방법론 사용사례 (Use Case) Objectives 2 소개? (story) vs. 3 UC 와 UP 산출물과의관계 Sample UP Artifact Relationships Domain Model Business Modeling date... Sale 1 1..* Sales... LineItem... quantity Use-Case Model objects,

More information

시스템 순차도

시스템 순차도 시스템순차도 (SSD) 1 1 소개 시스템순차도 (SSD: System Sequence Diagram) 구현하고자하는소프트웨어시스템을블랙박스로놓고액터와시스템간의행위를순차도로기술 쓰임새의한시나리오에대해서외부액터가발생하는사건및그순서그리고시스템간의사건을보여줌. 개발하고자하는시스템의입력과출력이벤트를알기쉽게표현 빠르고쉽게생성되는산출물임 유스케이스로부터 UML 순차도를이용하여정형화

More information

논리적 구조 설계: 패키지도

논리적 구조 설계: 패키지도 논리적구조설계 : 패키지도 Objectives. UML. 2 객체설계로옮겨가기 (interaction diagram). /.. : UML -UML. -UML. -. 1. 2. 3 문맥 Sample UP Artifact Relationships Business Modeling Domain Model * * Requirements Use-Case Model Vision

More information

소프트웨어개발방법론

소프트웨어개발방법론 Domain Model : 문제영역을시각화하기 목표 개념클래스식별 초기도메인모델작성 속성식별 명세개념클래스추가 개념관점과구현관점비교 / 대조 2 도메인모델의작성및쓰임새 Sample UP Artifact Relationships Domain Model Business Modeling date... Sale..* Sales... LineItem... quantity

More information

UML 인터랙션 다이어그램 표기법 (UML Interaction Diagram)

UML 인터랙션 다이어그램 표기법 (UML Interaction Diagram) UML 인터랙션다이어그램표기법 (UML Interaction Diagram) Objectives 자주사용되는 UML 순차도와협력도를그릴수있다. 2 소개 동적객체모델링은객체들이메시지를주고받으면서상호작용하는것을표현 Interaction Diagram 을사용 순차도 (sequence diagram) 과협력도 (communication diagram) 으로구분. 표기법보다는객체지향설계의핵심원칙은무엇인가가더중요!

More information

가시성 설계하기

가시성 설계하기 가시성설계하기 목표 다른객체에보여줄범위를결정하는가시성설계방법을이해하고활용할수있다. 2 객체간의가시성 객체간의가시성 enteritem 같이송신자가수신자에게보내는메시지 송신자객체는수신자객체를볼수있어야한다. 아울러메시지를받을수있도록보이게설계해야한다. class Register... private ProductCatalog catalog;... enteritem (itemid,

More information

Microsoft PowerPoint - se-ch06

Microsoft PowerPoint - se-ch06 Ch06. 유스케이스 Professor Seung-Hoon Choi 유스케이스는 요구사항을발견하고기록하기위해널리사용되는 텍스트로작성된스토리이다. 주로 FURPS+ 모델에서 F 를표현한다. 유스케이스다이어그램은 한응용프로그램의전체기능을보여주는데유용하다. 유스케이스는객체지향과는아무런관련이없다. 2 Business Modeling date... Sale Sample

More information

Something that can be seen, touched or otherwise sensed

Something that can be seen, touched or otherwise sensed Something that can be seen, touched or otherwise sensed Things about an object Weight Height Material Things an object does Pen writes Book stores words Water have Fresh water Rivers Oceans have

More information

JAVA PROGRAMMING 실습 05. 객체의 활용

JAVA PROGRAMMING 실습 05. 객체의 활용 public class Person{ public String name; public int age; } public Person(){ } public Person(String s, int a){ name = s; age = a; } public String getname(){ return name; } @ 객체의선언 public static void main(string

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 @ Lesson 4 (Object) (Class) (Instance) (Method) (Constructor) Memory 1 UML 1 @ & 1 (Real World) (Software World) @ &.. () () @ & 2 (Real World) (Software World) OOA/ Modeling Abstraction Instantiation

More information

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++,

class Sale void makelineitem(productspecification* spec, int qty) SalesLineItem* sl = new SalesLineItem(spec, qty); ; 2. 아래의액티비티다이어그램을보고 Java 또는 C ++, Level 1은객관식사지선다형으로출제예정 1. 다음은 POST(Post of Sales Terminal) 시스템의한콜레보레이션다이어그램이다. POST 객체의 enteritem(upc, qty) 와 Sale 객체의 makellineitem(spec,qty) 를 Java 또는 C ++, C # 언어로구현하시오. 각메소드구현과관련하여각객체내에필요한선언이있으면선언하시오.

More information

소프트웨어개발방법론

소프트웨어개발방법론 OOAD 개요 Objectives 분석과설계의구분 OOA/D 의정의 간단한예시 2 학습내용 UML vs. 객체지향적으로생각하기 객체지향설계 : 원칙및패턴 사례연구 유스케이스 반복적개발,Agile 모델링, Agile UP 기타다른기술 3 Applying UML and Pattern in OOA/D OOA/D 패턴 UML 주제및기술 원칙및지침 요구사항분석 Agile

More information

PowerPoint Presentation

PowerPoint Presentation Class - Property Jo, Heeseung 목차 section 1 클래스의일반구조 section 2 클래스선언 section 3 객체의생성 section 4 멤버변수 4-1 객체변수 4-2 클래스변수 4-3 종단 (final) 변수 4-4 멤버변수접근방법 section 5 멤버변수접근한정자 5-1 public 5-2 private 5-3 한정자없음

More information

UML 클래스 다이어그램 표기법 (UML Class Diagram)

UML 클래스 다이어그램 표기법 (UML Class Diagram) UML 클래스다이어그램표기법 (UML Class Diagram) Objectives 자주사용되는 UML 클래스도를그릴수있다. 2 소개 클래스도 (Class Diagram) 클래스, 인터페이스및이들의연관관계를표현한도식 정적객체모델링에사용 이장의내용 모델링관점을떠나클래스도표기법자체만을다룸 참고자료로만활용 중요한것 도식을그리는기법보다 객체지향핵심원칙은무엇인가 가더중요

More information

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

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi 소프트웨어공학 Tutorial #2: StarUML Eun Man Choi emchoi@dgu.ac.kr Contents l StarUML 개요 l StarUML 소개및특징 l 주요기능 l StarUML 화면소개 l StarUML 설치 l StarUML 다운 & 설치하기 l 연습 l 사용사례다이어그램그리기 l 클래스다이어그램그리기 l 순서다이어그램그리기 2

More information

UML

UML Introduction to UML Team. 5 2014/03/14 원스타 200611494 김성원 200810047 허태경 200811466 - Index - 1. UML이란? - 3 2. UML Diagram - 4 3. UML 표기법 - 17 4. GRAPPLE에 따른 UML 작성 과정 - 21 5. UML Tool Star UML - 32 6. 참조문헌

More information

JAVA PROGRAMMING 실습 08.다형성

JAVA PROGRAMMING 실습 08.다형성 2015 학년도 2 학기 1. 추상메소드 선언은되어있으나코드구현되어있지않은메소드 abstract 키워드사용 메소드타입, 이름, 매개변수리스트만선언 public abstract String getname(); public abstract void setname(string s); 2. 추상클래스 abstract 키워드로선언한클래스 종류 추상메소드를포함하는클래스

More information

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

제8장 자바 GUI 프로그래밍 II 제8장 MVC Model 8.1 MVC 모델 (1/7) MVC (Model, View, Controller) 모델 스윙은 MVC 모델에기초를두고있다. MVC란 Xerox의연구소에서 Smalltalk 언어를바탕으로사용자인터페이스를개발하기위한방법 MVC는 3개의구성요소로구성 Model : 응용프로그램의자료를표현하기위한모델 View : 자료를시각적으로 (GUI 방식으로

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Team 1 201611293 전다윤 201311287 엄현식 201311318 최정헌 01. 문서수정 02. System Test Review 03. Static Test Review 04. 소감 1 문서수정 문서수정 수정 System Test 문서 + 전문서에없던수정사항 수정 System Test 문서 문서수정 소프트웨어검증팀의문서대로수정한사항들 1008

More information

제11장 프로세스와 쓰레드

제11장 프로세스와 쓰레드 제9장자바쓰레드 9.1 Thread 기초 (1/5) 프로그램 명령어들의연속 (a sequence of instruction) 프로세스 / Thread 실행중인프로그램 (program in execution) 프로세스생성과실행을위한함수들 자바 Thread 2 9.1 Thread 기초 (2/5) 프로세스단위작업의문제점 프로세스생성시오버헤드 컨텍스트스위치오버헤드

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 1 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 인터페이스, 람다식, 패키지 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 홈네트워킹 public interface RemoteControl { public void turnon(); // 가전제품을켠다. public void turnoff(); // 가전제품을끈다. 인터페이스를구현 public class Television

More information

PowerPoint Presentation

PowerPoint Presentation public class SumTest { public static void main(string a1[]) { int a, b, sum; a = Integer.parseInt(a1[0]); b = Integer.parseInt(a1[1]); sum = a + b ; // 두수를더하는부분입니다 System.out.println(" 두수의합은 " + sum +

More information

Microsoft PowerPoint - Lect04.pptx

Microsoft PowerPoint - Lect04.pptx OBJECT ORIENTED PROGRAMMING Object Oriented Programming 이강의록은 Power Java 저자의강의록을사용했거나재편집된것입니다. Class 와 object Class 와객체 클래스의일생 메소드 필드 String Object Class 와객체 3 클래스 클래스의구성 클래스 (l (class): 객체를만드는설계도 클래스로부터만들어지는각각의객체를특별히그클래스의인스턴스

More information

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

gnu-lee-oop-kor-lec06-3-chap7 어서와 Java 는처음이지! 제 7 장상속 Super 키워드 상속과생성자 상속과다형성 서브클래스의객체가생성될때, 서브클래스의생성자만호출될까? 아니면수퍼클래스의생성자도호출되는가? class Base{ public Base(String msg) { System.out.println("Base() 생성자 "); ; class Derived extends Base

More information

Spring Data JPA Many To Many 양방향 관계 예제

Spring Data JPA Many To Many 양방향 관계 예제 Spring Data JPA Many To Many 양방향관계예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) 엔티티매핑 (Entity Mapping) M : N 연관관계 사원 (Sawon), 취미 (Hobby) 는다 : 다관계이다. 사원은여러취미를가질수있고, 하나의취미역시여러사원에할당될수있기때문이다. 보통관계형 DB 에서는다 : 다관계는 1

More information

Design Issues

Design Issues 11 COMPUTER PROGRAMMING INHERIATANCE CONTENTS OVERVIEW OF INHERITANCE INHERITANCE OF MEMBER VARIABLE RESERVED WORD SUPER METHOD INHERITANCE and OVERRIDING INHERITANCE and CONSTRUCTOR 2 Overview of Inheritance

More information

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

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

JVM 메모리구조

JVM 메모리구조 조명이정도면괜찮조! 주제 JVM 메모리구조 설미라자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조장. 최지성자료조사, 자료작성, PPT 작성, 보고서작성. 발표. 조원 이용열자료조사, 자료작성, PPT 작성, 보고서작성. 이윤경 자료조사, 자료작성, PPT작성, 보고서작성. 이수은 자료조사, 자료작성, PPT작성, 보고서작성. 발표일 2013. 05.

More information

Microsoft PowerPoint - 04-UDP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt Chapter 4. UDP Dongwon Jeong djeong@kunsan.ac.kr http://ist.kunsan.ac.kr/ Dept. of Informatics & Statistics 목차 UDP 1 1 UDP 개념 자바 UDP 프로그램작성 클라이언트와서버모두 DatagramSocket 클래스로생성 상호간통신은 DatagramPacket 클래스를이용하여

More information

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 8 장클래스와객체 I 이번장에서학습할내용 클래스와객체 객체의일생직접 메소드클래스를 필드작성해 UML 봅시다. QUIZ 1. 객체는 속성과 동작을가지고있다. 2. 자동차가객체라면클래스는 설계도이다. 먼저앞장에서학습한클래스와객체의개념을복습해봅시다. 클래스의구성 클래스 (class) 는객체의설계도라할수있다. 클래스는필드와메소드로이루어진다.

More information

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for

example code are examined in this stage The low pressure pressurizer reactor trip module of the Plant Protection System was programmed as subject for 2003 Development of the Software Generation Method using Model Driven Software Engineering Tool,,,,, Hoon-Seon Chang, Jae-Cheon Jung, Jae-Hack Kim Hee-Hwan Han, Do-Yeon Kim, Young-Woo Chang Wang Sik, Moon

More information

Spring Boot/JDBC JdbcTemplate/CRUD 예제

Spring Boot/JDBC JdbcTemplate/CRUD 예제 Spring Boot/JDBC JdbcTemplate/CRUD 예제 오라클자바커뮤니티 (ojc.asia, ojcedu.com) Spring Boot, Gradle 과오픈소스인 MariaDB 를이용해서 EMP 테이블을만들고 JdbcTemplate, SimpleJdbcTemplate 을이용하여 CRUD 기능을구현해보자. 마리아 DB 설치는다음 URL 에서확인하자.

More information

PowerPoint Presentation

PowerPoint Presentation Package Class 3 Heeseung Jo 목차 section 1 패키지개요와패키지의사용 section 2 java.lang 패키지의개요 section 3 Object 클래스 section 4 포장 (Wrapper) 클래스 section 5 문자열의개요 section 6 String 클래스 section 7 StringBuffer 클래스 section

More information

thesis

thesis ( Design and Implementation of a Generalized Management Information Repository Service for Network and System Management ) ssp@nile nile.postech.ac..ac.kr DPE Lab. 1997 12 16 GMIRS GMIRS GMIRS prototype

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 필드만있는클래스 텔레비젼 2 예제 1. 필드만있는클래스 3 예제 2. 여러개의객체생성하기 4 5 예제 3. 메소드가추가된클래스 public class Television { int channel; // 채널번호 int volume; // 볼륨 boolean

More information

MVVM 패턴의 이해

MVVM 패턴의 이해 Seo Hero 요약 joshua227.tistory. 2014 년 5 월 13 일 이문서는 WPF 어플리케이션개발에필요한 MVVM 패턴에대한내용을담고있다. 1. Model-View-ViewModel 1.1 기본개념 MVVM 모델은 MVC(Model-View-Contorl) 패턴에서출발했다. MVC 패턴은전체 project 를 model, view 로나누어

More information

오버라이딩 (Overriding)

오버라이딩 (Overriding) WindowEvent WindowEvent 윈도우가열리거나 (opened) 닫힐때 (closed) 활성화되거나 (activated) 비활성화될때 (deactivated) 최소화되거나 (iconified) 복귀될때 (deiconified) 윈도우닫힘버튼을누를때 (closing) WindowEvent 수신자 abstract class WindowListener

More information

Microsoft PowerPoint - 27.pptx

Microsoft PowerPoint - 27.pptx 이산수학 () n-항관계 (n-ary Relations) 2011년봄학기 강원대학교컴퓨터과학전공문양세 n-ary Relations (n-항관계 ) An n-ary relation R on sets A 1,,A n, written R:A 1,,A n, is a subset R A 1 A n. (A 1,,A n 에대한 n- 항관계 R 은 A 1 A n 의부분집합이다.)

More information

소프트웨어공학개론 강의 7: 시퀀스다이어그램 최은만동국대학교컴퓨터공학과

소프트웨어공학개론 강의 7: 시퀀스다이어그램 최은만동국대학교컴퓨터공학과 소프트웨어공학개론 강의 7: 시퀀스다이어그램 최은만동국대학교컴퓨터공학과 UML 시퀀스다이어그램 l 시퀀스다이어그램 (Sequence Diagram) l 사용사례가어떻게수행되는지어떤메시지가언제보내지는지나타낸그림 l 시스템의동적인측면을캡처한것 l 동적뷰 (dynamic view) l 시간의흐름에따라정리해놓은것 l 페이지내려갈수록시간이흐름 l 객체는왼쪽에서오른쪽으로나열

More information

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다. Eclipse 개발환경에서 WindowBuilder 를이용한 Java 프로그램개발 이예는 Java 프로그램의기초를이해하고있는사람을대상으로 Embedded Microcomputer 를이용한제어시스템을 PC 에서 Serial 통신으로제어 (Graphical User Interface (GUI) 환경에서 ) 하는프로그램개발예를설명한다. WindowBuilder:

More information

Microsoft Word - [2017SMA][T8]OOPT_Stage_1000 ver2.docx

Microsoft Word - [2017SMA][T8]OOPT_Stage_1000 ver2.docx OOPT Stage 1000 - Plan & Elaboration Feesual CPT Tool Project Team T8 Date 2017-04-13 T8 Team Information 201211347 박성근 201211376 임제현 201411270 김태홍 2017 Team 8 1 Table of Contents 1 Activity 1001. Define

More information

05-class.key

05-class.key 5 : 2 (method) (public) (private) (interface) 5.1 (Method), (public method) (private method) (constructor), 3 4 5.2 (client). (receiver)., System.out.println("Hello"); (client object) (receiver object)

More information

슬라이드 1

슬라이드 1 4 장클래스다이어그램 구성요소 객체와클래스 클래스추출 한빛미디어 ( 주 ) 학습목표 클래스의개념과구성요소를이해한다. 클래스추출과관계를학습한다. 관계를코드로이해한다. 2 학습목표 클래스의구성요소 클래스이름 (class name) 공통의속성, 메서드 ( 오퍼레이션 ), 관계, 의미를공유하는객체들의집합에대한기술이다. 속성 (attributes) 클래스의구조적특성에이름을붙인것으로구조적특성에해당하는인스턴스가보유할수있는값의범위를기술한다.

More information

C# Programming Guide - Types

C# Programming Guide - Types C# Programming Guide - Types 최도경 lifeisforu@wemade.com 이문서는 MSDN 의 Types 를요약하고보충한것입니다. http://msdn.microsoft.com/enus/library/ms173104(v=vs.100).aspx Types, Variables, and Values C# 은 type 에민감한언어이다. 모든

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

03.Agile.key

03.Agile.key CSE4006 Software Engineering Agile Development Scott Uk-Jin Lee Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2018 Background of Agile SW Development

More information

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

(8) getpi() 함수는정적함수이므로 main() 에서호출할수있다. (9) class Circle private double radius; static final double PI= ; // PI 이름으로 로초기화된정적상수 public Chapter 9 Lab 문제정답 1. public class Circle private double radius; static final double PI=3.141592; // PI 이름으로 3.141592 로초기화된정적상수 (1) public Circle(double r) radius = r; (2) public double getradius() return

More information

Microsoft PowerPoint - 14주차 강의자료

Microsoft PowerPoint - 14주차 강의자료 Java 로만드는 Monster 잡기게임예제이해 2014. 12. 2 게임화면및게임방법 기사초기위치 : (0,0) 아이템 10 개랜덤생성 몬스터 10 놈랜덤생성 Frame 하단에기사위치와기사파워출력방향키로기사이동아이템과몬스터는고정종료버튼클릭하면종료 Project 구성 GameMain.java GUI 환경설정, Main Method 게임객체램덤위치에생성 Event

More information

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

q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 객체지향프로그래밍 IT CookBook, 자바로배우는쉬운자료구조 q 이장에서다룰내용 1 객체지향프로그래밍의이해 2 객체지향언어 : 자바 2 q 객체지향프로그래밍의이해 v 프로그래밍기법의발달 A 군의사업발전 1 단계 구조적프로그래밍방식 3 q 객체지향프로그래밍의이해 A 군의사업발전 2 단계 객체지향프로그래밍방식 4 q 객체지향프로그래밍의이해 v 객체란무엇인가

More information

슬라이드 제목 없음

슬라이드 제목 없음 2006-09-27 경북대학교컴퓨터공학과 1 제 5 장서브넷팅과슈퍼넷팅 서브넷팅 (subnetting) 슈퍼넷팅 (Supernetting) 2006-09-27 경북대학교컴퓨터공학과 2 서브넷팅과슈퍼넷팅 서브넷팅 (subnetting) 하나의네트워크를여러개의서브넷 (subnet) 으로분할 슈퍼넷팅 (supernetting) 여러개의서브넷주소를결합 The idea

More information

rmi_박준용_final.PDF

rmi_박준용_final.PDF (RMI) - JSTORM http://wwwjstormpekr (RMI)- Document title: Document file name: Revision number: Issued by: Document Information (RMI)- rmi finaldoc Issue Date: Status:

More information

자바GUI실전프로그래밍2_장대원.PDF

자바GUI실전프로그래밍2_장대원.PDF JAVA GUI - 2 JSTORM http://wwwjstormpekr JAVA GUI - 2 Issued by: < > Document Information Document title: JAVA GUI - 2 Document file name: Revision number: Issued by: Issue Date:

More information

Microsoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx

Microsoft Word - [2017SMA][T8]OOPT_Stage_2040 ver2.docx OOPT Stage 2040 - Design Feesual CPT Tool Project Team T8 Date 2017-05-24 T8 Team Information 201211347 박성근 201211376 임제현 201411270 김태홍 2017 Team 8 1 Table of Contents 1. Activity 2041. Design Real Use

More information

Convenience Timetable Design

Convenience Timetable Design Convenience Timetable Design Team 4 2 Contents 1. Introduction 2. Decomposition description 3. Dependency description 4. Inter face description 5. Detailed design description 3 1. Introduction Purpose

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 EBC (Equipment Behaviour Catalogue) - ISO TC 184/SC 5/SG 4 신규표준이슈 - 한국전자통신연구원김성혜 목차 Prologue: ISO TC 184/SC 5 그룹 SG: Study Group ( 표준이슈발굴 ) WG: Working Group ( 표준개발 ) 3 EBC 배경 제안자 JISC (Japanese Industrial

More information

about_by5

about_by5 WWW.BY5IVE.COM BYFIVE CO. DESIGN PARTNERS MAKE A DIFFERENCE BRAND EXPERIENCE CONSULTING & DESIGN PACKAGE / OFF-LINE EDITING CONSULTING & DESIGN USER EXPERIENCE (UI/GUI) / ON-LINE EDITING CONSULTING & DESIGN

More information

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V

Mobile Service > IAP > Android SDK [ ] IAP SDK TOAST SDK. IAP SDK. Android Studio IDE Android SDK Version (API Level 10). Name Reference V Mobile Service > IAP > Android SDK IAP SDK TOAST SDK. IAP SDK. Android Studio IDE 2.3.3 Android SDK Version 2.3.3 (API Level 10). Name Reference Version License okhttp http://square.github.io/okhttp/ 1.5.4

More information

유니티 변수-함수.key

유니티 변수-함수.key C# 1 or 16 (Binary or Hex) 1:1 C# C# (Java, Python, Go ) (0101010 ). (Variable) : (Value) (Variable) : (Value) ( ) (Variable) : (Value) ( ) ; (Variable) : (Value) ( ) ; = ; (Variable) : (Value) (Variable)

More information

Java Programing Environment

Java Programing Environment Lab Exercise #7 Swing Component 프로그래밍 2007 봄학기 고급프로그래밍 김영국충남대전기정보통신공학부 실습내용 실습과제 7-1 : 정규표현식을이용한사용자정보의유효성검사 (ATM 에서사용자등록용도로사용가능 ) 실습과제 7-2 : 숫자맞추기게임 실습과제 7-3 : 은행관리프로그램 고급프로그래밍 Swing Component 프로그래밍 2

More information

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

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 7 장클래스와객체 이번장에서학습할내용 객체지향이란? 객체 메시지 클래스 객체지향의장점 String 클래스 객체지향개념을완벽하게이해해야만객체지향설계의이점을활용할수있다. 실제세계는객체로이루어진다. 객체지향이란? 실제세계를모델링하여소프트웨어를개발하는방법 절차지향과객체지향 절차지향프로그래밍 (procedural programming): 문제를해결하는절차를중요하게생각하는방법

More information

gnu-lee-oop-kor-lec10-1-chap10

gnu-lee-oop-kor-lec10-1-chap10 어서와 Java 는처음이지! 제 10 장이벤트처리 이벤트분류 액션이벤트 키이벤트 마우스이동이벤트 어댑터클래스 스윙컴포넌트에의하여지원되는이벤트는크게두가지의카테고리로나누어진다. 사용자가버튼을클릭하는경우 사용자가메뉴항목을선택하는경우 사용자가텍스트필드에서엔터키를누르는경우 두개의버튼을만들어서패널의배경색을변경하는프로그램을작성하여보자. 이벤트리스너는하나만생성한다. class

More information

No Slide Title

No Slide Title 사건처리와 GUI 프로그래밍 이충기 명지대학교컴퓨터공학과 사건 사건은우리가관심을가질지모르는어떤일이일어나는것을나타내는객체이다. 예를들면, 다음이일어날때프로그램이어떤일을수행해야하는경우에사건이발생한다 : 1. 마우스를클릭한다. 2. 단추를누른다. 3. 키보드의키를누른다. 4. 메뉴항목을선택한다. 2 사건 사건은컴포넌트에서사용자나시스템에의하여발생하는일이다. 자바는사건을나타내는많은사건클래스를제공한다.

More information

PowerPoint Template

PowerPoint Template SOFTWARE ENGINEERING Team Practice #3 (UTP) 201114188 김종연 201114191 정재욱 201114192 정재철 201114195 홍호탁 www.themegallery.com 1 / 19 Contents - Test items - Features to be tested - Features not to be tested

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 11 장상속 이번장에서학습할내용 상속이란? 상속의사용 메소드재정의 접근지정자 상속과생성자 Object 클래스 종단클래스 상속을코드를재사용하기위한중요한기법입니다. 상속이란? 상속의개념은현실세계에도존재한다. 상속의장점 상속의장점 상속을통하여기존클래스의필드와메소드를재사용 기존클래스의일부변경도가능 상속을이용하게되면복잡한 GUI 프로그램을순식간에작성

More information

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O

ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE (Online Upgrade) ORANGE CONFIGURATION ADMIN O Orange for ORACLE V4.0 Installation Guide ORANGE FOR ORACLE V4.0 INSTALLATION GUIDE...1 1....2 1.1...2 1.2...2 1.2.1...2 1.2.2 (Online Upgrade)...11 1.3 ORANGE CONFIGURATION ADMIN...12 1.3.1 Orange Configuration

More information

Index Process Specification Data Dictionary

Index Process Specification Data Dictionary Index Process Specification Data Dictionary File Card Tag T-Money Control I n p u t/o u t p u t Card Tag save D e s c r i p t i o n 리더기위치, In/Out/No_Out. File Name customer file write/ company file write

More information

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자 SQL Developer Connect to TimesTen 유니원아이앤씨 DB 팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 2010-07-28 작성자 김학준 최종수정일 2010-07-28 문서번호 20100728_01_khj 재개정이력 일자내용수정인버전

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

Solaris Express Developer Edition

Solaris Express Developer Edition Solaris Express Developer Edition : 2008 1 Solaris TM Express Developer Edition Solaris OS. Sun / Solaris, Java, Web 2.0,,. Developer Solaris Express Developer Edition System Requirements. 768MB. SPARC

More information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 클래스와메소드심층연구 ( 실습 ) 손시운 ssw5176@kangwon.ac.kr 예제 1. 접근제어 class A { private int a; int b; public int c; // 전용 // 디폴트 // 공용 public class Test { public static void main(string args[]) { A obj = new

More information

No Slide Title

No Slide Title Copyright, 2001 Multimedia Lab., CH 3. COM object (In-process server) Eun-sung Lee twoss@mmlab.net Multimedia Lab. Dept. of Electrical and Computer Eng. University of Seoul Seoul, Korea 0. Contents 1.

More information

슬라이드 1

슬라이드 1 201111339 김민우 201111344 김재엽 201211386 최하나 1 UML 이란 2 UML 특징 3 UML 의구성요소 3.1 UML Building Blocks 구성요소 사물 (Things) 관계 (Relationship) 다이어그램 (Diagram) 4 UML 모델링 Tools : CASE UML(Unified Modeling Language)

More information

슬라이드 1

슬라이드 1 UNIT 16 예외처리 로봇 SW 교육원 3 기 최상훈 학습목표 2 예외처리구문 try-catch-finally 문을사용핛수있다. 프로그램오류 3 프로그램오류의종류 컴파일에러 (compile-time error) : 컴파일실행시발생 럮타임에러 (runtime error) : 프로그램실행시발생 에러 (error) 프로그램코드에의해서해결될수없는심각핚오류 ex)

More information

JAVA PROGRAMMING 실습 05. 객체의 활용

JAVA PROGRAMMING 실습 05. 객체의 활용 2015 학년도 2 학기 public class Person{ public String name; public int age; public Person(){ public Person(String s, int a){ name = s; age = a; public String getname(){ return name; @ 객체의선언 public static void

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

Microsoft PowerPoint - 13_UMLCoding(2010).pptx

Microsoft PowerPoint - 13_UMLCoding(2010).pptx LECTURE 13 설계와코딩 최은만, CSE 4039 소프트웨어공학 설계구현매핑 UML 설계도로부터 Java 프로그래밍언어로의매핑과정설명 정적다이어그램의구현 동적다이어그램의구현 최은만, CSE 4039 소프트웨어공학 2 속성과오퍼레이션의구현 Student - name : String #d department t: String Sti packageattribute

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

MS-SQL SERVER 대비 기능

MS-SQL SERVER 대비 기능 Business! ORACLE MS - SQL ORACLE MS - SQL Clustering A-Z A-F G-L M-R S-Z T-Z Microsoft EE : Works for benchmarks only CREATE VIEW Customers AS SELECT * FROM Server1.TableOwner.Customers_33 UNION ALL SELECT

More information

Intro to Servlet, EJB, JSP, WS

Intro to Servlet, EJB, JSP, WS ! Introduction to J2EE (2) - EJB, Web Services J2EE iseminar.. 1544-3355 ( ) iseminar Chat. 1 Who Are We? Business Solutions Consultant Oracle Application Server 10g Business Solutions Consultant Oracle10g

More information

Interstage5 SOAP서비스 설정 가이드

Interstage5 SOAP서비스 설정 가이드 Interstage 5 Application Server ( Solaris ) SOAP Service Internet Sample Test SOAP Server Application SOAP Client Application CORBA/SOAP Server Gateway CORBA/SOAP Gateway Client INTERSTAGE SOAP Service

More information

JMF3_심빈구.PDF

JMF3_심빈구.PDF JMF JSTORM http://wwwjstormpekr Issued by: < > Revision: Document Information Document title: Document file name: Revision number: Issued by: JMF3_ doc Issue Date:

More information

No Slide Title

No Slide Title 상속 이충기 명지대학교컴퓨터공학과 상속 Q: 건설회사는기존아파트와조금다르거나추가적인특징들을가진새아파트를지을때어떻게하는가? A: 2 상속 상속 (inheritance) 은클래스들을연관시키는자연스럽고계층적인방법이다. 상속은객체지향프로그래밍의가장중요한개념중의하나이다. 상속은 은 이다 라는관계 (is-a relationship) 를나타낸다. 이관계를적용하여클래스들을상하관계로연결하는것이상속이다.

More information

교육자료

교육자료 THE SYS4U DODUMENT Java Reflection & Introspection 2012.08.21 김진아사원 2012 SYS4U I&C All rights reserved. 목차 I. 개념 1. Reflection 이란? 2. Introspection 이란? 3. Reflection 과 Introspection 의차이점 II. 실제사용예 1. Instance의생성

More information

PowerPoint Presentation

PowerPoint Presentation 객체지향프로그래밍 클래스, 객체, 메소드 손시운 ssw5176@kangwon.ac.kr 실제세계는객체로이루어진다. 2 객체와메시지 3 객체지향이란? 실제세계를모델링하여소프트웨어를개발하는방법 4 객체 5 객체란? 객체 (Object) 는상태와동작을가지고있다. 객체의상태 (state) 는객체의특징값 ( 속성 ) 이다. 객체의동작 (behavior) 또는행동은객체가취할수있는동작

More information

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f

* Factory class for query and DML clause creation * tiwe * */ public class JPAQueryFactory implements JPQLQueryFactory private f JPA 에서 QueryDSL 사용하기위해 JPAQuery 인스턴스생성방법 http://ojc.asia, http://ojcedu.com 1. JPAQuery 를직접생성하기 JPAQuery 인스턴스생성하기 QueryDSL의 JPAQuery API를사용하려면 JPAQuery 인스턴스를생성하면된다. // entitymanager는 JPA의 EntityManage

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

Microsoft Word - [2017SMA][T8]OOPT_Stage_1000_ docx

Microsoft Word - [2017SMA][T8]OOPT_Stage_1000_ docx OOPT Stage 1000 - Plan & Elaboration Feesual CPT Tool Project Team T8 Date 2017-03-30 T8 Team Information 201211347 박성근 201211376 임제현 201411270 김태홍 2017 Team 8 1 Table of Contents 1 Activity 1001. Define

More information

Microsoft PowerPoint - CSharp-10-예외처리

Microsoft PowerPoint - CSharp-10-예외처리 10 장. 예외처리 예외처리개념 예외처리구문 사용자정의예외클래스와예외전파 순천향대학교컴퓨터학부이상정 1 예외처리개념 순천향대학교컴퓨터학부이상정 2 예외처리 오류 컴파일타임오류 (Compile-Time Error) 구문오류이기때문에컴파일러의구문오류메시지에의해쉽게교정 런타임오류 (Run-Time Error) 디버깅의절차를거치지않으면잡기어려운심각한오류 시스템에심각한문제를줄수도있다.

More information

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

금오공대 컴퓨터공학전공 강의자료 데이터베이스및설계 Chap 1. 데이터베이스환경 (#2/2) 2013.03.04. 오병우 컴퓨터공학과 Database 용어 " 데이타베이스 용어의기원 1963.6 제 1 차 SDC 심포지움 컴퓨터중심의데이타베이스개발과관리 Development and Management of a Computer-centered Data Base 자기테이프장치에저장된데이터파일을의미

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 소프트웨어공학 Coding Introduction The interaction diagrams and DCDs are used as input to the code generation process A B :A :B :C C Design Class Diagram Interaction Diagram Code Generation Object code Implementation

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

Chapter 1

Chapter 1 3 Oracle 설치 Objectives Download Oracle 11g Release 2 Install Oracle 11g Release 2 Download Oracle SQL Developer 4.0.3 Install Oracle SQL Developer 4.0.3 Create a database connection 2 Download Oracle 11g

More information

DocsPin_Korean.pages

DocsPin_Korean.pages Unity Localize Script Service, Page 1 Unity Localize Script Service Introduction Application Game. Unity. Google Drive Unity.. Application Game. -? ( ) -? -?.. 준비사항 Google Drive. Google Drive.,.. - Google

More information

01-OOPConcepts(2).PDF

01-OOPConcepts(2).PDF Object-Oriented Programming Concepts Tel: 02-824-5768 E-mail: hhcho@selabsoongsilackr? OOP (Object) (Encapsulation) (Message) (Class) (Inheritance) (Polymorphism) (Abstract Class) (Interface) 2 1 + = (Dependency)

More information

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx

Microsoft PowerPoint UI-Event.Notification(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 UI 이벤트 Event listener Touch mode Focus handling Notification Basic toast notification Customized toast notification Status bar notification 2 사용자가인터랙션하는특정 View

More information

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 19 장배치관리자 이번장에서학습할내용 배치관리자의개요 배치관리자의사용 FlowLayout BorderLayout GridLayout BoxLayout CardLayout 절대위치로배치 컨테이너안에서컴포넌트를배치하는방법에대하여살펴봅시다. 배치관리자 (layout manager) 컨테이너안의각컴포넌트의위치와크기를결정하는작업 [3/70] 상당히다르게보인다.

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information