[ §3 : 1 ] 2. Life-Cycle Perspective Overview 2.1 Motivation 2.2 Waterfall Model 2.3 Requirements in Context.

Slides:



Advertisements
Similar presentations
[ §4 : 1 ] 4. Requirements Processes I Overview 4.1Fundamentals 4.2Elicitation 4.3Specification 4.4Verification 4.5Validation Requirements Definition Document.
Advertisements

National Association for Regulatory Administration September 13, 2011 IT’s NOT Like Building a House Mark Parker (800)
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Object-Oriented Software Development CS 3331 Fall 2009.
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
Unit 2. Software Lifecycle
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 المحاضرة الثانية.
Software Project Management
1 Information Systems Development (ISD) Systems Development Life Cycle Overview of Analysis Phase Overview of Design Phase CP2236: Information Systems.
CSE 470 : Software Engineering The Software Process.
1 AIAI The University of Edinburgh Project Management for KBS Projects.
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
Software Process Models
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
SYSC System Analysis and Design
A Prototyping Lifecycle. The Waterefall Model and Prototyping 4 As early as the 1980’s the classic “Waterfall model” of software development was criticised.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Process Models.
©Ian Sommerville 2000 Software Engineering, 6th edition Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing.
CSC Software Engineering I 1 Overview - Software Lifecycles, Processes, Methods and Tools Software lifecycle basics Software lifecycles – build-and-fix.
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
[ §4 : 1 ] 4. Requirements Processes II Overview 4.1Fundamentals 4.2Elicitation 4.3Specification 4.4Verification 4.5Validation Software Requirements Specification.
Agile Process: Overview n Agile software engineering represents a reasonable compromise to conventional software engineering for certain classes of software.
Chapter 3 Software Processes.
® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 3: Phase Management - Inception.
The Software Development Life Cycle: An Overview
S/W Project Management
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
1 CMPT 275 Software Engineering Software life cycle.
SE-02 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it. Requirements.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Prescriptive Process Models
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
[ §5 : 1 ] 5. Summary of Requirements Products 5.1 Requirements Definition Document 5.2 Software Requirements Specification.
SOFTWARE ENGINEERING MCS-2 LECTURE # 3. SOFTWARE PROCESS  A software development process, also known as a software development life- cycle (SDLC), is.
Software Development Cycle What is Software? Instructions (computer programs) that when executed provide desired function and performance Data structures.
Lecture 7: Requirements Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
1 Introduction to Software Engineering Lecture 1.
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Lecture 14 Maintaining the System and Managing Software Change SFDV Principles of Information Systems.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
Software Requirements: A More Rigorous Look 1. Features and Use Cases at a High Level of Abstraction  Helps to better understand the main characteristics.
OHTO -01 SOFTWARE ENGINEERING LECTURE 3 Today: Requirements Analysis Requirements tell us what the system should do - not how it should do it.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Requirements Validation
1 Chapter 8 Building the Analysis Model (1) Analysis Concepts and Principles.
Software Development Life Cycle (SDLC)
Smart Home Technologies
Modelling the Process and Life Cycle. The Meaning of Process A process: a series of steps involving activities, constrains, and resources that produce.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Petter Nielsen Information Systems/IFI/UiO 1 Systems development Methodologies IN364.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Software Engineering Lecture 10: System Engineering.
Software Engineering The Software Process. 2 Why Software Engineering?  Can you approach building software as building a bridge? Why? Why not?  How.
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Slide 3.1 © The McGraw-Hill Companies, 2002 SOFTWARE LIFE-CYCLE MODELS.
Lecture 3 Prescriptive Process Models
Software Engineering The Software Process.
The Systems Engineering Context
V-Shaped SDLC Model Lecture-6.
Chapter 2 SW Process Models
Information Systems Development (ISD) Systems Development Life Cycle
Presentation transcript:

[ §3 : 1 ] 2. Life-Cycle Perspective Overview 2.1 Motivation 2.2 Waterfall Model 2.3 Requirements in Context

