CS 551 – Requirements and Prototyping Thanks to Rand Edwards and Ian Summerville for some of this material.

Slides:



Advertisements
Similar presentations
Chapter 8 Software Prototyping.
Advertisements

SWEN 5130 Requirements EngineeringSlide 1 Software Prototyping u Animating and demonstrating system requirements.
CS487 Software Engineering Omar Aldawud
Online Real Estate System Group Members Introduction Member 1 Name: Awais Khalil VU ID: BC Introduction: Assalam-o-Alaikum, I am Awais Khalil.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
7M701 1 Software Prototyping Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 8
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Alternate Software Development Methodologies
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
Introduction To System Analysis and Design
Software Engineering 6/e, Chapter 8
CS 5150 Software Engineering
© Prentice Hall CHAPTER 9 Application Development by Information Systems Professionals.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development.
CS 551 –Prototyping and Architecture
Lecture 4 Prototyping CS 540 – Quantitative Software Engineering.
CS 551 – Requirements and Prototyping
Predictive Modeling And Reporting Environment (PMRE) CS 552 Senior Design Architecture Review Presenting: Steve Su Ilya Chalyt Yuriy Stelmakh (Architect)
Theatrical Lighting Design and Inventory Management System Architecture Presentation Presenters: Ed Morrison, Harikrishna Patel, Joshua Zawislak.
Overview of Software Requirements
CS 564AR Systems Engineering for Software Intensive Systems with Requirements Engineering.
Connecting with Computer Science, 2e
Architecture Review Presenting: Edrin Pecani (Architect) Dan Heneghan Peter Cintula.
CS 551 Estimation Fall December QSE Lambda Protocol Prospectus Measurable Operational Value Prototyping or Modeling sQFD Schedule, Staffing,
Nu Project Management Office A web based tool to Manage Projects.
CS 551 – Requirements and Prototyping Fall 2004 Thanks to Rand Edwards and Ian Summerville for this material.
Trustworthy Systems Through Quantitative Software Engineering Larry Bernstein Stevens Institute of Technology Castle Point, Hoboken, NJ USA.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Release & Deployment ITIL Version 3
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
Introduction To System Analysis and design
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
CSI315 Web Technology and Applications
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Requirements Analysis
ITEC224 Database Programming
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Animating and.
Chapter 6 : Software Metrics
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Requirements Engineering Requirements Elicitation Process Lecture-8.
Chapter 11: Software Prototyping Omar Meqdadi SE 273 Lecture 11 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Introduction To System Analysis and Design
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
소프트웨어공학 강좌 1 Chap 7. Software Prototyping - Rapid software development to validate requirements -
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
2131 Structured System Analysis and Design By Germaine Cheung Hong Kong Computer Institute Lecture 8 (Chapter 7) MODELING SYSTEM REQUIREMENTS WITH USE.
Slide 1 Software Prototyping Class Notes for ReqEng.
S OFTWARE P ROTOTYPING C HAPTER 4. SOFTWARE PROTOTYPING Prototype: Customers and end-users of the system find it difficult to express their real requirements.
Software Prototyping Rapid software development to validate requirements.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Requirements Engineering Requirements Validation and Management Lecture-24.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 System prototyping l Prototyping is the rapid development of a system l In the past, the developed system.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CS 551 – Requirements. Software Requirements Process l Requirements Elicitation l Requirements Analysis l Use Cases l Requirements Specification l Prototype.
 System Requirement Specification and System Planning.
Rekayasa Perangkat Lunak Part-6
Prototyping in the software process
Software Prototyping.
Lecture 4 Prototyping.
CS 5150 Software Engineering
Software Prototyping Animating and demonstrating system requirements.
Chapter 2 – Software Processes
Rapid software development
Presentation transcript:

CS 551 – Requirements and Prototyping Thanks to Rand Edwards and Ian Summerville for some of this material

Software Requirements Process l Requirements Elicitation l Requirements Analysis l Use Cases l Requirements Specification l Prototype l Requirements Management

