High Level Design Use Case Textual Analysis SE-2030 Dr. Mark L. Hornick 1.

Slides:



Advertisements
Similar presentations
IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
Advertisements

Chapter 7 Structuring System Process Requirements
System Modelling System modelling helps the analyst to understand the functionality of the system and models are used to communicate with customers. Different.
Ch 12: Object-Oriented Analysis
CS3773 Software Engineering Lecture 03 UML Use Cases.
OOAD Using the UML - Use-Case Analysis, v 4.2 Copyright  Rational Software, all rights reserved 1/18 Use Case Analysis – continued Control Classes.
Chapter 12 ATM Case Study, Part 1: Object-Oriented Design with the UML
ATM User Interface Design. Requirements A bank customer is able to access his or her account using an automatic teller machine. To be able to use an ATM.
Use Case Diagram © copyright 2001 SNU OOPSLA Lab..
Feb. 13, 2001CSci Clark University1 CSci 250 Software Design & Development Lecture #9 Tuesday, Feb. 13, 2001.
Finding Analysis Classes Written by Zvika Gutterman Adam Carmi.
Lecture 4 Class Responsibility Collaboration Cards
Basic OOP Concepts and Terms
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models September 29, 2008.
Lecturer: Dr. AJ Bieszczad Chapter 66-1 Object-Oriented analysis and design Special nature of OO development Use cases Design with UML OO system design.
Finding Analysis Classes Written by Zvika Gutterman Adam Carmi.
Satzinger, Jackson, and Burd Object-Orieneted Analysis & Design
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
Requirements Analysis 2 What objects collaborate to achieve the goal of a use case?
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Software Design by Dr. Eitan Hadar Web:
SE 555 Software Requirements & Specification Requirements Analysis.
PRJ566: PROJECT PLANNING AND MANAGEMENT Class Diagrams.
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
Chapter 7 Structuring System Process Requirements
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
USE Case Model.
SOFTWARE ENGINEERING BIT-8 APRIL, 16,2008 Introduction to UML.
Chapter 5 Analysis Model. Analysis model (AM) The first step in describing how the system will implement the requirements specification The first step.
Chapter 7 Structuring System Process Requirements
Detailed design – class design Domain Modeling SE-2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
Approaching a Problem Where do we start? How do we proceed?
Systems Analysis and Design in a Changing World, 3rd Edition
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
A Use Case Primer 1. The Benefits of Use Cases  Compared to traditional methods, use cases are easy to write and to read.  Use cases force the developers.
Lecture 6: Structural Modeling
Basic OOP Concepts and Terms. In this class, we will cover: Objects and examples of different object types Classes and how they relate to objects Object.
Discovering object interaction. Use case realisation The USE CASE diagram presents an outside view of the system. The functionality of the use case is.
Chapter 1 Applying UML and Patterns. The Need for Software Blueprints Knowing an object-oriented language and having access to a library is necessary.
1 Capturing Requirements As Use Cases To be discussed –Artifacts created in the requirements workflow –Workers participating in the requirements workflow.
Interaction Diagrams Interaction Diagrams allow the designer to show how groups of objects collaborate in some behavior. –Interaction Diagrams will show.
Class and Sequence diagrams UML notation SE-2030 Dr. Mark L. Hornick 1.
Object-Oriented Modeling: Static Models. Object-Oriented Modeling Model the system as interacting objects Model the system as interacting objects Match.
Domain Classes – Part 1.  Analyze Requirements as per Use Case Model  Domain Model (Conceptual Class Diagram)  Interaction (Sequence) Diagrams  System.
Use Case Textual Analysis
Chapter 7 Structuring System Process Requirements Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich.
Chapters 10, 11 SSD (Revision) SD DCD Exam Object-Oriented Design.
Object-Oriented Analysis and Design Use cases Finding classes Collaboration and Sequence diagrams Associations between classes.
UML - Development Process 1 Software Development Process Using UML.
Gerhard Dueck -- CS3013Analysis 1. Gerhard Dueck -- CS3013Analysis 2 Why analysis?  Yield a more precise specification of the requirements.  Introduce.
OO DomainModeling With UML Class Diagrams and CRC Cards Chapter 6 Princess Nourah bint Abdulrahman University College of Computer and Information Sciences.
Model-View-Controller A Design Pattern SE-2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
© 2005 by Prentice Hall Chapter 7 Structuring System Process Requirements Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
UML Fundamental Elements. Structural Elements Represent abstractions in our system. Elements that encapsulate the system's set of behaviors. Structural.
What is this? SE-2030 Dr. Mark L. Hornick 1. Same images with different levels of detail SE-2030 Dr. Mark L. Hornick 2.
Introduction: Databases and Database Systems Lecture # 1 June 19,2012 National University of Computer and Emerging Sciences.
Elaboration popo.
OO Domain Modeling With UML Class Diagrams and CRC Cards
The Object Oriented Approach to Design
Model-View-Controller
OO Domain Modeling With UML Class Diagrams and CRC Cards
Unified Modeling Language
SYS466 Domain Classes – Part 1.
Copyright 2007 Oxford Consulting, Ltd
Basic OOP Concepts and Terms
Software Development Process Using UML Recap
Presentation transcript:

