제2장객체지향분석과설계

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

UML

쉽게 풀어쓴 C 프로그래밍

PowerPoint Presentation

PowerPoint Presentation

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

JAVA PROGRAMMING 실습 08.다형성

PowerPoint Presentation

PowerPoint Presentation

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint 장강의노트.ppt

Microsoft PowerPoint - Lect04.pptx

PowerPoint Presentation

17장 클래스와 메소드

슬라이드 1

2 단계 : 추상화 class 오리 { class 청둥오리 extends 오리 { class 물오리 extends 오리 { 청둥오리 mallardduck = new 청둥오리 (); 물오리 redheadduck = new 물오리 (); mallardduck.swim();

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

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

제11장 프로세스와 쓰레드

No Slide Title

Slide 1

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

Blog

Convenience Timetable Design

Inclusion Polymorphism과 UML 클래스 다이어그램 구조에 의거한 디자인패턴 해석

PowerPoint Template

< 소프트웨어모델링및분석 > - UML 보고서 조원 : 홍준택 신재용 정재호 김철웅

PowerPoint 프레젠테이션

PowerPoint Presentation

UML의 구성과 도구

01-OOPConcepts(2).PDF

MVVM 패턴의 이해

C++ Programming

Microsoft PowerPoint _UML

PowerPoint 프레젠테이션

PowerPoint Presentation

유니티 변수-함수.key

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

PowerPoint Presentation

제목

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

Microsoft PowerPoint - Chapter 6.ppt

쉽게 풀어쓴 C 프로그래밍

예제 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

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍

슬라이드 1

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

소프트웨어개발방법론

PowerPoint Template

소프트웨어 개발의 성공 열쇠 - 오브젝트 디자인

Microsoft PowerPoint - 2강

JAVA PROGRAMMING 실습 02. 표준 입출력

- JPA를사용하는경우의스프링설정파일에다음을기술한다. <bean id="entitymanagerfactory" class="org.springframework.orm.jpa.localentitymanagerfactorybean" p:persistenceunitname=

JUNIT 실습및발표

ThisJava ..

PowerPoint 프레젠테이션

JVM 메모리구조

쉽게 풀어쓴 C 프로그래밍

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

소프트웨어개발방법론

PowerPoint Presentation

제 1 강 희망의 땅, 알고리즘

Network Programming

<4D F736F F F696E74202D205B36C0E55D20BCB3B0E820B9D720B1B8C7F62E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - hci2-lecture12 [호환 모드]

부록 a - UML a.1 UML (Unified Modeling Language) 계획 (planning)-분석(analysis)- 설계 (design)-구현(implement)- 테스트 (test)-유지보수 (maintenance) 로시스템개발절차가수행되는시스템개발

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

JAVA PROGRAMMING 실습 05. 객체의 활용

thesis

슬라이드 1

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

설계란 무엇인가?

Microsoft PowerPoint - C++ 5 .pptx

Spring Boot

Design Issues

텀블러514

Microsoft PowerPoint - java1 [호환 모드]

Microsoft PowerPoint - Java7.pptx

목차 1. 개요 소개... 3 A. 배경... 3 B. 목적... 3 C. 특징... 4 D. 용도 구성요소... 6 A. 사물 (Element)... 6 B. 관계 (Relationship)...10 C. 다이어그램 (Diagram)...

PowerPoint Presentation

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

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

No Slide Title

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

PowerPoint Presentation

PowerPoint 프레젠테이션

C++ 기본문법 정리

Rose교육.ppt

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

Spring Boot/JDBC JdbcTemplate/CRUD 예제

OOP 소개

PowerPoint 프레젠테이션

Microsoft PowerPoint - 06-Chapter09-Event.ppt

<4D F736F F F696E74202D20C1A63034B0AD202D20C7C1B7B9C0D3B8AEBDBAB3CABFCD20B9ABB9F6C6DBC0D4B7C2>

adfasdfasfdasfasfadf

Microsoft PowerPoint - java2 [호환 모드]

<432B2BC7C1B7CEB1D7B7A1B9D628BABBB9AE5FC3D6C1BE295B315D2E687770>

Microsoft PowerPoint - 04_OOConcepts(2010).pptx

쉽게 풀어쓴 C 프로그래밊

Transcription:

제 3 주차강의교안 1. 교수목표 : Object-Oriented Analysis and Design(OOAD) 란무엇인가를이해하고클래스생성방법을터득한다. 2. 강의시수 : 이론 - 1시간, 실습 - 2시간, Test - 1시간 3. 수업내용 이론 Object-Oriented Analysis and Design(OOAD) 란 실습 class 생성하기 Test class 실행여부 Test 제 2 장객체지향분석과설계 1. OOAD (Object-Oriented Analysis and Design) 란무엇인가? (1) OOAD 란소프트웨어를개발하는하나의방법론으로모든소프트웨어시스템의주요기본요소를사물을가리키는객체와그객체들을하나의집합으로묶은클래스로구성하는객체지향적인분석과설계방법을말한다. (2) 객체지향적이란것은현실세계에실재하는사물, 즉객체들을지향한다는것이다. 자바는 OOP( 객체지향적인프로그램 ) 라한다. 이말의뜻은위에서말한객체들을프로그램에응용하여객체지향적인시스템을설계한다는의미이다. 예를들어쇼핑몰을구축한다고가정할때여기서의객체는 " 고객, 상품, 결재계좌등 " 이라할수있다. (3) 객체지향적이라는것은바로이러한실재생활들을보다편리하고빠르게이용할수있게하는프로그램을현실생활에기초해서설계한다는개념이다. 객체지향이란개념은이러한실용성때문에최근에급속히확장해가고있다. 2. 모델링이필요한이유는? 1 가. 모델이란무엇인가? 1 UML 사용자지침서, 심재철외 2 인, 인터비전 p.9-13.

- 모델이란하나의시스템을개발하는데있어현실을추상화시켜놓은청사진을말한다. 예를들자면건물을짓기위한총체적인설계도와사용자의요구사항을반영한추상적인개념을말한다. - 건축공학의전유물이아니고최근에는소프트웨어공학 (Software Engineering) 에서많이사용된다. 즉기업에서필요한거대한정보시스템모델을만들어나가는것이모델링이다. 나. 모델링이란? - 모델링이란이러한정보시스템설계모델을실제현실세계에맞게구현하는작업을말한다. - 모델이필요한이유는미리모델을만들어보면서앞으로개발하려는시스템을좀더구체적이고도명확하게인식할수있기때문이다. 다. 모델링의목적은 - 모델은시스템을현재또는원하는모습으로가시화하도록도움을준다. - 모델은시스템의구조와행동을명세화할수있게해준다. - 모델은시스템을구축하는틀을제공해준다. - 모델은우리가결정한것을문서화한다. 라. 모델링원리 - 생성할모델을선택하는데따라문제를공략하는방법과해결책을실현하는방법에큰영향을준다. ] - 모든모델은다양한수준의정밀도를표현될수있다. - 가장훌륭한모델은현실을반영한다. - 하나의모델로는충분치않다. 특수한모델은여러개의모델을선정, 그중에하나를선택해모델링을해야한다. 마. 모델링의종류는? - 객체지향모델링 : 최근각광받고있는개발방법론으로객체와클래스가주요 요소이다. OOAD 가그방법론을말한다. - 알고리즘모델링 : 기존의소프트웨어개발방법론으로함수가주요요소이다. 3. 소프트웨어개발단계 1. 고객요구분석

- 사용자요구분석이라한다. Custmizing 이라는과정을통해고객의요구사항을빠짐없이기록하고분석하는업무를장기간에걸쳐실행하여, 보다구체적인고객요구사항을추출해낸다. 프로젝트성공을결정하는가장중요한작업으로전체프로젝트의성패를결정짓는중요한작업이다. 2. OOAD 통한디자인 - 시스템에대한전체적인분석과설계를통해모델을만든다. 3. Attribute 추출 - 객체와변수를추출한다. 4. Operation 추출 - 메소드를추출한다. 5. 개발시작 ( 코딩 ) - 실제코드를작성한다. 6. 모듈별통합검증 각단계별통합검증과테스트를통해코드를완성해간다. 7. 고객확인검증 - 사용자의요구사항과부합한지를사용자테스트를통해검증한다. 8. 완료 시스템구축완료한다. 9. 유지보수 시스템을안정적으로유지하고에러상항이나문제발생시신속하게고객에대응하는과정을말한다. 4. Object Orientation 의개요 가. 시스템설계를위한기술이다. 나. 현실세계에존재하는사물을프로그래밍언어를이용해 Application 설계를가능하게 하는시스템기술을말한다. 다. 시스템의역할 - 프로그램은객체에게무슨작업을할것인가를질의한다. - Object attributes - 어떠한객체인가를아는특성을말한다. - Object operations- 객체가알고있는무엇을실행하는것을말한다. 5. Object Attributes 와 Operation 가. Attributes : - Property 즉 " 속성 " 이라는뜻이며, - Object 나 data 가갖고있는특성을추출해사용한다. - 주로명사형으로표현된다. - 예를들자면 자동차라는클래스에서엔진휠핸들등과같은객체 를말한다.

- 명사형으로표현됨을기억하자. - 변수나상수데이터를말한다. 나. Operation : - Object 에 Action 을부여하여 Object 로하여금어떠한행동을취하게하는역할한다. 주로 Class File 에서는 "Method" 라고말한다. - 다시말하자면 " 객체가무엇인가를실행하게하는것 " 을뜻한다. - 그예를들자면자동차를 운전하다, 세차하다, 팔다, 새로사다 라는동사형으로표현된다. 다. Abstract - 추상화란 " 명사와동사를추출하는것 " 을말한다. 실제객체를프로그램으로 응용해내는것을말한다. - 가장중요한과정이다. 추상화를어떻게하느냐에따라클래스설계가결정됨을 명심해야한다. 이것이모델링의핵심과정이고성패를결정짓는주요요소이다. 6. UML(Unified Modeling Language) 을이용한객체모델링예제 가. UML(Unified Modeling Language) 역사 - 1994 년 10 월 james Rumbaugh(GE 사 ) 의 OMT(Object Modeling Technique) 개발방법론, Ivar Jacobson(Objectory 사 ) 의 OOSE(Object-Oriented Software Engineering) 방법론, Grady Booch(National Spftware 사 ) 방법론등을하나로통합하려는노력에의해만들어졌다. - 1995 년 10 월 0.8 버전발표 : Booch 와 OMT 통합 - 1996 년 7 월 : UML 0.9 버전발표 (OOSE 와통합 ) - 1997 년 7 월 : UML 1.0 버전 OMG(Object Management Group) 에제출 - 1997 년 11 월 : UML 은 OMG 에의해표준모델링언어로지정됨. 나. UML (Unified Modeling Language) 이란? - 객체지향설계를하는데있어서효율적인방법을제공한다. 객체를추출하고설계하는 방법을제공함으로서보다쉽고빠르게작업을마칠수있게한다. 최근에는대규모

프로젝트를추진하는데있어서가장중요한분야로등장하였고, 그중요성은갈수록증가하고있다. 실제 UML 은최근에각종개발툴개발업체들이지속적으로업그레이드하고있고새로운기능들을추가하고있다. 그대표적회사로는 Rational Rose 사를들수있다. - 실제사용예 : Class name attribute operation 다. Shirt 제조회사의주문공급시스템설계에관한 UML 모델링의예 orderid customerid dateordered itemsordered payment palceby initialize() Shirt calcamountowed() printorder() makepayment() changeitem() - 설명 :

Class Order Order 는객체이름을말한다. orderid attributes operations customerid dateordered itemsordered payment palceby initialize() calcamountowed() printorder() makepayment() changeitem() 명사형으로 Shirt 의주문날짜, ID, 주문품목, 가격, 위치등을나타낸다. 이것이객체이다. attributes 속성은다시각항목별로다시설계하면된다. 예를들면 customer 에대해서다시모델링을하면된다. 여기에는객체들의속성을실행하는동사형을추출해야한다. 먼저주문내역을초기화하고주문내역에대한가격산출하며, 주문내역을출력한다. 그리고지불내역을만들고변경하되품목을정리한다. 라. Class 생성하기 - 객체는 class 의 instance 이다. 이말은객체는 class 가만들어낸구체적인산물이란말이다. - class 란객체를만들기 category 이며, Object 의근본이다. class 가없으면객체는존재할수없다. 위의 Diagram 은 Shirt 의 class 설계도이다. - 위에서 attribute 은 Object 의 attribute 들이다. class 안에서객체가생성되어야프로그램을실행할수있는것이다. 7. Procedural Programing 과 Object-Oriented Programing 의차이점 가. 절차적언어와객체지향적언어의차이는무엇인가? - 여기서객체지향적언어인자바는은닉 (Encapsulation) 속성이있다. 은닉성이란 숨겨진다는것을말한다. 클래스안에객체와메소드, 변수데이터를담아두고약국에서

파는캡슐처럼외부에서의임의의접근을차단할수있다는것을말한다. Access Level(public, private, protected) 을통해변수데이터에접근을조정할수있다. - 그럼무엇을숨긴다는말인가? 바로중요한 data 를보호할필요가있을때외부에서의임의의접근을차단할수있다는것이다. 객체지향적언어의가장중요한특성이다. 신용카드의비밀번호를아무나접근하게해서는안된다는것이다. 절차적언어는이런은닉성를가질수없다. 나. 은닉성의장점은무엇인가? - class 내부가어떻게구성되어있는지를프로그래머만알면되고사용자는 class 에대해서는알필요가없다는것이다. - 중요한데이타에대해관리자만이접근하게하고사용자들은공개된메소드 (Accessor) 를통해접근하게한다. - 유지보수가쉽다. 다. Implements - 사용자는 interface 를통해서만접근가능하다. public( 공용 ) 으로선언함. 사용자는 Logic 를알필요가없이사용만하면된다. - 관리자는은닉성을통해 class 를관리한다. private 으로선언해같은 class 내에서만접근가능하게하여중요자료를보호한다.