Requirements Specification Spec 1. Project Title, Revision Number and Author 2. Scope and Purpose of the system 3. Measurable Operational Value 4. Description 5. Feature List including ICED T and Simplified QFD analysis 6. Interfaces 7. Constraints 8. Change Log and Expected Changes 9. Responses to the unexpected 10. Measurements 11. Glossary 12. References

QSE Characteristics l Solving the right problem the right way l Certified against requirements. l Certified against problem l Bounded execution domain

Trustworthy Software is: l Safe: Does no harm l Reliable: No crash or hang. l Secure: No Hacking Possible As of 9/20/07

Progress Reports Progress reports are due 1:00 PM on Wednesdays Do not send WORD or PDF or text documents, use embedded text only]

Progress Report Contents Subject Line: CS 551, (Project Name) (date) Address to: body: Author: Team members:

Progress Report Sections 1. Customer Interactions and Relations 2. Accomplishments 3. Risks and Contingencies 4. Problems Faced 5. Simplifications 6. Current Estimates

Progress Report Sections 1. Customer Interactions and Relations Did you meet with your customer? Do you understand the problem better? Is your customer happy with your progress? Do you have a good relationship with your customer? 2. Accomplishments 3. Risks and Contingencies 4. Problems Faced 5. Simplifications 6. Current Estimates

Progress Report Sections 1. Customer Interactions and Relations 2. Accomplishments What was done since the last progress report, include schedule implications? What made the progress possible? 3. Risks and Contingencies 4. Problems Faced 5. Simplifications 6. Current Estimates

Progress Report Sections 1. Customer Interactions and Relations 2. Accomplishments 3. Risks and Contingencies What are the project risks? How is each risk managed? 4. Problems Faced 5. Simplifications 6. Current Estimates

Progress Report Sections 1. Customer Interactions and Relations 2. Accomplishments 3. Risks and Contingencies 4. Problems Faced Any delays encountered since your last report? Any new problems? ( “A project with no problems is in deep trouble,” Prof. Bernstein) 5. Simplifications 6. Current Estimates

Progress Report Sections 1. Customer Interactions and Relations 2. Accomplishments 3. Risks and Contingencies 4. Problems Faced 5. Simplifications How did you simplify your design? How did you simplify your development process? (Quantitatively support each simplification) 6. Current Estimates

Progress Report Sections 1. Customer Interactions and Relations 2. Accomplishments 3. Risks and Contingencies 4. Problems Faced 5. Simplifications 6. Current Estimates Estimate completion dates.

From Project Gantt Chart create this table TaskWhoWhenCurrent Estimate  Who: The person in charge of the task  When: Task committed completion date owned by the project manager  Current Estimate: Task estimated completion date owned by the “Who person”

QSE Lambda Protocol l Prospectus l Measurable Operational Value l Prototyping or Modeling l sQFD l Schedule, Staffing, Quality Estimates l ICED-T l Trade-off Analysis

Universal Software Engineering Equation Reliability (t) = ℮ -k t when the error rate is constant and where k is a normalizing constant for a software shop and = Complexity/ effectiveness x staffing

Case Study: SchedulerPro Prospectus User friendly, efficient interface for students to create and modify class schedules. Features: Visual schedule creation and editing Schedule suggestion Schedule comparison view Monitor closed-out sections

SchedulerPro Prototype Screen

SchedulerPro Notification s

Measurable Operational Value SchedulerPro MOV Course scheduling and registration time reduced by an average of 20 minutes per student per semester.

SchedulerPro Functional Goals Schedule Classes and Personal Time  Searching  Course Placement  Course Detail Viewing  Course Removal  Scheduling Personal Blocks  Notification (optional)  Course Suggestions (optional)

SchedulerPro Functional Requirements Search available classes by: Same professor Similar time Same or equivalent class but different sections Register and track registrations Color classes and arbitrary time-blocks by user choice

SchedulerPro Nonfunctional Requirements Integrate with “Web for Students’ and existing authentication systems and avoid incompatibilities Allow schedules to be saved/accessed from a server or local file Provide a scaled time-accurate visual representation of the schedule

More Non-functional requirements l Make schedules available even if the application is down, provided an internet connection is available l Perform some functions without a live connection to the ‘Web for Students’ registrar web site l Make compatible with all popular browsers Display section states and print schedules without loss of detail

