객체지향소프트웨어공학 6 장 아키텍처설계 2017 최은만, 객체지향소프트웨어공학

Size: px
Start display at page:

Download "객체지향소프트웨어공학 6 장 아키텍처설계 2017 최은만, 객체지향소프트웨어공학"

Transcription

1 객체지향소프트웨어공학 6 장 아키텍처설계 2017 최은만, 객체지향소프트웨어공학

2 목차 01 설계과정 02 설계원리 03 설계안결정 04 아키텍처모델 05 패키지다이어그램과배치다이어그램 06 아키텍처패턴 07 아키텍처문서화 2017 최은만, 객체지향소프트웨어공학 2

3 01 설계과정 설계는다음의방법을찾기위한문제해결과정임 시스템의기능적요구를구현하기위한방법 비기능적요구에의하여받는제약을준수하는방법 재정적제약도포함 좋은품질의일반적원칙을고수하는방법 2017 최은만, 객체지향소프트웨어공학 3

4 설계 - 의사결정과정 설계사는일연의설계이슈에직면하게됨 전체설계문제에포함된작은문제 각이슈에는여러가지선택적인해결책이있음 이를설계옵션이라함 설계사는각이슈를해결하기위한설계의사결정을내림 여러선택사항에서가장좋은방안을찾는과정이포함 2017 최은만, 객체지향소프트웨어공학 4

5 설계범위 서로다른대안들의집합을선택함으로써달성할수있는가능한모든설계방법의영역을설계범위 (design space) 라부름 2017 최은만, 객체지향소프트웨어공학 5

6 컴포넌트 분명한역할을가지고있는하드웨어또는소프트웨어조각 독존할수있으며같은기능을가진다른컴포넌트로대체시킬수있어야함 대부분의컴포넌트는재사용가능하도록설계 특정목적을가진컴포넌트도있음 사용자인터페이스 뱅킹업무 창고관리등 2017 최은만, 객체지향소프트웨어공학 6

7 모듈 프로그래밍언어수준에따라정의된컴포넌트 예 - 메소드, 클래스, 패키지 (Java) 2017 최은만, 객체지향소프트웨어공학 7

8 시스템 정의가능한책임과목적들을가지고있고소프트웨어나하드웨어로구성된논리적개체 시스템은명세를가지며컴포넌트의집합으로구현될수있음 시스템은컴포넌트가변하거나다른컴포넌트로대치되더라도지속적으로존재 요구분석의목적은시스템의역할을결정하는것 서브시스템 대규모시스템의일부분으로규정된인터페이스를가짐 2017 최은만, 객체지향소프트웨어공학 8

9 시스템을이루는요소들 UML 로표현한요소들사이의관계 2017 최은만, 객체지향소프트웨어공학 9

10 하향식과상향식설계 하향식설계 먼저시스템의최상위부분을설계 다음에하위수준의자세한결정을내리면서점차적으로하향 최종적으로도달하는자세한결정은 특정데이터아이텀의포맷 사용할개별알고리즘 상향식설계 재사용가능한하위수준의유틸리티들에대한결정 높은수준의구조를만들기위해이것들을어떻게함께배치할까를결정 2017 최은만, 객체지향소프트웨어공학 10

11 혼용방법 상향식과하향식을혼용한방법 하향식방법은항상시스템에좋은구조를가지게함 상향식방법은재사용가능한컴포넌트를만들게된다는면에서유용 2017 최은만, 객체지향소프트웨어공학 11

12 설계의종류 아키텍처설계 소프트웨어를서브시스템과컴포넌트로분할 어떻게연결될것인가? 어떻게상호작동할것인가? 인터페이스는? 클래스설계 클래스의여러기능 사용자인터페이스설계 알고리즘설계 컴퓨팅메커니즘의설계 프로토콜설계 통신프로토콜의설계 2017 최은만, 객체지향소프트웨어공학 12

13 02 설계원리 좋은설계를위한목표 비용절감으로인한이익과수익증가 요구한것과일치하는지확증 개발가속화 다음품질의향상 유용성 효율성 신뢰성 유지보수성 재사용성 2017 최은만, 객체지향소프트웨어공학 13

14 설계원리 1: 분할정복 한번에큰것을개발하는것이작은것을연속적으로다루는것보다어려움 나누어진사람들이각부분을작업할수있음 개별소프트웨어엔지니어가자신이맡은분야에서전문화될수있음 각컴포넌트는더작아지고더이해하기쉬워짐 부품이교체되거나변경되어야할때다른부분을변경또는교체할필요가없음 2017 최은만, 객체지향소프트웨어공학 14

15 소프트웨어를분할하는방법 분산시스템은클라이언트와서버로분할 시스템은서브시스템으로분할 서브시스템은하나또는그이상의패키지로분할 패키지는여러클래스로분할 클래스는여러메소드들로분할 2017 최은만, 객체지향소프트웨어공학 15

16 설계원리 2: 응집력을증진 서브시스템이나모듈이서로관련있는것들은같이있게하고그외의것은외부에존재하게함 전체시스템을이해하거나변경하기쉬워짐 응집력의종류 기능적응집 계층적응집 교환적응집 순차적응집 절차적응집 시간적응집 실용적응집 2017 최은만, 객체지향소프트웨어공학 16

17 기능적응집 단일결과를계산하기위한코드만이모여있고나머지는밖으로추출할때달성됨 즉모듈이단일작업을수행하여결과를내고외부효과 (side-effect) 가없는것 시스템에대한이익 이해가쉬움 재사용용이 다른것으로쉽게대치 데이터베이스를갱신하거나새로운파일을만드는모듈, 사용자와상호작용하는모듈은기능적응집이아님 2017 최은만, 객체지향소프트웨어공학 17

18 계층적응집 연관되는서비스를제공하는기능들을모아놓고그이외의것은밖으로 각층은계층을형성하여야 고위층은하위층의서비스를접근 하위층은고위층을접근하지않음 어떤층이서비스를제공하는프로시저의집합은 API(Application Programming Interface) 라함 다른층에영향을주지않고층을대체할수있음 API 는복제 2017 최은만, 객체지향소프트웨어공학 18

19 계층사례 2017 최은만, 객체지향소프트웨어공학 19

20 교환적응집 특정데이터 ( 예, 클래스 ) 를접근하거나조작하는모듈은같이두고그외의것은밖으로 좋은교환적응집을갖는클래스의조건 특정자료를저장하고조작하는시스템의기능을한클래스안에포함시킨다면 클래스가그데이터를조작하는이외의일은하지않는다면 주요장점 데이터를조작할때한곳에서모든코드를찾을수있음 2017 최은만, 객체지향소프트웨어공학 20

21 순차적응집 한프로시저의출력이다음프로시저의입력이될때이들을함께두고나머지는밖으로 앞에나열한응집이모두성취되었다면다음은순차적응집이되도록노력 예 ) 문서인식시스템 비트맵을받아글자를구성하는구획으로나눔 해당글자가결정 단어의순서결정 2017 최은만, 객체지향소프트웨어공학 21

22 절차적응집 한프로시저이후에차례로수행되는프로시저를모아놓은응집 한프로시저의결과가다음프로시저에입력으로사용되지않더라도 순차적응집보다약함 2017 최은만, 객체지향소프트웨어공학 22

