SE 555 Software Requirements & Specification Beyond Requirements Based on Weigers Chapter17.

Slides:



Advertisements
Similar presentations
Chapter 12 Prototyping and Testing Design of Biomedical Devices and Systems By Paul H. King Richard C. Fries.
Advertisements

1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
CSC340: Tutorial 1 Software Lifecycles TA: Yuan An Date: 9:00-10:00am, Fri. Oct. 3, 2003 Location: BA1130.
Lecture # 2 : Process Models
 2004 by SEC Chapter 2 Software Development Process Models.
Chapter 2 – Software Processes
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Rational Unified Process
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
Development Processes UML just is a modeling technique, yet for using it we need to know: »what do we model in an analysis model? »what do we model in.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
SE 555 Software Requirements & Specification Requirements Validation.
Iterative development and The Unified process
SE 555 – Software Requirements & Specifications Introduction
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
UML - Development Process 1 Software Development Process Using UML (2)
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Rational Unified Process
Extreme Programming Software Development Written by Sanjay Kumar.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Unified Software Development Process (UP) Also known as software engineering process SEP describes how requirements are turned into software Defines who,
Software Engineering Chapter 15 Construction Leads to Initial Operational Capability Fall 2001.
RUP Fundamentals - Instructor Notes
Software Development *Life-Cycle Phases* Compiled by: Dharya Dharya Daisy Daisy
Chapter 2 The process Process, Methods, and Tools
The Rational Unified Process
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
Identify steps for understanding and solving the
 CS 5380 Software Engineering Chapter 8 Testing.
Software Engineering Management Lecture 1 The Software Process.
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Chapter – 9 Checkpoints of the process
IT Requirements Management Balancing Needs and Expectations.
Testing Workflow In the Unified Process and Agile/Scrum processes.
CHECKPOINTS OF THE PROCESS Three sequences of project checkpoints are used to synchronize stakeholder expectations throughout the lifecycle: 1)Major milestones,
Lecture 7: Requirements Engineering
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Inception Chapter 4 Applying UML and Patterns -Craig Larman.
Rational Unified Process (RUP) Process Meta-model Inception Phase These notes adopted and slightly modified from “RUP Made Easy”, provided by the IBM Academic.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Software Development Life Cycle (SDLC)
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Rational Unified Process (RUP)
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Requirement Engineering
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
Software Engineering Lecture 8: Quality Assurance.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Establishing Project Scope 1. Factors Affecting Project Scope  The functionality that must be delivered to meet the user’s needs  The resources available.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
System Development Life Cycle (SDLC). Activities Common to Software Projects Planning : Principles Principle #1. Understand the scope of the project.
 System Requirement Specification and System Planning.
Iterative development and The Unified process
Process 4 Hours.
CSC 480 Software Engineering
Software Engineering Management
IEEE Std 1074: Standard for Software Lifecycle
Presentation transcript:

SE 555 Software Requirements & Specification Beyond Requirements Based on Weigers Chapter17

SE 555 Software Requirements & Specification Requirements Drive Project Planning, Design, Coding, and Testing Activities Use requirements to size the project Base estimates on product size Update plans as requirements change Use requirement priorities to drive iterations Have developers review requirements Use quality attributes to drive architecture design Allocate requirements to components Trace requirements to designs and code Start test design early Use requirements to drive system testing Have users develop acceptance tests Trace requirements to tests Baselined Requirements Project Plans Designs & Code Tests

SE 555 Software Requirements & Specification From Requirements to Project Plans Requirements are a guide to success But meeting business objectives is more important than implementing all the initial requirements Update plans to reflect evolving requirements Update requirements scope and release schedule to reflect evolving business objectives A rough estimate is that 10% - 20% of total development effort should be requirements engineering effort This effort will accelerate other efforts and save wasted effort Good return on investment The requirements effort need not be (should not be) all up-front effort

SE 555 Software Requirements & Specification Use Requirements Metrics in Cost/Time Estimation Metrics Number of individually testable requirements Function points, feature points, etc. Number, type, complexity of graphical user interfaces Estimated lines of code to implement specific requirements Object class counts and association counts Effort and velocity of user stories Number of acceptance test cases Include risk factors, such as volatility, domain experience Expect scope growth (scope rarely shrinks) Gather actuals and compare to estimates to fine-tune estimation models

