You are on page 1of 97

Software Engineering

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

Syllabus
Introduction Software Process Software Development Life Cycle Software Qualities Problems with Software Production Brooks No Silver Bullet Software Life-Cycle Models Build-and-fix Waterfall Rapid Prototyping
04/08/2011
Mrs. Sankita Patel Software Engineering @ B.Tech.IV

Syllabus(contd)
Incremental Spiral Comparison of all models ISO 9000-CMM levels-Comparison Software Requirements and Analysis Techniques Feasibility Analysis Requirement Elicitation Validation Rapid Prototyping
04/08/2011
Mrs. Sankita Patel Software Engineering @ B.Tech.IV

Syllabus(contd)
OO Paradigms vs. Structured Paradigm OO Analysis CASE tools Software Specification Specification Document Specification Qualities, Uses Specification classification-Operational Behavioral-DFD UML Petri nets Descriptive Specifications
04/08/2011
Mrs. Sankita Patel Software Engineering @ B.Tech.IV

Syllabus(contd)
ER Diagrams, Logic, Algebraic Specs Comparison of various techniques and CASE tools Introduction to Formal Approach Formal Specifications Software Verification & Validation Clean-room Engineering Formal Approaches Model Checking-SPIN tool

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

Syllabus(contd)
Case tools, ISO and Capability Maturity Model CASE tools Stepwise Refinement Cost-Benefit Analysis Scope of CASE Versions control ISO and CMM Software Testing Principles Non-execution & Execution based testing Automated static Analysis
04/08/2011
Mrs. Sankita Patel Software Engineering @ B.Tech.IV

Syllabus(contd)
Test-case selection Black-Box and Glass-Box Testing Testing Objects Testing vs. Correctness Proof Maintenance Phase

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

Software Engineering: A Preview


Software characteristics and challenges Definitions of software engineering (SE) Historical origins of SE Role of SE in system design Role of software Engineer The software engineering lifecycle Brooks No Silver Bullet

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

Software characteristics
The holistic view Software is a set of items or objects that form a configuration that includes programs, data, documents. Software is often, large and complex built by teams exist in many versions last many years undergo changes
04/08/2011
Mrs. Sankita Patel Software Engineering @ B.Tech.IV

Software poses challenges


Ensuring the quality of the software Meet growing demand & still meet the budget also ? Upgrading an aging software plant ? Avoiding the disastrous time delays ? SE part of larger projects e.g. Weather forecasting application
04/08/2011
Mrs. Sankita Patel Software Engineering @ B.Tech.IV

10

Definitions of SE
Definitions of SE : is a field of computer science dealing with software systems large and complex, often undergo changes is multi-person construction, multi-version software (Parnas 1978) is an application of a systematic, disciplined, quantifiable approach to the development, operation, maintenance of software (IEEE 1990) SE is a discipline whose aim is the production of faultfree software, delivered on time & within budget, that satisfies the users needs and that is easy to modify
04/08/2011
Mrs. Sankita Patel Software Engineering @ B.Tech.IV

11

Historical origins of SE
What does Software Engineering attempt to do ? Student coding productivity vis--vis industry coding. The field of software engineering was born in 1968 in response to chronic failures of large software projects to meet schedule & budget constraints Recognition of "the software crisis Define clearly the problem you are trying to solve and then use and develop standard tools and techniques for solving it. Use paradigms, practices & philosophies of established Engg. disciplines to solve software crisis.
4-Aug-11
Mrs. Sankita Patel Software Engineering @ B.Tech.IV

12

Role of Software Engineer


Programming skill not enough Software engineering involves "programming-in-the large"
understand requirements and write specifications
o derive models and reason about them

operate at various abstraction levels member of a team


o Skills to build a variety of models and to reason about those models in order to guide choices of the many trade-offs faced in SDLC. o communication skills o management skills

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

13

The software lifecycle (a preview)


Requirements analy sis and specif ication Design and specif ication

waterfall model

Code and module testing Integration and sy stem testing Deliv ery and maintenance
04/08/2011
Mrs. Sankita Patel Software Engineering @ B.Tech.IV

14

Brooks No Silver Bullet


Problems due to accidents o not intrinsic are correctable essence o intrinsic difficulties complexity software exhibits combinatorial explosion complexity does not grow linearly with size can be reduced by employing OOP

4-Aug-11

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

15

Brooks No Silver Bullet (contd)


