CBD 모델링 워크샵 전파 교육 - Welcome to SNU

Download Report

Transcript CBD 모델링 워크샵 전파 교육 - Welcome to SNU

CBD 모델링 워크샵 전파 교육
2004. 02. 06
박목민
SNU. MAI Lab.
Contents


Introduction to CBD
CBD Modeling Workshop
Introduction to CBD
Contents



S/W developments
About Component
CBD processes
History of S/W Development


Chaotic Development
Structured Development


Object-Oriented Development


Encapsulating data and functionality
Component-Based Development



Functional decomposition (Divide & Conquer)
Reduces coupling
Abstracted interfaces, framework
Software Product Line, Dynamic Software Architecture…
Not Revolution, but Evolution!
[ 1/25]
The evolution to components in the industry
B
OOA/D
B
(Booch, OMT,
B
Structured
CORBA3.0,
M
EJB, DNA,
Distributed objects/systems
XML, e-commerce,
L
M
Object-orientation
methodologies
B
L
Objectory)
COBOL, RPG,
L
M
Component-based dept.
C++, Eiffel,
Pascal, Ada,
L
CORBA2.0,
Business component
OpenDoc,
approach
ActiveX, DCOM,
M
UML
Structured programming
1970
1980
1990
2000
2010
From ‘2002 CBD 개발자를 위한 교육’, 조남규
B : Bleeding edge(기술 소개)
L : Leading edge(기술 도입)
M : Mature(기술 성숙)
RPG : Report Program Generator
OOA/D : Object-Oriented Analysis & Design
DNA : Distributed interNet Architecture
CORBA : Common Object Request Broker Architecture
DCOM : Distributed Component Object Model
[ 2/25]
What is a component?

“a software package which offers service through
interfaces”
[Peter Herzum and Oliver Sims, ‘Business Components Factory : A
Comprehensive Overview of Component-Based Development for
the Enterprise’, 1999]


“a coherent package of software artifacts that can be
independently developed and delivered as a unit and
that can be composed, unchanged, with other
components to build something larger”
“a component is a unit of composition with contractually
specified interfaces and explicit context dependencies
only …”
[ 3/25]
Characteristics of Components

Components are pre-built






Easy to reuse and change
Application integration without code change
maintainability
Components are black-box,
accessible only via their interface
Components are separable
Component assembly and deployment
[ 4/25]
Characteristics of Components


Components are pre-built
Components are black-box,
accessible only via their interface




Its internals are not visible to us (Encapsulation)
Our concerns are only its services which are defined
in component’s interfaces
Components are separable
Component assembly and deployment
[ 4/25]
Characteristics of Components



Components are pre-built
Components are black-box,
accessible only via their interface
Components are separable


Possible to separate a component from its context
and use it another context
Component assembly and deployment
[ 4/25]
Characteristics of Components




Components are pre-built
Components are black-box,
accessible only via their interface
Components are separable
Component assembly and deployment


Same component could be deployed more than once
Different instances of the component behaving
differently depending on how they were configured
[ 4/25]
Components vs. Objects (1/2)

Components




Often use persistent storage
Have a more extensive set of
intercommunication mechanism
Are often larger unit of granularity
Whereas objects


Have local state
Use the messaging mechanism
[ 5/25]
Components vs. Objects (2/2)

Components


Multiple interface
Reuse of service

Objects


Single interface, multiple
operations
Reuse of implementation
[ 6/25]
Reuse of Components and Classes

Reuse through composition




Assemble objects
Black-box reuse
Each can be implemented in
different technology
Change is isolated to
component by interface

Reuse through inheritance




Inherit behavior
White-box reuse
Usually required same
programming language
Changes ripple through
hierarchy unpredictably
[ 7/25]
CBD Processes (1/2)

RUP(Rational Unified Process)


Covering the complete
software life cycle
Heavily influenced by UML
notation
Project Development Methodology
Project Management Methodology
UML : Unified Modeling Language
[ 8/25]
CBD Processes (2/2)





