CSE 403, Software Engineering Lecture 4 Documenting and Using Requirements.

Slides:



Advertisements
Similar presentations
25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department.
Advertisements

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
Kellan Hilscher. Definition Different perspectives on the components, behavioral specifications, and interactions that make up a software system Importance.
Software system modeling
Managing Data Resources
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Analysis Modeling Over view of today’s lesson T he analysis model is the first technical representation of a system. Analysis modeling uses a combination.
©Ian Sommerville 2000Software Engineering, 6/e, Chapter 71 System models l Abstract descriptions of systems whose requirements are being analysed.
Requirements (recap)‏
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
Course Instructor: Aisha Azeem
Frequently asked questions about software engineering
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
 Advantages  Easy to learn  Graphical Advantages  Help and Support  Widely used  Software compatibility  Customisable  Customisable Hardware 
Software Engineering 8. System Models.
The Design Discipline.
1 ICS 122: Software Specification and Quality Engineering Spring 2002Lecturers: H. Muccini and D. J. Richardson Lecture 13: Summary The three aspects:
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
Version 4.0. Objectives Describe how networks impact our daily lives. Describe the role of data networking in the human network. Identify the key components.
Software Engineering Chapter 8 Fall Analysis Extension of use cases, use cases are converted into a more formal description of the system.Extension.
MIS 385/MBA 664 Systems Implementation with DBMS/ Database Management Dave Salisbury ( )
CSE 403 Lecture 14 Safety and Security Requirements.
 CS 5380 Software Engineering Chapter 8 Testing.
Object-Oriented Analysis and Design An Introduction.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
CHAPTER TEN AUTHORING.
Requirements Analysis Visual Modeling] Lab 02 Visual Modeling (from Visual Modeling with Rational Rose and UML) A way of thinking about problems using.
CSE 219 Computer Science III Program Design Principles.
Chapter 7 System models.
System models l Abstract descriptions of systems whose requirements are being analysed.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Systems Analysis and Design in a Changing World, 3rd Edition
Chapter 3 Software. Learning Objectives Upon successful completion of this chapter, you will be able to: Define the term software Describe the two primary.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
An Introduction to Software Engineering. Communication Systems.
Object-Oriented Analysis and Design Fall 2009.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Fall 2010 CS4310 Requirements Engineering A Brief Review of UML & OO Dr. Guoqiang Hu Department of Computer Science UTEP 1.
Software Engineering Emphasis for Engineering Computing Courses William Hankley Computing & Information Sciences Kansas State University.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Lecture 9-1 : Intro. to UML (Unified Modeling Language)
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
CSE 403, Software Engineering Lecture 3 Requirements.
Software Engineering for Capstone Courses Richard Anderson CSE 481b Winter 2007.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
CSE 403, Software Engineering Lecture 6
Software Engineering Lecture 8: Quality Assurance.
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
 To explain why the context of a system should be modelled as part of the RE process  To describe behavioural modelling, data modelling and object modelling.
OOD OO Design. OOD-2 OO Development Requirements Use case analysis OO Analysis –Models from the domain and application OO Design –Mapping of model.
Requirements. Outline Definition Requirements Process Requirements Documentation Next Steps 1.
Requirement Classification Nisa’ul Hafidhoh Teknik Informatika
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Managing Data Resources File Organization and databases for business information systems.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Fundamentals of Object Oriented Modeling
CompSci 280 S Introduction to Software Development
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Business System Development
CSE 403, Software Engineering Lecture 2
IS301 – Software Engineering V:
Concepts used for Analysis and Design
Frequently asked questions about software engineering
CS & CS Capstone Project & Software Development Project
Department of Computer Science Abdul Wali Khan University Mardan
Software system modeling
Presentation transcript:

CSE 403, Software Engineering Lecture 4 Documenting and Using Requirements

Today Representation of requirements Use of requirements Key parts of the discussion will (probably) be about process, not artifacts Non-functional requirements

User requirements Business Requirements User Study Use Cases User Requirements Requirements Documentation

Who are requirements for? Customer To know what they are getting Management To know what they are sponsoring Marketing To know what they are selling Test To know what they are testing Dev To know what they are building

Managing the requirements process Recognizing requirements documents Process for updating requirements Tracking process for requirements changes Arbitration process for resolving ambiguity and inconsistency

Documenting requirements Multiple representations are probably needed Contradictory goals Conciseness vs. completeness Formality vs. comprehensibility

Representations for requirements Requirement lists Diagrams A picture is worth a thousand words Entity Data Diagrams Data Flow Diagrams State Charts Activity Diagrams

Unified Modeling Language UML (1997) Object diagrams Behavioral Notations Diagram notations Use case diagrams Interaction diagrams Activity diagrams Statechart diagrams Window origin size open() close() move() display() IUnknown IPersistable

Approaches to UML "Whiteboard UML" Use notation for expository tool Flexible use Partial tool support "Formal UML" Substantial tool support Restrictive Assigning semantics very challenging 37 different semantics for Statecharts

UI Mockup Advantages Disadvantages

Write the user's manual first Advantages Disadvantages

Redundancy: Good or bad? Multiple forms of documentation Used for different audiences or views But risk of inconsistency Functional spec and user spec Should describe the same thing! But what if they differ Isn't that Test's job? Development principle Avoid computing the same thing in multiple places

Brooks on flow charts The flow chart is the most thoroughly oversold piece of program documentation I have never seen an experienced programmer who routinely made detailed flow charts before beginning to write programs. Where organization standards require flow charts, these are invariably done after the fact.

Flow charts "The emperor has no clothes" Formal processes Many processes are onerous and unpleasant to follow – but enhance overall product quality Some are without value, and should be dropped Process is not the end in itself

User requirements Business Requirements User Study Use Cases User Requirements Functional Requirements Requirements Documentation Non-functional Requirements

Non-functional requirements Requirements beyond user interaction with the system Kulak and Guiney Availability, cost of ownership, maintainability, data integrity, extensibility, functionality (?), installability, reuse, operability, performance, portability, quality, robustness, scalability

Non-functionality requirements Wiegers Performance requirements Safety requirements Security requirements Software quality attributes

Safety requirements Safety critical applications Where bugs can kill Famous cases Therac-25 radiation therapy machine US Air traffic control which failed in UK Reflected map on Greenwich Median US Aviation software failed in Israel Encountered negative altitudes over Dead Sea

Safety critical systems Very high cost of failure Software component of a large system e.g. nuclear reactor Characteristics of software lead to failures Safety requirements Low probability of failure (risk analysis) Understood failure modes

Security requirements Applications are run in a hostile world Application compromise vs. system compromise Example requirements Only authenticated users can change data Application can change security permissions or execute programs Malicious user cannot crash system with bad data Threat analysis

Security requirements for multiplayer games Cheating ruins game play (and consequently market) Threats Players introducing counterfeit weapons Sending packet of death across network Using profiling tools to detect areas of activity in dungeons