SE 555 Software Requirements & Specification Requirements and Scheduling Plan and fund a project in stages Unified Process: Inception, Elaboration, Construction, Transition Inception: business objectives, project scope, technical approach, risk, initial cost/time Elaboration: remove risk in scope and technology Cancel at any time business objectives are not being met 5% 20% 65% 10% Construction 50% Elaboration 30% Inception 10% Transition 10% time resources

SE 555 Software Requirements & Specification Failure: Poor Planning, Not Poor Engineering Software projects fail more often due to poor planning than to poor software engineering Project planning and management must be a core software engineering activity Effective planning requires Estimated product size Development team productivity, based on history Knowledge of the engineering activities needed to completely specify, implement, and verify a feature or use case Reasonably stable requirements Experience Don’t succumb to pressure to make commitments that you know are unachievable. Don’t succumb to pressure to commit to estimates before the necessary information is available.

SE 555 Software Requirements & Specification From Requirements to Designs and Code Boundary between requirements and design is not a sharp line Keep requirements specification free from implementation bias unless there is an explicit constraint Include designers/developers in requirements review to detect inadvertent design Functional requirements, quality attributes, and user characteristics drive architecture Use a development perspective to validate requirements “If I understand the requirements correctly, this approach I’m reviewing is a good way to satisfy them.” “Now that I have a preliminary architecture (or prototype) in hand, does it help me better understand the requirements?” Design perspective clarifies requirements Iterate requirements and design

SE 555 Software Requirements & Specification Requirements Analysis is a Design View of Requirements Requirements analysis is a developer’s perspective (from within the system/solution) of the requirements Identify classes (data and behavior) and collaborations that can realize the requirements If I cannot fully specify the classes and collaborations, then the requirements are incomplete or unclear, so fix the requirements The focus of requirements analysis is functional requirements Focus on functional architecture – identification and decomposition of functional concerns identified in requirements Can ignore most technology details until addressing quality requirements Keep the analysis model (and design model) separate from the requirements model The requirements should not expose or require internal system structure After the requirements are validated, look at the analysis model from a technical design perspective Add to it, refine it, throw it out and start over, etc. The requirements model is the final answer on what must be done

SE 555 Software Requirements & Specification Architecture Design in Analysis Architecture is especially critical for Hardware/software systems Complex, software-intensive systems Hard-to-meet quality requirements An essential requirements analysis step is to allocate system requirements to subsystems and components Including allocation of requirements to hardware vs. to software

SE 555 Software Requirements & Specification Guidelines for Analysis/Initial Design Since analysis is design to some extent, do good design Develop a solid architecture of subsystems and components Identify key classes or functional modules, including interfaces, responsibilities, and collaborations For distributed systems, understand the planned execution threads and allocation of functionality to concurrent processes Seek strong cohesion, loose coupling, information hiding, etc. Make sure all functional requirements are met and no unnecessary functions are added Make sure all exceptional conditions and alternate flows are met Ensure that the design will meet performance, robustness, reliability, and other quality requirements.

SE 555 Software Requirements & Specification Requirements to Tests Testing and requirements engineering are synergistic Good requirements engineering produces better tests; good test analysis produces better requirements [Dorothy Graham 2002] Test the product against what it is intended to do (requirements) not against its design or code Tests based on code are self-fulfilling: the test verifies that the code does what it is written to do, but is that what it is functionally supposed to do? Include testers in requirements review to confirm the requirements are testable If testers find they are testing developers assumed requirements, then validate these requirements (remove the gold plating, document the clarification) and update the SRS or remove the gold plating from the code Note: requirements provide system-level and acceptance tests Also develop unit-level and subsystem integration tests

SE 555 Software Requirements & Specification Verifying the System Against Requirements Testers need to decide how to verify the system against each requirement Test Execute the software to look for defects Inspection Examine the design and code to ensure that it satisfies the requirements Demonstration Show that the product works as expected Analysis Reason through how the system should work under certain circumstances Each functional requirement should trace to at least one test case Formal requirements specifications can be used to automatically generate test cases

SE 555 Software Requirements & Specification Conclusions The ultimate deliverable is software that meets the customers’ needs and expectations The requirements are an essential step on the path from business need to satisfied customers Don’t become a slave to your requirements process Don’t generate unnecessary documents and hold ritualized meetings that get in the way of getting software written Strive for a sensible balance between rigorous specification and off- the-top-of-the-head coding that will reduce to an acceptable level the risk of building the wrong product