GRID 소프트웨어공학 UML 작성자 : 서경석정보처리기술사 2005 년하반기 [ 이원석기술사 (wslee@skcc.com) ] 1
UML(Unified Modeling Language) 1. UML 의개요 1) UML 의정의 - 객체기술에관한국제표준화기구 (OMG:Object Management Group) 에서인정한 객체지향분석, 설계를위한통합모델링언어 - Jacobson(Use Case Model), Rumbaugh(OMT), Booch(Object Design) 2) 방법론과모델링언어의차이점 - 방법론 : 생각과행동을구조화하는방법을제공 ( 모델을만들때어떻게, 언제, 무엇을, 왜라는모든방법을제시하는것 ) - 모델링언어 : 모델을단지표현하는것 3) 출현배경 - 시스템대형화 -> 복잡도증가 -> 좋은모델링언어필요 - 모든영역에있어서어떤구조, 즉복잡도라도설명할수있는표기 (notation) 과 의미 (Semantic) 을표현가능한모델링언어필요 - 객체지향분석 / 설계개발방법론의표준부재 정의정의분석분석설계 Jacobson 의 Use Case Model Rumbaugh 의 OMT Booch 의 Booch 방법론 (OD) U M L 2
2. UML의특징 - 단순표기법이라기보다는사용하는형식과각각의표기에의미를가진언어 - 이용시개발자간의사소통원활, 객체개발프로세스 : 반복적점진적과정 - 개발규모, 개발프로세스, 언어에관계없이적용가능 -UML은객체지향개발만을위한것이아니라통합모델링이므로다른모델을모델링시사용가능 3. UML 의구성 1) Views(4+1 View) : 모델화된시스템의서로다른모형 View Use Case View Logical View Process View Component View Deployment View 내용 - 시스템의개괄적인요구분석단계에사용되는관점으로자세한내부설계에는사용되지않음 - 시스템을사용하는이벤트와기능위주로표현 - 객체모델을의미하며클래스다이어그램으로나타냄 - 동적모델을의미하며 Sequence 다이어그램과 Collaboration 다이어그램으로나타냄 - 대규모시스템을서브시스템으로나눌때사용 -S/W 서브시스템이전체시스템을구성하는 H/W 의어떤부분에배치될것인가를표현 3
2) Diagram : View의내용을나타내기위한그래프 (9개) 3) Model Elements : 클래스, 객체, 메시지, 관계성으로구성됨 4) General Mechanism : 모델요소주석정보와의미를표시할수있는기능제공 4. UML의 9개다이어그램 1) Use Case Diagram -Use Case, Actor 간의관계를표현 (Actor는시스템을사용하는사람또는시스템이며 Actor는 Use Case를수행함 ) - 시스템이제공하는기본적인기능을설명 - 사용자와대화수단파악및내부기능을예측할목적임 -Actor 는무엇인가가시스템과의상호작용하는것을나타냄 - Actor 는시스템의부분이아니고행위할수있는시스템사용자의역할을나타냄 -Use Case 는개별적인 actor 에대한값들의결과를측정할수있게산출하여시스템에의한트랜잭션의순서를수행함 Actor Use-case 시스템관리자 사용자관리 사용자등록 비밀번호변경 신상정보수정 시스템관리자 4
2) Sequence( 순서 ) Diagram - 여러개의객체들사이의동적인협력사항표현 - 일련의유즈케이스가처리되는시나리오를시간과순서에따라묘사 - 객체들간의관계성은표현하지않음 - 수평선상에는서로다른객체를나타내고수직선상에는시간이지나가는것에따라서객체들사이에메시지교환을나타냄 - 복잡한시나리오나실시간명세를잘표현하기위해서메시지의명시적인순서를나타내기에좋음 :GUI : 권한 : 사용자정보 available courses 직사각형내에서밑줄을친객체로표현 등록 시스템관리자 권한검사 생명선은실선으로표시 OK 저장 5
3) State( 상태 ) Diagram - 클래스의객체가가질수있는모든가능한상태를보여줌 - 특정객체에대하여사건발생에따른상태천이과정을묘사함 부분승인 작성 상신요청 결재대기 반려 최종결재 반려 승인 6
4) Collaboration( 협력 ) Diagram - 순서다이어그램처럼객체들사이에동적인협력사항을표현 - 객체들간의관계성을잘표현하며주어진객체에대한모든영향의이해와절차적설계에유리 - 시간 / 순서가강조되어야할특징이라면순서다이어그램을선택해야하고, 내용이시간 / 순서보다강조되어야할특징이라면협력다이어그램을선택해야함 -순서다이아그램과협력다이아그램을합하여인터랙션다이어그램이라함 :GUI 권한검사 결과리턴 : 권한 저장 결과표시 정보요청 : 사용자정보 7
5) Class Diagram -Class, Interface, Collaboration 간의관계를나타내며객체지향시스템모형화에서가장공통적으로많이쓰이는다이어그램 - 시스템내클래스들의정적구조를나타냄 1 Company 1 * 1..* 1..* 0..1 Department * Location> * Office * * {Subset} <---------- 1..* member 1 manager Person name: Name employeeid: integer title: String getphoto(p: Photo) getsoundbite() getcontactinformation() getpersonrecords() Headquarters ContactInformantion address: String PersonnelRecord textid employmenthistory salary 8
6) Activity Diagram (Event Trace 다이어그램 ) - 사건발생에관련된객체들의상호관계를일렬로도식화 - 액티비티의순서적흐름, 병행프로세스를지원하기때문에불필요한순서를없애기위한효과가있음 사람 마실것을찾는다. 조건 [ 커피가없다.] [ 콜라가없다.] 동기화막대 [ 커피를발견한다.] Decision Activity [ 콜라를발견한다.] 커피를필터에넣는다. 물통에물을넣는다. 컵을가진다. 캔콜라를가진다. 필터를기계에넣는다. Activity 기계를켠다. 커피를끓이다. End 커피를컵에붓는다. 음료수를마신다. 9
7) Component Diagram - 시스템의물리적상세설계모습을보여줌 10
8) Object Diagram - 객체사이의관계를표현 -Class Diagram에있는사물의 Instance에대한정적 Snapshot을표현 - 특수화에의해식별된개별객체들사이의예외관계를설명 객체 (Object) English 102 World History 200 Geology 110 Method Attribute 클래스 (Class) 클래스 Course 속성 Name Location 행위 Add a Student Delete a student 클래스는 객체의추상화 패키지는 클래스를그룹화 패키지 (Package)/Component University Artifacts main 패키지 제어패키지 Business Rules Object Class Instance Message Class의 Instance, 속성, 메소드로구성공통성질을갖는객체들의묶음, 객체의 Frame,Template 어떤특정객체가활성화된상태, 즉메모리에 load된상태 Serialization : Object가 Disk에적재된상태객체와객체간의상호주고받는작업의뢰객체지향모델링에서는메시지를주고받음으로써객체들간상호작용을표현 Attribute Data Method 연산, 인스턴스변수값계산, 변수갱신 인터페이스패키지 Interfaces 11
9) Deployment( 배치 ) Diagram - 시스템이분할된서브시스템의배치모습을도식화함 - 시스템의하드웨어와소프트웨어의물리적인구조 - 실질적인컴퓨터와디바이스를나타냄 - 컴포넌트사이의종속성을나타냄 TCP/IP 당뇨병정보서비스 Unit Server 객체 Database Node 들의연결 건강관리영역 생활건강정보서비스 Unit Server 객체 Database TCP/IP 건강관리영역 생활건강정보서비스 Server application Interface <<connection>> 의학정보설정 사용자설정 Windows PC 건강정보서비스사용자전면 사용자인터페이스 Component Node 포함된객체 모델 용도 UML의해당다이어그램 정적인관계 (Relationship) 분석파악용 유즈케이스, 클래스, 객체다이어그램 동적인관계 (Behavior) 상황파악용 상태, 순서, 액티비티다이어그램 객체의역할 (Responsibility) 관계파악용 Collaboration, 컴포넌트, 배치다이어그램 < 모델과 UML 다이어그램의관계 > 12
BPR 작업흐름도 상태다이어그램 활동다이어그램 상태다이어그램 구현다이어그램 패키지다이어그램 정적구조다이어그램 클래스다이어그램 사용사례기술서 사용사례다이어그램 요구사항명세서 클래스다이어그램 컴포넌트다이어그램 시나리오 객체다이어그램 객체모델 배치다이어그램 상호작용다이어그램 순서다이어그램 협력다이어그램 < UML 다이어그램간의관계 > 13