CS 5150 1 CS 5150 Software Engineering Lecture 15 Program Design 1.

Slides:



Advertisements
Similar presentations
Analysis Modeling.
Advertisements

Solutions to Review Questions. 4.1 Define object, class and instance. The UML Glossary gives these definitions: Object: an instance of a class. Class:
Use Case - Example University library system requirements
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
Use Case Diagram © copyright 2001 SNU OOPSLA Lab..
Introduction To System Analysis and Design
1 Software Testing and Quality Assurance Lecture 12 - The Testing Perspective (Chapter 2, A Practical Guide to Testing Object-Oriented Software)
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.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
CS CS 5150 Software Engineering Lecture 15 Object Oriented Design 1.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 18 Object Oriented Design II.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 15 Object Oriented Design 1.
CS 501: Software Engineering Fall 2000 Lecture 11 Object-Oriented Design I.
1 Objectives To introduces the concept of software Design. To introduce the concept of Object- Oriented Design (OOD). To Define various aspects about object.
CS CS 5150 Software Engineering Lecture 15 Object Oriented Design 1.
Aalborg Media Lab 23-Jun-15 Inheritance Lecture 10 Chapter 8.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Software Engineering Lecture 9 Object-Oriented Design II.
1 CS 501 Spring 2008 CS 501: Software Engineering Lectures 15 Object Oriented Design 1.
Object-Orientated Design Unit 3: Objects and Classes Jin Sa.
CS 501: Software Engineering Fall 2000 Lecture 12 Object-Oriented Design II.
Introductory case study. 2 The problem The most difficult part of any design project is understanding the task you are attempting You have been contacted.
1 CS 501 Spring 2005 CS 501: Software Engineering Lecture 16 Object Oriented Design 2.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 16 Object Oriented Design I.
Configuration Management
Software Engineering Case Study Slide 1 Introductory case study.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Introduction To System Analysis and design
CS 5150 Software Engineering Lecture 15 Program Design 2.
The Design Discipline.
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
Data Flow Diagrams.
An Introduction to Software Architecture
Introduction to the Unified Modeling Language “The act of drawing a diagram does not constitute analysis or design. … Still, having a well-defined and.
Presented by: CHAN LAI SAN ( ) REBAH DAW SARREB ( ) FIDA AL-OBAISI ( ) 08 April 2008 (Tuesday 6pm – 7:30pm)
Introduction To System Analysis and Design
SWE © Solomon Seifu ELABORATION. SWE © Solomon Seifu Lesson 10 Use Case Design.
Object-Oriented Software Development F Software Development Process F Analyze Relationships Among Objects F Class Development F Class Design Guidelines.
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.
Software Engineering Lecture 10 UML vs. ERD.
NJIT UML Class Diagrams Chapter 16 Applying UML and Patterns Craig Larman.
Logical view –show classes and objects Process view –models the executables Implementation view –Files, configuration and versions Deployment view –Physical.
Design Model Lecture p6 T120B pavasario sem.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
Software Engineering Lecture 8 Object-Oriented Analysis.
12 Chapter 12: Advanced Topics in Object-Oriented Design Systems Analysis and Design in a Changing World, 3 rd Edition.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 17 Object Oriented Design I.
ITEC0724 Modern Related Technology on Mobile Devices Lecture Notes #2 1.
Class Diagrams. Terms and Concepts A class diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationships.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 17 Object Oriented Design II.
Introduction to UML Hazleen Aris Software Eng. Dept., College of IT, UNITEN. …Unified Modeling Language.
Object Oriented Programming and Data Abstraction Earl Huff Rowan University.
 Description of Inheritance  Base Class Object  Subclass, Subtype, and Substitutability  Forms of Inheritance  Modifiers and Inheritance  The Benefits.
CS 501: Software Engineering Fall 1999 Lecture 15 Object-Oriented Design I.
Elaboration popo.
UML Diagrams: Class Diagrams The Static Analysis Model
Course Outcomes of Object Oriented Modeling Design (17630,C604)
Object-Oriented Analysis and Design
Unified Modeling Language
Introduction to Unified Modeling Language (UML)
CS 501: Software Engineering Fall 1999
CS 501: Software Engineering
An Introduction to Software Architecture
Copyright 2007 Oxford Consulting, Ltd
CS 8532: Advanced Software Engineering
Software Development Process Using UML Recap
CS 501: Software Engineering
Presentation transcript:

CS CS 5150 Software Engineering Lecture 15 Program Design 1

CS Administration Test 3 is next Monday The test will cover material from all classes since the beginning of the semester, including next Monday's class.

CS Comments on Assignment 2: Schedules The schedule must provide time for: User testing and revisions Program and system testing Revision and correction of problems discovered during testing Deployment Handover and acceptance testing

