Software Requirements Requirements engineering Domain modeling - - PDF document

software requirements
SMART_READER_LITE
LIVE PREVIEW

Software Requirements Requirements engineering Domain modeling - - PDF document

Outline Starting point Software Requirements Requirements engineering Domain modeling Problem scoping / decomposition Requirements types Eunjee Song Functional / Non-functional Computer Science Department FURPS+


slide-1
SLIDE 1

1

Software Requirements

Eunjee Song

Eunjee Song Computer Science Department Baylor University

Software Requirements - 1

Outline

 Starting point  Requirements engineering  Domain modeling  Problem scoping / decomposition

Eunjee Song

 Requirements types  Functional / Non-functional  FURPS+  Requirements models

Software Requirements - 2

Starting Point

System Engineering Requirements Analysis Software Design Implementation Testing Deployment

Eunjee Song

Evolution Requirements must be determined Clients have produced requirements New development Evolution of existing system

A B C D

Software Requirements - 3

Why are Requirements Important?

Causes of failed software projects (Standish Group study, 1994) Incomplete requirements 13.1% Lack of user involvement 12.4% Lack of resources 10.6%

http://www.cs.cornell.edu/courses/cs501/2006sp/slides/

Eunjee Song

Unrealistic expectations 9.9% Lack of executive support 9.3% Changing requirements & specifications 8.8% Lack of planning 8.1% System no longer needed 7.5% The commonest mistake is to build the wrong system!

Software Requirements - 4

Why are Requirements Important?

As Management requested it. As the Project Leader defined it. As Systems designed it.

Eunjee Song Software Requirements - 5

As Management requested it. As the Project Leader defined it. As Systems designed it. As Programming developed it. As Operations installed it. What the user wanted.

(Pre-1970 cartoon; origin unknown)

Requirements Engineering?

 The process of discovering, documenting

and maintaining the tasks or functions the software should carry out.

Eunjee Song

 The term “engineering” implies a systematic

and repeatable process.

Software Requirements - 6

slide-2
SLIDE 2

2 Foundationsof requirements engineering

 Cognitive psychology

 What difficulties do people have describing their

needs?

 Uncovering tacit knowledge of a domain expert  Mental modeling

 Anthropology

Eunjee Song

 A systematic approach to observing human behavior

 Sociology

 Understanding political and cultural

changes/challenges caused by computerization

 Linguistics

 Understanding how to communicate unambiguously

Software Requirements - 7 

Focus on eliciting, analyzing, documenting and managing requirements for the software component of a system.

Elicitation Analysis Specification Validation Requirements Management 

Elicitation: extracting requirements from customers and users

Analysis: analyzing and organizing requirements to gain deeper understanding

Software Requirements Engineering

Eunjee Song

Results of analysis reflected in models

Specification: detailed documentation of required behavior

Validation: requirements are validated against customer/user needs

Requirements management: activities related to documenting, controlling and tracking requirements and changes to requirements

Software Requirements - 8

What is a software requirement?

 A requirement is a statement about the proposed

software that all stakeholders agree must be made true in order for the customer’s problem to be adequately solved.

 Says something about what the software does and Eunjee Song

what data it maintains

 All the stakeholders have agreed that it is valid  It helps solve the customer’s problem

 A collection of requirements is a requirements

document.

Software Requirements - 9

Understanding the Context of a Software Application 1

Whom is the application for?

Identify stakeholders (customers, end-users)

What problems will it solve?

Establish scope: determine features that will be in application and which will not

Where will it be used?

Determine whether application is mission-critical, experimental, or a non disruptive new capability etc

Eunjee Song

non-disruptive new capability, etc.

Understand how the application will fit in with other systems

When is it needed?

Determine feasible time application can be developed and required time application is needed to meet business goals

Why is it needed?

Build a business case for the application

How will it work?

Brainstorm feasibility of solving the problem

Software Requirements - 10

Understanding the Context of a Software Application 2

 Domain analysis : the process by which a

software engineer learns about the domain to better understand the problem:

 The domain is the general field of business or

