Analysis vs. Design: What s the Difference?



Similar documents
Object Modeling with UML

Designing Real-Time and Embedded Systems with the COMET/UML method

Software Engineering Compiled By: Roshani Ghimire Page 1

Contents. Chapter 1. Introduction

Requirements engineering

D6 INFORMATION SYSTEMS DEVELOPMENT. SOLUTIONS & MARKING SCHEME. June 2013

Swirl. Multiplayer Gaming Simplified. CS4512 Systems Analysis and Design. Assignment Marque Browne Manuel Honegger

Multi-view Architecting

Continuous Integration, Delivery and Deployment. Eero Laukkanen T Software Testing and Quality Assurance P

F-16 Modular Mission Computer Application Software

The Software Lifecycle. Software Lifecycles

Lecture 17: Requirements Specifications

COSC 3351 Software Design. Recap for the first quiz. Edgar Gabriel. Spring For the 1 st Quiz

NOTICE: This publication is available at:

SECTION 2 PROGRAMMING & DEVELOPMENT

LECTURE 1. SYSTEMS DEVELOPMENT

Use Cases and Scenarios

Karunya University Dept. of Information Technology

Application of UML in Real-Time Embedded Systems

Basic Testing Concepts and Terminology

Assuming the Role of Systems Analyst & Analysis Alternatives

How To Develop Software

Sofware Requirements Engineeing

(Refer Slide Time: 01:52)

Scenario-based Requirements Engineering and User-Interface Design

Advanced Service Creation: Bridging the Gap Between Requirements Elicitation and Service Design

Software Engineering 9.1. Quality Control

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

Introduction to Software Engineering (ESE : Einführung in SE)

Requirements Document for the Banking System. Lecture # 40

Software Requirements Specification

Requirements engineering and quality attributes

ATM Case Study Part 1

Establishing Great Software Development Process(es) for Your Organization. By Dale Mayes

Teaching Requirements through Interdisciplinary Projects

Web Application Architectures

Object oriented design process

Vision Document CUSTOMER RELATION MANAGEMENT SYSTEM Version 1.0

Effective Business Requirements (Virtual Classroom Edition)

NASCIO EA Development Tool-Kit Solution Architecture. Version 3.0

SystemDesign Methodologies

How To Validate Software

Blending Traditional and Agile Project Documentation

Foundations for Systems Development

II. Conceptual Modeling

Safety Driven Design with UML and STPA M. Rejzek, S. Krauss, Ch. Hilbes. Fourth STAMP Workshop, March 23-26, 2015, MIT Boston

Table of Contents. CHAPTER 1 Web-Based Systems 1. CHAPTER 2 Web Engineering 12. CHAPTER 3 A Web Engineering Process 24

INTRODUCTION. National Competency Standard for Application Developers Commission on Information and Communications Technology

The What, Why, Who, When and How of Software Requirements

2. MOTIVATING SCENARIOS 1. INTRODUCTION

1. Software Engineering Overview

Software Design Models, Tools & Processes *

Introduction. Observation Patterns. Accounting Patterns. How to use Patterns

Quality Ensuring Development of Software Processes

Tips for writing good use cases.

SOFTWARE DEVELOPMENT PLAN

Montana Department of Transportation Information Services Division. System Development Life Cycle (SDLC) Guide

Oracle Real Time Decisions

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

Analysis patterns for Customer Relationship Management (CRM)

Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces

High-Level Guide for Managers. The Information Framework

SOFTWARE REQUIREMENTS

EMC Unified Storage for Microsoft SQL Server 2008

Program Understanding in Software Engineering

Health (hospital) Information Systems. The Healthcare and the Information System. The functions of the hospital. I/O, query, report

Barely Sufficient Software Engineering: 10 Practices to Improve Your Research CSE Software

Software Development: The Waterfall Model

Extend the value of your core business systems.

Software Project Management and UML

Java (12 Weeks) Introduction to Java Programming Language

DEVELOPING REQUIREMENTS FOR DATA WAREHOUSE SYSTEMS WITH USE CASES

Stress Testing Technologies for Citrix MetaFrame. Michael G. Norman, CEO December 5, 2001

Business Modeling with UML

Software Life Cycle Processes

Change Management. ABSTRACT

Use Cases. Massimo Felici. Massimo Felici Use Cases c

Model-driven Software Development (MDSE) for the Cloud

Lecture 4: Software design

INF-USB2 and SI-USB Quick Start Guide