23 시간적응집 프로그램수행에서같은단계에있는오퍼레이션들이같이모여있음 예를들어한시스템의시작이나초기화하는동안사용되는코드들을같이둠 절차적응집보다약함 2017 최은만, 객체지향소프트웨어공학 23

24 실용적응집 다른응집도에는해당되지않고서로연관된유틸리티기능들을함께두는경우 실용적기능이란다른서브시스템들을위하여광범위하게응용되는즉재사용을위하여설계된프로시저나클래스 예 ) java.lang.math 2017 최은만, 객체지향소프트웨어공학 24

25 설계원리 3: 결함력감소 결합은두모듈사이에의존관계가있을때발생함 의존관계가존재하면한부분이변경되면다른부분의변경을유발 의존관계가복잡하면컴포넌트들이어떻게수행되는지한눈에보기어려움 결합력의종류 내용결합, 공통결합, 제어결합, 스탬프결합, 자료결합, 루틴호출결합, 타입사용결합, 포함결합, 외부결합 2017 최은만, 객체지향소프트웨어공학 25

26 내용결합 다른컴포넌트의내부데이터를알리지않고수정하는컴포넌트 내용결합을피하기위하여모든인스턴스변수를캡슐화하여야함 private 으로선언 get 과 set 함수제공 인스턴스변수안에포함된인스턴스변수를직접적으로수정할때내용결합발생 2017 최은만, 객체지향소프트웨어공학 26

27 내용결합사례 public class Line { private Point start, end;... public Point getstart() { return start; } public Point getend() { return end; } } public class Arch { private Line baseline;... void slant(int newy) { Point theend = baseline.getend(); theend.setlocation(theend.getx(),newy); } } 2017 최은만, 객체지향소프트웨어공학 27

28 공통결합 전역변수를사용할때항상발생 전역변수를사용하는모든모듈은서로결합됨 공통결합의더약한형태는변수가시스템에있는클래스일부가접근가능할때 Java 패키지 시스템전체가사용하는디폴트값을나타내는전역변수는허용할만함 싱글톤패턴은객체에캡슐화된전역변수를제공 2017 최은만, 객체지향소프트웨어공학 28

29 제어결합 프로시저가플래그나커맨드를사용하여다른프로시저를호출하여제어하려할때발생 변경하려면호출하는메소드와호출당하는메소드모두변경하여야 다형성을가진오퍼레이션을사용하면제어결합을피할수있음 제어결합을감소시키는한가지방법은 look-up 테이블을만드는것 명령이구동될때호출되어야하는메소드로매핑 2017 최은만, 객체지향소프트웨어공학 29

30 제어결합의사례 public routinex(string command) { if (command.equals("drawcircle") { drawcircle(); } else { drawrectangle(); } } 2017 최은만, 객체지향소프트웨어공학 30

31 스탬프결합 응용클래스들중의하나가메소드의매개변수로정의될경우 다른클래스를매개변수로사용하기때문에시스템의변경이쉽지않다 그클래스를다시사용하려면다른클래스도자동적으로재사용하여야 스탬프결합을줄이는두가지방법 매개변수로인터페이스를사용 단순변수를전달 2017 최은만, 객체지향소프트웨어공학 31

32 스탬프결합의사례 public class er { public void send (employee e, String text) {...}... } 위사례를단순변수를사용하여개선하면 public class er { public void send (string name, String , String text) {...}... } 2017 최은만, 객체지향소프트웨어공학 32

33 스탬프결합의예 인터페이스를이용하여개선하면 public interface Addressee { public abstract String getname(); public abstract String get (); } public class Employee implements Addressee { } public class er { public void send ( Addressee e, String text) {...}... } 2017 최은만, 객체지향소프트웨어공학 33

34 자료결합 메소드의매개변수타입이기본적이거나단순한라이브러리클래스인경우 매개변수가많을수록결합도가높음 메소드를사용하는모든메소드들은매개변수를전달해주어야 불필요한매개변수를줄임으로결합도를낮출수있음 자료결합과스탬프결합의 trade-off 하나를낮추면다른하나는올라감 2017 최은만, 객체지향소프트웨어공학 34

35 루틴호출결합 하나의루틴 ( 객체지향에서는메소드 ) 이다른루틴을호출할때결합이발생 서로의행위에의존하기때문에결합이있음 루틴호출결합은어느시스템이나항상존재함 어떤연산을위하여두개이상의메소드를반복하여사용한다면 이런부분을캡슐화하여하나의루틴을정의하여루틴호출결합을줄임 2017 최은만, 객체지향소프트웨어공학 35

36 타입사용결합 어떤모듈이다른모듈에서정의된자료형을사용할때발생 클래스안에서인스턴스변수를선언하거나지역변수를정의할때는언제든지이런결합이발생 타입사용결합의결과만일타입이바뀐다면타입을사용하는쪽도영향을받음 변수타입을 2017 최은만, 객체지향소프트웨어공학 36

37 포함결합 컴포넌트가패키지를 import 하는경우 (Java) 컴포넌트가다른파일을 include 하는경우 (C, C++) include 나 import 하는컴포넌트는 include 또는 import 당하는컴포넌트에노출됨 include 또는 import 당하는컴포넌트에변경이가해질경우 include 또는 import 하는컴포넌트안의어떤요소와상충되어변경을하게됨 import 당하는컴포넌트안의어떤요소가 inport 하는컴포넌트의어떤것과이름이같은경우 2017 최은만, 객체지향소프트웨어공학 37

38 외부결합 어떤모듈이운영체제, 공유라이브러리, 하드웨어등에의존하는경우 코드에의존성갖는부분을줄이는것이최선의방법 퍼싸드 (façade) 설계패턴으로외부결합을줄일수있음 2017 최은만, 객체지향소프트웨어공학 38

39 설계원리 4: 높은수준의추상화 상세하고구체적인부분을숨기거나상세화를지연함으로써복잡도를줄여야함 좋은추상화는정보은닉을제공 추상화는불필요하게상세한사항을알지않아도서브시스템의근본을알수있게해줌 2017 최은만, 객체지향소프트웨어공학 39

40 추상화와클래스 클래스는프로시저추상을포함한자료추상 모든변수를 private 으로선언하면추상성은높혀짐 클래스안에메소드가적을수록추상화는좋아짐 슈퍼클래스와인터페이스사용은추상성을높여줌 속성과연관관계도또다른추상 메소드는절차적추상 좋은추상이되려면더적은수의매개변수를가진메소드나오퍼레이션제공 2017 최은만, 객체지향소프트웨어공학 40

41 설계원리 5: 재사용성증진 시스템의다양한측면을고려하여다른환경에서도다시사용될수있도록설계 설계를가능하면범용화 (generalize) 앞에서소개한세가지설계원리를따름 후크를가진시스템으로설계 설계를가능하면단순화 2017 최은만, 객체지향소프트웨어공학 41

42 설계원리 6: 설계와코드의재사용 재사용을위한설계와설계재사용은서로보완적 적극적으로설계나코드를재사용하는것은다른사람들이투자한재사용컴포넌트로이득을얻는것 복제 (cloning) 는재사용의형식으로볼수없음 2017 최은만, 객체지향소프트웨어공학 42

43 설계원리 7: 유연성고려 미래에이루어질변경을미리적극적으로예상하고이를준비하는것 결합력감소와응집력증가 추상화생성 하드코딩금지 선택의여지를남김 시스템을나중에변경하는사람의선택권을제한하지말도록 재사용가능코드를사용하고코드를재사용가능하게만들것 2017 최은만, 객체지향소프트웨어공학 43

44 설계원리 8: 노후예측 기술과환경은변화되도록계획되어있어소프트웨어도쉽게변경되고실행되도록하여야 성숙되지않은기술은피함 특정한환경에서만사용되는라이브러리는피함 문서화되지않은기능이나사용하지않는기능은피함 작은회사나길게갈것같지않은회사가제공하는소프트웨어나하드웨어는피함 표준언어나다수의회사가제공하는기술을사용함 2017 최은만, 객체지향소프트웨어공학 44

45 설계원리 9: 이식성 가능하면소프트웨어를많은플랫폼에서실행할수있게 특정환경에만있는기능의사용은피함 예 ) MS-Windows 에만있는라이브러리 2017 최은만, 객체지향소프트웨어공학 45

