©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Slide 1 Extended Class Diagram.

Slides:



Advertisements
Similar presentations
Chapter 7 System Models.
Advertisements

Point of Sale (POS) Client & Back Office Server. Operational Concept What is our Objective? What is our Objective? What are our Goals? What are our Goals?
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Slide 1 Use Case Diagram Corrected to match newer conventions.
Slide 1 Software Design Document. Slide Introduction 2.0 System Architecture Description 2.1 System Architecture 2.2 Database Components 2.3 GUI.
CSCU 411 Software Engineering Chapter 2 Introduction to Software Engineering Management.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
Internet Sellouts Final Presentation Enterprise Architecture Group.
Systems Analysis and Design in a Changing World, Fourth Edition
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
From Class Diagrams to Databases. So far we have considered “objects” Objects have attributes Objects have operations Attributes are the things you record.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 71 System models l Abstract descriptions of systems whose requirements are being analysed.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented design 2.
Slide 7B.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 Tools of Software Development l 2 types of tools used by software engineers:
Chapter 7: System models
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Chapter 7: The Object-Oriented Approach to Requirements
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 6: The Traditional Approach to Requirements
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Analysis Modeling (cont’d) CpSc 372: Introduction to Software Engineering Jason O. Hallstrom Authorship Disclaimer. These slides.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
Basics of Web Databases With the advent of Web database technology, Web pages are no longer static, but dynamic with connection to a back-end database.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
Big Java Chapter 12. Software Process - Waterfall Analysis Design Implementation Testing Deployment Does not work well when rigidly applied! established.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Slide 1 Message Analysis Table.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Slide 1 Architectural Design.
2/6/01D-1 © 2001 T. Horton CS 494 Object-Oriented Analysis & Design Using PARTS to Illustrate Requirements Concepts.
An Introduction to Java Chapter 11 Object-Oriented Application Development: Part I.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
10/12/ Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 1. Interviews & questionnaires.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Chapter 7 System models.
System models l Abstract descriptions of systems whose requirements are being analysed.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
7 Systems Analysis and Design in a Changing World, Fifth Edition.
Introduction To OOP 1.0 Fundamentals Of Java Programming Language 2.0 Exception Handling 3.0 Classes, Inheritance And Polymorphism © 2011 | PN AZRINA.
Systems Analysis and Design in a Changing World, 6th Edition
Copyright © 2007 Ramez Elmasri and Shamkant B. Navathe Slide 2- 1.
This is a short presentation to explain how and why to login to the CIM website as a member. Benefits are: Access to myCIM (private member area, contains.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Slide 1 Use Case Packets.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Design Patterns.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
1 SEQUENCE DIAGRAM EXAMPLE The domain model, showing the navigability of the associations, and the Reserve video (staff scenario) use-case description.
IS2803 Developing Multimedia Applications for Business (Part 2) Lecture 1: Introduction to IS2803 Rob Gleasure
1 Unified Modeling Language Michael K. Wildes University of California, Riverside – Extension Program Presentation 2.
Slide 1 Systems Analysis and Design with UML Version 2.0, Second Edition Alan Dennis, Barbara Wixom, and David Tegarden Chapter 9: Moving on to Design.
High Level Design Use Case Textual Analysis SE-2030 Dr. Mark L. Hornick 1.
7 Systems Analysis – ITEC 3155 The Object Oriented Approach – Use Cases.
MYSQL AND MYSQL WORKBENCH MIS2502 Data Analytics.
Live. learn. work. play Superior Avenue Suite 310 Cleveland Ohio Tel: Fax:
1 M206 Chapter 31: An Overview of Software Development 1.Defining the problem 2.Analyzing the requirement – constructing initial structural model 3.Analyzing.
ISC321 Database Systems I Chapter 2: Overview of Database Languages and Architectures Fall 2015 Dr. Abdullah Almutairi.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
CompSci 280 S Introduction to Software Development
Chapter 12 Information Systems.
COMP 208/214/215/216 – Lecture 7 Documenting Design.
Presentation transcript:

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Slide 1 Extended Class Diagram

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 2 Slide 2 Analysis Model -> Design Model What we Have: At this point in development we have a CLASS DIAGRAM that contains DOMAIN classes. Classes and Class Structure What we Need: We need an CLASS DIAGRAM that has the classes we will program.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 3 Slide 3 Design Classes l Analysis classes (domain classes) are those classes identified during the analysis phase of the SDLC. They are the classes recognized by the customers as residing in their domain. l l Design classes are needed to implement this system in the world of computing. These classes include various types of classes. l Implementation classes are also needed to implement the system in a particular language.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 4 Slide 4 Design Classes l Design classes include: Use Case Controller Classes User Interface Classes Database Table Classes Classes for Patterns Classes for Frameworks (not covered in this class) Others If we identify all these classes, that may not end up as our design to code but it will be very close to the design.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 5 Slide 5 Design Classes l To explain how to construct your extended class diagram, we will use the VRS example. l We do not construct a design class diagram for the scope of the entire system. That may be too big and unmanageable. Instead we will construct a design class diagram for one use case. l Later we can put together the entire design class diagram if we wish but usually there is no reason to view it from that perspective.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 6 Slide 6 Design Classes l Lets take a look at ONE Use Case from the VRS to construct the Extended Class Diagram for that Use Case. Remembering that extended class diagrams should be limited to use cases rather than the entire system as it would get too large to be an effective tool for communication. l We will use the use case Register as Member.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 7 Slide 7 Design Classes name address phoneNumber creditCard# Address userName password Member copyID VideoCopy barCode title type actor[ ] director length rating videoDescription rentalStore rentalDate dueDate returnDate returnTime Rental name address phoneNumber Store 1 * 1*1* * 1 Payment *0*0 1 * stocks rents request amount paysfor defines Video Rental System CLASS DIAGRAM Using the VRS class diagram built during analysis, we identify the domain class(es) needed for this Use Case.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 8 Slide 8 name address phoneNumber creditCard# Address userName password Member Video Rental System CLASS DIAGRAM Domain Classes In this simple Use Case, there is only one domain class—Member. This type of class is often referred to by other names, entity class, data class, domain class, and others. We will simply call it our Domain class.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 9 Slide 9 name address phoneNumber creditCard# Address userName password Member Video Rental System CLASS DIAGRAM Controller Classes Now we want to add the Use Case Controller Class for this use case. We will call it the name of the use case. We will add attributes and relationships as we progress in design. aMember UCRegisterasMember Register as Membership

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 10 Slide 10 Video Rental System CLASS DIAGRAM Controller Classes Since this use case may include or extend to other use cases, we want to add a Use Case Controller Class for each of those extend or include items in our use case, again with the name of the use case. userId userPassword UCLogin Login

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 11 Slide 11 Interface Classes l Now we are ready to add Interface Classes. These are called boundary classes. l Boundary classes are often built during analysis as a prototype but are certainly developed during design if not already created. They are used to create the interface (e.g., interactive screen or printed reports) that the user sees and interacts with as the software is used. Boundary classes are designed with the responsibility of managing the way domain or entity objects are represented to users. Thus we need some input and output classes -- report classes and screen classes.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 12 Slide 12 Interface Classes These interface classes are the actual screens such as HTML screens, VB screens, Java 2 screens, or other. They the classes that hold the code for those screens.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 13 Slide 13 Interface Classes We have a member class and we need : 1)At least one screen for member information. 2)A class for each screen that hold the code for THAT screen - Named ScrXxxx. name address phoneNumber creditCard# Address userName password Member nameTestfield addressTextPanel phoneNumberTextfield creditCard#Textfield AddressTextfield userNameTextfield passwordTextfield aMember ScrMember aMember UCRegisterasMember

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 14 Slide 14 Interface Classes We will also need a login screen for the login use case but THAT would be in the extended class diagram for the login use case. name address phoneNumber creditCard# Address userName password Member nameTestfield addressTextPanel phoneNumberTextfield creditCard#Textfield AddressTextfield userNameTextfield passwordTextfield aMember ScrMember aMember UCRegisterasMember

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 15 Slide 15 Interface Classes l If we have interfaces that have navigational controls, we will need a controller to place the navigational code that represents the navigation matrix. These classes with the navigational control code are called interface controller classes. They are a type of controller but not the use case controller. l The interface (boundary) classes are limited to only the DISPLAY of the report or screen. The actual control of those interface (boundary) classes is done by this interface (controller) class.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 16 Slide 16 Interface Classes l Interface Controller classes manage the communication between the interface (boundary) objects and the domain (entity) objects. l REMEMBER: l The interface (boundary) object is only for the display code. You can think of it as it can ONLY display itself. l The domain (entity) object is only for holding and manipulating the data it contains. It can only manipulate its data.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 17 Slide 17 Interface Classes 1)A navigation diagram to tell us how to navigate the screen 2)A class for each navigation that hold the code for THAT navigation. So now we need to control the clicks, enters, mouse navigation, etc so we need:

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 18 Slide 18 Interface Classes With the screen and navigation diagram we create the class(es) that hold the code for those navigations. Multiple navigations may be needed for each screen or even multiple panels for each screen with multiple navigations. name address phoneNumber creditCard# Address userName password Member nameTestfield addressTextPanel phoneNumberTextfield creditCard#Textfield AddressTextfield userNameTextfield passwordTextfield aMember ScrMember aMember aMemberScreen Member Update Controller aMember aMemberScreen Member Create Controller

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 19 Slide 19 Interface Classes We will name the controller class(es) as CtrXxxxYyyy CtrMemberCreate CtrMemberUpdate name address phoneNumber creditCard# Address userName password Member nameTestfield addressTextPanel phoneNumberTextfield creditCard#Textfield AddressTextfield userNameTextfield passwordTextfield aMember ScrMember aMember aMemberScreen CtrMemberUpdate aMember aMemberScreen CtrMemberCreate

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 20 Slide 20 Interface Classes But for this use case, for simplicity, we will assume we only need the Member Create Controller. name address phoneNumber creditCard# Address userName password Member nameTestfield addressTextPanel phoneNumberTextfield creditCard#Textfield AddressTextfield userNameTextfield passwordTextfield aMember ScrMember aMember aMemberScreen CtrMemberCreate aMember UCRegisterasMember

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 21 Slide 21 Database Classes A database table class that contains the code needed for that table named TblXxxxx. The Tbl does all the sql for this member table, opens the table, closes the table, checks if a person is in the table, …, all the code to manipulate the table. name address phoneNumber creditCard# Address userName password Member aMember openTable() closeTable() sqlMemberNameSearch() checkMemberonFile() TblMember We have a domain (entity) class that contains the data but we also need a way to have the code that manipulates the database. A table class for each table identified.

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 22 Slide 22 Extended Class Diagram aMember openTable() closeTable() sqlMemberNameSearch() checkMemberonFile() TblMember name address phoneNumber creditCard# Address userName password Member nameTestfield addressTextPanel phoneNumberTextfield creditCard#Textfield AddressTextfield userNameTextfield passwordTextfield aMember ScrMember aMember UCRegisterasMember So here is the resulting classes in the extended class diagram. Remember it is for one use case. We need relationships defined. We will need to add class descriptions for these classes userId userPassword UCLogin aMember aMemberScreen CtrMemberCreate

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 23 Slide 23 Extended Class Diagram aMember openTable() closeTable() sqlMemberNameSearch() checkMemberonFile() TblMember name address phoneNumber creditCard# Address userName password Member nameTestfield addressTextPanel phoneNumberTextfield creditCard#Textfield AddressTextfield userNameTextfield passwordTextfield aMember ScrMember aMember aMemberScreen CtrMemberCreate aMember UCRegisterasMember Lets start with the mandatory relationships. Those are the ones where an instance of a class is contained in another. Relationships are shown with cardinality and a sign for option/mandatory. userId userPassword UCLogin

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 24 Slide 24 Extended Class Diagram aMember openTable() closeTable() sqlMemberNameSearch() checkMemberonFile() TblMember name address phoneNumber creditCard# Address userName password Member nameTestfield addressTextPanel phoneNumberTextfield creditCard#Textfield AddressTextfield userNameTextfield passwordTextfield aMember ScrMember aMember aMemberScreen CtrMemberCreate aMember UCRegisterasMember The Member Create Controller will contain an instance of the Member Screen because in order to control the screen, we will need to get the screen components and their contents. userId userPassword UCLogin 1

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 25 Slide 25 Extended Class Diagram aMember openTable() closeTable() sqlMemberNameSearch() checkMemberonFile() TblMember name address phoneNumber creditCard# Address userName password Member nameTestfield addressTextPanel phoneNumberTextfield creditCard#Textfield AddressTextfield userNameTextfield passwordTextfield aMember ScrMember aMember UCRegisterasMember The Member Screen will contain an instance of the Member. because it will want to update the member data from the contents of the components (e.g. textfield). userId userPassword UCLogin 1 aMember aMemberScreen CtrMemberCreate 1

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 26 Slide 26 Extended Class Diagram aMember openTable() closeTable() sqlMemberNameSearch() checkMemberonFile() TblMember name address phoneNumber creditCard# Address userName password Member nameTestfield addressTextPanel phoneNumberTextfield creditCard#Textfield AddressTextfield userNameTextfield passwordTextfield aMember ScrMember aMember UCRegisterasMember The UCRegisterasMember uses the UCLogin because it implements the includes relationship between the two use cases. userId userPassword UCLogin 1 aMember aMemberScreen CtrMemberCreate 1 1

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 27 Slide 27 Extended Class Diagram aMember openTable() closeTable() sqlMemberNameSearch() checkMemberonFile() TblMember name address phoneNumber creditCard# Address userName password Member nameTestfield addressTextPanel phoneNumberTextfield creditCard#Textfield AddressTextfield userNameTextfield passwordTextfield aMember ScrMember aMember UCRegisterasMember The UCRegisterasMember needs the TblMember class because it needs to update the database with the member information. userId userPassword UCLogin 1 aMember aMemberScreen CtrMemberCreate 1 1 1

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 28 Slide 28 Extended Class Diagram aMember openTable() closeTable() sqlMemberNameSearch() checkMemberonFile() TblMember name address phoneNumber creditCard# Address userName password Member nameTestfield addressTextPanel phoneNumberTextfield creditCard#Textfield AddressTextfield userNameTextfield passwordTextfield aMember ScrMember aMember UCRegisterasMember The UCRegisterasMember needs the CtrMemberCreate because it needs to display the screen, and allow entry of data. userId userPassword UCLogin 1 aMember aMemberScreen CtrMemberCreate

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 29 Slide 29 Extended Class Diagram While this information is needed, it does get tedious even for this simple example. What you will hand in is simpler and somewhat different. aMember openTable() closeTable() sqlMemberNameSearch() checkMemberonFile() TblMember name address phoneNumber creditCard# Address userName password Member nameTestfield addressTextPanel phoneNumberTextfield creditCard#Textfield AddressTextfield userNameTextfield passwordTextfield aMember ScrMember aMember UCRegisterasMember userId userPassword UCLogin 1 aMember aMemberScreen CtrMemberCreate

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 30 Slide 30 Considerations l We now have the basic additional design classes defined. However, there are other considerations to make a professional final cut on the classes included in this application. l Additional classes may be needed for other items such as: Additional data classes Additional interface classes Components Deployment Classes Additional architectural classes