conformity conformance to existing systems conformance even to newly developed systems changeability s/w expected to change easily considered to be easy to change real world changes pressures to extend the functionality invisibility s/w remains unvisualizable
4-Aug-11
Mrs. Sankita Patel Software Engineering @ B.Tech.IV

16

Software Requirements

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

17

Reference: Software Engineering By Sommerville (8th Edition) Chapter 6-7


04/08/2011
Mrs. Sankita Patel Software Engineering @ B.Tech.IV

18

Outline
Functional and non-functional requirements User requirements System requirements Interface specification The software requirements document

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

19

Requirements engineering
Requirements: The description of the services provided by the system and its operational constraints Requirement Engineering(RE): The process of finding out, analysing, documenting and checking these services and constraints

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

20

What is a requirement?
Requirement: Can be a high-level abstract statement of a service Can be a detailed, formal definition of a system function This is inevitable as requirements may serve a dual function May be the basis for a bid for a contract - therefore must be open to interpretation; May be the basis for the contract itself - therefore must be defined in detail; Both these statements may be called requirements.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

21

Types of requirement
User requirements High level abstract requirement Statements in natural language plus diagrams of the services the system provides and its operational constraints. System requirements Detailed description of what the system should do A structured document setting out detailed descriptions of the systems functions, services and operational constraints. Defines what should be implemented so may be part of a contract between client and contractor.
04/08/2011
Mrs. Sankita Patel Software Engineering @ B.Tech.IV

22

Definitions and specifications


User requir ement definition 1. The softw are m ust pr ovide a means of representing and 1. accessing e xternal files cr ea ted b y other tools .

Sy stem requir ements specification 1.1 The user should be pr ovided with facilities to define the ty pe of 1.2 external files . 1.2 Each e xternal file ty pe ma y have an associa ted tool w hich ma y be 1.2 applied to the file . 1.3 Each e xternal file ty pe ma y be repr esented as a specific icon on 1.2 the user s displa y . 1.4 Facilities should be pr o vided for the icon r epresenting an 1.2 external file ty pe to be defined b y the user . 1.5 When a user selects an icon r epr esenting an e xternal file, the 1.2 effect of that selection is to apply the tool associated with the ty pe of 1.2 the external file to the file represented by the selected icon.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

23

Requirements readers
Client managers System end-users Client eng ineers Contractor managers System architects System end-users Client eng ineers System architects Software developers

User requirements

System requirements

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

24

Functional and non-functional requirements


Functional requirements
Statements of services the system should provide how the system should react to particular inputs how the system should behave in particular situations.

Non-functional requirements
constraints on the services or functions offered by the system such as timing constraints, constraints on the development process, standards, etc. Generally applied to the system as a whole.

Domain requirements
Requirements that come from the application domain of the system and that reflect characteristics of that domain.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

25

Functional requirements
Describe functionality or system services. Depend on the type of software, expected users and the type of system where the software is used. Functional user requirements may be high-level statements of what the system should do but functional system requirements should describe the system services in detail.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

26

The LIBSYS system


A library system that provides a single interface to a number of databases of articles in different libraries. Users can search for, download and print these articles for personal study.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

27

Examples of functional requirements


The user shall be able to search either all of the initial set of

databases or select a subset from it.


The system shall provide appropriate viewers for the user to read documents in the document store.

Every order shall be allocated a unique identifier (ORDER_ID) which the user shall be able to copy to the accounts permanent storage area.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

28

Requirements imprecision
Problems arise when requirements are not precisely stated. Ambiguous requirements may be interpreted in different ways by developers and users. Consider the term appropriate viewers User intention - special purpose viewer for each different document type; Developer interpretation - Provide a text viewer that shows the contents of the document.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

29

Requirements completeness and consistency


In principle, requirements should be both complete and consistent. Complete They should include descriptions of all facilities required. Consistent There should be no conflicts or contradictions in the descriptions of the system facilities. In practice, it is impossible to produce a complete and consistent requirements document Mistakes and omissions are made while writing requirements for large systems Different system stakeholders have inconsistent requirements
04/08/2011
Mrs. Sankita Patel Software Engineering @ B.Tech.IV

30

Non-functional requirements
Define system properties and constraints e.g. Reliability, response time and storage requirements. Constraints are I/O device capability, system representations, etc. Process requirements may also be specified mandating a particular CASE system, programming language or development method. Non-functional requirements may be more critical than functional requirements. If these are not met, the system is useless. E.g. What if aircraft system doesnt meet reliability requirement??? E.g. What if a real-time control system fails to meet its performance requirement??
04/08/2011
Mrs. Sankita Patel Software Engineering @ B.Tech.IV

