Requirements Change! Chapter 3 Object-Oriented Analysis and Design Tom Perkins.

Slides:



Advertisements
Similar presentations
Chapter 4 - Object-Oriented Analysis and Design in a Nutshell1 Chapter 4 Object-Oriented Analysis and Design in a Nutshell.
Advertisements

Object-Oriented Application Development Using VB.NET 1 Chapter 5 Object-Oriented Analysis and Design.
Evaluating Requirements. Outline Brief Review Stakeholder Review Requirements Analysis Summary Activity 1.
MIS 325 PSCJ. 2  Business processes can be quite complex  Process model: any abstract representation of a process  Process-modeling tools provide a.
Sequence Diagrams. Introduction A Sequence diagram depicts the sequence of actions that occur in a system. The invocation of methods in each object, and.
1 Programming for Engineers in Python Autumn Lecture 5: Object Oriented Programming.
Chapter 1 Introduction to Object- Oriented Programming and Problem Solving.
Version Control Systems Phil Pratt-Szeliga Fall 2010.
Fundamentals of Information Systems, Second Edition
Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH 1 Object-Oriented Analysis and Design - CDT309 Period 4, Spring 2008 Design Patterns: someone has already.
UML exam advice. Minimal, yet sufficient UML course 80% of modeling can be done with 20% of the UML. Which 20% was that again? We’re supposed to be “Use.
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
Introduction to Software Testing
SE320: Introduction to Computer Games Week 8: Game Programming Gazihan Alankus.
Software. Task Time (minutes)  1. Complete self assessment sheet Read through the chapter on software Work through the questions on the.
Domain Modeling (with Objects). Motivation Programming classes teach – What an object is – How to create objects What is missing – Finding/determining.
Copyright 2001 ICONIX Software Engineering, Inc. 1 UML for e-Commerce Doug Rosenberg ICONIX Software Engineering, Inc.
Two Questions Coaching Program [Your Name] [Your Address] [Date] [please name the file: your-name-2questions.pptx] —e.g. bill-marshall-2questions.pptx.
Chapter 3 Use Cases.
© 2005 course technology1 1 University Of Palestine UML for The IT Business Analyst A practical guide to Object Oriented Requirement Gathering Hoard Podeswa.
© 2006 Cisco Systems, Inc. All rights reserved.Cisco PublicITE I Chapter 6 1 CIS 83 Fall 2011.
Reactive robots UPNA The Public University of Navarra Material for pupils & students.
Version Control. What is it? Software to help keep track of changes made to files Tracks the history of your work Helps you collaborate with others.
HFOOAD Chapter 2 Requirements. We create software for a reason. We create software fro people. We need to know what the people want in the software we.
Object Oriented Analysis and Design Chapter 4: Analysis.
Chapter 11 Analysis Concepts and Principles
1 Apply Yourself! Week Six The Personal Statement.
CSC 213 – Large Scale Programming. Today’s Goal  Improve design skills to make usable designs  Noun extraction & UML class diagram reviewed  Connections.
Facilitation Principles and Techniques. 2 The Inside Facilitator Authorized by the Project Champion Invites project team members Announces the facilitator.
2. GATHERING REQUIREMENTS Object-Oriented Analysis and Design NTPCUG.
CVS – concurrent versions system Network Management Workshop intERlab at AIT Thailand March 11-15, 2008.
What is S.E? Describe S.E in terms of its mistakes Standish Group ( US - $250 Billion on IT projects. 31% projects are cancelled 52.7%
Behavioral Design Patterns Morteza Yousefi University Of Science & Technology Of Mazandaran 1of 27Behavioral Design Patterns.
Digital Logic Design Lecture # 21 University of Tehran.
Diagnostic Pathfinder for Instructors. Diagnostic Pathfinder Local File vs. Database Normal operations Expert operations Admin operations.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
1 Chapter 4 Analyzing End-to-End Business Processes.
HFOOAD Chapter 3 Change: the constant in software development.
Use Case Driven Analysis Requirements Use Case Use Case Description System Sequence Diagram Chapter 5.
1 Version /05/2004 © 2004 Robert Oshana Requirements Engineering Use cases.
What are Buttons? Buttons can be clipart, pictures or animated gifs When you click on buttons they can send you to another slide Buttons can be used to.
1 Chapter 5 Modeling System Requirements Finding the Use Cases Page
Module 1 – Lesson 6 Ms. Tracy. Bell Ringer What is the typical useful life for a personal computer?
Object-Oriented Programming (OOP) Lecture No. 2. Information Hiding ► Information is stored within the object ► It is hidden from the outside world ►
CS 151: Object-Oriented Design August 29 Class Meeting Department of Computer Science San Jose State University Spring 2012 Instructor: Ron Mak
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
Evaluating Requirements
* Creative Technology Laboratory. * Goals: To learn advanced Minecraft tricks and build some complex enough to impress your parents. Curriculum will include:
Character Analysis This work is licensed under the Creative Commons Attribution-No Derivative Works 3.0 United States License. To view a copy of this license,
Session 7 Introduction to Inheritance. Accumulator Example a simple calculator app classes needed: –AdderApp - contains main –AddingFrame - GUI –CloseableFrame.
The Writing Process Steps in Writing. Prewriting  Think about your topic, audience, and purpose.  Gather information.  Put your ideas into a graphic.
Yeah but.. What do I do? Software Leadership Dan Fleck 2007.
Team Skill 2 Understanding User and Stakeholder Needs Storyboarding (13)
1 CA202 Spreadsheet Application Automating Repetitive Tasks with Macros Lecture # 12 Dammam Community College.
1 © DASSAULT SYSTEMES – All rights reserved DS Confidential Information Can be shared by DS channels with customer/prospect under NDA Mold Machining.
Designing User Experience (UX) This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.Creative Commons.
Requirements capture: Using UML Use Cases David Millard and Yvonne Howard {dem,
Systems Analysis & Programming 10.1 Systems Development 10.2 Programming: A Five-Step Procedure Generations of Programming Languages 10.4 Programming.
BIM Gatherıng Requırements Give Them What They Want
Good Morning  Please be sure to take care of your belongings.
Observer Design Pattern
All equations must be solved by the same values of x and y
SE-565 Software System Requirements IV. Use Cases
EXPRESSIVE ASSESSMENT 2012
REAL-TIME, INTERACTIVE DOCUMENT AUTOMATION
State Pattern By the Group of Four.
Topic connection Help Homework
Workshop for Programming And Systems Management Teachers
Ok, now you have sent an to
HFOOAD Chapter 5 Interlude
Presentation transcript:

Requirements Change! Chapter 3 Object-Oriented Analysis and Design Tom Perkins

Welcome! 10 (+) week book study Tom Perkins Books available at Nerdbooks.com /STUDYGROUPSIG/ OOADhttp:// /STUDYGROUPSIG/ OOAD

Chapter 3 Topics Review –Good software –Use Cases The One Constant in Software Design Todd and Gina’s Idea The Bark Recognizer Scenario A Revised Use Case Introducing the Bark Recognizer Object Updating the Dog Door Simulator Doug’s Idea Duplicate Code for the Timer? Class and Code Walkthrus

Review (Chapter 1) 3 Steps to Good Software 1.Make sure the software does what the customer wants it to do 2.Apply basic OO principles to add flexibility 3.Strive for a maintainable, reusable design

Review – Chapter 2 What is a Use Case? A Use Case describes what your system does to accomplish a singular goal. Focuses on “what”, not “how” Single goal: different goal, different use case Main path; alternative paths (can occur only some of the time) Users outside the system: Gina, Todd, Fido Dog door and remote inside the system Formal Use Case: A technique for capturing the potential requirements of a new system or a software change. It provides one or more scenarios that convey how the system should interact with the end user or another system to achieve a specific goal. Scenario: a path through the use case that will result in the goal.

Your new programming job: Doug’s Dog Doors (High tech, automated dog doors) Todd Gina Fido Your first Customers What they want: An automated, remote- controlled Dog Door barks !!! want to push button to open door No Problem !!!

Todd and Gina’s Dog Door, Version 2.0 (Review) Dog Door Use Case 1. Fido barks to be let out. 2. Todd or Gina hears Fido barking. 3. Todd or Gina presses the button on the remote control. 4. The dog door opens. 5. Fido goes outside. 6. Fido does his business The door shuts automatically. 6.2 Fido barks to be let in. 6.3 Todd or Gina hears Fido barking (again). 6.4 Todd or Gina presses button on remote control. 6.5 The dog door opens (again). 7. Fido goes back inside. 8. The door shuts automatically.

The One Constant in Software Design

Doug and Gina’s Idea It (the dog door) is working great, but what if … Fido barks (Woof-Woof )!!! Bark Recognizer Attachment Dog Door Opens!

Fido barks Recognizer hears Recognizer Opens door Fido out, does business Fido back in Door closes All is well Door shuts Fido barks Recognizer hears Recognizer opens door Main pathAlternate path Note: Todd and Gina are not in this picture

A Revised Use Case Main Path 1. Fido barks to be let out 2. Bark Recognizer hears 3. Bark Recognizer send open request 4. Dog door opens 5. Fido goes outside 6. Fido does his business. 7. Fido goes back inside. 8. Dog door shuts automatically Alternate paths: 2.1 Todd or Gina hears Fido 3.1 Todd or Gina presses remote control 6.1 Dog door shuts automatically 6.2 Fido barks 6.3 Bark recognizer hears bark Todd or Gina hears 6.4. Bark recognizer requests Todd or Gina presses remote 6.5 Dog door opens

Old Dog Door Object Walkthrus DogDoor Remote Simulator object Walkthru

Dog Door with Bark Recognizer Object Walkthrus Recognizer object Code Walkthru But the door stays open!!!

Doug’s Idea! Put a timer on it! Just copy the one in the remote! Question: Duplicate the timer code in the Remote? Better solution: Put a single timer in the DogDoor class; remove the remote timer. DRY Principle (Don’t Repeat Yourself)

The Modified DogDoor Class Modify code Run Simulator

In-class exercise Suppose it’s January in North Texas, and your car is parked overnight in your garage. Write a use case that would describe the process you go through in starting your car and backing it onto the street. Did you include any alternate paths? Does your car-starting experience always follow the “Happy Path”?