Process Design (Requirements). Recall the Four Steps of Problem Solving * Orient Plan Execute Test These apply to any kind of problem, not just spreadsheet.

Slides:



Advertisements
Similar presentations
System Development Life Cycle (SDLC)
Advertisements

Int 2 Computing Software Development.
Incremental All Cost Alternatives ©Dr. Bradley C. Paul 2002 Note – The concepts shown in these slides are considered to be commonly known amongst those.
Software Development Life Cycle
Evaluating Requirements. Outline Brief Review Stakeholder Review Requirements Analysis Summary Activity 1.
Process Design (Specification)
System Analysis (Part 1)
Learning Objectives Explain similarities and differences among algorithms, programs, and heuristic solutions List the five essential properties of an algorithm.
1 CS 106 Computing Fundamentals II Chapter 12 “Design Requirements” Herbert G. Mayer, PSU CS status 6/29/2013 Initial content copied verbatim from CS 106.
1 CS 106, Winter 2009 Class 3, Section 4 Slides by: Dr. Cynthia A. Brown, Instructor section 4: Dr. Herbert G. Mayer,
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming The software development method algorithms.
1 CS 106, Winter 2009 Class 2, Section 4 Slides by: Dr. Cynthia A. Brown, Instructor section 4: Dr. Herbert G. Mayer,
Modern Systems Analysis and Design Third Edition
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Software Development Software Life Cycle UML Diagrams.
16-Jun-15 Exceptions. Errors and Exceptions An error is a bug in your program dividing by zero going outside the bounds of an array trying to use a null.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
System Design and Analysis
Overview of The Operations Research Modeling Approach.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
16/27/2015 3:38 AM6/27/2015 3:38 AM6/27/2015 3:38 AMTesting and Debugging Testing The process of verifying the software performs to the specifications.
Complexity (Running Time)
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
Introduction to Software Engineering CS-300 Fall 2005 Supreeth Venkataraman.
Swami NatarajanJuly 14, 2015 RIT Software Engineering Reliability: Introduction.
Testing Test Plans and Regression Testing. Programs need testing! Writing a program involves more than knowing the syntax and semantics of a language.
1 Functional Testing Motivation Example Basic Methods Timing: 30 minutes.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Scenario testing Tor Stålhane. Scenario testing – 1 There are two types of scenario testing. Type 1 – scenarios used as to define input/output sequences.
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
Introduction to Systems Analysis and Design Trisha Cummings.
Introducing Java.
CSE 486/586 CSE 486/586 Distributed Systems PA Best Practices Steve Ko Computer Sciences and Engineering University at Buffalo.
Copyright © 2000, Department of Systems and Computer Engineering, Carleton University 1 Introduction Structures are somewhat like an array in that.
Making a great Project 2 OCR 1994/2360. Analysis This is the key to getting it right. Too many candidates skip through this section. It’s worth 20% of.
The Scientific Method. The Scientific Method The Scientific Method is a problem solving-strategy. *It is just a series of steps that can be used to solve.
© 2005 course technology1 1 1 University Of Palestine UML for The IT Business Analyst A practical guide to Object Oriented Requirement Gathering Hoard.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
The Software Development Life Cycle. Software Development SDLC The Software Development Life-Cycle Sometimes called the program development lifecycle.
INFO 637Lecture #51 Software Engineering Process II Defining Requirements INFO 637 Glenn Booker.
Testing and Debugging Version 1.0. All kinds of things can go wrong when you are developing a program. The compiler discovers syntax errors in your code.
1. Understanding the Problem 2. Brainstorming 3. Drawing an I/O (Input/Output) diagram 4. 5-step Process (or: Small iPods Make Copying Tough) Developing.
ICT IGCSE.  Introducing or changing a system needs careful planning  Why?
Intermediate 2 Software Development Process. Software You should already know that any computer system is made up of hardware and software. The term hardware.
1 CS 106 Computing Fundamentals II Chapter 13 “Design Specification” Herbert G. Mayer, PSU CS status 6/29/2013 Initial content copied verbatim from CS.
Algorithms & Flowchart
Requirements Collection By Dr. Gabriel. Requirements A requirement is any function, constraint, or property that the system must provide, meet, or satisfy.
240-Current Research Easily Extensible Systems, Octave, Input Formats, SOA.
Systems Analysis and Design in a Changing World, Fourth Edition
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
Systems Development Life Cycle
Intermediate 2 Computing Unit 2 - Software Development.
1 What is the Software Life Cycle? The stages of developing a software application Requirements Analysis High-level Design Plan Low-level Design Implementation.
A BRIEF LOOK AT THE COMPONENTS THAT MAKE UP THE SYSTEM LIFE CYCLE.
CS451 Software Implementation and Integration Yugi Lee STB #555 (816) Note: This lecture was designed.
Quality: A Business Perspective In quality management, the ratio of improvement effort to benefits varies greatly. Sometimes, a single change in a process.
GCSE ICT 3 rd Edition The system life cycle 18 The system life cycle is a series of stages that are worked through during the development of a new information.
A brief look at the components that make up the system life cycle.
5. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Describe the activities of the requirements discipline  Describe the difference.
Introduction to System Analysis and Design MADE BY: SIR NASEEM AHMED KHAN DOW VOCATIONAL & TECHNICAL TRAINING CENTRE.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Application Analysis. Application Interaction Model The purpose of analysis is to understand the problem so.
IMPROVEMENT MODEL. THE MODEL FOR IMPROVEMENT There are three fundamental questions that can be used to guide improvement efforts. Then using Plan – Do.
Introduction to Exceptions in Java CS201, SW Development Methods.
By: Megan Funk. I will: 1. Explain the binary number system How to: -Generate binary from a number -Add binary 2. Explain the base-b number system 3.
Victoria Ibarra Mat:  Generally, Computer hardware is divided into four main functional areas. These are:  Input devices Input devices  Output.
1 Advanced Computer Programming Project Management: Basics Copyright © Texas Education Agency, 2013.
CSE 332: C++ Exceptions Motivation for C++ Exceptions Void Number:: operator/= (const double denom) { if (denom == 0.0) { // what to do here? } m_value.
Software life cycle models
Systems Analysis and Design
Paper by D.L Parnas And D.P.Siewiorek Prepared by Xi Chen May 16,2003
Presentation transcript:

Process Design (Requirements)

Recall the Four Steps of Problem Solving * Orient Plan Execute Test These apply to any kind of problem, not just spreadsheet development, programming, or process design, but we will focus on those kinds of problems in this course * [Carlson and Bloom, “The Cyclic Nature of Problem Solving: An Emergent Multi-Dimensional Problem Solving Framework”, Educational Studies in Mathematics, Vol. 58 Number 1, 2005] 2

Some Common Business Processes Doing the payroll Fulfilling an order Inventory Billing Each of these can be complex, and benefits from a well-defined process 3

Process Design Overview (and how it relates to the four steps) Orient: Develop requirements (use cases and tests) Plan: Design the user interface, identify the objects, plan the flow of action (specification) Execute: Implement the actual process Check: use the tests you developed to verify that your process is correct

Defining a Process Clearly (First Steps) Orient – Start with what we want to have happen: inputs and outputs – Write use cases to make sure we have covered all the possibilities – Define tests to determine if our process works properly, once it is defined Plan – Design the user interface – Figure out and specify how it should work, using a flow chart or other specification method These are done BEFORE the execute step (instead of just jumping right in to solve the problem) 5

First Step: Use Cases A use case is a scenario that runs through the process It helps us visualize the process and refine our understanding Usually there is at least one “normal” version of the process. We start with that and then bring in unusual or exceptional versions.

Use Case Principles Each use case covers exactly one scenario, so normally there are no conditionals (ifs) A use case is testable. We define the test at the same time we define the use case. The set of use cases covers all the possible scenarios (unless there are too many…in which case it covers the most important ones, trying for a representative sample) 7

Tests Before Design We define the tests before we say how to perform the process This ensures that the process we set up really does what we wanted it to do We have to think through what we want the process to do, and try to identify all possible cases, before we specify how to do it; otherwise, the “unusual” cases may not be handled well 8

Simple Example: Candy Machine There’s a lot of new vocabulary and concepts here, so let’s illustrate them with a simple example We’re going to define the process of getting candy from a candy machine We start with WHAT: what is supposed to happen, precisely? What items/people are involved? We’ll come up with tests to make sure it works properly 9

A very simple mechanical machine 10

What should happen? Use Case 1 (first draft): – User puts a coin in the coin slot and turns the handle – A candy comes out the candy slot You might be tempted to stop with this. But there are some other factors to consider. 11

Possible Problems What if the machine is empty? What if the user puts the wrong coin in the slot? What if the user tries to turn the handle without putting a coin in the slot? What if the coin receptacle is full? 12

New Use Case 1: Normal Operation Use Case 1 – User puts the correct coin in the coin slot and turns the handle – There is candy in the machine, and the coin receptacle is not full – A candy comes out the candy slot Test 1 – Put the proper coin in a machine that has candy in it and does not have a full receptacle, and turn the handle. A candy should come out the candy slot. Repeat a few times. 13

Use Case 2: Empty Machine Use Case 2 – User puts the correct coin in the coin slot and turns the handle – There is no candy in the machine – The coin receptacle is not full – No candy comes out the candy slot Test 2 – Putting a coin in an empty machine and turning the handle means the machine will eat the coin and no candy will come out Other Options – What other options did we have for this case? – What are the tradeoffs? 14

Use Case 3: Wrong or Bad Coin Use Case 3: The wrong coin – The user puts the wrong coin in the coin slot – The user tries to turn the handle – The handle doesn’t turn Test(s) 3 – Try putting coins that are too large, too small, or made out of wood in the slot. The handle should not turn. Considerations – How much can we afford to spend building a machine that can detect bad coins? 15

Use Case 4: No coin – The user does not put a coin in the coin slot – The user tries to turn the handle – The handle doesn’t turn Test 4 – Try to turn the handle when the slot is empty. It should not turn. Considerations – We need to know that it is feasible to build a machine that works like this 16

Use Case 5: Full Receptacle Use Case 5 – The user puts the correct coin in the coin slot – The coin receptacle is full – The handle will not turn Test 5 – Put a coin in a machine with a full coin receptacle. The handle should not turn Considerations: – It is one thing to specify this, it is another to build a machine that reliably works this way. There are again tradeoffs involving cost and reliability of the machine 17

Possible Conflicts What if there are two problems? For example, the receptacle is full AND the machine is empty? – The use case for an empty machine says the machine should take the money – The use case for a full receptacle says the handle won’t turn We covered this by putting the condition that the receptacle is not full in the use case for an empty machine. We need to check all use cases to make sure there are no such conflicts. 18

More Aspects We only covered the use of the machine by a person who wants to buy candy There is another type of use: how does the owner of the machine retrieve the money? How does the owner refill the candy? To fully specify the machine, we need to describe these with use cases as well. How much should the machine cost? (Depends on the business plan.) How reliable does it need to be? The designer needs to know this as well! 19

Even More Aspects Beyond this is the question of the business plan – Do we sell or rent out the machines? For how much? – How much should the candy cost? Where do we (or the buyers of our machines) get it? – Who collects the money? How do we get it? Who refills the machine? These are beyond the scope of our current project, which is to develop requirements for the machine that the engineers can use to design it 20

Next: Plan/Specify/Design So far we have looked at the first step of the design process: saying what we want to do. (We’ve also written some tests to use later.) This is called Requirements gathering, and is the Orient step Next we’ll look at the Specification/ Design step, which is where we Plan how the process will work 21

Not Always a Linear Process The process of problem solving does not always proceed in a linear fashion through the four steps We might develop requirements for what we want but then find out in the design phase that it would be too expensive or unreliable to build Be prepared to try designing for a set of requirements and then going back and changing the requirements It is much more expensive and time-consuming to change the requirements or design after you start executing than before, which is one reason why the early steps are so important 22

Good Communication is Vital In general, the person who does the requirements may be a different person from the one who designs the process. In that case there may need to be several discussions about issues that come up; the designer shouldn’t change the specification unilaterally Use cases are good for creating and communicating requirements; we also need a good tool for creating and communicating design For this we’ll use flow charts (next session) 23