Professional Documents
Culture Documents
duøng UML
Architectural
Analysis
Subsystem Design
Use-Case
Analysis
Review the
Use-Case Design
Design
Designer Design Reviewer
Class
Design
Subsystem
Design
Use-Case Realization Use-Case Realization
(updated)
<<subsystem>>
Subsystem Name
PT & TK Höôùng ñoái töôïng – Thieát keá kieán truùc
Interface
Döông Anh Ñöùc
Realization (Elided form)
5
Subsystem Guidelines
w Muïc tieâu
§ Giaûm thieåu keát noái <<subsystem>>
A
§ Coù tính cô ñoäng, töông thích plug-and-play
§ Caùch ly caùc thay ñoåi
§ Tieán hoùa ñoäc laäp
<<subsystem>>
w Nhöõng ñeà nghò B
<<subsystem>>
CourseCatalogSystem
ICourseCatalogSystem
<<subsystem>> package
<<subsystem proxy>>
CourseCatalogSystem
ICourseCatalogSystem
<<interface>>
ICourseCatalogSystem <<subsystem>>
getCourseOfferings() CourseCatalogSystem
subsystem responsibility
performResponsibility( )
Op1()
Internal subsystem
Op3() interactions
Op4()
1: // create schedule( )
2: // get course offerings( )
Student wishes to
create a new 3: getCourseOfferings(Semester)
schedule
9: // add schedule(Schedule)
√ - Done
(coøn tieáp)
1.1.1. createStatement( )
sql statement is passed in
specifying the search criteria -- 1.1.2. executeQuery(String)
course offerings in the current
semester 1.1.2.1. // executeQuery( ) Create a list to hold all
retrieved course offerings
1.1.3. new( )
RDBMS
Repeat these operations for each
element returned from the Read
executeQuery() command.
1.1.4. new( )
The CourseOfferingList is loaded
with the data retrieved from the
2. getString( )
database.
1. // close registration( )
1.1. // is registration open?( ) Retrieve a list of course
offerings for the current
2. // close registration( ) semester
Close
2.1. getCourseOfferings(Semester) registration for
each course
Repeat twice this is If the maximum number of
offering
for simplicity; selected primary courses have
realistically, an 2.2. // close registration( )
not been committed, select
indefinite number of alternate course offerings).
iterations could
occur)
2.3. // level( )
Finally commit or
2.4. // close( ) Currently assuming tuition based on
cancel the course
offering once all number of offerings taken and certain
leveling has occurred attributes of students. If different offerings
get different prices this will change slightly.
2.5. getTuition( )
Send student and tuition to
the Billing System, which will
do the actual billing to the 2.6. submitBill(Student, double)
student for the schedule.
subsystem responsibility
PT & TK Höôùng ñoái töôïng – Thieát keá kieán truùc
Döông Anh Ñöùc 18
Ví duï: Local BillingSystem Subsystem Interaction
Subsystem Proxy
Billing System : : : Student. :
: Billing System
Client BillingSystem StudentBillingTransaction BillingSystemInterface
1. submitBill(Student, double)
Retrieve the
information that must
1.1. create(Student, double) be included on the bill
1.2. submit(StudentBillingTransaction)
Subsystem Proxy
Subsystem Interface
DBCourseOfferring
1
new()
add()
0..* 1
Connection
<<entity>>
(from java.sql)
CourseOffering
(from University Artifacts) Statement
createStatement() (from java.sql)
new()
setData() executeQuery() ResultSet
executeUpdate() (from java.sql)
getString()
submitBill()
StudentBillingTransaction
<<entity>>
<<subsystem proxy>>
Student.
BillingSystem
(from University Artifacts)
submit(theTransaction : StudentBillingTransaction)
<<subsystem>> Supporting
Client Support Types
Duøng nhöng caån
thaän
External System
Interfaces
(from Business Services)
University Artifacts
(from Business Services)
java.sql
(from Middleware)
<<subsystem>>
BillingSystem
(from Business Services)
External System
Interfaces
(from Business Services)
University Artifacts
(from Business Services)
(coøn tieáp)
(coøn tieáp)