Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.

Slides:



Advertisements
Similar presentations
System Integration Verification and Validation
Advertisements

Software Quality Assurance Plan
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
Chapter 2 – Software Processes
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 4, Requirements Elicitation.
Outline About author. The problem that discussed in the article.
Rational Unified Process
Software Testing and Quality Assurance
Unit 251 Implementation and Integration Implementation Unit Testing Integration Integration Approaches.
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5.
Recall The Team Skills 1. Analyzing the Problem 2. Understanding User and Stakeholder Needs 3. Defining the System 4. Managing Scope 5. Refining the System.
SE 555 – Software Requirements & Specifications Introduction
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
IV&V Facility Model-based Design Verification IVV Annual Workshop September, 2009 Tom Hempler.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
The chapter will address the following questions:
S/W Project Management
UML - Development Process 1 Software Development Process Using UML (2)
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Rational Unified Process Fundamentals Module 4: Disciplines II.
1 REQUIREMENT ENGINEERING Chapter 7. 2 REQUIREMENT ENGINEERING Definition Establishing what the customer requires from a software system. OR It helps.
Based on D. Galin, and R. Patton.  According to D. Galin  Software quality assurance is:  A systematic, planned set of actions necessary to provide.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
Instructor: Peter Clarke
SOFTWARE DESIGN.
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.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
1 Text Layout Introduction (1-4) Team Skill 1 – Analyzing the problem (5-7) Team Skill 2 – Understanding User and Stakeholder Needs (8-13) Team Skill 3.
Managing Change 1. Why Do Requirements Change?  External Factors – those change agents over which the project team has little or no control.  Internal.
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
CPSC 873 John D. McGregor Session 9 Testing Vocabulary.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts Rational Unified Process Fundamentals Module 4: Core Workflows II - Concepts.
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
Software Requirements Specification Document (SRS)
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
4+1 View Model of Software Architecture
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Testing throughout Lifecycle Ljudmilla Karu. Verification and validation (V&V) Verification is defined as the process of evaluating a system or component.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Process 4 Hours.
John D. McGregor Session 9 Testing Vocabulary
The Development Process of Web Applications
Software Quality Engineering
John D. McGregor Session 9 Testing Vocabulary
Recall The Team Skills Analyzing the Problem (with 5 steps)
Applied Software Implementation & Testing
John D. McGregor Session 9 Testing Vocabulary
Lecture 09:Software Testing
Verification and Validation Unit Testing
Analysis models and design models
Baisc Of Software Testing
4+1 View Model of Software Architecture
4+1 View Model of Software Architecture
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
Managing Change and Quality
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Design.
From Use Cases to Implementation
Presentation transcript:

Lecture 13

 Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually confirm that development is on track Confirm that the development results are correct Learn how to deal with change during development

Continually confirm that development is on track  Verification “The process of evaluating a system or component to determine whether the products of a given phase satisfy the conditions imposed at the start of that phase”  Thus we make a verification plan (to ensure that we have done the things we need to do) Tools to help execute this plan ○ Traceability ○ Process models ○ Analysis Inspection reviews

Confirm that the development results are correct  To check that the functionality that is developed works correctly and conforms to requirements.  Validating has two important aspects Show that product conforms to requirements To focus on customer acceptance of the final result.

Learn how to deal with change during development  Proper change management proper impact analysis ○ Traceability information Incorporate changes in a timely manner

From Requirements to Implementation  Proving that requirement is fulfilled in design and code is a non trivial effort.  For some requirements this can be easily tested e.g. “support up to an eight digit floating point input parameter”  Orthogonality Problem For requirements like “the system shall allow editing based on the security set up by the system administrator” No one to one mapping.

Orthogonality Problem Why ○ Requirements speak real world items, code speaks of stacks queues and algorithms. ○ Some requirements like performance requirements they have little to do with logical structures but more to do with process structures (how code pieces interact) ○ Implementation of requirement is distributed through code so have to look at whole rather than part. ○ Good design not due to does system map to requirements

Solution  Object Orientation Modeling with help of real time entities(objects)  Use Cases (user/system interaction in terms of scenarios)

Managing the Transition  Making Models Understanding versus oversimplification  Architecture of System (Shaw and Garlan) Description of elements from which systems are built, interaction amongst those elements, patterns that guide their composition and constraints on those patterns”

Architecture  Helps to Understand what the system does Understand how system works Be able to think and work on pieces of the system Extend the system Reuse parts of the system to build another one.

4+1 Views of Architecture  Different views for different people  Philippe Kruchten

4 Views  The logical view addresses the functionality of the system. This abstraction of the design model represents the logical structure of the system in terms of subsystems and classes, which in turn are the entities that deliver the functionality to the user.  The implementation view describes the bits and pieces that are relevant to the implementation of the system: source code, libraries, object classes, and so on. This view represents the static view of these pieces, not how they interact.  Process views, generally more useful to describe operations of the system, are extremely important for systems that have parallel tasks, interfaces with other systems, and other interactions that occur during execution. Since many modern systems exhibit high degrees of parallelism and multithreading, this view allows the reviewer to determine potential problems, such as race conditions or deadlocks. You should also use the process view to examine throughput issues and other performance issues that the user specified in the nonfunctional requirements.  Because the project modules rarely exist in a vacuum, the deployment view allocates the implementation elements to the supporting infrastructure, such as operating systems and computing platforms. This view is not especially concerned with what the interactions are but rather with the fact that there are interactions and constraints where the two systems meet.

Use Case Realization  Use case realization is used to achieve requirements to design transition.  Use cases are realized via collaboration Collaboration are societies classes, interfaces, subsystems or other elements that cooperate to achieve some behavior. Symbol of collaboration an ellipse with the name inside it. Collaboration has a ○ Structural part (class diagram) ○ Behavioral part (interaction diagram)

Role of Traceability in Requirement Verification  Vertical Versus Horizontal Traceability One to one, many to many, many to one relationship Implicit versus explicit traceability

Validation  “The process of evaluating a system or component during or at the end of the development process to determine whether it satisfies specified requirements”

 Acceptance Tests Alpha versus beta tests  Testing Your development process must plan testing activities Your development process must also provide time and resources to design the tests Your development must also provide time and resources to execute the test.  Maintain an Audit/Trail

Validation Traceability  Do we have enough tests to cover everything that needs to be tested?  Do we have any extra tests that serve no useful purpose

Requirement Based Testing  To test system against requirements Unit tests Integration tests  Table 32-1 page number 352

Managing Change  Why Do requirements Change External Factors ○ There was change to the problem ○ The user changed their mind ○ The external environment changed ○ The new system comes into existence Internal Factors ○ We failed to ask the right people the right questions at the right time. ○ We failed to create a practical process to manage change

We have met the enemy and They is Us  Official change  Unofficial change Enhancements mentioned by distributors Direct customer requests to programmers Mistakes that have been made and shipped and had to be supported Hardware features that didn’t work Knee jerk change of scope reactions to competitors Functionality inserted by developer, thinking what is best for customer Programmers “Easter eggs”

Process for Managing Change  Process Recognize that change is inevitable and plan for it. Baseline the requirements Establish a single channel to control change Use a change control system to capture changes Manage Change hierarchically  Requirement Configuration Management

THE END ANY QUESTIONS? THANK YOU