46 설계원리 10: 테스트가능성 한발더나가테스트가쉽도록 소프트웨어를자동으로테스트할수있게자동화 코드의모든기능이 GUI 를통하지않고도실행될수있게설계 Java 언어에서는클래스에 main() 함수를만들어다른메소드들을검사할수있게함 2017 최은만, 객체지향소프트웨어공학 46

47 설계원리 11: 방어적인설계 설계하는컴포넌트를사용하는다른사람이항상올바로사용한다고생각하지않도록 컴포넌트를부적절하게사용할경우를대비 구현한컴포넌트에대한모든입력이올바른지체크 : precondition 하지만과도한방어설계는불필요한반복적체크를유발함 2017 최은만, 객체지향소프트웨어공학 47

48 03 설계안결정 우선순위와목표를이용하여설계안결정 1 단계 설계안을모두나열하고기술함 2 단계 목표와우선순위를고려하여각설계안에대하여장점과단점을기술 3 단계 하나이상의목표를만족시키지못하는설계안은배제 4 단계 목표를가장잘만족시키는설계안선택 5 단계 계속되는설계의사결정을위하여우선순위조정 2017 최은만, 객체지향소프트웨어공학 48

49 설계안결정사례 다음순서로우선순위가높은목표를설정한시스템을생각해보자. 보안 공개키기법을사용하며 400 MHz 프로세서로 100 시간안에암호를풀지못해야한다. 유지보수성 구체적목표없음 CPU 효율성 400 MHz 프로세서에서수행될때 1 초이내로반응하여야 네트워크대역효율성 트랜젝션당 8 KB 이상의데이터가전송되어서는안됨 메모리효율성 20 MB 램이상소요되면안됨 이식성 윈도우 98, 2000, XP 뿐만아니라리눅스에서도실행되어야 2017 최은만, 객체지향소프트웨어공학 49

50 설계안평가의예 설계안보안유지보수 메모리효율성 CPU 효율성 대역폭효율성 이식성 A 안높음중간높음중간낮음낮음 B 안높음높음낮음중간중간낮음 C 안높음높음높음낮음높음낮음 D 안 중간 - - E 안 낮음

51 04 아키텍처모델 소프트웨어시스템에대한전반적인구조를설계하는과정으로다음사항을포함 소프트웨어를서브시스템으로분할 이들이어떻게상호작동하는지결정 인터페이스를결정 아키텍처는설계의핵심으로소프트웨어엔지니어모두가이해하고있어야함 아키텍처가시스템전체의효율성, 재사용성, 유지보수성을결정 2017 최은만, 객체지향소프트웨어공학 51

52 소프트웨어아키텍처의중요성 아키텍처모델을개발하는이유 소프트웨어시스템을누구나잘이해하게하기위해 시스템의일부를독립적으로작업하게하기위해 시스템의확장을준비하기위해 재사용과재사용가능성을용이하게하기위해 2017 최은만, 객체지향소프트웨어공학 52

53 좋은아키텍처모델 시스템의아키텍처는여러가지관점으로표현됨 논리적으로분할된서브시스템 서브시스템사이의인터페이스 컴포넌트사이의동적인인터랙션 서브시스템사이에공유하는데이터 컴포넌트가런타임에존재하는위치 2017 최은만, 객체지향소프트웨어공학 53

54 아키텍처모델의개발 아키텍처를 refine 어떤컴포넌트가상호작용하며서로인터페이스하는중요한방법을찾음 자료와기능이여러컴포넌트사이에어떻게분배되는지결정 현재의프레임워크를재사용할수있는지, 프레임을구축할수있는지결정 각사용사례를살펴보고아키텍처를조금씩고쳐나감 아키텍처를성숙시킴 2017 최은만, 객체지향소프트웨어공학 54

55 05 패키지다이어그램 패키지 공통적인특성을가진클래스들의모임 재사용의단위가됨 관계 점선화살표는의존관계를나타냄 컴파일타임에바인딩 2017 최은만, 객체지향소프트웨어공학 55

56 패키지다이어그램 - 사례 2017 최은만, 객체지향소프트웨어공학 56

57 배치다이어그램 개발될시스템의소프트웨어및하드웨어컴포넌트의물리적인설치관계를나타냄 노드 : 컴퓨팅유닛 링크 : 시스템의통신경로 ( 물리적으로표시 ), 참조방향도표시 2017 최은만, 객체지향소프트웨어공학 57

58 06 아키텍처패턴 패턴이나스타일이란말이아키텍처에도적용됨 건축에서철골형, 철근콘크리트형, 고딕양식등분명한유형이존재하는것처럼소프트웨어구조에도유형이있음 컴포넌트를이용하여융통성있는시스템을설계하도록만들어줌 컴포넌트는가능하면서로독립적이되도록 2017 최은만, 객체지향소프트웨어공학 58

59 계층구조스타일 계층구조에서는하나의층이바로아래있는층만서로커뮤니케이션함 상위층에서는하위층을하나의서비스로여김 복잡한시스템은추상수준을높이면서층을포개어구성할수있음 UI 를위한별도의층을갖은것이중요 UI 바로아래층은사용사례에서결정된어플리케이션기능들을제공하는것으로설계 하위층은공통적인서비스를제공 네트워크커뮤니케이션, 데이터베이스접근 2017 최은만, 객체지향소프트웨어공학 59

60 다계층구조의사례 2017 최은만, 객체지향소프트웨어공학 60

61 다계층구조의설계원리 1. 분할정복 분리된계층이독립적으로설계됨 2. 응집도증진 계층응집도 ( 층안에관련서비스가응집 ) 3. 결합력감소 잘설계된하위층은상위층에대하여알지못함. 층사이에커넥션만 API 를통하여이루어짐 4. 추상화증진 하위층이어떻게구현되었는지상세히알필요가없음 5. 재사용성증진 하위층은범용적으로설계될수있음 6. 재사용확대 다른곳에서개발된층을재사용 2017 최은만, 객체지향소프트웨어공학 61

62 다계층구조의설계원리 7. 융통성 새로운기능을하위층서비스에추가하거나상위층을교체 8. 노후를예측 컴포넌트를분리된층에고립시킴으로노후를대비할수있음 9. 이식성 특정플랫폼에의존된부분을계층하나에격리시킬수있음 10. 테스트가능성 각층을분리하여테스트가능 11. 방어적설계 각층의 API 를엄격한 assertion 체크로구축할수있음 2017 최은만, 객체지향소프트웨어공학 62