Ingegneria del Software Corso di Laurea in Informatica per il Management. Object Oriented Principles

Kunal Jamsutkar 1, Viki Patil 2, P. M. Chawan 3 (Department of Computer Science, VJTI, MUMBAI, INDIA)

Testing of Digital System-on- Chip (SoC)

Software Requirements

Modeling the User Interface of Web Applications with UML

U.S. Navy Automated Software Testing

Transcription:

Analysis vs. Design: What s the Difference? Caution Requirements and Non-requirements Decision Process, Version 1 Tinkertoy Tic-Tac-Toe Kinds of Requirements Decision Process, Version 2? Separating Requirements by Kind Decision Process, Version 2 Implications of Perfect Technology Why Bother? Target Software Architecture Definitions for Development / Maintenance Activities UML for Analysis UML for Design Analysis v.s Design (14-Jan-01) Page 2-1

Analysis v.s Design (14-Jan-01) Page 2-2

Caution There are no industry-wide accepted definitions of the terms requirement, analysis, or design - The definitions of these terms are often the subject of almost religious debate Consider this to be a proposal - Be aware that this proposal has shown benefit on a number of software projects over many years - But be aware that there are people who may violently disagree with this proposal Analysis v.s Design (14-Jan-01) Page 2-3

Requirements and Non-requirements The requirements should form a contract between the developers / maintainers and the customers Requirements need to be - Unambiguous * Interpretable in only one way - Testable * Compliance (or, non-compliance) can be clearly demonstrated - Binding * The customer is willing to pay for it and is unwilling to not have it Per the above definition, the following are not requirements The system shall be fast The system shall be user friendly The system shall be maintainable The system shall be blue (assuming no one really cares what color it is) - These statements are either ambiguous, untestable, or non-binding Analysis v.s Design (14-Jan-01) Page 2-4

Decision Process, Version 1 Requirements should be separated from non-requirements "The system shall..." No Unambiguous? Testable? Binding? Yes Bucket o' Nonrequirements Bucket o' Requirements What might be reasonable requirements for a system that plays tic-tac-toe? What might be non-requirements? See also Donald Gause & Gerry Weinberg, Exploring Requirements: Quality Before Design, Dorset House, 1989 and Suzanne & James Robertson, Mastering the Requirements Process, Addison-Wesley, 1999 Analysis v.s Design (14-Jan-01) Page 2-5

Analysis v.s Design (14-Jan-01) Page 2-6

Tinkertoy Tic-Tac-Toe A very interesting implementation of Tic-Tac-Toe [Dewdney89] Memory Spindle (x48) O Blank Blank X X O Blank Blank Blank Blank X Blank O X Blank Blank Blank Blank Core Piece Board Layout 1 2 3 4 5 6 7 8 9 O X X Current Layout What set of requirements would have led to this implementation? [Dewdney89] Analysis v.s Design (14-Jan-01) Page 2-7

A. K. Dewdney, A Tinkertoy computer that plays tic-tac-toe, Scientific American, October, 1989. Analysis v.s Design (14-Jan-01) Page 2-8

Kinds of Requirements From the Tinkertoy Tic-Tac-Toe example, notice that there are two kinds of requirements: - Requirements that specify what is to be built (e.g., play tic-tac-toe per referenced rules) * These might be called Essential Requirements - Requirements that specify how it is to be built (e.g., at least 90%, by cost, of the components must be Tinkertoys) * These might be called Design Requirements Notice that this what vs. how distinction is neither new nor unique - It appears in DeMarco s Structured Analysis and System Specification in 1979 - DoD 2167A talks about Capabilities and Constraints - Fowler talks about Conceptual, Specification, and Implementation perspectives [Fowler97] -... Analysis v.s Design (14-Jan-01) Page 2-9

[Fowler97] Martin Fowler (with Kendall Scott), UML Distilled, Addison-Wesley, 1997 Analysis v.s Design (14-Jan-01) Page 2-10

Decision Process, Version 2? What might be the missing decision criteria? "The system shall..." No Unambiguous? Testable? Binding? Yes Bucket o' Nonrequirements Yes??? No Bucket o' Essential Requirements Bucket o' Design Requirements Analysis v.s Design (14-Jan-01) Page 2-11

