Software Requirements: A More Rigorous Look 1. Features and Use Cases at a High Level of Abstraction  Helps to better understand the main characteristics.

Slides:



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

1 Information Systems Development (ISD) Systems Development Life Cycle Overview of Analysis Phase Overview of Design Phase CP2236: Information Systems.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
IT Requirements Capture Process. Motivation for this seminar Discovering system requirements is hard. Formally testing use case conformance is hard. We.
Introduction to Software Engineering Dr. Basem Alkazemi
Requirements Engineering n Elicit requirements from customer  Information and control needs, product function and behavior, overall product performance,
1 Team Skill 4 - Team Skill 5 - Scope Refining the Systems Definition (Chapters of the requirements text) CSSE 371 Software Requirements and Specification.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
1 Software project management (intro) An introduction.
Software Requirements
Business Area Analysis Focus: Domain View (selected business area) Goals: –Isolate functions and procedures that allow the area to meet its goals –Define.
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
1 CSC-3324: Chapter 4 Title: What is a requirement? Mandatory reading: Sommerville 6, 7 th ed., Chap.: 7.
SE 555 – Software Requirements & Specifications Introduction
Karolina Muszyńska Based on
8 Systems Analysis and Design in a Changing World, Fifth Edition.
1 Case Study: Starting the Student Registration System Chapter 3.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Gregor v. Bochmann, University of Ottawa Based on Powerpoint slides by Gunter Mussbacher (2009) with material from: IEEE Standard, Daniel Amyot.
Software Requirement Specification(SRS)
What is Software Architecture?
The Software Development Life Cycle: An Overview
Chapter 2 Introduction to Requirements Management
Requirements Analysis
Topics Covered: Software requirement specification(SRS) Software requirement specification(SRS) Authors of SRS Authors of SRS Need of SRS Need of SRS.
المحاضرة الثالثة. Software Requirements Topics covered Functional and non-functional requirements User requirements System requirements Interface specification.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements.
Software System Engineering: A tutorial
 Explain the role of a system analyst.  Identify the important parts of SRS document.  Identify the important problems that an organization would face.
Feasibility Study.
BMAN Integrative Team Project Week 2 Professor Linda A Macaulay.
Dr. Tom WayCSC Software Requirements CSC 4700 Software Engineering Lecture 2 Based on Sommerville, Chapter 6.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
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.
Lecture 7: Requirements Engineering
1 15 quality goals for requirements  Justified  Correct  Complete  Consistent  Unambiguous  Feasible  Abstract  Traceable  Delimited  Interfaced.
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.
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
Capturing the requirements  Requirement: a feature of the system or a description of something the system is capable of doing in order to fulfill the.
SOFTWARE REQUIREMENT ANALYSIS AND SPECIFICATION. What is a requirement? It may range from a high-level abstract statement of a service or of a system.
Slide 1 CS 310 Ch 6: Software Requirements Requirements engineering: establishing the services that the customer requires from a system and the constraints.
Requirements Engineering Lesson 2. Terminologies:  Software Acquisition is where requirement engineering significantly meets business strategy.  Software.
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
1 Quality Attributes of Requirements Documents Lecture # 25.
Business Analysis. Business Analysis Concepts Enterprise Analysis ► Identify business opportunities ► Understand the business strategy ► Identify Business.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Winter 2007SEG2101 Chapter 31 Chapter 3 Requirements Specifications.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Software Requirements Specification Document (SRS)
Requirement engineering & Requirement tasks/Management. 1Prepared By:Jay A.Dave.
Software Engineering Lecture 10: System Engineering.
Information Technology Project Management, Seventh Edition.
1 Software Requirements Descriptions and specifications of a system.
 System Requirement Specification and System Planning.
Classifications of Software Requirements
Chapter 5 – Requirements Engineering
The Development Process of Web Applications
Software Requirements analysis & specifications
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Software Requirements Specification Document
Software Engineering Furqan Rustam.
Introduction to Requirements Management
Software Engineering Lecture #3
Lecture # 7 System Requirements
Requirements Document
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Software Development Process Using UML Recap
Presentation transcript:

Software Requirements: A More Rigorous Look 1

Features and Use Cases at a High Level of Abstraction  Helps to better understand the main characteristics of the system and how they fulfill the user needs.  Helps in assessing the system for completeness, consistency, and its fit within the environment.  Helps in determining feasibility and managing system scope before investing significant resources. 2

What is a Software Requirement (Reminder)  A software capability needed by the user to solve a problem or to achieve an objective.  A software capability that must be met or possessed by a system or a system component to satisfy a contract, standard, specification, or other formally imposed documentation. 3

Things Needed to Fully Describe the Behavior of a System 1. Inputs to the system—not only the content of the input but also the details of input devices and the form, look, and feel—protocol—of the input. 2. Outputs from the system—a description of the output devices that must be supported, as well as the protocol and formats of the information generated by the system. 4

Things Needed to Fully Describe the Behavior of a System (Cont’d) 3. Functions of the system—the mapping of inputs to outputs, and their various combinations. 4. Attributes of the system—the non-behavioral requirements such as reliability, maintainability, availability, and throughput. 5. Attributes of the system environment— additional non-behavioral requirements as the ability to operate with other applications, loads, and operating systems. 5

Relationship between Use Cases and Software Requirements  Use cases are a convenient way for expressing many requirements.  Use cases are not the only way to express requirements.  Many requirements can not easily be expressed with use cases. 6

Relationship between Features and Software Requirements  Features are simple descriptions of system services.  Features help us understand and communicate at a high level of abstraction.  Software requirements express features in more detailed terms.  Software requirements are specific enough that we can code from them. 7

The What versus How Dilemma  Requirements tell developers what the system must do.  But they should avoid stipulating any unnecessary design or implementation details, information relating to project management, or information about how the system will be tested.  The focus is on the behavior of the system. 8

Excluding Project Information  Information regarding schedules, configuration management plans, verification and validation plans, budgets, and staffing schedules should not be in the requirements documents.  These things increase volatility and take focus away from what the system is supposed to do. 9

Excluding Design Information  Information about the system design or architecture should also be excluded.  Such information might accidentally restrict the pursuit of alternate design approaches.  Excluding design information is often difficult since some requirements are stated in a way that implies a particular design. 10

How Do Design Issues Become Part of Requirements?  They are specified as requirements in the Vision Document by the development team (e.g., the user interface should be like that of Microsoft Office products).  They are specified as requirements by the stakeholders (e.g., the system data must be stored in a relational database).  A process or political decision within the development organization (e.g., the system must be developed in Java). 11

Requirements Versus Design  Requirements (mostly) precede design.  Users and customers, because they are closed to the need, make requirements decisions.  Technologists make design decisions because they are best suited to pick, among the many design options, which option will best meet the need. 12

Iterating Requirement and Design  Current requirements cause us to consider selecting certain design options.  Selected design options may initiate new requirements.  We need to continually reconsider requirements and design. 13

A Characterization of Requirements  Functional software requirements – they specify how the system behaves—its inputs, its outputs, and the functions it provides to the user.  Nonfunctional software requirements – they include usability, reliability, performance, and supportability.  Design constraints – they specify restrictions on the design of a system, or the process by which a system is developed, that do not affect the external behavior of the system but that must be fulfilled to meet technical, business, or contractual obligations. 14