31

Non-functional classifications
Product requirements
Requirements which specify that the delivered product must behave in a particular way e.g. execution speed, reliability, etc.

Organisational requirements
Requirements which are a consequence of organisational policies and procedures e.g. process standards used, implementation requirements, etc.

External requirements
Requirements which arise from factors which are external to the system and its development process e.g. interoperability requirements, legislative requirements, etc.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

32

Non-functional requirements examples


Product requirement
The user interface for LIBSYS shall be implemented as simple HTML without frames or Java applets.

Organisational requirement
The system development process and deliverable documents shall conform to the process and deliverables defined in XYZCo-SP-STAN-95.

External requirement
The system shall not disclose any personal information about customers apart from their name and reference number to the operators of the system.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

33

Non-functional requirement types


Non-functional requir ements

Product requir ements

Organisational requir ements

External requir ements

Efficiency requir ements

Relia bility requir ements

Porta bility requir ements

Inter oper a bility requir ements

Ethical requir ements

Usa bility requir ements

Deli very requir ements

Implementa tion requir ements

Standar ds requir ements

Leg islative requir ements

Performance requir ements

Space requir ements

Pri vacy requir ements

Safety requir ements

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

34

Goals and requirements


Non-functional requirements may be very difficult to state precisely and imprecise requirements may be difficult to verify. A general intention of the user such as ease of use. Verifiable non-functional requirement
A statement using some measure that can be objectively tested.

Goals are helpful to developers as they convey the intentions of the system users.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

35

Examples
A system goal
The system should be easy to use by experienced controllers and should be organised in such a way that user errors are minimised.

A verifiable non-functional requirement


Experienced controllers shall be able to use all the system functions after a total of two hours training. After this training, the average number of errors made by experienced users shall not exceed two per day.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

36

Requirements measures
Property Speed Measure Processed transactions/second User/Event response time Screen refresh time M Bytes Number of ROM chips Training time Number of help frames Mean time to failure Probability of unavailability Rate of failure occurrence Availability Time to restart after failure Percentage of events causing failure Probability of data corruption on failure Percentage of target dependent statements Number of target systems

Size Ease of use Reliability

Robustness

Portability

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

37

Requirements interaction
Conflicts between different non-functional requirements are common in complex systems. Spacecraft system To minimise weight, the number of separate chips in the system should be minimised. To minimise power consumption, lower power chips should be used. However, using low power chips may mean that more chips have to be used. Which is the most critical requirement?

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

38

Domain requirements
Derived from the application domain and describe system characteristics and features that reflect the domain. Domain requirements be new functional requirements, constraints on existing requirements or define specific computations. If domain requirements are not satisfied, the system may be unusable.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

39

Library system domain requirements


There shall be a standard user interface to all databases which shall be based on the Z39.50 standard. Because of copyright restrictions, some documents must be deleted immediately on arrival. Depending on the users requirements, these documents will either be printed locally on the system server for manually forwarding to the user or routed to a network printer.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

40

Domain requirements problems


Understandability Requirements are expressed in the language of the application domain; This is often not understood by software engineers developing the system. Implicitness Domain specialists understand the area so well that they do not think of making the domain requirements explicit.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

41

User requirements
Should describe functional and non-functional requirements in such a way that they are understandable by system users Should only specify external behaviour of system and avoid details as far as possible Avoid using software jargon, structured notations or formal notations Should be defined using natural language, tables and diagrams as these can be understood by all users.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

42

Problems with natural language


Lack of clarity Precision is difficult without making the document difficult to read. Requirements confusion Functional and non-functional requirements tend to be mixedup. Requirements amalgamation Several different requirements may be expressed together.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

43

LIBSYS requirement

LIBSYS shall provide a financial accounting system that maintains records of all payments made by users of the system. System managers may configure this system so that regular users may receive discounted rates.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

44

Guidelines for writing requirements


Invent a standard format and use it for all requirements. May also include information on who proposed the requirement Use language in a consistent way. Use shall for mandatory requirements, should for desirable requirements. Use text highlighting to identify key parts of the requirement. Avoid the use of computer jargon.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

45

System requirements
More detailed specifications of system functions, services and constraints than user requirements. They are intended to be a basis for designing the system. They may be incorporated into the system contract. System requirements may be defined or illustrated using system models

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