63 클라이언트서버스타일 커넥션을기다리고처리해주는하나의클라이언트가있음 서비스를제공받으려고커넥션을시도하는하나이상의클라이언트가있음 확장된형태는 peer-to-peer 스타일 여러호스트에분산되어있는여러소프트웨어컴포넌트로구성됨 2017 최은만, 객체지향소프트웨어공학 63

64 분산시스템의사례 2017 최은만, 객체지향소프트웨어공학 64

65 분산시스템의설계원리 1. 분할정복 클라이언트와서버로확실히분리별도개발할수있음 2. 응집도증진 서버가클라이언트에게응집도높은서비스를제공 3. 결합력감소 단순메시지를교환하는통신체널이유일함 4. 추상화증진 별도의분산컴포넌트가좋은추상성을제공 6. 재사용확대 분산시스템을구축하기위한좋은프레임워크는발견할수있으나 l 클라이언트 - 서버시스템은매우특수한경우가많음 2017 최은만, 객체지향소프트웨어공학 65

66 분산시스템의설계원리 7. 융통성 서버와클라이언트를추가하여쉽게분산시스템을재구성 9. 이식성 서버를이식하지않고클라이언트를새플랫폼에올릴수있음 10. 테스트가능성 서버와클라이언트를별도로테스트할수있음 11. 방어적설계 메시지처리코드를엄격히체크하여야함 2017 최은만, 객체지향소프트웨어공학 66

67 브로커스타일 여러노드에투명하도록소프트웨어시스템을분산 원거리에있는객체의메소드를호출가능 CORBA(Common Object Request Brocker Architecture) 가잘알려진표준 2017 최은만, 객체지향소프트웨어공학 67

68 브로커패턴의설계원리 1. 분할정복 원격객체가독립적으로설계됨 5. 재사용성증진 다른시스템도사용할수있도록원격객체의설계가가능 6. 재사용확대 다른곳에서생성된원격객체를재사용할수있음 7. 융통성 브로커가필요에따라변경될수있고프록시가다른원격객체와통신할수있음 9. 이식성 동일브로커를접근하는새로운플랫폼을위한클라이언트를작성할수있음 11. 방어적설계 원격객체에대한신중한 assertion 체크 2017 최은만, 객체지향소프트웨어공학 68

69 트랜젝션처리스타일 연달아들어오는입력을하나씩읽어 각입력은트랜젝션을명시 - 시스템에저장되어있는데이터를조작하는명령들 트랜젝션을어디서처리할것인지를나타내는트랜젝션사령 (dispatcher) 컴포넌트가필요 사령컴포넌트는프로시저호출이나메시지를트랜젝션을처리할컴포넌트에배치 2017 최은만, 객체지향소프트웨어공학 69

70 트랜젝션처리의예 2017 최은만, 객체지향소프트웨어공학 70

71 트랜젝션처리의설계원리 1. 분할정복 트랜젝션처리기는별도의엔지니어가담당할수있는잘분리된단위 2. 응집도증진 트랜젝션처리기는원래응집된단위 3. 결합력감소 처리기에서사령컴포넌트를분리함으로결합력낮춤 7. 융통성 새로운트랜젝션처리기를추가하기쉽다. 11. 방어적설계 트랜젝션처리기와사령컴포넌트에 assertion 추가 2017 최은만, 객체지향소프트웨어공학 71

72 파이프필터스타일 비교적단순한데이터스트림이프로세스에차례로전달되어 특정한형태로변환시킴 데이터는파이프라인으로계속주입됨 프로세스는병렬적으로실행 아키텍처는매우융통적 거의모든컴포넌트가삭제될수있음 컴포넌트가대치될수있음 새로운컴포넌트가추가될수있음 어떤컴포넌트는수서를재배치할수있음 2017 최은만, 객체지향소프트웨어공학 72

73 파이프필터아키텍처사례 2017 최은만, 객체지향소프트웨어공학 73

74 파이프필터아키텍처설계원리 1. 분할정복 각프로세스가별도로설계될수있음 2. 응집도증진 각프로세스가기능적응집 3. 결합력감소 각프로세스가일반적으로단일입력과단일출력 4. 추상화증진 파이프라인컴포넌트들이매우높은추상성을가짐 5. 재사용성증진 각프로세스들은다른환경에서도사용가능 6. 재사용확대 재사용컴포넌트를찾아파이프라인에추가할수있음 2017 최은만, 객체지향소프트웨어공학 74

75 파이프필터아키텍처설계원리 7. 융통성 프로세스의순서를자유롭게바꿀수있음 10. 테스트가능성 개별프로세스를테스트하기쉬움 11. 방어적설계 각컴포넌트의입력을엄격하게체크 2017 최은만, 객체지향소프트웨어공학 75

76 MVC 스타일 사용자인터페이스를시스템의다른부분과분리하기위한스타일 모델은사용자에게보여주고조작될수있는중요한클래스의인스턴스를포함 뷰는모델에있는데이터를사용자인터페이스에보여주는역할을담당 제어부분은사용자가모델과뷰와인터랙션하는것을제어하는객체를포함 옵서버패턴이뷰로부터모델을분리하는데사용됨 2017 최은만, 객체지향소프트웨어공학 76

77 MVC 스타일의사례 2017 최은만, 객체지향소프트웨어공학 77

78 MVC 스타일의설계원리 1. 분할정복 세가지컴포넌트가독립적으로설계될수있음 2. 응집도증진 뷰와제어부분이단일 UI 계층에같이있다면계층응집도가큼 3. 결합력감소 세컴포넌트사이의통신채널이최소화됨 6. 재사용확대 뷰와제어부분은여러가지 UI 제어를위하여재사용컴포넌트로사용될수있음 7. 융통성 뷰, 제어를변경하여 UI 를쉽게갱신할수있음 10. 테스트가능성 애플리케이션을 UI 와분리하여테스트가능 2017 최은만, 객체지향소프트웨어공학 78

79 07 아키텍처문서화 설계문서는더좋은설계를만들기위한도우미 구현을시작하기전에중요한설계이슈를들어냄 참여그룹이설계를검토하고개선할수있게함 문서는다음참여자들의커뮤니케이션수단 설계를구현할사람 미래에필요에따라설계를수정할사람 설계한시스템에인터페이스하여새로운시스템을작성할사람 2017 최은만, 객체지향소프트웨어공학 79

80 문서구조 목적 문서가기술하는대상시스템이무엇인지기술 설계가다루고있는요구사항에대한참고문헌을소개 (traceability) 우선순위 설계작업과정을설명할우선순위를기술 설계의아웃라인 개괄적인소개를하기위하여최상위로추상화된설계를제시 주요설계이슈 해결되어야할중요한이슈 고려해야할다른대안이나최종결정, 결정이유등을기술 설계상세사항 아직언급되지않은것중독자가꼭알아야할사항 2017 최은만, 객체지향소프트웨어공학 80