ICON Computing Lab’s Catalysis
The Select perspective Method(Allen. P)
IESE’s KobrA
ETRI’s MaRMI-Ⅲ 2.0
Etc.
IESE : Institute for Experimental Software Engineering
KobrA : Komponentenbasierte Anwendungsentwicklung
ETRI : Electronics and Telecommunications Research institute
MaRMI : Magic and Robust Methodology Integrated
[ 9/25]
CBD Modeling Workshop
About the workshop

실습 도구 및 방법론


Rational XDE, RUP
강의 및 실습







UML 소개
CBD 소개
요구사항과 use case
개념 모델링
인터페이스 모델링
컴포넌트 교류 모델링
컴포넌트 명세화
[10/25]
Scope of Workshop
Requirements
Use Case Model
Business Concept Model
Specification
Interface Specifications
Component Architecture
Interactions
Component Specifications
[11/25]
Example - Recruit

Business experience (채용담당자)
1.
2.
3.
4.
5.
6.
7.
분기별 채용계획을 수립한다.
- 부서별, 직급별, 직무별 채용인원 계획을 수립한다.
채용계획에 따라 채용정보를 게시한다.
- 채용공고는 회사 홈페이지 채용공고 난에 게시한다.
온라인 입사지원 서류를 접수 받는다.
- 웹문서에 지원자가 직접 작성하여 입사지원 서류를 등록한다.
- 서류접수 마감일 이후에는 입사지원 서류 등록을 불가능하게 한다.
- 지원자가 중복 지원할 수 없도록 한다.
서류전형 합격자를 선발하고 통보한다.
- 서류전형점수를 기준으로 최종합격자의 3배로 합격자를 추출한다.
- 홈페이지에 서류전형 합격자를 게시한다.
면접시험을 실시하고 합격자에게 통보한다.
- 면접위원과 피면접자와의 문답 형식으로 진행된다.
- 면접점수로 평가하고 합격자 발표는 홈페이지에 게시한다.
면접시험 합격자를 대상으로 신체검사를 실시한다.
- 신체검사를 실시하고 합격여부를 확인한다.
최종합격자를 확정하고 통보한다.
- 당사 홈페이지에 최종합격자 게시 및 e-mail 개별 통보한다.
[12/25]
Activity Diagram 작성
채용담당자
지원자
면접관
[13/25]
Example - Recruit