SchedulerPro sQFD Features / Functions Class Filters Allocate non-class time Long term information availability Authenticate Makes scheduling classes easier Makes scheduling a semester easier Find schedules in one place Total

SchedulerPro Product Reliability l Two hours of unavailability allows for daily backups, service, and reboots of the system l Connections to server are minimized, reducing overall activity on the server

Jan. Function Point Est. FunctionLow (L)Average (A)High (H)Total Outputs Inquiries Inputs Internal Files External Interfaces Total UFP143 Adjustment Factor0.99 Total AFP141

April Function Points Est. FunctionLowAverageHighTotal Outputs1019 Inquiries3009 Inputs23018 Internal Files31031 External Interfaces11012 Total UFP79 AFP82

History of Function Points DateAFPProject Length* Projected Finish* January staff months August 2006 February staff months March 2006 April staff months May 2006 *Using COCOMO Model

ICED-T Scheduling by: IntuitiveConsistentEfficientDurableThoughtful Paper32223 Excel32333 School Scheduler34434 SchedulerPro44545

SchedulerPro Creeping Features Are the System Administrators important stakeholders? You bet…

Parnas reliability checklist Failures in communication, secondary storage, memory, or any hardware that may interrupt a transaction: »The SQL Server DBMS will not commit incomplete transactions. User will be notified of the error, and will have to redo the transaction. Operator error: »Important operations are confirmed before they are completed to avoid large accidental errors.

SchedulerPro Estimate of Reliability R(t) = 1 - F(t) F(t) = P(T ≤ t) l During load testing, we discovered the test server can support 1500 user queries a minute. l P(failures/query) = 55/1500 = l Thus, F(t) = 3.6%, which means the software is 96.4% reliable

SchedulerPro Reliability Estimate 1/ λ = MTTF = εE/kC k = scaling constant = 1 C is complexity = 2.78 E is the development effort = 36.4 ε is the expansion factor = 1.5 λ = 0.05 t is the continuous execution time for the software R(t) = 95.12%

Complexity Chart - Client l Project Type: online transaction l Problem Domain: 2 l Architecture Complexity: 3 l Logic Design – Data: 2 l Logic Design – Code: 3 »Total Score: 10 »Complexity = (10/18) * 5 = 2.78

Complexity Chart - Server l Project Type: online transaction l Problem Domain: 1 l Architecture Complexity: 2 l Logic Design – Data: 2 l Logic Design – Code: 2 »Total Score: 7 »Complexity = (7/18) * 5 = 1.94

Complexity Chart - Overall l Project Type: client/server l Problem Domain: 2 l Architecture Complexity: 3 l Logic Design – Data: 2 l Logic Design – Code: 3 »Total Score: 10 »Complexity = (10/18) * 5 = 2.78

SchedulerPro Installation Plan Installation 1. Third Party Software Required Scheduler Pro requires the following products to be already installed on the target machine. Please consult the documentation of each product for installation instructions specific to each. - Windows 2000, XP, or 2003 Server - Microsoft IIS, version 5.0 or higher - Microsoft.NET, version Microsoft SQL Server Message Queuing Service (Windows component) - ASP.NET State Service

2. Installing the Scheduler Pro application To install Scheduler Pro, please follow these steps: I. Setting up the web site 1. Create a virtual directory for the site in IIS 2. Copy the contents of the “site” folder to the directory on your hard drive represented by the IIS virtual directory II. Setting up the database 1. Using the SQL Server Enterprise Manager tool, attach the database located under the “sqldb” directory. 2. Create a new user account for accessing this database, and give it read/write access for the database. III. Installing the Suggest, Notified, and Data Loader Windows Services Open the directory titled “services”. Run each of these files: - InstallSuggestService.exe - InstallNotifierService.exe - InstallDataLoaderService.exe Each installer will properly install the service. The Data Loader installer will also ask you for the location and name of the course data file it will load. SchedulerPro Installation Plan

Requirements Engineering Process Requirements Document & Validation Report Requirements Elicitation Requirements Analysis Agreed Requirements Prospectus Decision Point: Accept Document or re-enter spiral Requirements Specification Requirements Validation Prototype Simple QFD Baseline Document

