Chapter 6 Design Model. Design Model (DM) Guiding principles Guiding principles All classes should be specified to the level of detail that they represent.

Slides:



Advertisements
Similar presentations
Final Presentation WINTER 2009 – SUMMER 2009 PRESENTED BY: George Kour Hany Danial SUPERVISOR: Victor Kulikov Networked Software Systems Laboratory DEPARTMENT.
Advertisements

Design Validation CSCI 5801: Software Engineering.
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 5: Restaurant.
Internet Technologies 1 Master of Information System Management Java Server Faces Model/View/Controller Design Pattern for Web Development Slides.
Robustness Analysis Dr. Neal CIS 480. Outline What is robustness analysis? Key roles in robustness analysis Object types found in discovery Diagramming.
From Class Diagrams to Databases. So far we have considered “objects” Objects have attributes Objects have operations Attributes are the things you record.
© 2005 Prentice Hall8-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Component and Deployment Diagrams
Performed by:Gidi Getter Svetlana Klinovsky Supervised by:Viktor Kulikov 08/03/2009.
Lecture a: Additional UML Models: Package, Activity, Deployment Lecture b: Generalization, Aggregation and Additional Domain Model Notation Copyright W.
Objectives Explain the purpose and objectives of object- oriented design Develop design class diagrams Develop interaction diagrams based on the principles.
Chapter 7 Managing Data Sources. ASP.NET 2.0, Third Edition2.
Unified Modeling Language
Chapter 2 Database System Concepts and Architecture
Chapter 7: The Object-Oriented Approach to Requirements
Objectives Design Class Diagrams Issues in system design Generalization Review UML papers.
System Design Chapter 8. Objectives  Understand the verification and validation of the analysis models.  Understand the transition from analysis to.
The Design Discipline.
Systems Analysis and Design in a Changing World, Fifth Edition
Systems Analysis and Design in a Changing World, Fifth Edition
Information storage: Introduction of database 10/7/2004 Xiangming Mu.
Database Programming in Java Corresponds with Chapter 32, 33.
Programming with Microsoft Visual Basic 2012 Chapter 12: Web Applications.
Chapter 4 User Experience Model. User experience model (Ux) Visual specification of the user interface Visual specification of the user interface Both.
Page 1 What is the UML? UML stands for Unified Modeling Language The UML combines the best of the best from – Data Modeling concepts (Entity Relationship.
Chapter 5 Analysis Model. Analysis model (AM) The first step in describing how the system will implement the requirements specification The first step.
Using JavaBeans and Custom Tags in JSP Lesson 3B / Slide 1 of 37 J2EE Web Components Pre-assessment Questions 1.The _____________ attribute of a JSP page.
CS 3610: Software Engineering – Spring 2009 Dr. Hisham Haddad – CSIS Dept. Class Project OO Design Document Here is what you need to do for your class.
CSCI 6962: Server-side Design and Programming Introduction to Java Server Faces.
OHT 11.1 © Marketing Insights Limited 2004 Chapter 9 Analysis and Design EC Security.
Web Server Administration Chapter 7 Installing and Testing a Programming Environment.
12 Systems Analysis and Design in a Changing World, Fifth Edition.
1 ITEC 3010 “Systems Analysis and Design, I” LECTURE 10: Use Case Realizations [Prof. Peter Khaiter]
Object Oriented Design Jerry KotubaSYST Object Oriented Methodologies1.
J2EE Overview Web Programming CSCI J2EE multi-tier architecture Servlet: Java class loaded into Web server JSP page: enhanced HTML page that is.
Systems Analysis and Design in a Changing World, 3rd Edition
Source: Peter Eeles, Kelli Houston, and Wojtek Kozaczynsky, Building J2EE Applicationa with the Rational Unified Process, Addison Wesley, 2003 Prepared.
Course Schedule Report Web Service Carolyn Cracraft Lisa de Larios-Heiman.
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
CS 4850: Senior Project Fall 2014 Object-Oriented Design.
A Student Guide to Object- Oriented Development Chapter 10 Designing objects and classes.
UOFS Information System Version 0.9 Yaodong Bi Copyright 2009, Yaodong Bi.
(c) Addison Wesley Copyright © 2000 by Addison Wesley Version 1.0
Design CIS 4800 Kannan Mohan Department of CIS Zicklin School of Business, Baruch College Copyright © 2009 John Wiley & Sons, Inc. Copyright © 2008 Course.
Project Deliverables CEN Engineering of Software 2.
INFO275 Database Management Term Project. Overview Your project will be to define, design and build a functioning database, to support an application.
How I spend my money Software architecture course Mohan, Maxim.
SOEN 343 Software Design Section H Fall 2006 Dr Greg Butler
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
1 Copyright © 2004, Oracle. All rights reserved. Oracle Application Development Framework.
UOFS Information System Version 0.9 Yaodong Bi Copyright 2009, Yaodong Bi.
Java Programming: Advanced Topics 1 Enterprise JavaBeans Chapter 14.
CSIS 4850: CS Senior Project – Spring 2009 CSIS 4850: Senior Project Spring 2009 Object-Oriented Design.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Project Deliverables CIS 4328 – Senior Project 2 And CEN Engineering of Software 2.
Fusion Design Overview Object Interaction Graph Visibility Graph Class Descriptions Inheritance Graphs Fusion: Design The overall goal of Design is to.
Practical Object-Oriented Design with UML 2e Slide 1/1 ©The McGraw-Hill Companies, 2004 PRACTICAL OBJECT-ORIENTED DESIGN WITH UML 2e Chapter 6: Restaurant.
11 Systems Analysis and Design in a Changing World, Fifth Edition.
ORACLE ADF ONLINE TRAINING COURSE
Chapter 2 Database System Concepts and Architecture
The Object Oriented Approach to Design
Chapter 27 WWW and HTTP.
Unified Modeling Language
Analysis models and design models
Software Design Lecture : 15.
Systems Design Project Deliverable 3
Design Yaodong Bi.
Presentation transcript:

Chapter 6 Design Model

Design Model (DM) Guiding principles Guiding principles All classes should be specified to the level of detail that they represent implementation classes. All classes should be specified to the level of detail that they represent implementation classes. A sequence diagram should be defined for each flow of events in each use case. A sequence diagram should be defined for each flow of events in each use case. All messages in sequence diagrams should represent actual operations of participating objects All messages in sequence diagrams should represent actual operations of participating objects You should avoid representing in the diagram the classes of the underlying technological framework (e.g., classes in Java packages) You should avoid representing in the diagram the classes of the underlying technological framework (e.g., classes in Java packages) Achieve class cohesiveness, minimizing communication between classes. Achieve class cohesiveness, minimizing communication between classes.

DM: Guiding principles -temp Domain entities: Domain entities: Classes, objects, and packages that are found from the use cases to specify system functions Classes, objects, and packages that are found from the use cases to specify system functions Entities of this type at the design model are basically a copy of those in the analysis model by adding Entities of this type at the design model are basically a copy of those in the analysis model by adding Operations and attributes Operations and attributes Implementation-level entities: Implementation-level entities: Classes, objects, and packages that are identified by the designer to support the implementation of the system. Classes, objects, and packages that are identified by the designer to support the implementation of the system. Examples includes list, database tables, Java beans Examples includes list, database tables, Java beans

DM: Model structure The same analysis packages are also design packages The same analysis packages are also design packages Each design package is structured into three layers: Each design package is structured into three layers: Presentation layer Presentation layer Business layer Business layer Data access layer Data access layer Each design package has subpackages for the realization of the use case in the package Each design package has subpackages for the realization of the use case in the package Use elements in the three layers to realize each use case in the package Use elements in the three layers to realize each use case in the package At the business layer of each package there is an entity manager that manages all elements/entities of the package at the data access layer. At the business layer of each package there is an entity manager that manages all elements/entities of the package at the data access layer.

Design model structure Figure 6-2

Data access DM: Model structure Presentation Business U s e c a s e r e a li z a ti o n s Business package i Data Types Wrappers Data Access

DM: Data Access Layer - 1 Although entities are managed by different managers, but each use case may need, normally does, entities from other packages to be realized. Although entities are managed by different managers, but each use case may need, normally does, entities from other packages to be realized. Create a data model for the whole system Create a data model for the whole system When an entity (A) has an association with another entity (B) which is managed by a different entity manager, then the manager of A must request services from the manager of B in order to make changes or retrieve info of B. When an entity (A) has an association with another entity (B) which is managed by a different entity manager, then the manager of A must request services from the manager of B in order to make changes or retrieve info of B.

DM: Data Access Layer - 2 The data access layer may be further divided into: The data access layer may be further divided into: : the data itself (stored in DB). Data Type classes: the data itself (stored in DB). : the data and getters and setters. Wrapper classes: the data and getters and setters. : that define a set of operations for the specific needs of our solution Data Access Layer classes: that define a set of operations for the specific needs of our solution CRUD: create, retrieve, update, and delete CRUD: create, retrieve, update, and delete

DM: Data Access Layer - 3 Data Access Layer and Wrapper classes StudentDAL create() findStudent(id) findStudents(major) Update() Delete() MajorDAL create() findMajor(id) Update() Delete() MajorInfo Id Name Host college StudentInfo ssn Name Address DOB Data Type Classes RegisterInfo StudentSSN SectionNo grade > Major Id, Name, hostCollege Getters() Setters() > Student SSN, name, Address, DOB Getters() Setters()

DM: Data Access Layer - 4 Data Type classes are mapped to relations (tables) in relational database. Data Type classes are mapped to relations (tables) in relational database. Each M:N relationship between data type classes is mapped to a table (called association table). (e.g., table register in next slide) Each M:N relationship between data type classes is mapped to a table (called association table). (e.g., table register in next slide) When an M:N relationship spans two entities managers, the association table belongs to both managers (e.g., table register on next slide). When an M:N relationship spans two entities managers, the association table belongs to both managers (e.g., table register on next slide). The database model can be traced back to the managed entities diagram in the Analysis Model (see Managed Entity Diagram slide) The database model can be traced back to the managed entities diagram in the Analysis Model (see Managed Entity Diagram slide)

DM: Data Access Layer - 5 > StudentInfo ssn Name Address DOB majorID > MajorInfo Id Name Host college Database Model > SectionInfo sectionNo location courseID Instructor > CourseInfo CourseID Title Credits > FacultyInfo ssn Name Office department > DeptInfo deptID Name mainOffice > RegisterInfo StudentSSN SectionNo grade Note: Arrows show foreign keys.

DM: Data Access Layer - 6 > StudentInfo ssn: char(9); name: varchar(20) address: DOB: char(8); majorID: int StudentDAL +create(Student s): int +findBySSN(string ssn): Student +findByMajor(mid): List +update(Student s): int +delete(string ssn): int +getMajor(string ssn): int +getTranscript(string ssn): List ; > Student -ssn: string -Name: string -Address: string -DOB: Date -majorID: int +get/setSSN(ssn); +get/setName(name); +get/setAddr(addr); +get/setDOB(date) +get/setMajor(int mid) > RegisterInfo StudentSSN SectionNo grade RDBMS

DM: Data Access Layer - 8 StudentDAL > Student > StudentInfo > RegisterInfo RDBMS Web Server: Node > JDBC DB Server: Node > JDBC MajorDAL > Major > MajorInfo Intranet … … A Look Ahead to deployment

DM: Presentation layer Three diagrams are defined for each business package: Three diagrams are defined for each business package: traces each XyzView back to the boundary classes Boundary traceability (Mapping): traces each XyzView back to the boundary classes Each screen (and its included input forms) is mapped to a XyzView class Each screen (and its included input forms) is mapped to a XyzView class trace dispatcher classes back to dispatcher classes in analysis model Control traceability (mapping): trace dispatcher classes back to dispatcher classes in analysis model Each dispatcher class in analysis model is mapped to a dispatcher Each dispatcher class in analysis model is mapped to a dispatcher a class diagram showing the relationship between classes in the presentation layer (including XyzView classes and dispatchers) Participants: a class diagram showing the relationship between classes in the presentation layer (including XyzView classes and dispatchers) Show the relationship between View classes and dispatchers Show the relationship between View classes and dispatchers

Mediator Design Purpose Design Purpose Avoid references between dependent objects. Avoid references between dependent objects. Design Pattern Summary Design Pattern Summary Capture mutual behavior in a separate class. Capture mutual behavior in a separate class.

Mediator - Model MediatorColleague ConcreteMediator Colleague_BColleague_A

Mediator Sequence Diagram ClientA:Colleague_ A :Mediator B: Colleague_B request() takeAction_1() mediate() :MediatorC: Colleague_A takeAction_2() takeAction_3()

DM: Business layer The entity manager of each business package is mapped to a subsystem. The entity manager of each business package is mapped to a subsystem. A subsystem is an instance of a package A subsystem is an instance of a package The Interface: the specification of the subsystem, defines everything a client needs to know in order to use the subsystem The Interface: the specification of the subsystem, defines everything a client needs to know in order to use the subsystem The realization of the interface: the implementation of the subsystem, interior structure that implements the interface. The realization of the interface: the implementation of the subsystem, interior structure that implements the interface. To start, define one class that implements all the operations specified in the interface. To start, define one class that implements all the operations specified in the interface.

AM: Relationship between classes SectionInfo CourseInfo ClassroomInfo dispatcher Presentation Layer Business Package i Business Layer Data Access Layer Course Section Classroom CourseDAL CroomDAL SectionDAL Entity Manager Subsystem

DM: Identify class operations - 1 For Boundary classes (View classes/Web pages): For Boundary classes (View classes/Web pages): Attributes of a screen are mapped to text display Attributes of a screen are mapped to text display An input form is mapped to an HTML form An input form is mapped to an HTML form Attributes of an input form are input fields of the HTML form Attributes of an input form are input fields of the HTML form Operations of a screen may be mapped to Javascript display function and Web links Operations of a screen may be mapped to Javascript display function and Web links Operations of an input form may be mapped to HTML form submit buttons. Operations of an input form may be mapped to HTML form submit buttons. The program that processes the HTML form submits is the dispatcher of the use case. The program that processes the HTML form submits is the dispatcher of the use case.

DM: Identify class operations - 2 Identify operations for control and data access layer classes Identify operations for control and data access layer classes Use sequence diagram to help in identifying class operations for all control classes (dispatchers and entity manager) and entity classes (data access layer classes) Use sequence diagram to help in identifying class operations for all control classes (dispatchers and entity manager) and entity classes (data access layer classes) For every scenario of every use case, create a sequence diagram. For every scenario of every use case, create a sequence diagram. Follow the message in the sequence diagram one by one to identify the operation the receiving class should have. Follow the message in the sequence diagram one by one to identify the operation the receiving class should have.

DM: Identify class operations - 3 Each operation identified should be documented with: Each operation identified should be documented with: name of the operation name of the operation A brief description of the operation’s function A brief description of the operation’s function In and out parameters In and out parameters Return value Return value Define the skeleton of the operation’s body as feasible. Define the skeleton of the operation’s body as feasible. Follow the javadoc, cppdoc, and phpdoc format or a standard. Follow the javadoc, cppdoc, and phpdoc format or a standard.

DM: Summary For each business package For each business package Each boundary class is mapped to a Web page Each boundary class is mapped to a Web page The entity manager is mapped to the entity manager subsystem The entity manager is mapped to the entity manager subsystem Each dispatcher is mapped to a subclass of HTTPServlet Each dispatcher is mapped to a subclass of HTTPServlet Each entity class is mapped to Each entity class is mapped to A DAL class A DAL class A wrapper class (Java Bean) A wrapper class (Java Bean) A data type class (DB table) A data type class (DB table) Identify operations Identify operations Each operation of a boundary class from the user experience model is mapped to a web link, or an html submit input Each operation of a boundary class from the user experience model is mapped to a web link, or an html submit input For dispatchers, entity manager subsystem (its classes), and DAL classes For dispatchers, entity manager subsystem (its classes), and DAL classes Use sequence diagrams to identify their operations based on the messages a receiving class receives. Use sequence diagrams to identify their operations based on the messages a receiving class receives.

Managed entities Figure 6-3

Data Access classes for User Account Management Figure 6-4

XML Schema designer in Microsoft Visual Studio.NET, with the definition of a strongly typed DataSet. Figure 6-5

Database model Figure 6-6

Tracing Data Access classes to analysis classes Figure 6-7

Structure detail of the Data Access Layer package Figure 6-8

Structure detail of the Presentation Layer package Figure 6-9

Equivalence of structures between design model and analysis model Figure 6-10

Tracing dispatcher classes to analysis classes Figure 6-11

Tracing Web forms/controls to analysis classes Figure 6-12

Participants in the presentation layer of User Account Management Figure 6-13

Structure detail of the Business Layer package Figure 6-14

Enterprise component interface with associated Data Layer classes Figure 6-15

Tracing enterprise component interface to analysis classes Figure 6-16

Realization of the enterprise component interface Figure 6-17

Class diagram for the enterprise component implementation Figure 6-18

Structure detail of the Use Case Realizations package Figure 6-19

Tracing use case realizations from design to analysis Figure 6-20

Figure 6-22

Sequence diagram for the basic flow of Create Account use case Figure 6-23

Structure detail of the Common package Figure 6-24

Collaboration detail: CreateAccount_Entry validation Figure 6-25

Collaboration detail: Create Account Figure 6-26

Collaboration detail: Adding User to Group Figure 6-27

Role-based security handling: Participants Figure 6-28

Activity graph: submitSignIn in SignInDispatcher class Figure 6-29

Sequence diagram: Set Session Authentication on Sign-In Figure 6-30

Declare forms authentication in Web.config Figure 6-31

Activity graph: Application_AuthenticateRequest in Global class Figure 6-32

Sequence diagram: Request authenticated but no role cookie Figure 6-33