technology in which the clients will use the software

Eunjee Song

software

 A domain expert is a person who has a deep

knowledge of the domain

 A domain model is created to describe some

aspect of the domain

Software Requirements - 11

What is a Domain Model?

 Structuring of domain concepts

 Identifies problem concepts and their relationships

 UML structural model used to depict structure  Key Question: What are the objects of interest in

this domain?

 their attributes? Eunjee Song  their relationships?

 IMPORTANT: This is a model of problem

concepts; these concepts are NOT software

  • bjects, but a “visual dictionary” of domain concepts.

Software Requirements - 12

slide-3
SLIDE 3

3 Problem vs. Solution views

 A problem can be expressed as:

 A difficulty the users or customers are facing  An opportunity that will result in some benefit such

as improved productivity or sales.

 The solution to the problem entails developing

software

Eunjee Song

software

 Software designs and their implementations in

source code describe solutions

 Sometimes enforcing a sharp distinction

between requirements and design can be counterproductive!

Software Requirements - 13

A Domain Model Does Not Represent Software Objects

Rents4 1 1..* VideoStore Customer

Eunjee Song

Video ID Stocks4 Rents-from 4 1

*

1

*

address name phoneNumber address name phoneNumber

A domain class model of a Video Store

Software Requirements - 14

Defining the Scope of the Problem

Narrow the scope by defining a more precise problem

 List all the things you might imagine the system doing 

Exclude some of these things if too broad

Determine high-level goals if too narrow

Example: A university registration system

Eunjee Song

Initial list of problems with very broad scope Narrowed scope Scope of another system

exam scheduling room allocation fee payment browsing courses registering exam scheduling room allocation fee payment browsing courses registering

Software Requirements - 15

Problem Decomposition

 Sometimes called partitioning or problem

elaboration

 Once scope is defined …

 It is decomposed into constituent functions/parts Eunjee Song  Input and output data objects are identified

 Decomposition help domain expert to understand

the problem

Software Requirements - 16

 Functional requirements

 Describe what the system should do (i.e., behaviors)

 Non-Functional

 everything else (e.g., Constraints that must be adhered

to during development) E l

Requirements types

Eunjee Song

 Examples  the software must restrict access to sensitive

information

 the software must deliver a response within a time

interval after a particular event has occurred

 the software must be usable by persons who are not

computer literate.

Software Requirements - 17

FURPS (A requirements categorization)

 Functionality

features, security, capabilities

 Usability

human interaction factors, help system, documentation

 Reliability

Eunjee Song

y

frequency of failure, recoverability, predictability

 Performance

response times, throughput, accuracy, resource usage

 Supportability

adaptability, maintainability, internationalization, configurability

Software Requirements - 18

slide-4
SLIDE 4

4 FURPS+

 Implementation

 Resource limitations, languages, tools, hardware

 Interface

 External system pluggins

O ti

Eunjee Song

 Operation

 System management in its operational setting

 Legal

 Licensing, leveraging open-source

Software Requirements - 19

Describing Functional Requirements

 What inputs the software should accept  What outputs the software should produce  What data the software should store that other

systems might use

Eunjee Song

systems might use

 What computations the software should perform  What are the timing and synchronization of the

above

Software Requirements - 20

Non-Functional Requirements

Three main types

Categories reflecting: usability, efficiency, reliability, maintainability and reusability:

Response time, Throughput, Resource usage, Reliability, Availability, Recovery from failure, Allowances for maintainability and enhancement, Allowances for reusability

Categories constraining the environment and technology of the software

Eunjee Song

software.

Platform

Technology to be used

Categories constraining the project plan and development methods

Development process (methodology) to be used

Cost and delivery date

Often put in contract or project plan instead

Software Requirements - 21

Key Requirements Models

 Use Cases: Describe required functionality  Requirements Class Models: Identify problem

concepts and their relationships

 Technical/data dictionary: describes domain

Eunjee Song

 Technical/data dictionary: describes domain

concepts

Software Requirements - 22