Professional Documents
Culture Documents
33 DetailDesign-SubSystemDesign 2
33 DetailDesign-SubSystemDesign 2
Subsystem Design
Static Part - VOPC
1
Subsystem Design Steps - continuing
3
Inside subsystem; classes only
Explain the ‘dependencies…’
Ex: CourseCatalogSystem SubSystem Elements (1of 2)
Note:
<<Interface>> <<subsystem proxy>>
ICourseCatalogSystem CourseCatalogSystem
(from External System Interfaces)
0..* 1
•DBCourseOffering is responsible <<entity>> Connection
(from java.sql)
for accessing the JDBC CourseOffering
Statement
(from University
database using the previously- Artifacts) createStatement() (from java.sql)
established Connection new()
executeQuery() ResultSet
(recall java.sql) setData()
executeUpdate() (from java.sql)
(Recall: Once database connection is opened (DriverManager), DBCourseOffering can then create getString()
SQL statements that will be sent to underlying RDBMS and executed using the Statement class.
(Results of SQL query returned in ResultSet class object.) 4
Inside subsystem; classes only
Ex: CourseCatSystem Sub System Elements (2of 2)
Subsystem Proxy
Subsystem Interface DBCourseOfferring
0..* 1
These elements – identified by <<entity>>
Connection
(from java.sql)
their owning package are CourseOffering
(from University Statement
listed in parentheses below Artifacts) createStatement() (from java.sql)
in the class header new()
(e.g University Artifacts) setData() executeQuery() ResultSet
executeUpdate() (from java.sql)
Especially note the modeling of the interface and proxy (as well as persistency)
DBCourseOffering can be in Applications Layer (perhaps in CourseCatalogSystem);could getString()
conceivably be in a Domain Layer, where other applications needing access to these objects can
5
reuse the DBConnections, …. Notice also the presence of java.sql.(Probably in Middleware Layer)
Document External Subsystem Structure…
Now, must document the elements (elements
external to subsystem) upon which SS depends.
Important:subsystems likely do not stand alone;
they may need services of other SubSystems.
SS designer should feel free to use services of other model
elements.
6
Describing SubSystem Dependencies - on Subsystems
Subsystem Dependencies on a SubSystem
<<subsystem>> <<subsystem>>
Client Support Server Support Flexible
Server
• When a subsystem uses some behavior of an element contained by another
subsystem or package, a dependency on the external element is needed.
. 3. University Artifacts package in order to gain access to the core objects of the
Course Registration System.
9
Subsystem Design Steps
Distribute
Subsystem behavior to
Subsystem Elements
Document Subsystem Elements
Describe Subsystem Dependencies
Checkpoints
Itis now time to look for things when reviewing
the results of your Subsystem Design efforts.
11
Checkpoints: Design Subsystems – Be Careful!!
Is a realization association defined for each interface
offered by the subsystem?
Is a dependency association defined for each interface
used by the subsystem?
Ensure that none of the elements within the subsystem
have public visibility. Why??
Is each operation on an interface realized by the subsystem
documented in a interaction diagram?
If not, is operation realized by a single class, so that it is easy to see
there is a simple 1:1 mapping between the class operation and the
interface operation?
12
Review: Subsystem Design – Good exam questions.
13