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]