46

Requirements and design


In principle, requirements should state what the system should do and the design should describe how it does this. In practice, requirements and design are inseparable A system architecture may be designed to structure the requirements; The system may inter-operate with other systems that generate design requirements; The use of a specific design may be a domain requirement.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

47

Problems with NL specification


Ambiguity The readers and writers of the requirement must interpret the same words in the same way. NL is naturally ambiguous so this is very difficult. Over-flexibility The same thing may be said in a number of different ways in the specification. Lack of modularisation NL structures are inadequate to structure system requirements.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

48

Alternatives to NL specification
Notation Structured natural language Design description language s Graphical notations Description This approach depends on defining standard forms or templates to express the requirements specification. This approach uses a language like a programming langu age but with more ab stract features to specify the requirements by defining an operational model of the system. This approach is not now widely used although it can be useful for interface specifications. A graphical languag e, supplemented by text annotations is used to define the functional requirements for the system. An early example of such a graphical language was SADT. Now, use-case descriptions and sequence d iagrams are commonly used . These are notations based on mathematical concep ts such as finite-state machines or sets. These unambiguous specifications reduce the argu ments between customer and contractor about system functionality. However, most customers dont understand formal specifications and are reluctant to accept it as a system contract.

Mathematical specifications

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

49

Structured language specifications


All requirements are written in standard way It maintains most of the expressiveness and understandability of natural language but ensures that some degree of uniformity Limits the terminology that can be used Use templates to specify system requirements

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

50

Structured language specifications


FUNCTION DESCRIPTION INPUTS SOURCE OUTPUTS DESTINATIONS ACTIONS REQUIRES PRE-CONDITION POST-CONDITION SIDE EFFECTS
04/08/2011
Mrs. Sankita Patel Software Engineering @ B.Tech.IV

51

Interface specification
Procedural interfaces Existing programs or sub-systems offer a range of services Application Programming Interfaces (APIs) Data Structures To be passed from one sub-system to another Can be best specified by graphical data models Representation of data Data that have been established for an existing sub-systems Most common in embedded systems

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

52

The software requirements document


The requirements document is the official statement of what is required of the system developers. Should include both a definition of user requirements and a specification of the system requirements. It is NOT a design document. Hence, it should consist of WHAT the system should do rather than HOW to do it

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

53

Users of a requirements document

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

54

IEEE requirements standard


Defines a generic structure for a requirements document that must be instantiated for each specific system. Introduction. General description. Specific requirements. Appendices. Index.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

55

Requirements document structure


Preface Introduction Glossary User requirements definition System architecture System requirements specification System models System evolution Appendices Index

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

56

Requirements Engineering Processes (chap 7: Sommerville 8th Edition)


04/08/2011
Mrs. Sankita Patel Software Engineering @ B.Tech.IV

57

Outline
Feasibility studies Requirements elicitation and analysis Requirements validation Requirements management Rapid prototyping OO Paradigms vs. Structured Paradigm OO Analysis CASE tools

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

58

Requirements engineering processes


The goal is to create and maintain a system requirements document. Includes four sub-processes: Feasibility Study Elicitation and analysis Specification Validation

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

59

The requirements engineering process

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

60

Requirements engineering
Sy stem requirements specification and modeling User requirements specification Business requirements specification Sy stem requirements elicitation User requirements elicitation Feasibility study Prototy ping Requirements elicitation Reviews Requirements validation Syst em requirements document

Requirements specification

Feasibility studies
A feasibility study decides whether or not the proposed system is worthwhile. Input to the feasibility study: A set of preliminary business requirements An outline description of the system How the system is intended to support business processes Output of feasibility study: A report that recommends whether or not it is worth carrying on with the requirements engineering and system development process
04/08/2011
Mrs. Sankita Patel Software Engineering @ B.Tech.IV

62

Feasibility studies
A short focused study that checks If the system contributes to organisational objectives; If the system can be engineered using current technology and within budget; If the system can be integrated with other systems that are used.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

63

Feasibility study implementation


Based on information assessment (what is required), information collection and report writing. Questions for people in the organisation
What if the system wasnt implemented? What are current process problems? How will the proposed system help? What will be the integration problems? Is new technology needed? What skills? What facilities must be supported by the proposed system?

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

64

Elicitation and analysis


Involves technical staff working with customers to find out about the application domain, the services that the system should provide and the systems operational constraints. May involve end-users, managers, engineers involved in maintenance, domain experts, trade unions, etc. These are called stakeholders. Stakeholders: Any person or a group who will be affected by the system, directly or indirectly.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

