1 Detail Design Subsystem Design Static Part - VOPC.

Slides:



Advertisements
Similar presentations
Deliverable #8: Detailed Design - Overview due: Wednesday, 7 March All Deliverable materials are to be posted into Team Concert. Your to.
Advertisements

Introduction to Rational Rose 2000 v6.5 Copyright © 1999 Rational Software, all rights reserved 1 Rational Rose 2000 Interaction Diagrams.
1 Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB JavaForum.
Object Oriented Analysis and Design Using the UML
1 © Wolfgang Pelz UML3 UML 3 Notations describe how to use reusable software. Package Component Deployment Node.
CSCI 639 Topics in Software Engineering Assignment #5 Fall 2008.
CREATING THE DESIGN: THE LOGICAL VIEW The Class Diagram.
1 C. Shahabi Application Programming for Relational Databases Cyrus Shahabi Computer Science Department University of Southern California
1 Lecture 29 More on JDBC Overview  Objectives of this lecture  JDBC and its Drivers  Connecting to Databases (Java’s Connection class)  Querying a.
Detail Design: Use-Case Design
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
Detail Design Subsystem Design Background and the Dynamic Part
Use Case Analysis – continued
SE 555 Software Requirements & Specification Requirements Analysis.
1 A Student Guide to Object- Orientated Development Chapter 9 Design.
CSCI 639 Topics in Software Engineering Assignment #4 Fall 2006.
Object Oriented Analysis and Design Using the UML
An Introduction to Rational Rose Real-Time
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Advance Computer Programming Java Database Connectivity (JDBC) – In order to connect a Java application to a database, you need to use a JDBC driver. –
Collaborative Systems Developing Collaborative Systems with a Reuse Driven Process.
CS 8532: Adv. Software Eng. – Spring 2007 Dr. Hisham Haddad Tuesday Class will start momentarily. Please Stand By … CS 8532: Advanced Software.
Getting connected.  Java application calls the JDBC library.  JDBC loads a driver which talks to the database.  We can change database engines without.
The Design Discipline.
Why Analysis Process Refer to earlier chapters Models what the system will do makes it easier for understanding no environment considered (hence, system.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
OOAD Using the UML - Architectural Design, v 4.2 Copyright  Rational Software, all rights reserved 34 Object Oriented Analysis and Design Using.
Java Database Connectivity (JDBC) Introduction to JDBC JDBC is a simple API for connecting from Java applications to multiple databases. Lets you smoothly.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Shanghai Jiao Tong University 上海交通大学软件工程中心 Object Oriented Analysis and Design Use-Case Design.
EJB Framework.  As we know, EJB is the center of the J2EE architecture that provides a sturdy framework for building enterprise applications. The major.
RUP Design RUP Artifacts and Deliverables
12 Systems Analysis and Design in a Changing World, Fifth Edition.
4/2/03I-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Software Architecture and Design Readings: Ambler, Chap. 7 (Sections to start.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 11 Subsystem Design.
1 Detail Design Subsystem Design Background and the Dynamic Part.
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
Copyrighted material John Tullis 10/17/2015 page 1 04/15/00 XML Part 3 John Tullis DePaul Instructor
Information System Development Courses Figure: ISD Course Structure.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 8: Identify Design Mechanisms.
Deliverable #9 – Detail Design Subsystem Design and Realization ALL of your design class model elements must have the package or subsystem they are associated.
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Introduction to Rational Rose 2000 v6.5 Copyright © 1999 Rational Software, all rights reserved 1 Rational Rose 2000 Class Diagrams.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 6: Use-Case Analysis.
1 Detail Design: Use-Case Design Background on Use Case Design Have ‘done’ Architectural Design; You know the major (eleven) precepts of good design.
Java Database Connectivity (JDBC). Topics 1. The Vendor Variation Problem 2. SQL and Versions of JDBC 3. Creating an ODBC Data Source 4. Simple Database.
JDBC. Java.sql.package The java.sql package contains various interfaces and classes used by the JDBC API. This collection of interfaces and classes enable.
Project Deliverables CEN Engineering of Software 2.
UNIT III - JDBC JDBC Overview – JDBC implementation – Connection class – Statements - Catching Database Results, handling database Queries. Networking–
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 9: Describe the Run-time Architecture.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
OOAD Using the UML - Subsystem Design, v 4.0 Copyright  Rational Software, all rights reserved 1 R Subsystem Design.
Analysis Yaodong Bi. Introduction to Analysis Purposes of Analysis – Resolve issues related to interference, concurrency, and conflicts among use cases.
Basics of JDBC Session 14.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
310414IMPLEMENTATION1 IMPLEMENTATIONIMPLEMENTATION SOFTWARE ENGINEERING SOFTWARE ENGINEERING.
CS223: Software Engineering Lecture 13: Software Architecture.
Project Deliverables CIS 4328 – Senior Project 2 And CEN Engineering of Software 2.
Object and Class Structuring Chapter 9 Part of Analysis Modeling Designing Concurrent, Distributed, and Real-Time Applications with UML Hassan Gomaa (2001)
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1 Use Case Analysis – Part 4 Analysis Mechanisms.
Design and Implementation
Analysis models and design models
CS 8532: Advanced Software Engineering
CIS 4328 – Senior Project 2 And CEN Engineering of Software 2
Design Yaodong Bi.
Use-Case Design in Context
Use Case Analysis – continued
Presentation transcript:

1 Detail Design Subsystem Design Static Part - VOPC

2 Subsystem Design Steps - continuing Distribute Subsystem behavior to Subsystem Elements – covered this last lecture…. Document Subsystem Elements Have responsibilities allocated to subsystems now allocated to subsystem elements. Have collaborations between subsystem elements modeled via interaction diagrams.  To do: Model internal structure of subsystem  Model subsystem element relationships Relationships are driven by what is required to support the collaborations to implement the subsystem interfaces Describe Subsystem Dependencies

3 Procedure: Document internal SS Structure  Create class diagram(s) showing contained elements and their associations. IF lots of complexity, may need two class diagrams. Create State diagram? May be appropriate to show different states subsystem can assume. (interfaces and subsystems are “stateful”). Document any order dependencies (e.g., op1 must be executed before op2, etc.).

4 Ex: CourseCatalogSystem SS Elements (1of 2) Subsystem Proxy Subsystem Interface DBCourseOfferring create() : CourseOffering read(searchCriteria : string) : CourseOfferingList CourseCatalogSystem getCourseOfferings(forSemester : Semester) : CourseOfferingList > ICourseCatalogSystem getCourseOfferings(forSemester : Semester) : CourseOfferingList (from External System Interfaces) > Statement executeQuery() executeUpdate() (from java.sql) Connection createStatement() (from java.sql) 1 1 CourseOfferingList new() add() (from University Artifacts) CourseOffering new() setData() (from University Artifacts) > 1 0..* ResultSet getString() (from java.sql) Concentrating on the interface getCourseOfferings()… CourseCatalogSystem works with DBCourseOffering to read/write persistent data from CourseCatalogSystem (RDBMS). DBCourseOffering is responsible for accessing the JDBC database using the previously- established Connection (recall java.sql) (Recall: Once database connection is opened, DBCourseOffering can then create SQL statements that will be sent to underlying RDBMS and executed using the Statement class. (Results of SQL query returned in ResultSet class object.) Note:

5 Ex: CourseCatSystem Sub Sys Elements (2of 2) Subsystem Proxy Subsystem Interface DBCourseOfferring create() : CourseOffering read(searchCriteria : string) : CourseOfferingList CourseCatalogSystem getCourseOfferings(forSemester : Semester) : CourseOfferingList > ICourseCatalogSystem getCourseOfferings(forSemester : Semester) : CourseOfferingList (from External System Interfaces) > Statement executeQuery() executeUpdate() (from java.sql) Connection createStatement() (from java.sql) 1 1 CourseOfferingList new() add() (from University Artifacts) CourseOffering new() setData() (from University Artifacts) > 1 0..* ResultSet getString() (from java.sql) Note: elements outside of the subsystem are shown, as well, to provide context. These elements – identified as their owning package is listed in parentheses below (e.g University Artifacts) Especially note the modeling of the interface and proxy (as well as persistency) Again, the DBCourseOffering can be in the applications layer (perhaps in a package; could conceivably be in a Domain Layer, where other apps needing access to these objects can reuse the DBConnections, …. Notice also the presence of java.sql. Probably in Middleware)

6 Example: Billing System Subsystem Elements StudentBillingTransaction create(forStudent : Student, forAmount : double) Student. // get contact info() (from University Artifacts) > BillingSystem submitBill(forStudent : Student, forTuition : double) > BillingSystemInterface submit(theTransaction : StudentBillingTransaction) IBillingSystem submitBill() (from External System Interfaces) > Subsystem Proxy Subsystem Interface Remember, the actual generation and submission of the bill is responsibility of the Billing System subsystem. (So, the proxy uses StudentBillingTransaction and the Student entity stored in the UniversityArtifacts package. Presumably the submitBill method needs these objects.) So, we really don’t care how the Billing System (the file access itself) does its thing. This models the SS elements and their relationships. These relationships support the required collaborations between the design elements to support the behavior of the SS (as documented in the SS interfaces). Again, elements outside SS are shown to provide context. Especially note the modeling of the interface and proxy. If nested subsystems are defined (like here) the class diagrams should only show the relationship to the subsystem interfaces. Internals can be defined for ‘that’ subsystem design. Note the dependencies, realizations, and communications…

7 Subsystem Design Steps Distribute Subsystem behavior to SubsystemElements Document Subsystem Elements Describe Subsystem Dependencies Subsystem elements have been defined to implement the subsystem responsibilities, and resulting collaborations between elements have been modeled using interaction diagrams, and the internal structure of the subsystem (a.k.a. relationships between subsystem elements) has been modeled using class diagrams. Now, must document the external elements (elements external to the subsystem) upon which the SS depends. These dependences may have been introduced when designing the internals of the SS – as described earlier. Important to note: subsystems may not be able to stand alone; they may need services of other SSs. SS designer should feel free to use services of other SS.

8 Flexible Describing Sub Sys Dependencies - Subsystem Subsystem dependency on a SubSystem Server Client Support > Server Support > When a subsystem uses some behavior of an element contained by another Sub System or package, a dependency on the external element is needed. If the element on which the Sub System is dependent is within a Sub System, the dependency should be on the SS interface, not on the element within the SS. e.g. Dependencies on java.sql We know the advantages of such a design… It also gives the designer total freedom in designing the internal behavior of the subsystem, as long as it provides the correct external behavior. If a model element directly references a model element inside of another Sub- System, the designer is no longer free to remove that model element or redistribute the behavior of that model element to other elements. Result, a brittle architecture!

9 Describing Sub Sys Dependencies - Package Subsystem dependency on a Package  If the element the subsystem element is dependent on is within a package, the dependency should be on the package itself. (e.g. university artifacts…) Ideally, a SS should only depend on the interfaces of other model elements for the reasons stated before. The exception: number of Sub Systems share a set of common class definitions, in which case those Sub Systems 'import' the contents of the packages containing the common classes. This should only be done with packages in lower layers in the architecture to ensure that common class definitions are defined consistently. (java.sql??) Disadvantage: SS cannot be reused independent of the depended-on package. Use with care Client Support > Supporting Types

10 Ex: CourseCatalogSystem Sub System Dependencies java.sql (from Middleware) CourseCatalogSystem (from Business Services) > External System Interfaces (from Business Services) University Artifacts (from Business Services) This models the dependencies that the Course CatalogSystem has with other design elements These dependencies support the relationships modeled on earlier Sub System class diagrams. These dependencies are on standard packages that do not have a specific interface. Thus the CourseCatalogSystem subsystem cannot be reused without the packages it depends upon. The CourseCatalogSystem is dependent on the: java.sql package in order to gain access to the design elements that implement the RDBMS persistency mechanism. External System Interfaces in order to gain access to the SS itself (ICourseCatalogSystem). Remember, the Sub System Interfaces were not packaged with the SS themselves University Artifacts package in order to gain access to the core types of the Course Registration System. Course Catalog System… Billing System … Student; Course Offering… Note: these are dependencies on packages – not subsystems. I’ve been calling the Business Services layer our Domain Layer… Packages…

11 Ex: BillingSystem Subsystem Dependencies BillingSystem (from Business Services) > External System Interfaces (from Business Services) University Artifacts (from Business Services) This models the dependencies that the BillingSystem Sub System has with other design elements. These dependencies are on standard packages that do not have a specific interface. Thus the BillingSystem SS cannot be reused without the packages it depends on. The BillingSystem SS is dependent on the External System Interfaces package in order to gain access to the SS interface itself (IBillingSystem). Remember: the Sub System interfaces were not packaged with the Sub Systems themselves. The BillingSystem subsystem is dependent on the University Artifacts package in order to gain access to the core types of the Core Registration System.

12 Subsystem Design Steps Distribute Subsystem behavior to Subsystem Elements Document Subsystem Elements Describe Subsystem Dependencies Checkpoints It is now time to look for things when reviewing the results of your Subsystem Design efforts.

13 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. Is each operation on an interface realized by the subsystem documented in a interaction diagram? If not, is the operation realized by a single class, so that it is easy to see that there is a simple 1:1 mapping between the class operation and the interface operation?

14 Review: Subsystem Design – Good exam questions. What is the purpose of Subsystem Design? How many interaction diagrams should be produced during Subsystem Design? Why should dependencies on a subsystem be on the subsystem interface?