CS Architectural Style - Model/View/Controller Model Controller View Example: Control of a unmanned model aircraft Controller: Receives instrument readings from the aircraft and sends controls signals to the aircraft. Model: Translates data received from and sent to the aircraft, and instructions from the user into a model of flight performance. Uses domain knowledge about the aircraft and flight. View: Displays information about the aircraft to the user and transmits instructions to the model.

CS Model/View/Controller: Autonomous Land Vehicle Sensors GPS Sonar Laser Signal processing ModelControl signals Steer Throttle Controls ViewModelController

CS Model/View/Controller for Web Applications 1User interacts with the user interface (e.g., presses a mouse button). 2Controller handles input event from the user interface, (e.g., via a registered handler or callback) and converts the event into appropriate user action. 3Controller notifies Model of user action, possibly resulting in a change in Model's state (e.g., update shopping cart.). 4View interacts with Model to generate an appropriate user interface response (e.g., list shopping cart's contents). 5User interface waits for further user interactions. from Wikipedia 10/18/2009

CS Model/View/Controller for Web Applications ModelControllerView HTMLHTTP WebBrowser control functions WebBrowser view functions Input events Response

CS Program Design in the Modified Waterfall Model Requirements System design Testing Operation & maintenance Program design Implementation (coding) Acceptance & release Feasibility study Requirements Design Implementation

CS Program Design The task of program design is to represent the software system functions in a form that can be transformed into one or more executable programs. Given a system architecture, the program design specifies: programs, components, packages, classes and class hierarchies interfaces, protocols (where not part of the system architecture) algorithms, data structures, security mechanisms, operational procedures If the program design is done properly, all design decisions should be made before implementation.

CS UML Models UML models (diagrams and specifications) can be used for almost all aspects of program design Diagram gives a general overview of the model, showing the principal elements and how they relate to each other. Specification provides details about each element of the model. Specification for models used in program design should have sufficient detail that they can be used to write code from.

CS Class Diagrams Window origin size open() close() move() display() name attributes [local, instance, and class (static) variables] operations [methods] responsibilities [optional text] A class is a description of a set of objects that share the same attributes, operations, relationships, and semantics.