Separating Requirements by Kind Steve McMenamin and John Palmer [McMenamin84] "If we had perfect implementation technology (e.g., a computer with infinite speed, unlimited memory, transparent interface, no failures, and no cost), which of the requirements would still need to be stated?" Every requirement that is still necessary in spite of perfect technology is an essential requirement If we had this perfect computer - Would an ATM still need to process deposit, withdraw, and account query requests? - Would ATM transaction records still need to be archived to mag-tape after 7 days? - Would an ATM be usable 95% of the time? - Would an ATM still need to record how often customers use their cards? Analysis v.s Design (14-Jan-01) Page 2-12

[McMenamin84] Stephen M. McMenamin and John F. Palmer, Essential Systems Analysis, Yourdon Press, 1984, Chapters 1 through 4. See also: Ed Yourdon, Modern Structured Analysis, Yourdon Press, 1989, Chapter 17 Analysis v.s Design (14-Jan-01) Page 2-13

Decision Process, Version 2 The decision criteria is whether or not the requirement would still exist if we had that perfect computer "The system shall..." No Unambiguous? Testable? Binding? Yes Bucket o' Nonrequirements Yes Perfect Technology? No Bucket o' Essential Requirements Bucket o' Design Requirements Note: Non-requirements can also be categorized as essential or design, if you wish Analysis v.s Design (14-Jan-01) Page 2-14

Implications of Perfect Technology Requirements about speed, cost, and capacity go into the design bucket Requirements about reliability (MTBF, MTTR) go into the design bucket Requirements about I/O mechanisms and presentations go into the design bucket Requirements about computer languages go into the design bucket Requirements about archiving go into the design bucket Requirements about the customer's business policy / business process go into the essential bucket Analysis v.s Design (14-Jan-01) Page 2-15

Why Bother? Reduce apparent complexity: one large problem becomes two smaller ones - Understand the customer s business policy / business process - Figure out how to automate that business policy / process with the available technology Isolate areas of expertise Apply the principles of coupling and cohesion at the highest level of the software architecture - More robust, less fragile systems - Enable separate evolution of the business policy / business process and the implementation technology Analysis v.s Design (14-Jan-01) Page 2-16

Target Software Architecture If the separation between business policy / business process is carried through the architecture and into the code, the highest level of the software architecture will appear as follows Input Services Translates incoming real-world events and data into a form usable by the Essential Core: X-Windows, Mouse Drivers, IEEE 488, ARINC, Buttons, Analog-Digital, etc. The "Essential Core" Implements the portion of the essential system that is automated. Output Services Translates outgoing data and events from the Essential Core into a form usable by the real-world : X-Windows, Screen Drivers, Report Generators, IEEE 488, ARINC, Lamp Drivers, Digital-Analog, etc. Architecture Services Provides internal computational support facilities to the Essential Core: Operating System, Database, Multi-task Support, Interprocess(or) Communication, etc. Each of the regions in this target software architecture should be highly cohesive about itself and loosely coupled with the other regions Analysis v.s Design (14-Jan-01) Page 2-17

Definitions for Development / Maintenance Activities Analysis and Design can be defined in terms of the kind of requirements being addressed Bucket o' Essential Requirements A model of the business policy / business process Analysis Bucket o' Design Requirements Design A technology dependent model of one solution Real, live hardware, software, policies, procedures, etc Programming Analysis v.s Design (14-Jan-01) Page 2-18

But this does not necessarily imply a waterfall lifecycle (note: activity, not phase ) Analysis v.s Design (14-Jan-01) Page 2-19

UML for Analysis Use Case Diagram A 1 2 3 4 5 B A B X Y Z Class Diagram a:a x:x y:y 1.1 1.2... b:b 5.1 z:z 5.2 y:y Collaboration Diagram for 1 Sequence Diagram for 5 Statechart for X Statechart for Y Statechart for Z Analysis v.s Design (14-Jan-01) Page 2-20

UML for Design A B X Y Z Class Diagram A X B Operations Operations... Operations Attributes Attributes Attributes Methods Methods Methods Detailed design for A Detailed design for X Detailed design for B Analysis v.s Design (14-Jan-01) Page 2-21

Key Points Requirements should be unambiguous, testable, and binding There are two kinds of requirements There are a number of good reasons to separate requirements - Reduce apparent complexity - Isolate areas of expertise - Apply the principles of coupling and cohesion at the highest level of the software architecture McMenamin & Palmer s Perfect Technology will help you make this separation Analysis can be defined as modeling the customer's business policy / business process Design can be defined as dealing with computing technology Parts of UML are useful for capturing analysis models Parts of UML are useful for capturing design models Analysis v.s Design (14-Jan-01) Page 2-22