[ §3 : 2 ] 2.1 Motivation Premise of modern software engineering design/planning must consider product’s entire life this is a central and essential assumption In contrast, a more narrow perspective e.g., development only is likely to lead to failures lacks dependability assurances risks later expenses much > development costs

[ §3 : 3 ] 2.1 Motivation, Continued Other life-cycle concerns also fundamental maintainability, extensibility, portability, etc. must be considered throughout life-cycle as well Life-cycle starts with requirements definition … upon which everything that follows depends

[ §3 : 4 ] 2.2 Waterfall Model as Overview Understanding requirements presupposes a good grasp of the development process as a whole Waterfall model remains one of the best abstractions for the entire development process

[ §3 : 5 ] Multiple Development Perspectives Waterfall model product focused Spiral (Boehm) driven by risk analysis and mitigation planning, risk assessment, engineering, customer evaluation Evolutionary e.g. XP (Beck) increment driven rapid prototyping, regression testing, evolution Transformational specification driven formal methods

[ §3 : 6 ] 2.3 Requirements in Context Requirements may vary in level of abstraction, contents from one context to another System requirements result from an analysis or discovery process Software requirements result from a design process involving requirements allocation Sometimes there is no distinction between them

[ §3 : 7 ] 3. Software Requirements Defined 3.1Issues 3.2Functional Requirements 3.3Non-functional Requirements 3.4Significance

[ §3 : 8 ] 3.1 Issues What are requirements? Why are they significant? When are they generated? How are they generated? How are they documented? How are they managed? When are they discarded? Can requirements be implicit?

[ §3 : 9 ] Simplifying Assumptions For now, ignore how requirements are generated e.g., from customer needs Consider a very simple life cycle model

[ §3 : 10 ] Terminology A requirement is a technical objective which is imposed upon the software, i.e., anything that might affect the kind of software that is produced A requirement may be imposed by the customer the developer the operating environment The source, rationale, and nature of the requirement must be documented Requirements fall into two broad categories functional non-functional

[ §3 : 11 ] 3.2 Functional Requirements Functional requirements are concerned with what the software must do capabilities, services, or operations Functional requirements are not concerned with how the software does things, i.e., they must be free of design considerations Functional requirements are incomplete unless they capture all relevant aspects of the software’s environment they define the interactions between the software and the environment the environment may consist of users, other systems, support hardware, operating system, etc. the system/environment boundary must be defined

[ §3 : 12 ] Important Messages Requirements are difficult to identify Requirements are difficult to write Requirements change over time Discrepancies between needs and capabilities may render the software useless Life-cycle considerations must be documented since they have design implications

[ §3 : 13 ] Communication Issues Missing or vague requirements are a recipe for disaster Anything that is not made explicit may not be implemented or considered Anything that is ambiguous is likely to get implemented in the least desirable way Standard trade practices may be omitted (in principle!) Cultural settings do affect the way in which requirements are written and read Multiple views may be required to formulate a reasonably complete set of requirements

[ §3 : 14 ] Implicit Requirements An interface specification can become a requirement definition only if it is the only processing obligation its semantics are well defined A product cannot be its own requirements definition because the rationale for the design decisions is lost there is no verification criterion

[ §3 : 15 ] Non-Functional Requirements Non-functional requirements place restrictions on the range of acceptable solutions Non-functional requirements cover a broad range of issues interface constraints performance constraints operating constraints life-cycle constraints economic constraints political constraints manufacturing

[ §3 : 16 ] Important Messages Constraints are the main source of design difficulties No formal foundation on which to base the treatment of most non-functional requirements is available today Non-functional requirements are at least as dynamic as the functional ones

[ §3 : 17 ] Case Study: Sensor Display Consider a small system that displays the status of several sensors (e.g., pressure, temperature, rate of change, etc.) on a limited-size screen What are some of its functional requirements? What are some of its non-functional requirements?

[ §3 : 18 ] 3.4 Significance Requirements are the foundation for the software development process Requirements impact the life cycle throughout its phases customer/developer interactions contractual agreements feasibility studies quality assurance project planning risk analysis testing user documentation