65

Problems of requirements analysis


Stakeholders dont know what they really want. Stakeholders express requirements in their own terms. Different stakeholders may have conflicting requirements. Organisational and political factors may influence the system requirements. The requirements change during the analysis process. New stakeholders may emerge and the business environment change.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

66

Process activities
Requirements discovery
Interacting with stakeholders to discover their requirements. Domain requirements are also discovered at this stage.

Requirements classification and organisation


Groups related requirements and organises them into coherent clusters.

Prioritisation and negotiation


Prioritising requirements and resolving requirements conflicts.

Requirements documentation
Requirements are documented and input into the next round of the spiral.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

67

Requirements discovery
The process of gathering information about the proposed and existing systems and distilling the user and system requirements from this information. Sources of information include documentation, system stakeholders and the specifications of similar systems.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

68

ATM stakeholders
Bank customers Representatives of other banks Bank managers Counter staff Database administrators Security managers Marketing department Hardware and software maintenance engineers Banking regulators

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

69

Viewpoints
View point oriented architecture: A key strength is that it recognises multiple perspectives and provides a framework for discovering conflicts Stakeholders may be classified under different viewpoints. This multi-perspective analysis is important as there is no single correct way to analyse system requirements.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

70

Types of viewpoint
Interactor viewpoints
People or other systems that interact directly with the system. In an ATM, the customers and the account database are interactor VPs.

Indirect viewpoints
Stakeholders who do not use the system themselves but who influence the requirements. In an ATM, management and security staff are indirect viewpoints.

Domain viewpoints
Domain characteristics and constraints that influence the requirements. In an ATM, an example would be standards for inter-bank communications.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

71

Viewpoint identification
Identify viewpoints using Providers and receivers of system services; Systems that interact directly with the system being specified; Regulations and standards; Sources of business and non-functional requirements. Engineers who have to develop and maintain the system; Marketing and other business viewpoints.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

72

LIBSYS viewpoint hierarchy


All VPs

Indirect

Interactor

Domain

Library manager

Finance

Ar ticle providers

Users

Library staff

UI standards

Classification sy stem

Students

Staff

External

Sy stem managers

Cataloguers

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

73

Interviewing
In formal or informal interviewing, the RE team puts questions to stakeholders about the system that they use and the system to be developed. There are two types of interview Closed interviews where a pre-defined set of questions are answered. Open interviews where there is no pre-defined agenda and a range of issues are explored with stakeholders.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

74

Interviews in practice
Normally a mix of closed and open-ended interviewing. Interviews are good for getting an overall understanding of what stakeholders do and how they might interact with the system.

Interviews are not good for understanding domain requirements Requirements engineers cannot understand specific domain terminology; Some domain knowledge is so familiar that people find it hard to articulate or think that it isnt worth articulating.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

75

Effective interviewers
Interviewers should be open-minded, willing to listen to stakeholders and should not have pre-conceived ideas about the requirements. They should prompt the interviewee with a question or a proposal and should not simply expect them to respond to a question such as what do you want.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

76

Scenarios
Scenarios are real-life examples of how a system can be used. They should include A description of the starting situation; A description of the normal flow of events; A description of what can go wrong; Information about other concurrent activities; A description of the state when the scenario finishes.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

77

LIBSYS scenario (1)


Initial assumption: The user has logged on to the LIBSYS system and has located the journal containing the copy of the article. Normal: The user selects the article to be copied. He or she is then prompted by the system to ei ther provide subscriber information for the journal or to indicate how they will pay for the article. Alternative payment methods are by credit card or by quoting an organisational account number. The user is then asked to fill in a copyright form that maintains details of the transaction and they then submit this to the LIBSYS system. The copyright fo rm is checked and, if OK, the PDF version of the article is downloaded to the LIBSYS working area on the userscomputer and the user is informed that it is available. The user is asked to select a printer and a copy of the article is printed. If the article has been flagged as print-onlyit is deleted from the user system once the user has confirmed that printing is complete. s

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

78

LIBSYS scenario (2)