Business experience (채용담당자)
1.
2.
3.
4.
5.
6.
7.
분기별 채용계획을 수립한다.
- 부서별, 직급별, 직무별 채용인원 계획을 수립한다.
채용계획에 따라 채용정보를 게시한다.
- 채용공고는 회사 홈페이지 채용공고 난에 게시한다.
온라인 입사지원 서류를 접수 받는다.
- 웹문서에 지원자가 직접 작성하여 입사지원 서류를 등록한다.
- 서류접수 마감일 이후에는 입사지원 서류 등록을 불가능하게 한다.
- 지원자가 중복 지원할 수 없도록 한다.
서류전형 합격자를 선발하고 통보한다.
- 서류전형점수를 기준으로 최종합격자의 3배로 합격자를 추출한다.
- 홈페이지에 서류전형 합격자를 게시한다.
면접시험을 실시하고 합격자에게 통보한다.
- 면접위원과 피면접자와의 문답 형식으로 진행된다.
- 면접점수로 평가하고 합격자 발표는 홈페이지에 게시한다.
면접시험 합격자를 대상으로 신체검사를 실시한다.
- 신체검사를 실시하고 합격여부를 확인한다.
최종합격자를 확정하고 통보한다.
- 당사 홈페이지에 최종합격자 게시 및 e-mail 개별 통보한다.
[12/25]
지원자
채용담당자
면접관
채용계획수립
채용공고
온라인 지원서 작성
지원마감
지원마감 전
서류심사
서류전형
합격자 통보
서류전형
합격자 확인
불합격
합격
면접응시
면접전형
합격자 통보
면접평가
면접전형
합격자 확인
불합격
합격
신체검사
최종합격자선정
최종합격자발표
최종합격자 확인
[14/25]
Use case diagram 작성
채용공고
입사지원
지원자
서류전형
면접평가
채용담당자
면접전형
권한관리
면접관
최종합격자선정
[15/25]
지금까지…
Requirements
Use Case Model
Business Concept Model
Specification
Interface Specifications
Component Architecture
Interactions
Component Specifications
Business Concept Model 작성
Recruit
1
*
Address
1..*
Applicant
has
make
1
get
Application
*
1..*
Veteran
Novice
Evaluation
1
has
1..*
History
Contract
1..*
Scholarship
[16/25]
지금까지…
Requirements
Use Case Model
Business Concept Model
Specification
Interface Specifications
Component Architecture
Interactions
Component Specifications
Interface Specification
Recruit
Find key abstraction!
1
*
Address
1..*
Applicant
has
make
1
get
Application
*
1..*
Veteran
Novice
Evaluation
1
has
1..*
History
Contract
1..*
Scholarship
[17/25]
Interface Responsibility Model
IRecruitMgr
Connect interface!
(business interface)
Recruit
1
* - _Applicant
Address
- _Recruit
*
IApplicantMgr
1..*
Applicant
has
*
make
1
get
Application
*
1..*
Veteran
Novice
Evaluation
1has
1..*
History
Contract
1..*
Scholarship
[18/25]
System Interface
IApplyRecruitSys
IAnnounceRecruitSys
«CompSpec»
RecruitSystem
[19/25]
Package Model
pkgRecruitSystem
pkgApplicantMgr
pkgRecruitMgr
[20/25]
지금까지…
Requirements
Use Case Model
Business Concept Model
Specification
Interface Specifications
Component Architecture
Interactions
Component Specifications
Component Architecture Model
IAnnounceRecruitSys
RecruitSys
IApplyRecruitSys
IApplicantMgr
ApplicantMgr
IRecruitMgr
RecruitMgr
Show dependency b/w components
[21/25]
Component Interaction Analysis
Object1 : 지 원 자
입사지원화면
Object2 : IApplyRecruitSys
Object3 : IRecruitMgr
Object4 : IApplicantMgr
1 : \ 채 용 공 고 목 록 을 요 청 한 다 .\
2 : getRecruitList ( )
3 : getRecruitList ( )
Draw sequence diagram
Add operations at business interface
4 : \ 채용공고를선택한다\
5 : getRecruit ( )
6 : getRecruit ( )
7 : \ 입사지원저장을요청한다\
8 : makeApplication ( )
9 : setApplicant ( )
10 : setAddress ( )
[22/25]
Refine Component Architecture
IAnnounceRecruitSys
RecruitSys
IApplyRecruitSys
IApplicantMgr
ApplicantMgr
IRecruitMgr
RecruitMgr
[23/25]
지금까지…
Requirements
Use Case Model
Business Concept Model
Specification
Interface Specifications
Component Architecture
Interactions
Component Specifications
Component Specifications

Purpose



Specify complete & unambiguous interface specification
Describe the behavior of an operation precisely
Activity




Interface information modeling
Specifying operation signature
Writing pre/post conditions pair
Specifying component constraints
[24/25]
Conclusions





Requirements -> (Activity Diagram) -> Use case Model
-> Business Concept Model -> Interface Specification
(key abstraction) -> Component Architecture ->
Component Specification
요구사항에 대한 철저한 분석이 중요하다.
프로젝트에서 실제 구현보다는 위의 요구사항에 대한 분석을 바
탕으로 use case를 정의하는 것이 우리가 할 일이다.
각 단계별로 참고할 원서나 문서에 대한 정리가 필요하다.
Rational XDE를 이용하면 좀더 편하게 modeling이 가능하다.
[25/25]