CS The "Hello, World!" Applet import java.awt.Graphics; class HelloWorld extends java.applet.Applet { public void paint (Graphics g) { g.drawString ("Hello, World!", 10, 10); } Example from: BJR

CS The HelloWorld Example HelloWorld paint() class name operations

CS Abstraction for HelloWorld HelloWorld paint() g.drawString ("HelloWorld", 0, 10)" class name operations annotation

CS Annotation some text note A note is a symbol for rendering constraints and comments attached to an element or a collection of elements.

CS Rational Rose: A Typical Class Diagram

CS Specification Fields

CS General Specification Fields

CS Notation: Relationships A dependency is a semantic relationship between two things in which a change to one may effect the semantics of the other * employer employee An association is a structural relationship that describes a set of links, a link being a connection among objects.

CS Relationships ParkingLot ParkingSpace location is_available() *

CS Notation: Relationships (continued) A generalization is a specialization/generalization relationship is which objects of the specialized element (child) are substitutable for objects of the generalized element (parent). childparent A realization is a semantic relationship between classifiers, wherein one classifier specifies a contract that another classifier guarantees to carry out.

CS Generalization Applet HelloWorld paint() Graphics generalization dependency Note that the Applet and Graphics classes are shown elided, i.e., just the name is shown, not the attributes or operations.

CS Notation: Interface An interface is a collection of operations that specify a service of a class or component, i.e., the externally visible behavior of that element. ISpelling

CS Notation: Package A package is a general-purpose mechanism for organizing elements into groups. Business rules

CS Packaging Classes applet awt lang HelloWorld java Graphics package

CS Modeling Classes Given a real-life system, how do you decide what classes to use? What terms do the users and implementers use to describe the system? They are candidates for classes. Is each candidate class crisply defined? For each class, what is its set of responsibilities? Are the responsibilities evenly balanced among the classes? What attributes and operations does each class need to carry out its responsibilities?

CS Candidate Classes: Application Classes and Solution Classes Application classes represent application concepts. Noun identification is an effective technique to generate candidate application classes. Solution classes represent system concepts, e.g., user interface objects, databases, etc.

CS Noun Identification for Application Classes: A Library Example The library contains books and journals. It may have several copies of a given book. Some of the books are reserved for short-term loans only. All others may be borrowed by any library member for three weeks. Members of the library can normally borrow up to six items at a time, but members of staff may borrow up to 12 items at one time. Only members of staff may borrow journals. The system must keep track of when books and journals are borrowed and returned and enforce the rules.

CS Noun Identification: A Library Example The library contains books and journals. It may have several copies of a given book. Some of the books are reserved for short-term loans only. All others may be borrowed by any library member for three weeks. Members of the library can normally borrow up to six items at a time, but members of staff may borrow up to 12 items at one time. Only members of staff may borrow journals. The system must keep track of when books and journals are borrowed and returned and enforce the rules.

CS Candidate Classes Librarythe name of the system Book Journal Copy ShortTermLoanevent LibraryMember Weekmeasure MemberOfLibraryrepeat Itembook or journal Timeabstract term MemberOfStaff Systemgeneral term Rulegeneral term

CS Relations between Classes Bookis anItem Journalis anItem Copyis a copy of a Book LibraryMember Item MemberOfStaffis aLibraryMember Is Item needed?

CS Operations LibraryMemberborrowsCopy LibraryMemberreturnsCopy MemberOfStaffborrowsJournal MemberOfStaffreturnsJournal Item not needed yet.

CS A Possible Class Diagram MemberOfStaffBookCopyJournal is a copy of 1..* 1 LibraryMember 1 0..* on loan

CS From Candidate Classes to Completed Design Methods used to move to final design: Reuse: Wherever possible use existing components, or class libraries. They may need modification. Restructuring: Change the design to improve, understandability, maintainability, etc. Techniques include merging similar classes, splitting complex classes, etc. Optimization: Ensure that the system meets anticipated performance requirements, e.g., by changed algorithms or restructuring. Completion: Fill all gaps, specify interfaces, etc.

CS Coupling and Cohesion Coupling is a measure of the dependencies between two part of a system. If two classes are strongly coupled, it is hard to modify one without modifying the other. Cohesion is a measure of dependencies within part of a system. If a class contains many closely related functions its cohesion is high. Aim for high cohesion within classes and weak coupling between them.

CS Rough Sketch: Wholesale System Design is empirical and iterative. The following very artificial example, gives an idea of the process. Example A wholesale merchant supplies retail stores from stocks of goods in a warehouse. What classes would you use to model this business?

CS Rough Sketch: Wholesale System RetailStore Warehouse Order Invoice Product Shipment Merchant

CS Rough Sketch: Wholesale System Warehouse Order Invoice Product Merchant RetailStore name address contactInfo financialInfo Shipment Responsibilities -track status of shipped products Reversal damaged() return() wrongItem() responsibility (text field)

CS Expanding a Class: Modeling Financial Information RetailStore Transaction 1 * association Invoice Payment Which class is responsible for the financial records for a store?

CS Modeling Invoice Shipment Invoice invoiceNumber +goodsShipped() -sendInvoice() goodsShipped PartsList adornments + public - private RetailStore ??? invoiceRecord

CS Lessons Learned Design is empirical. There is no single correct design. During the design process: Eliding: Elements are hidden to simplify the diagram Incomplete: During the early part of the design process, elements may be missing. Inconsistency: During the early part of the design process, the model may not be consistent The diagram is not the whole design. Diagrams must be backed up with specifications.

CS An Exam Question: Object Oriented Design A system generates weather maps using data collected from unattended weather stations. Each weather station collects meteorological data and produces summaries of the data. On request, it sends the summary information to an area computer. The area computer uses a database of digitized maps to generate a set of local weather maps.

CS Exam Question: Noun Identification A system generates weather maps using data collected from unattended weather stations. Each weather station collects meteorological data and produces summaries of the data. On request, it sends the summary information to an area computer. The area computer uses a database of digitized maps to generate a set of local weather maps.

CS Exam Question: Candidate Classes Systemgeneral term WeatherMap Datasame as MeteorologicalData WeatherStationis this a general term? MeteorologicalDatahow does this relate to WeatherStation? DataSummaryhow does this relate to MeteorologicalData? AreaComputerhardware Databasegeneral term DigitizedMap

CS Exam Question: Observations about the Candidate Classes WeatherMapis a DigitizedMap is derived from 1...* DataSummary WeatherStationhas a set of MeteorologicalData MeteorologicalData DataSummaryis derived from MeteorologicalData DigitizedMap Can Meteorological Data be an attribute of WeatherStation? Can DataSummary be combined with WeatherMap?

CS Exam Question: Attributes and Operations WeatherStation location metereologicalData collectData() getSummary() WeatherMap location date-time geographicData weather gatherData() printMap() DigitizedMap location geographicData printMap() Or should MetereologicalData be a separate object?

CS Exam Question: Class Diagram DigitizedMap 1...* 1 WeatherStation location metereologicalData collectData() getSummary() WeatherMap location date-time geographicData weather gatherData() printMap() summary *