Académique Documents
Professionnel Documents
Culture Documents
engineering
1
Part 3
Software engineering
Systems and software life-cycles
(continued from the previous file
lap5711(part2-2001).ppt)
2
Capturing the requirements
as Use Cases
Capturing requirements
Use-Case
Architecture
description
Use-case System
Use-Case Model
* *
Use-Case
Actor
11
Why analysis?
14
What is the UML?
Standardisation
Unification
Fragmentation
• http://www.omg.org/uml
• Rumbaugh, Jacobson, Booch 1999 “The Unified
Modelling Language Reference Manual” Addison
Wesley
• Booch, Rumbaugh, Jacobson 1998 “The Unified
Modelling Language User Guide”, Adison Wesley
• http://www.cc.ioc.ee/uml/
Architectural
view
Functional Behavioural
View view
Registrar
Professor
Student
Billing System
Student Professor
Maintain Schedule
Registrar
© Rational Software Corporation, 1997
September 2001 28
Uses and Extends Use Case
•
Relationships
As the use cases are documented, other use case relationships may be
discovered
– A uses relationship shows behavior that is common to one or more
use cases
– An extends relationship shows optional behavior
<<uses>>
Register for courses
<<uses>>
Logon validation
Maintain curriculum
© Rational Software Corporation, 1997
September 2001 29
Use Case Realizations
1: fill in info
2: submit
course form :
1: set course info CourseForm
2: process
aCourse : theManager :
Course CurriculumManager
4: new course
© Rational Software Corporation, 1997
September 2001 32
Class Diagrams
Identity Attributes
What do I look like
(and what makes me special)?
Abilities Methods
What can I do?
RegistrationManager
Course
Student
Professor
CourseOffering
registration registration
form manager
RegistrationManager
CourseOffering
Each course offering number
has a number, location location
and time time
RegistrationManager
addStudent(Course, StudentInfo)
Course
name
numberCredits
Student open()
name addStudent(StudentInfo)
major
Professor
name CourseOffering
tenureStatus location
open()
addStudent(StudentInfo)
RegistrationManager
Registration Math 101:
Manager Course
3: add student(joe)
Course
ScheduleAlgorithm
RegistrationForm
RegistrationManager
addStudent(Course, StudentInfo)
Course
name
numberCredits
Student open()
name addStudent(StudentInfo)
major
Professor
name CourseOffering
tenureStatus location
open()
addStudent(StudentInfo)
ScheduleAlgorithm
RegistrationForm
0..* RegistrationManager
1
addStudent(Course, StudentInfo)
Course
1 name
0..* numberCredits
Student open()
addStudent(StudentInfo)
major
1
3..10
Professor 1..*
4
CourseOffering
tenureStatus
1 location
0..4
open()
addStudent(StudentInfo)
RegistrationManager
addStudent(Course, StudentInfo)
Course
name
RegistrationUser numberCredits
name Student open()
addStudent(StudentInfo)
major
Professor
CourseOffering
tenureStatus location
open()
addStudent(StudentInfo)
Cancel
Guard condition
End state
Start
Normal exit /reset selection
insert card
Selecting
Completion
Idle
push "buy" push "resume"
Lab1 Lab2
done done
Concurrent thread
Term Project done Passed
Normal completion
(all threads finished)
Final test done
Abnormal exit
Failed
Debit
account
merge
Mail
Alternative threads
packet
September 2001 Leo Mõtus 55
Swimlanes Object flow
Order
Pay [Filled] Fill order
Order
[Delivered] Deliver
order Swimlanes
Collect
order
September 2001 Leo Mõtus 56
The Physical World
Billing
Interface
System
Component
People.dll
User
Course.dll
Course
Stereotyped component
«database» «database»
CourseOffering, Student,
Course Professor
September 2001 58
Deploying the System
Client: Main
Communication link
Client: Library Building
Register.exe
Register.exe
Client: Dorm
Register.exe
Node instance
dependency
Ordering
Stereotyped package
Package
generalisation
Clerk
Kiosk selection
selection
Variations of seat selection package
Corporation
1 *
Account {xor}
1 *
Person
* Person employee
boss * 1..* Company
employer
1 worker
{Person.employer=
.
Person.boss.employer}
KoiskTransaction Server
* *
{Author=Mike Pike, requirement=14.52}
form=standalone,
Optimize=time,
Search=random,
Library=RW,
Index=both
Client
Communication stereotype
Kiosk «ethernet»
* * Server
• RT CORBA
• Enhanced view of Time
• Some of the potential future RFP-s:
– Specific analysis methods consistent with the
UML, e.g time correctness, availability, reliability
– Basic performance modelling methods
78
Where is CORBA?
X/Open – independent world-wide open systems organisation,
its strategy is to combine existing and emerging standards
to form CAE (Common Application Environment). The
components of CAE are defined as specifications.
Preliminary specification – full specifications (includes
implementation experience of members, conformance and
branding implications).
OMG collaborates with X/Open and focuses on various
aspects of object-oriented systems (e.g. UML, CORBA, etc)
CORBA is part of a middleware, that resides in between of the
application software and specific operating systems plus
computer hardware and promotes inter-operability of
software.
Client Object
Implementation
Request
ORB
ORB Core
Interface identical for all ORB implementations Up-call interface
There may be multiple object adapters
There are stubs and a skeleton for each object type
ORB-dependent interface Leo Mõtus
September 2001 Normal call interface
83
Clients and Object Implementations
Client
Request Request
Dynamic IDL
Invocation Stubs
ORB Core
Interface identical for all ORB implementations
There are stubs and a skeleton for each object type
ORB-dependent interface
September 2001 Leo Mõtus 89
Dynamic Invocation and Client Stubs
Dynamic invocation allows dynamic construction of
object invocations -- client specifies the object to be
invoked the operation to be performed, and a set of
parameters for the operation through a call or
sequence of calls. The client supplies information
about operations and types of the passed
parameters.
Client Stub makes calls on the rest of ORB using
interfaces that are private to, and optimised for, the
particular ORB Core. If more than one ORB is
available, there may be different stubs corresponding
to the different ORBs.
OO languages do not require stub interfaces.
September 2001 Leo Mõtus 90
Object Implementation receiving a
request
Object Implementation
ORB Core
Interface identical for all ORB implementations Up-call interface
There may be multiple object adapters
There are stubs and a skeleton for each object type
ORB-dependent interface Leo Mõtus
September 2001 Normal call interface
91
ORB Interface
IDL Implementation
Definitions Installation
Methods for
Interface A Object data
Object Implementation
Interface A Interface B
Methods Methods
ORB Core