Key Question l What’s the problem?

Prospectus & Elicitation l What Information do we need? Description of the Problem Description of the Environment Scope of Solution A list of project goals Any constraints on the behavior or structure of the solution- system

oInterviews oScenarios oPrototypes oFacilitated Meetings oObservation Elicitation Techniques

Elicitation Challenges l Experts don’t know what they know! Much knowledge is tacit thru extensive use Difficult to dig it out Know-how expressed as solutions l Analysts are domain novices Tend to simplify Often miss key functions

Software Requirements Objective l Requirements Elicitation Overview l Requirements Analysis l Unified Modeling Language Use Cases Behavioral Modeling

Requirements Engineering Process Requirements Elicitation Requirements Analysis & Negotiation Agreed Requirements Draft Requirements Document Requirements Document & Validation Report Informal Statement of Requirements Decision Point: Accept Document or re-enter spiral Requirements Specification Requirements Validation l Process Models l Process Actors and Stakeholders l Process Support and Management l Process Quality and Improvements l Relationship to the Business Decision

Requirements Process - Context l Varied Sources »Different Processes »Risk Factors l Different “Consumers” »Development »Marketing »Training »Documentation »Information Base Requirements Engineering Process Business Strategy Business Strategy Technology Strategy Technology Strategy Project, Process & Documentation Standards Project, Process & Documentation Standards Opportunity Analysis Market Analysis Customer Request Software Design Software Development Software Testing Requirement s Document Marketing, Etc.

UML Framework Source: Martin, James, Odell, James J., Object-Oriented Methods: A Foundation UML Edition Prentice-Hall PTR, 1998 Source: Martin, James, Odell, James J., Object-Oriented Methods: A Foundation UML Edition Prentice-Hall PTR, 1998 Basic Foundation Level Types (Concepts) Objects Mappings Relationships Associations Subtypes/Supertypes States Events Operations Methods Triggers Control Conditions State Changes Aggregation Constraints Rules Classification Meta-Models Power Types Extended Foundation Level Structural Specification Behavioral Specification OO Program Languages …… Class Diagram … Activity Diagram … C++ Smalltalk … Application Level

Use Cases Drive Development Use Cases Test Case Design Architecture and Design

Mapping Requirements to a Framework l Requirements Purpose Prioritized Categorized Dependencies resolved Quantified Bounded PMO Models Requirements Elicitation Reports Use Cass l ICED-T Intuitive Consistent Efficient Durable Thoughtful

ICED T Mappings Ratings 1 = ‘Worst I have ever seen’ 2 = ‘Worse than Average’ 3 = ‘Average, like most other systems’ 4 = ‘Better than Average’ 5 = ‘Best I have ever seen’

Mapping Requirements to a Framework PMO Models Requirements Elicitation Reports Use Cases Static Structure Activity Model UML Framework Use Case Diagram Class Diagram Component Diagram Activity Diagram State Chart Sequence Chart Timing Chart Only as needed!

Package Diagram l Groups related use cases l Forms basis for a functional partitioning from the users point of view. l Shorthand for tracking within the project Order Entry View Status Create & Submit Orders

Activity Chart Enter Order Check Credit [submitted] [aborted] [denied] Allocate Inventory [approved] Prepare Delivery Receive Payment Create Order & Submit > Order EntryFinance Shipping Inventory Management

Simplified QFD (scale 0 to 10) Goals/FeaturesTrack Delivery Trucks.On-line Customer Inquiry Credit Check 1. Easy to Order % Less Inventory % Profit Increase Speed Product Introduction 090 Total32712

Required Measurements l Function Points l ICED T l Consistency = %features with average QFD > 7 l Stability = feature changes/month

Prototyping l Prototyping is the rapid development of a system l The principal use is to help customers and developers understand the requirements for the system Requirements elicitation – Users can experiment with a prototype to see how the system supports their work Requirements validation – The prototype can reveal errors and omissions in the requirements l Prototyping can be considered as a risk reduction activity

Approaches to Prototyping Prospectus Evolutionary prototyping Throw-away Prototyping Delivered system Executable Prototype + System Specification