What can go wrong: The user may fail to fill in the copyright form correctly. In this case, the fo rm should be re-presented to the user for correction. If the resubmitted form is still incorrect then the usersrequest for the article is rejected. The payment may be rejected by the system. The users equest for the article is rejected. r The article download may fail. Retry until successful or the user terminates the session. It may not be possible to print the article. If the article is not flagged as print-onlythen it is held in the LIBSYS workspace. Otherwise, the article is deleted and the user account credited with the cost of the s article. Other activities: Simultaneous downloads of other articles. System state on completion: User is logged on. The downloaded article has been deleted from LIBSYS workspace if it has been flagged as print-only.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

79

Use cases
Use-cases are a scenario based technique in the UML which identify the actors in an interaction and which describe the interaction itself. A set of use cases should describe all possible interactions with the system. Sequence diagrams may be used to add detail to use-cases by showing the sequence of event processing in the system.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

80

Article printing use-case

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

81

LIBSYS use cases

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

82

Print article sequence

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

83

Social and organisational factors


Software systems are used in a social and organisational context. This can influence or even dominate the system requirements. Social and organisational factors are not a single viewpoint but are influences on all viewpoints. Good analysts must be sensitive to these factors but currently no systematic way to tackle their analysis.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

84

Requirements validation
Concerned with demonstrating that the requirements define the system that the customer really wants. Requirements error costs are high so validation is very important Fixing a requirements error after delivery may cost up to 100 times the cost of fixing an implementation error.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

85

Requirements checking
Validity. Does the system provide the functions which best support the customers needs? Consistency. Are there any requirements conflicts? Completeness. Are all functions required by the customer included? Realism. Can the requirements be implemented given available budget and technology Verifiability. Can the requirements be checked?

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

86

Requirements validation techniques


Requirements reviews Systematic manual analysis of the requirements. Prototyping Using an executable model of the system to check requirements. Test-case generation Developing tests for requirements to check testability.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

87

Requirements reviews
Regular reviews should be held while the requirements definition is being formulated. Both client and contractor staff should be involved in reviews. Reviews may be formal (with completed documents) or informal. Good communications between developers, customers and users can resolve problems at an early stage.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

88

Review checks
Verifiability. Is the requirement realistically testable? Comprehensibility. Is the requirement properly understood? Traceability. Is the origin of the requirement clearly stated? Adaptability. Can the requirement be changed without a large impact on other requirements?

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

89

Requirements management
Requirements management is the process of managing changing requirements during the requirements engineering process and system development. Requirements are inevitably incomplete and inconsistent
New requirements emerge during the process as business needs change and a better understanding of the system is developed; Different viewpoints have different requirements and these are often contradictory.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

90

Requirements change
The priority of requirements from different viewpoints changes during the development process. System customers may specify requirements from a business perspective that conflict with end-user requirements. The business and technical environment of the system changes during its development.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

91

Requirements evolution

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

92

Enduring and volatile requirements


Enduring requirements. Stable requirements derived from the core activity of the customer organisation. E.g. a hospital will always have doctors, nurses, etc. May be derived from domain models Volatile requirements. Requirements which change during development or when the system is in use. In a hospital, requirements derived from health-care policy

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

93

Requirements classification
Requirement Type Mutable requirements Emergent requirements Consequential requirements Compatibility requirements Description Requirements that change because of changes to the environment in which the organisation is operating. For example, in hospital systems, the funding of patient care may change and thus require diffe rent treatment info rmation to be collected. Requirements that emerge as the customer's understanding of the system develops during the system development. The design process may reveal new emergent requirements. Requirements that result from the introduction of the computer system. Introducing the computer system may change the organisations processes and open up new ways of working which generate new system requirements Requirements that depend on the particular systems or business processes within an organisation. As these change, the compatibility requirements on the commissioned or delivered system may also have to evolve.

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

94

Requirements management planning


During the requirements engineering process, you have to plan:
Requirements identification
o How requirements are individually identified;

A change management process


o The process followed when analysing a requirements change;

Traceability policies
o The amount of information about requirements relationships that is maintained;

CASE tool support


o The tool support required to help manage requirements change;

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

95

Traceability
Traceability is concerned with the relationships between requirements, their sources and the system design Source traceability
Links from requirements requirements; to stakeholders who proposed these

Requirements traceability
Links between dependent requirements;

Design traceability
Links from the requirements to the design;

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

96

A traceability matrix
Req. id 1.1 1.2 1.3 2.1 2.2 2.3 3.1 3.2 1.1 1.2 D R R R D R R 1.3 R D R D D D 2.1 2.2 2.3 D 3.1 3.2 D

04/08/2011

Mrs. Sankita Patel Software Engineering @ B.Tech.IV

97

You might also like