High Level Design Use Case Textual Analysis SE-2030 Dr. Mark L. Hornick 1

Once Use Cases are completed, we have to design the system that solves the problem before we can build it Software Engineers can infer a lot of information about how the system should be designed from the Use Case narratives SE-2030 Dr. Mark L. Hornick 2

Textual Analysis of Use Case scenarios is used to create high-level designs Prerequisite: Use Cases should be complete, so that all capabilities of the system are described, and all requirements met. SE-2030 Dr. Mark L. Hornick 3 Textual Analysis is a quick and easy way to make a “first guess” at the classes that will comprise the system

Textual Analysis is looking at the nouns and verbs in your Use Cases to figure out the classes and their methods Nouns in the Use Cases are candidates for the classes you need to write Grammar 101: nouns are things Verbs in the Use Cases are usually the methods that the classes implement Verbs are actions SE-2030 Dr. Mark L. Hornick 4

Approach: Read through each Use Case, picking out the nouns appearing in the scenario descriptions You’re actually discovering objects, which are instances of classes that abstract the problem domain entities SE-2030 Dr. Mark L. Hornick 5

After identifying nouns, eliminate redundancies “list of names” “name collection” “array of names” “Welcome message” “Welcome dialog” “Welcome screen” SE-2030 Dr. Mark L. Hornick 6 “Names” “Welcome Screen” Note: Do not identify individual Buttons, Checkboxes, Menus, etc as individual nouns; these would all be part of a parent screen.

When you implement the code, you’ll only need classes for the parts of the system you need to represent, but not for things outside the system The following nouns are not candidates for classes: “user retrieves cash from ATM” “user inserts envelope into ATM” SE-2030 Dr. Mark L. Hornick 7 Experience and common sense help here.

There are three classifications of objects discovered via Textual Analysis 1. Boundary Objects Model the system boundary (often multiple) User Interface elements (entire screens, but not individual ui elements) Interfaces to external actors (e.g. databases) 2. Control Objects Represents an entity or manager that makes decisions (e.g. figures out what to do when a button is pressed) In simple systems, this is usually the application itself, and there is typically only a single Control Object 3. Entity Objects A data store or persistence element that captures or represents information (often multiple objects) SE-2030 Dr. Mark L. Hornick 8 The precise/permanent classification of objects is not always possible upon first review – iteration is often necessary!

For each Use Case, draw a UML high- level Sequence Diagram showing the interaction between objects The purpose of this diagram is to begin to identify the fundamental classes and their behaviors and attributes SE-2030 Dr. Mark L. Hornick 9

Boundary, Entity, and Control elements must obey the following relationships SE-2030 Dr. Mark L. Hornick 10 1.Actors can only talk to boundary objects. 2.Boundary objects can usually only talk to controllers and actors. 3.Entity objects can usually only talk to controllers and boundary objects. 4.Controllers can talk to boundary objects and entity objects, and to other controllers, but not to actors

The following relationships are generally restricted or not permitted SE-2030 Dr. Mark L. Hornick 11 1.Actors can only talk to boundary objects. 2.Entity objects can communicate with an another Entity that it “owns” (e.g. an Collection owns Items in the Collection) 3.Boundary objects can talk to certain Entity objects (UI gets Items from a Collection to display), and other Boundary objects it “owns” (e.g. a popup dialog). 4.Controllers can talk to boundary objects and entity objects, and to other controllers, but not to actors Allowed with reservations