What is this? SE-2030 Dr. Mark L. Hornick 1. Same images with different levels of detail SE-2030 Dr. Mark L. Hornick 2.

Slides:



Advertisements
Similar presentations
Week 2 The Object-Oriented Approach to Requirements
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Analysis Modeling.
Solutions to Review Questions. 4.1 Define object, class and instance. The UML Glossary gives these definitions: Object: an instance of a class. Class:
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
UML Class Diagram. UML Class Diagrams2 Agenda What is a Class Diagram? Essential Elements of a UML Class Diagram Tips.
Conversation Form l One path through a use case that emphasizes interactions between an actor and the system l Can show optional and repeated actions l.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
THE OBJECT-ORIENTED DESIGN WORKFLOW Interfaces & Subsystems.
Module: Definition ● A logical collection of related program entities ● Not necessarily a physical concept, e.g., file, function, class, package ● Often.
Testing HCI Usability Testing. Chronological order of testing Individual program units are built and tested (white-box testing / unit testing) Units are.
1 CS115 Class 7: Architecture Due today –Requirements –Read Architecture paper pages 1-15 Next Tuesday –Read Practical UML.
Business Modeling Domain Modeling Source: Use Case Driven Object Modeling with UML – A Practical Approach By Doug Rosenberg ISBN:
The Unified Modeling Language (UML) Class Diagrams.
Object-Oriented Analysis and Design
Object-Oriented Design. From Analysis to Design Analysis Artifacts –Essential use cases What are the problem domain processes? –Conceptual Model What.
Objectives Design Class Diagrams Issues in system design Generalization Review UML papers.
Objects What are Objects Observations
Unified Modeling Language User Guide Section 2—Basic Structural Modeling Chapter 4—Classes.
Systems Analysis and Design in a Changing World, Fifth Edition
Chapter 9: Coupling & Cohesion Omar Meqdadi SE 273 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 8: Modelling Interactions and Behaviour.
SE-1010 Dr. Mark L. Hornick 1 Introduction to Object-Oriented Programming (OOP) Part 1.
12 Systems Analysis and Design in a Changing World, Fifth Edition.
1 SAD2 - UML 4 th Lecture Class Diagram in Construction Phase Patterns Case Study Lecturer: Dr Dimitrios Makris
High-Level Design With Sequence Diagrams COMP314 (based on original slides by Mark Hall)
Detailed design – class design Domain Modeling SE-2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
What is MOF? The Meta Object Facility (MOF) specification provides a set of CORBA interfaces that can be used to define and manipulate a set of interoperable.
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Selection Control Structures Simple Program Design Third Edition A Step-by-Step Approach 4.
Requirements Analysis via Use Cases SE-2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
Lab 04.
Selection Control Structures. Simple Program Design, Fourth Edition Chapter 4 2 Objectives In this chapter you will be able to: Elaborate on the uses.
Systems Analysis and Design in a Changing World, 3rd Edition
GRASP: Designing Objects with Responsibilities
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
1 Class Diagrams: Advanced Concepts. 2 Overview Class diagrams are the most commonly used diagrams in UML. Class diagrams are the most commonly used diagrams.
DOMAIN MODEL- VISUALIZING CONCEPTS Identify conceptual classes related to the current iteration requirements. Create an initial domain model. Distinguish.
The Static Analysis Model Class Diagrams Prof. Hany H. Ammar, CSEE, WVU, and Dept. of Computer Science, Faculty of Computers and Information, Cairo University.
UML Class Diagram Trisha Cummings. What we will be covering What is a Class Diagram? Essential Elements of a UML Class Diagram UML Packages Logical Distribution.
CS 772: Global Knowledge Networks V. “Juggy” Jagannathan CSEE, West Virginia University.
Class and Sequence diagrams UML notation SE-2030 Dr. Mark L. Hornick 1.
SE-1010 Dr. Mark L. Hornick 1 Java Programming Basics.
Design Model Lecture p6 T120B pavasario sem.
Object-Oriented Analysis and Design CHAPTERS 9, 31: DOMAIN MODELS 1.
Karolina Muszyńska Based on: S. Wrycza, B. Marcinkowski, K. Wyrzykowski „Język UML 2.0 w modelowaniu SI”
Use Case Textual Analysis
Systems Analysis and Design in a Changing World, Fourth Edition
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
1 What is the Software Life Cycle? The stages of developing a software application Requirements Analysis High-level Design Plan Low-level Design Implementation.
UML Class Diagram notation Indicating relationships between classes SE-2030 Dr. Mark L. Hornick 1.
Domain Model A representation of real-world conceptual classes in a problem domain. The core of object-oriented analysis They are NOT software objects.
FROM MONOMODAL TO MULTIMODAL METAPHORS
Database Design Process For many businesses, the database is the most important set of computer files they have. For some, like EBay or Facebook, the database.
Object-Oriented Software Engineering Practical Software Development using UML and Java Modelling with Classes.
High Level Design Use Case Textual Analysis SE-2030 Dr. Mark L. Hornick 1.
BTS430 Systems Analysis and Design using UML Design Class Diagrams (ref=chapter 16 of Applying UML and Patterns)
Use Case, Component and Deployment Diagrams University of Sunderland.
Chapter 9: Coupling & Cohesion Omar Meqdadi SE 273 Lecture 9 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
Class Design. Class Design The analysis phase determines what the implementation must do, and the system design.
UML Review Sequence Diagrams SE-2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
Elaboration popo.
UNIT-IV Designing Classes – Access Layer ‐ Object Storage ‐ Object Interoperability.
Unit - 3 OBJECT ORIENTED DESIGN PROCESS AND AXIOMS
UML Diagrams: Class Diagrams The Static Analysis Model
CMPE 280 Web UI Design and Development August 29 Class Meeting
DESIGN MODEL: USE-CASE REALIZATIONS WITH GRASP PATTERNS
UML Class Diagram.
Presentation transcript:

What is this? SE-2030 Dr. Mark L. Hornick 1

Same images with different levels of detail SE-2030 Dr. Mark L. Hornick 2

Detailed design – class design Domain Modeling SE-2030 Dr. Mark L. Hornick 3

Textual Analysis of Use Case scenarios is used to create preliminary, high-level designs SE-2030 Dr. Mark L. Hornick 4 Textual Analysis is a quick and easy way to make a “first guess” at the classes that will comprise the system Keep in mind: Use Cases don’t presume any specific design or implementation

5 The Software Life Cycle The stages of developing a software application Requirements Analysis High-level Design [Plan] – left for SE2800 Low-level (Detail) Design Implementation Unit Test Integration System Test Deploy Maintain

The next step: Detail-level design Domain modeling: Identifying appropriate classes (along with their methods and attributes) that represent the abstractions the problem statement presents SE-2030 Dr. Mark L. Hornick 6

Sources of classes High-level design (UML High-level Sequence Diagrams) Domain knowledge of the field assistance from experts Experience SE-2030 Dr. Mark L. Hornick 7 Prerequisite: HLD should be complete, so that objects and messages have been identified in each Use Case

Approach: Identifying classes SE-2030 Dr. Mark L. Hornick 8 Review all of the Sequence Diagrams 1. List all of the objects that appeared in the various diagrams Identify and eliminate redundancies The same conceptual object may have been given different names in different diagrams (e.g. “screen” in one case and “window” in another) Different objects of the same class (different class instances) may have appeared in separate sequence diagrams (e.g. “sorted data” and “unsorted data” could both be instances of a data class) Identify similarities Look for objects that may have different names but are similar in function These may be representable by a single class (e.g. JOptionPane) clydehyde

Identifying classes continued: Growing the classes For each identified class 2. List the messages that have been sent to it. Messages become candidates for methods implemented within a Java class Identify and eliminate redundancies “display error message” = “show error message” Identify similarities Could be the same method with different parameters “display error message” maps to the method call displayMessage(“error”) “display ok message” maps to the method call displayMessage(“ok”) SE-2030 Dr. Mark L. Hornick 9

Identifying classes continued: Growing the classes For each identified class 3. Based upon context, create a list of attributes each class may exhibit Identify and eliminate redundancies Same attribute – just different names (e.g. size === count) Identify similarities Look for attributes that may have different names but are similar in function – these may be the same attribute with different values (e.g. “valid flag” and “invalid flag” can be represented by a boolean flag that is either true or false) SE-2030 Dr. Mark L. Hornick 10

Class creation rules Classes should do what their names indicate Classes should represent a single concept Each class should be designed to do its job, and only its job, to the best of its ability Unused attributes in a class instance (object) indicate that a class may be representing more than a single concept Too many methods in class definition may also indicate that the class is trying to do too much SE-2030 Dr. Mark L. Hornick 11

Classes that do one thing well have high cohesion Cohesive classes are independent of one another A cohesive class does not do or try to be something else Cohesive classes are loosely-coupled Changes internal to one class don’t require changes to other classes (public method changes excepted!) SE-2030 Dr. Mark L. Hornick 12

Why are cohesion and coupling important Design considerations? It takes very little for something to go wrong with an application that is fragile That is, you change one part, and some other part breaks Building an application that works well but is poorly designed may satisfy the customer in the short-term, but You will spend a lot of time later fixing problems SE-2030 Dr. Mark L. Hornick 13

Domain modeling will identify multiple classes Taken together, a class diagram gives a good overview of a system’s structure Including how the various classes are related to one another (e.g. dependency, composition, simple association, generalization, realization) SE-2030 Dr. Mark L. Hornick 14

Identifying class relationships Go back to the Use Cases, and look for possessive terms relating one object to another “account’s credentials” “order’s entries” “path’s coordinates” SE-2030 Dr. Mark L. Hornick 15 Possessive terms usually indicate a stronger form of relationship than a Simple Association (i.e. Composition)

Don’t try to carry the design too far without having the basic functionality down Preliminary designs will change as you iteratively add new functionality to your classes and methods Some believe that high-level Sequence Diagrams are “disposable” once they have served their purpose, since the low-level design will evolve away from them. SE-2030 Dr. Mark L. Hornick 16