81 설계문서예 : 네비게이션시스템 A. 목적 자동차에장착되어목적지까지방향을지시하여운전을안내하는네비게이션시스템에대한아키텍처를설계한것이다. B. 우선순위 MyNavigation 시스템에서는 다음과 같은 순서로 중요하다고결정하였다. 1) 성능 - 네비게이션지시반응시간, 기억공간효율성 2) 의존성 - 입력오류에대한강인성, 신뢰성, 보안 3) 사용성 - 사용자인터페이스친밀성 4) 유지보수성 - 확장성, 이식성, 적응성 2017 최은만, 객체지향소프트웨어공학 81

82 설계문서예 : 네비게이션시스템 C. 설계이슈 이슈 1: GIS 정보를어디에저장할것인가? 1.1 안 : 중앙서버에저장하고이동통신에의하여실시간접근하게하는방법. 1.2 안 : 네비게이션시스템에다운로드하여메모리에저장하는방법. 결정안 : 1.1 안은주행중통신이끊길수있고통신비용도 2017 최은만, 객체지향소프트웨어공학 82

83 설계문서예 : 네비게이션시스템 Crossing Destination Direction Location PlanningService RouteAssistant Segment Trip 여러운전자가여러세그멘트사이에택할수있는지리적교차점 운전자가가고싶은위치교차점과근처의세그멘트가주어졌을때자연어로표현된 Direction 이차를어떤방향으로몰아야하는지를안내함 GPS 시스템이나차바퀴의방향전환횟수로파악하는차의위치 여정, 즉여러연결된목적지를교차점과세그멘트로제공할수있는서비스 현재의위치와다가오는교차점이주어졌을때운전자에게 Direction 을제공 두교차점사이의길 두위치점사이에운행하여야할 Direction 의순서있는집합 2017 최은만, 객체지향소프트웨어공학 83

JAVA PROGRAMMING 실습 08.다형성

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

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

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

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 - chap01-C언어개요.pptx

Microsoft PowerPoint - chap01-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 학습목표 프로그래밍의 기본 개념을

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

<4D F736F F F696E74202D20C1A63038C0E520C5ACB7A1BDBABFCD20B0B4C3BC4928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

More information

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론 2. 관련연구 2.1 MQTT 프로토콜 Fig. 1. Topic-based Publish/Subscribe Communication Model. Table 1. Delivery and Guarantee by MQTT QoS Level 2.1 MQTT-SN 프로토콜 Fig. 2. MQTT-SN

More information

Network Programming

Network Programming Part 5 확장된 Network Programming 기술 1. Remote Procedure Call 2. Remote Method Invocation 3. Object Request Broker 2. Java RMI

More information

쉽게 풀어쓴 C 프로그래밍

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

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

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

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