Prototyping Objectives l The objective of evolutionary prototyping is to deliver a working system to end-users The development starts with those requirements which are best understood. l The objective of throw-away prototyping is to validate or derive the system requirements The prototyping process starts with those requirements which are poorly understood

Evolutionary Prototyping

Evolutionary Prototyping Advantages l Accelerated delivery of the system Rapid delivery and deployment are sometimes more important than functionality or long-term software maintainability l User engagement with the system Not only is the system more likely to meet user requirements, they are more likely to commit to the use of the system

Evolutionary Prototyping Problems l Management problems Existing management processes assume a waterfall model of development Specialist skills are required which may not be available in all development teams l Maintenance problems Continual change tends to corrupt system structure so long-term maintenance is expensive l Contractual problems

Prototypes as Specifications l Some parts of the requirements may be impossible to prototype E.g., safety-critical functions l An implementation has no legal standing as a contract l Non-functional requirements cannot be adequately tested in a system prototype

Incremental Development l System is developed and delivered in increments after establishing an overall architecture l Requirements and specifications for each increment may be developed l Users may experiment with delivered increments while others are being developed These serve as a form of prototype system l Intended to combine some of the advantages of prototyping More manageable process Better system structure

Incremental Development Process

Throw-away Prototypes l Used to reduce requirements risk l The prototype is developed from an initial specification, delivered for experiment then discarded l The throw-away prototype must NOT be considered as a final system Some system characteristics may have been left out There is no specification for long-term maintenance The system will be poorly structured and difficult to maintain

Throw-away Prototyping

Rapid Prototyping Techniques l Various techniques may be used for rapid development Dynamic high-level language development Database programming Component and application assembly l These techniques are often used together l Visual programming is an inherent part of most prototype development systems

Dynamic High-level Languages l Languages which include powerful data management facilities l Need a large run-time support system. Not normally used for large system development l Some languages offer excellent UI development facilities l Some languages have an integrated support environment whose facilities may be used in the prototype

Choice of Prototyping Language l What is the application domain of the problem? l What user interaction is required? l What support environment comes with the language? l Different parts of the system may be programmed in different languages l Example languages Java, Smalltalk, Lisp, Prolog, Perl, Tcl/TK

Database Programming Languages l Domain specific languages for business systems based around a database management system l Normally include a database query language, a screen generator, a report generator and a spreadsheet l May be integrated with a CASE toolset l The language + environment is sometimes known as a “4GL” l Cost-effective for small to medium sized business systems

Prototyping with Reuse l Application level development Entire application systems are integrated with the prototype so that their functionality can be shared For example, if text preparation is required, a standard word processor can be used l Component level development Components are mutually independent Individual components are integrated within a standard framework to implement the system Framework can be a scripting language or an integration platform.

Key points l A prototype can give end-users a concrete understanding of the system’s capabilities l Prototyping is used when rapid development is essential l Throw-away prototyping is used to understand the system requirements l In evolutionary prototyping, the system is developed by gradually adding features.

Guidelines l Rapid prototyping may require leaving out functionality or relaxing non-functional constraints l Prototyping techniques include the use of very high-level languages, database programming and prototype construction from reusable components l Prototyping is essential for parts of the system such as the user interface which cannot be effectively pre-specified l Users must be involved in prototype evaluation

Case History Harbor Radar CS 551 Senior Design

Project Overview l To primarily serve boaters in the Hudson River area with a 40 mile radius and inexpensive TV to display weather info, buoy data, and plotted locations l Interactive website Accessible to everyone Secure section where admin can control information displayed with ability to plot coordinates and alter broadcast information l Difficult time writing requirements and setting scope

Requirements l Website Design -Easy to use, clean, intuitive and clearly display maps l Reliability High reliability requested by customer Availability »Ultimate goal of 24/7, however probably not doable. 20/7 has been suggested

Requirements (cont.) l Performance Website will support 50 simultaneous users »Reach for goal of 100 Television broadcast(s) place little load on the system Response Time »Average of.5s l Constraints Television resolution will be an issue »Aim to be readable on a 9” screen Support both IE and Netscape, versions TBD

Map Module Screenshots

Larger View Grid Icons

Wrapper Module for TV Screens