2 단계 : 추상화 class 오리 { class 청둥오리 extends 오리 { class 물오리 extends 오리 { 청둥오리 mallardduck = new 청둥오리 (); 물오리 redheadduck = new 물오리 (); mallardduck.swim(); 인터페이스적용 오리객체설계하기 ) 청둥오리, 물오리를설계하세요. 1 단계 : 필요한객체설계 class 청둥오리 { class 물오리 { 청둥오리 mallardduck = new 청둥오리 (); 물오리 redheadduck = new 물오리 (); mallardduck.swim(); mallardduck.fly(); mallardduck.quack(); redheadduck.swim();

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

제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

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

C++ Programming

C++ Programming C++ Programming 예외처리 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 예외처리 2 예외처리 예외처리 C++ 의예외처리 예외클래스와객체 3 예외처리 예외를처리하지않는프로그램 int main() int a, b; cout > a >> b; cout

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

Microsoft PowerPoint - 2강

Microsoft PowerPoint - 2강 컴퓨터과학과 김희천교수 학습개요 Java 언어문법의기본사항, 자료형, 변수와상수선언및사용법, 각종연산자사용법, if/switch 등과같은제어문사용법등에대해설명한다. 또한 C++ 언어와선언 / 사용방법이다른 Java의배열선언및사용법에대해서설명한다. Java 언어의효과적인활용을위해서는기본문법을이해하는것이중요하다. 객체지향의기본개념에대해알아보고 Java에서어떻게객체지향적요소를적용하고있는지살펴본다.

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

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Lab 4 ADT Design 클래스로정의됨. 모든객체들은힙영역에할당됨. 캡슐화 (Encapsulation) : Data representation + Operation 정보은닉 (Information Hiding) : Opertion부분은가려져있고, 사용자가 operation으로만사용가능해야함. 클래스정의의형태 public class Person { private

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 9 강. 클래스의활용목차 멤버함수의외부정의 this 포인터 friend 선언 static 멤버 임시객체 1 /17 9 강. 클래스의활용멤버함수의외부정의 멤버함수정의구현방법 내부정의 : 클래스선언내에함수정의구현 외부정의 클래스선언 : 함수프로토타입 멤버함수정의 : 클래스선언외부에구현

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 - 11_DesignPatterns(2010).ppt [호환 모드]

Microsoft PowerPoint - 11_DesignPatterns(2010).ppt [호환 모드] LECTURE 11 디자인패턴 최은만, CSE 4039 소프트웨어공학 설계작업에대한도전 소프트웨어설계는어려운일 문제를잘분할하고 유연하고잘모듈화된우아한디자인이되어야함 설계는시행착오 (trial and error) 의결과 성공적인설계가존재 두설계가똑같은일은없음 반복되는특성 최은만, CSE 4039 소프트웨어공학 2 디자인패턴 디자인패턴은공통된소프트웨어문제에오래동안사용되어검증된솔루션

More information

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요

. 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요 . 스레드 (Thread) 란? 스레드를설명하기전에이글에서언급되는용어들에대하여알아보도록하겠습니다. - 응용프로그램 ( Application ) 사용자에게특정서비스를제공할목적으로구현된응용프로그램을말합니다. - 컴포넌트 ( component ) 어플리케이션을구성하는기능별요소로써안드로이드시스템에서는 Activities, Services, Content Providers,

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

[Brochure] KOR_TunA

[Brochure] KOR_TunA LG CNS LG CNS APM (TunA) LG CNS APM (TunA) 어플리케이션의 성능 개선을 위한 직관적이고 심플한 APM 솔루션 APM 이란? Application Performance Management 란? 사용자 관점 그리고 비즈니스 관점에서 실제 서비스되고 있는 어플리케이션의 성능 관리 체계입니다. 이를 위해서는 신속한 장애 지점 파악 /

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

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

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

Microsoft PowerPoint - CSharp-10-예외처리

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

More information

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074>

<4D F736F F F696E74202D2036C0CFC2B05FB0B4C3BCC1F6C7E2C7C1B7CEB1D7B7A1B9D62E707074> 객체지향프로그램밍 (Object-Oriented Programming) 1 C++ popular C 객체지향 (object oriented) C++ C : 상위계층언어특징 + 어셈블리언어특징 C++ : 소프트웨어개발플랫폼에객체지향개념제공 객체지향 : 자료와이들자료를어떻게다룰것인지따로생각하지않고단지하나의사물로생각 형 변수가사용하는메모리크기 변수가가질수있는정보

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

Architectural Design

Architectural Design 본장에서는아키텍처설계단계에대한전반적인내용을다룬다. 아키텍처설계단계에서해야할활동들과산출물들에대해서소개하고, 소프트웨어아키텍처에대한기초이론과개념그리고어떻게시스템의아키텍처를묘사하고그것을문서화하는지를상세하게설명한다. 1 본장에서는다음을달성할수있도록하는것에목적을둔다. 1. 소프트웨어아키텍처에관한기본개념들을이해한다. 2. 소프트웨어아키텍처를표현하기위한 UML 의요소및다이어그램들을살펴보고이것을직접활용할수있다.

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 5 장생성자와접근제어 1. 객체지향기법을이해한다. 2. 클래스를작성할수있다. 3. 클래스에서객체를생성할수있다. 4. 생성자를이용하여객체를초기화할수 있다. 5. 접근자와설정자를사용할수있다. 이번장에서만들어볼프로그램 생성자 생성자 (constructor) 는초기화를담당하는함수 생성자가필요한이유 #include using namespace

More information

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

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

More information

오버라이딩 (Overriding)

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

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 인터페이스 배효철 th1g@nate.com 1 목차 인터페이스의역할 인터페이스선언 인터페이스구현 인터페이스사용 타입변환과다형성 인터페이스상속 디폴트메소드와인터페이스확장 2 인터페이스의역할 인터페이스란? 개발코드와객체가서로통신하는접점 개발코드는인터페이스의메소드만알고있으면 OK 인터페이스의역할 개발코드가객체에종속되지않게 -> 객체교체할수있도록하는역할 개발코드변경없이리턴값또는실행내용이다양해질수있음

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

열거형 교차형 전개형 상승형 외주형 회전형 도해패턴 계층형 구분형 확산형 합류형 대비형 상관형 (C) 2010, BENESO All Rights Reserved 2

열거형 교차형 전개형 상승형 외주형 회전형 도해패턴 계층형 구분형 확산형 합류형 대비형 상관형 (C) 2010, BENESO All Rights Reserved 2 c 2010, BENESO All rights reserved 1 열거형 교차형 전개형 상승형 외주형 회전형 도해패턴 계층형 구분형 확산형 합류형 대비형 상관형 (C) 2010, BENESO All Rights Reserved 2 u 열거형 : 대소, 위치등의관계에대해설명 u 교차형 : 중복, 합동, 복합, 공동등의관계에대해설명 설명도, 대소관계도, 제휴관계도,

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

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

JAVA PROGRAMMING 실습 02. 표준 입출력

JAVA PROGRAMMING 실습 02. 표준 입출력 # 왜생겼나요..? : 절차지향언어가가진단점을보완하고다음의목적을달성하기위해..! 1. 소프트웨어생산성향상 객체지향소프트웨어를새로만드는경우이미만든개체지향소프트웨어를상속받거나객체를 가져다재사용할수있어부분수정을통해소프트웨어를다시만드는부담줄임. 2. 실세계에대한쉬운모델링 실세계의일은절차나과정보다는일과관련된많은물체들의상호작용으로묘사. 캡슐화 메소드와데이터를클래스내에선언하고구현

More information

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63236C0E520BED6C7C3B8B428B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 26 장애플릿 이번장에서학습할내용 애플릿소개 애플릿작성및소개 애플릿의생명주기 애플릿에서의그래픽컴포넌트의소개 Applet API의이용 웹브라우저상에서실행되는작은프로그램인애플릿에대하여학습합니다. 애플릿이란? 애플릿은웹페이지같은 HTML 문서안에내장되어실행되는자바프로그램이다. 애플릿을실행시키는두가지방법 1. 웹브라우저를이용하는방법 2. Appletviewer를이용하는방법

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

Microsoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt

Microsoft PowerPoint - ÀÚ¹Ù08Àå-1.ppt AWT 컴포넌트 (1) 1. AWT 패키지 2. AWT 프로그램과이벤트 3. Component 클래스 4. 컴포넌트색칠하기 AWT GUI 를만들기위한 API 윈도우프로그래밍을위한클래스와도구를포함 Graphical User Interface 그래픽요소를통해프로그램과대화하는방식 그래픽요소를 GUI 컴포넌트라함 윈도우프로그램만들기 간단한 AWT 프로그램 import

More information

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

소프트웨어공학개론 강의 5: 객체지향개념 최은만동국대학교컴퓨터공학과 소프트웨어공학개론 강의 5: 객체지향개념 최은만동국대학교컴퓨터공학과 왜객체지향인가? l 절차적패러다임 vs. 객체지향패러다임 l 뭐가다르지? 2 C 언어 l 프로그램은데이터와함수로구성 l 함수는데이터를조작 l 프로그램을조직화하기위해 l 기능적분할 l 자료흐름도 l 모듈 Main program global data call call call return return

More information

Microsoft PowerPoint - 04_OOConcepts(2010).pptx

Microsoft PowerPoint - 04_OOConcepts(2010).pptx LECTURE 4 객체지향개념 Object-Oriented Oi Oriented dc Concepts 내가가진도구가망치뿐이라면모든문제가다못으로보인다. 최은만, CSE 4039 소프트웨어공학 Old Way 프로그램은데이터와함수로구성 함수는데이터를조작 프로그램을조직화하기위해 기능적분할 자료흐름도 모듈 Main program global data call call

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 F696E74202D20C1A63139C0E520B9E8C4A120B0FCB8AEC0DA28B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

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

More information

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1

IP 심화 라우팅프로토콜적용시 라우팅테이블에서 이니셜이있는네트워크를설정하는것 : onnected 직접연결된네트워크를의미한다. 그러므로라우팅은 나는이런네트워크와연결되어있다. 를직접연결된라우터들에게알려주는것 1>en 1#conf t 1(config)#router rip 1 IP 심화 º 각 P 의게이트웨이는해당네트워크의마지막주소를사용한다. - P1 (210.220.10.1/26) 의게이트웨이 (5의 Fa0/0) : 210.220.10.63 /26 = 255.255.255.192 호스트비트수 : 32-26 = 6 비트 => = 64 그러므로 P1의 IP 210.220.10.1 중서브넷마스크에의거 26비트는변함이없고, 나머지 6비트가호스트비트로변하므로

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 20 장패키지 이번장에서학습할내용 패키지의개념 패키지로묶는방법 패키지사용 기본패키지 유틸리티패키지 패키지는연관된클래스들을묶는기법입니다. 패키지란? 패키지 (package) : 클래스들을묶은것 자바라이브러리도패키지로구성 ( 예 ) java.net 패키지 네트워크관련라이브러리 그림 20-1. 패키지의개념 예제 패키지생성하기 Q: 만약패키지문을사용하지않은경우에는어떻게되는가?

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

C++ Programming

C++ Programming C++ Programming 연산자다중정의 Seo, Doo-okok clickseo@gmail.com http://www.clickseo.com 목 차 연산자다중정의 C++ 스타일의문자열 2 연산자다중정의 연산자다중정의 단항연산자다중정의 이항연산자다중정의 cin, cout 그리고 endl C++ 스타일의문자열 3 연산자다중정의 연산자다중정의 (Operator

More information

슬라이드 제목 없음

슬라이드 제목 없음 5.2 ER 모델 ( 계속 ) 관계와관계타입 관계는엔티티들사이에존재하는연관이나연결로서두개이상의엔티티타입들사이의사상으로생각할수있음 관계집합은동질의관계들의집합 관계타입은동질의관계들의틀 관계집합과관계타입을엄격하게구분할필요는없음 요구사항명세에서흔히동사는 ER 다이어그램에서관계로표현됨 ER 다이어그램에서다이어몬드로표기 관계타입이서로연관시키는엔티티타입들을관계타입에실선으로연결함

More information

<4D F736F F F696E74202D205B36C0E55D20BCB3B0E820B9D720B1B8C7F62E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D205B36C0E55D20BCB3B0E820B9D720B1B8C7F62E BC8A3C8AF20B8F0B5E55D> 6. 설계및구현 1 주요내용 프로젝트에서설계란무엇인가? 프로젝트에서설계는왜중요한가? 프로젝트에서설계원리는무엇인가? 효과적인모듈설계는어떠해야하는가? 객체지향설계란무엇인가? 구현작업이란무엇인가? 2 목차 강의내용 팀프로젝트 (10, 11 주차 ) - 설계의정의 - 상위설계와하위설계 - 설계원리 - 효과적인모듈설계 - 객체지향의개념 - 구현 - 설계문서작성및제출

More information

PowerPoint Presentation

PowerPoint Presentation 데이터처리프로그래밍 Data Processing Programming 08 객체와클래스 목차 1. 객체와클래스 2. 인스턴스변수, 클래스변수 3. 클래스매직메소드 4. 클래스의상속 데이터처리프로그래밍 (Data Processing Programming) - 08 객체와클래스 3 1. 객체와클래스 객체 Object 객체란존재하는모든것들을의미 현실세계는객체로이루어져있고,

More information

No Slide Title

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

More information

ThisJava ..

ThisJava .. 자바언어에정확한타입을추가한 ThisJava 소개 나현익, 류석영 프로그래밍언어연구실 KAIST 2014 년 1 월 14 일 나현익, 류석영 자바언어에정확한타입을추가한 ThisJava 소개 1/29 APLAS 2013 나현익, 류석영 자바 언어에 정확한 타입을 추가한 ThisJava 소개 2/29 실제로부딪힌문제 자바스크립트프로그램분석을위한요약도메인 나현익,

More information

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드] 리눅스 설치 Vmware를 이용한 Fedora Core 8 설치 소프트웨어실습 1 Contents 가상 머신 실습 환경 구축 Fedora Core 8 설치 가상 머신 가상 머신 가상 머신의 개념 VMware의 설치 VMware : 가상 머신 생성 VMware의 특징 실습 환경 구축 실습 환경 구축 Fedora Core 8 설치 가상 머신의 개념 가상 머신 (Virtual

More information

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

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어서가장중요한부분이라고도할수있기때문입니다. 1. 새로운메크로생성 새메크로만들기버튺을클릭하여파일을생성합니다. 2. 메크로저장 -

More information

Microsoft PowerPoint 장강의노트.ppt

Microsoft PowerPoint 장강의노트.ppt 클래스와객체 클래스와객체 객체 : 우리주변의어떤대상의모델 - 예 : 사람, 차, TV, 개 객체 = 상태 (state) + 행동 (behavior) - 예 : 개의상태 - 종자, 이름, 색개의행동 - 짖다, 가져오다 상태는변수로행동은메소드로나타냄 객체는클래스에의해정의된다. 클래스는객체가생성되는틀혹은청사진이다. 2 예 : 클래스와객체 질문 : 클래스와객체의다른예는?

More information

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

예제 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 제 10 장상속 예제 1) ConstructorTest.java class Parent public Parent() super - default"); public Parent(int i) this("hello"); super(int) constructor" + i); public Parent(char c) this(); super(char) constructor

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

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

Microsoft PowerPoint - 1주차 UML의 구성과 도구 UML의 구성과 도구 v UML(Unified Modeling Language) v UML의 구성 요소 v UML의 관계 v UML의 다이어그램 v UML 도구 UML(Unified Modeling Language) l 모델링 과정(modeling process)과 모델링 언어(modeling language)를 제안 모델링 과정 : 객체지향으로 분석하고 설계하는

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

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 Power Java 제 9 장생성자와접근제어 이번장에서학습할내용 생성자 정적변수 정적메소드 접근제어 this 클래스간의관계 객체가생성될때초기화를담당하는생성자에대하여살펴봅니다. 생성자 생성자 (contructor): 객체가생성될때에필드에게초기값을제공하고필요한초기화절차를실행하는메소드 생성자의예 class Car { private String color; // 색상

More information

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

소프트웨어공학개론 강의 11: UML 코드매핑 최은만동국대학교컴퓨터공학과 소프트웨어공학개론 강의 11: UML 코드매핑 최은만동국대학교컴퓨터공학과 구현작업 l 작업이후본격적으로시스템을구축하는단계 l 프로그램, 즉코드모듈을구축하는과정 2 2 StarUML 코드생성 l Tools->Java->Generate Code 3 정적모델의구현 l 설계를프로그램으로매핑 l 클래스다이어그램과패키지다이어그램이프로그램과밀접 l 추상수준에따라구현에도움이되는정도가다름

More information

17장 클래스와 메소드

17장 클래스와 메소드 17 장클래스와메소드 박창이 서울시립대학교통계학과 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 1 / 18 학습내용 객체지향특징들객체출력 init 메소드 str 메소드연산자재정의타입기반의버전다형성 (polymorphism) 박창이 ( 서울시립대학교통계학과 ) 17 장클래스와메소드 2 / 18 객체지향특징들 객체지향프로그래밍의특징 프로그램은객체와함수정의로구성되며대부분의계산은객체에대한연산으로표현됨객체의정의는

More information

슬라이드 1

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

More information

슬라이드 1

슬라이드 1 2 장 UML 의구성 UML 아키텍처 UML 메커니즘 한빛미디어 ( 주 ) 학습목표 UML 의구성요소를학습한다. UML 의관계를이해한다. 다이어그램의개념을이해한다. 2 UML 의구성요소 UML은기본요소를구성하는 사물 (Things) 사물간의관계를나타내는 관계 (Relationship) 사물과관계를도형으로표현하는 다이어그램 (Diagram) [ 그림 2-1]

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

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 - additional01.ppt [호환 모드]

Microsoft PowerPoint - additional01.ppt [호환 모드] 1.C 기반의 C++ part 1 함수 오버로딩 (overloading) 디폴트매개변수 (default parameter) 인-라인함수 (in-line function) 이름공간 (namespace) Jong Hyuk Park 함수 Jong Hyuk Park 함수오버로딩 (overloading) 함수오버로딩 (function overloading) C++ 언어에서는같은이름을가진여러개의함수를정의가능

More information

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

1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout <<  양수입력 : ; cin >> *p; if (*p <= 0) cout <<  양수를입력해야합니다  << endl; return; 동적할 15 장기타주제들 auto_ptr 변환함수 cast 연산자에의한명시적형변환실행시간타입정보알아내기 (RTTI) C++ 프로그래밍입문 1. auto_ptr 다음프로그램의문제점은무엇인가? void func(void) int *p = new int; cout > *p; if (*p

More information

PowerPoint Template

PowerPoint Template 9. 객체지향프로그래밍 대구가톨릭대학교 IT 공학부 소프트웨어공학연구실 목차 2 9.1 개요 9.2 객체지향프로그래밍언어 9.3 추상자료형 9.4 상속 9.5 동적바인딩 9.1 객체지향의개념 (1) 3 객체지향의등장배경 소프트웨어와하드웨어의발전불균형 소프트웨어모듈의재사용과독립성을강조 객체 (object) 란? 우리가다루는모든사물을일컫는말 예 ) 하나의점, 사각형,

More information

제목

제목 Object-Oriented Design Agile for Software Development Story 4. 작 성 자 : 고형호 메 일 : hyungho.ko@gmail.com 홈페이지 : 최초작성일 : 2007.06.12 최종작성일 : 2007.08.31 1 2 Goal Flexibility & Reusability Content 1. Flexibility

More information

PowerPoint Presentation

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

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

Microsoft PowerPoint - Chapter 6.ppt

Microsoft PowerPoint - Chapter 6.ppt 6.Static 멤버와 const 멤버 클래스와 const 클래스와 static 연결리스트프로그램예 Jong Hyuk Park 클래스와 const Jong Hyuk Park C 의 const (1) const double PI=3.14; PI=3.1415; // 컴파일오류 const int val; val=20; // 컴파일오류 3 C 의 const (1)

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

작성자 : 김성박\(삼성 SDS 멀티캠퍼스 전임강사\)

작성자 : 김성박\(삼성 SDS 멀티캠퍼스 전임강사\) Session 을이용한현재로그인한사용자의 숫자구하기 작성자 : 김성박 ( 삼성 SDS 멀티캠퍼스전임강사 ) email : urstory@nownuri.net homepage : http://sunny.sarang.net - 본문서는http://sunny.sarang.net JAVA강좌란 혹은 http://www.javastudy.co.kr 의 칼럼 란에서만배포합니다.

More information

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

Microsoft PowerPoint - 06_ClassDiagram(2010).ppt [호환 모드] LECTURE 6 UML 클래스다이어그램 클래스다이어그램은 UML 의중심 최은만, CSE 4039 소프트웨어공학 목차 UML 이란? UML 의역사 UML 클래스다이어그램 Exercise 클래스다이어그램설계 최은만, CSE 4039 소프트웨어공학 2 UML 분석, 설계를비주얼화, 문서화하기위한그래픽언어 Unified 이전의 OO 방법들의통합 Modeling 객체지향분석설계를위한비주얼모델링

More information

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx

Microsoft PowerPoint - java1-lab5-ImageProcessorTestOOP.pptx 2018 학년도 1 학기 JAVA 프로그래밍 II 514760-1 2018 년봄학기 5/10/2018 박경신 Lab#1 (ImageTest) Lab#1 은영상파일 (Image) 을읽어서정보를출력 Java Tutorials Lesson: Working with Images https://docs.oracle.com/javase/tutorial/2d/images/index.html

More information

슬라이드 1

슬라이드 1 정적메모리할당 (Static memory allocation) 일반적으로프로그램의실행에필요한메모리 ( 변수, 배열, 객체등 ) 는컴파일과정에서결정되고, 실행파일이메모리에로드될때할당되며, 종료후에반환됨 동적메모리할당 (Dynamic memory allocation) 프로그램의실행중에필요한메모리를할당받아사용하고, 사용이끝나면반환함 - 메모리를프로그램이직접관리해야함

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

Blog

Blog Objective C http://ivis.cwnu.ac.kr/tc/dongupak twitter : @dongupak 2010. 10. 9.. Blog WJApps Blog Introduction ? OS X -. - X Code IB, Performance Tool, Simulator : Objective C API : Cocoa Touch API API.

More information

chap x: G입력

chap x: G입력 재귀알고리즘 (Recursive Algorithms) 재귀알고리즘의특징 문제자체가재귀적일경우적합 ( 예 : 피보나치수열 ) 이해하기가용이하나, 비효율적일수있음 재귀알고리즘을작성하는방법 재귀호출을종료하는경계조건을설정 각단계마다경계조건에접근하도록알고리즘의재귀호출 재귀알고리즘의두가지예 이진검색 순열 (Permutations) 1 장. 기본개념 (Page 19) 이진검색의재귀알고리즘

More information

JVM 메모리구조

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

More information

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과 학습내용 1. Java Development Kit(JDK) 2. Java API 3. 자바프로그래밍개발도구 (Eclipse) 4. 자바프로그래밍기초 2 자바를사용하려면무엇이필요한가? 자바프로그래밍개발도구 JDK (Java Development Kit) 다운로드위치 : http://www.oracle.com/technetwork/java/javas

More information

810 & 820 810 는 소기업 및 지사 애 플리케이션용으로 설계되었으며, 독립 실행형 장치로 구성하거 나 HA(고가용성)로 구성할 수 있습니다. 810은 표준 운영 체제를 실행하는 범용 서버에 비해 가격 프리미엄이 거의 또는 전혀 없기 때문에 화이트박스 장벽 을

810 & 820 810 는 소기업 및 지사 애 플리케이션용으로 설계되었으며, 독립 실행형 장치로 구성하거 나 HA(고가용성)로 구성할 수 있습니다. 810은 표준 운영 체제를 실행하는 범용 서버에 비해 가격 프리미엄이 거의 또는 전혀 없기 때문에 화이트박스 장벽 을 목적에 맞게 설계된 어플라 이언스 원격 용도로 최적화된 어플라이언스 관리 및 에너지 효율성 향상 원격 관리 LOM(Lights Out Management), IPMI 2.0 장치 식별 버튼/LED 실시간 시스템 환경 및 오류 모 니터링 Infoblox MIBS를 통한 SNMP 모니터링 고가용성 공급 장치 예비 디스크 예비 냉각 팬 전원 공급 장치 현장 교체

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

Slide 1

Slide 1 SeoulTech 2011-2 nd 프로그래밍입문 (2) Chapter 6. 구조체와클래스 박종혁교수 (http://www.parkjonghyuk.net) Tel: 970-6702 Email: jhpark1@snut.ac.kr Learning Objectives 구조체 구조체형 함수매개변수로서의구조체 구조체초기화 클래스 정의, 멤버함수 public 과 private

More information

Lab 3. 실습문제 (Single linked list)_해답.hwp

Lab 3. 실습문제 (Single linked list)_해답.hwp Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.

More information

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 : ios 3.0 이상 - 콘텐츠형식 : MP4 (H264,AAC ), MP3 * 디바이스별해상도,

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

게시판 스팸 실시간 차단 시스템

게시판 스팸 실시간 차단 시스템 오픈 API 2014. 11-1 - 목 차 1. 스팸지수측정요청프로토콜 3 1.1 스팸지수측정요청프로토콜개요 3 1.2 스팸지수측정요청방법 3 2. 게시판스팸차단도구오픈 API 활용 5 2.1 PHP 5 2.1.1 차단도구오픈 API 적용방법 5 2.1.2 차단도구오픈 API 스팸지수측정요청 5 2.1.3 차단도구오픈 API 스팸지수측정결과값 5 2.2 JSP

More information

Microsoft PowerPoint - e pptx

Microsoft PowerPoint - e pptx Import/Export Data Using VBA Objectives Referencing Excel Cells in VBA Importing Data from Excel to VBA Using VBA to Modify Contents of Cells 새서브프로시저작성하기 프로시저실행하고결과확인하기 VBA 코드이해하기 Referencing Excel Cells

More information