requirements engineering introduction to the class and course cse 305 dr. naveed ahmad

22
Requirements Engineering Introduction to the Class and Course CSE 305 Dr. Naveed Ahmad

Upload: abigail-foster

Post on 29-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Requirements Engineering

Introduction to the Class and CourseCSE 305

Dr. Naveed Ahmad

Software Requirements Engineering2

Qualification: PhD (2007-2010) The University of Cambridge, UK

Experience: More than 10 years Research Groups

Software Engineering Research Labs (SERL at CIIT, Islamabad)

Comsats Mobile Application Development Lab ( CMAD Lab at CIIT Islamabad)

Software Requirements Engineering3

Research Area Research Area

Process Engineering, Change Management Publications ‘Change impact on a product and its redesign process: a tool for knowledge

capture and reuse’, N Ahmad, DC Wynn, PJ Clarkson, Research in Engineering Design 24 (3), 219-244

‘Pak Agri Cloud: Cloud Based Crop Management System for Pakistan’, S. Tanvir, N. Ahmad, S. Asif, H. Ahmed, Journal of Animal and Plant Sciences, Forthcoming

‘Cloud Computing and Internet as an Emerging Technology for Livestock Management in Changing Climate’, S. Tanvir, N. Ahmad, S. Asif, H. Ahmed, Journal of Animal and Plant Sciences, Forthcoming

‘Digital Research Labs Change Packaging in Systems Design’ Design Structure Matrix Methods and Applications Cambridge, MA:  MIT Press, forthcoming in 2012.

‘When should design changes be allowed to accumulate?’ Proceedings of IDMME – Virtual Concept 2010 (also published in book titled as Research in Interactive Design), Bordeaux, France, October 2010.

Software Requirements Engineering4

'Information models used to manage engineering change: A review of the literature 2005-2010' International Conference on Engineering Design– ICED 2011, Denmark, August 2011.

'An evolution of information while building cross-domain models of a design: A video experiment' International Conference on Engineering Design – ICED 2011, Denmark, August 2011.

'The Impact of Packaging Interdependent Change Requests on Project Lead Time ' Proceedings of the 12th International Design Structure Matrix Conference (DSM'10), Cambridge, UK. (Awarded best paper)

'Development and Evaluation of a Tool to Estimate the Impact of Design Change' International Design Conference – Design 2010, Dubrovnik, Croatia, May 2010.

‘An MDM-Based Approach to Manage Engineering Change Processes Across Domains of The Design Process' Proceedings of the 11th International Design Structure Matrix Conference (DSM'09), Greenville, South Carolina, USA.

'Estimating the Process Cost of Implementing Engineering Change Alternatives' Proceedings of the 2nd Nordic Conference on Product Lifecycle Management (NordPLM '09), Göteborg, Sweden, 28-29 January 2009

 

5

Course Objectives? Fundamentals of software requirements

engineering, Role of requirements engineering in software

lifecycle, Requirements engineering process, Requirements elicitation process and techniques, Requirements analysis and negotiation, Functional and non-functional requirements, Requirements engineering methods, Requirements validation, Requirement management and Requirement engineering for agile development.

Software Requirements Engineering

6

Course Learning Outcomes C1-Understand key elements and models of requirements

engineering process. C2-Understand and analyze common methods for requirements

elicitation and select appropriate method(s) to produce a set of software requirements for a medium-sized software system.

C3-Understand the key components of a use case and produce possible use case to analyze system behavior and requirements

C4-Identify both functional and non-functional requirements in a given requirements specification for a software system.

C5-Use a Standard method to develop Software Requirement Specification (SRS) document for a medium-size software system.

C6-Conduct a review of a set of software requirements to determine the quality of the requirements with respect to the characteristics of good requirements.

Software Requirements Engineering

7

Course Outline

Software Requirements Engineering

Unit TopicNo of

teaching hours

1.

Introduction to software requirements engineering: What are requirements, what is requirements engineering , what is requirements engineering process, what is requirements document, what are stakeholders, what is requirements management, what is systems engineering(G.Kotonya: Ch.1)

4.5

2.Requirements engineering process activities:Inception, elicitation, elaboration, negotiation, specification, validation, requirement management (Pressman: Ch.10 ) 3.0

3.

Requirements elicitation: Elicitation and analysis process, elicitation barriers, role of stakeholder in requirements elicitation process, elicitation techniques, prototyping, requirements analysis and negotiation.(G.Kotonya: Ch.3,S.Lauesen:Ch 8 ) 6.0

4Writing functional requirements: Use case modeling, deriving functional requirement, characteristic of good requirements, software requirement specification template. 6.0

8

Course Outline Cont…..

Software Requirements Engineering

Unit TopicNo of teaching

hours

5.

Non-functional requirements: classification of non-functional requirements, deriving non-functional requirements, requirements for critical systems, requirements engineering for safety critical systems (G.Kotonya: Ch.8,S.Lauesen:Ch 6 ) 6.0

6.Requirements Management: Stable and volatile requirements, requirements identification and storage, change management, traceability (G.Kotonya: Ch.5,S.Lauesen:Ch 9 ) 6.0

7.Methods for requirements engineering: Data-flow modeling, semantic data models, object-oriented approaches, Formal methods (G.Kotonya: Ch.6) 7.5

8.Requirements validation: requirements reviews, prototyping, model validation, requirements testing (G.Kotonya: Ch.4) 6.0

9.

Requirements engineering for agile methods:Traditional and agile requirement engineering, agile approaches to requirements engineering, role and responsibility of customers, developers, andmanagers, tools for requirements management in agile methods (A.Aurum: Ch.14) 6.0

9

Text Book(s) Gerald Kotonya, Ian Sommerville,

Requirements Engineering Processes and Techniques.

Soren Lauesen: Software Requirements - Styles and Techniques.

Software Requirements Engineering

10

Reference Book(s) Ian K. Bray (2002), An Introduction to

Requirements Engineering, Addison Wesley. Karl E. Wiegers (2003), Software

Requirements, Second Edition, Microsoft Press.

Jeremy Dick, Elizabeth Hull, Ken Jackson (2004), Requirements Engineering, Springer-Verlag.

Roger S Pressman(2010), Software Engineering, A Practitioner’s Approach, 7th Edition, McGraw-Hill.

Software Requirements Engineering

Software Requirements Engineering11

An introduction to requirements engineering

Software Requirements Engineering12

System requirements Define what the system is required to do and the

constraints under which it is required to operate The system shall maintain records of all library

materials including books, serials, newspapers and magazines, video and audio tapes, reports, collections of transparencies, computer disks and CD-ROMs.

The system shall allow users to search for an item by title, author, or by ISBN.

The system’s user interface shall be implemented using a World-Wide-Web browser.

The system shall support at least 20 transactions per second.

The system facilities which are available to public users shall be demonstrable in 10 minutes or less.

Software Requirements Engineering13

Types of requirements Very general requirements which set out in

broad terms what the system should do. Functional requirements which define part of

the system’s functionality. Implementation requirements which state how

the system must be implemented. Performance requirements which specify a

minimum acceptable performance for the system.

Usability requirements which specify the maximum acceptable time to demonstrate the use of the system.

Software Requirements Engineering14

Requirements problems The requirements don’t reflect the real needs

of the customer for the system. Requirements are inconsistent and/or

incomplete. It is expensive to make changes to

requirements after they have been agreed. There are misunderstandings between

customers, those developing the system requirements and software engineers developing or maintaining the system.

Software Requirements Engineering15

FAQS about requirements What are requirements?

A statement of a system service or constraint Examples A user-level facility (e.g. ‘the word processor must include a

spell checking and correction command’) A very general system property (e.g. ‘the system must

ensure that personal information is never made available without authorization’)

A specific constraint on the system (e.g. ‘the sensor must be polled 10 times per second’)

how to carry out some computation (e.g. ‘the overall mark is computed by adding the student examination, project and coursework marks based on the following formula ‘total_mark = exam_mark + 2 * project_mark + 2/3 * coursework_mark’)

A constraint on the development of the system (e.g ‘the system must be developed using C#’).

Software Requirements Engineering16

FAQs contd. What is requirements engineering?

The processes involved in developing system requirements

How much does requirements engineering cost? About 15% of system development costs

What is a requirements engineering process? The structured set of activities involved in

developing system requirements

Software Requirements Engineering17

FAQs contd. What happens when the requirements are

wrong? Systems are late, unreliable and don’t meet

customers needs Is there an ideal requirements engineering

process? No - processes must be tailored to organisational

needs What is a requirements document?

The formal statement of the system requirements What are system stakeholders?

Anyone affected in some way by the system

Software Requirements Engineering18

FAQs contd. What is the relationship between

requirements and design? Requirements and design are interleaved. They

should, ideally, be separate processes but in practice this is impossible

What is requirements management? The processes involved in managing changes to

requirements

Software Requirements Engineering19

Systems engineering There is a close relationship between software

and more general system requirements Computer-based systems fall into two broad

categories: User-configured systems where a purchaser puts

together a system from existing software products Custom systems where a customer produces a set

of requirements for hardware/software system and a contractor develops and delivers that system

Software Requirements Engineering20

Classes of custom systems Information systems

Primarily concerned with processing information which is held in some database.

Embedded systems Systems where software is used as a controller in

some broader hardware system Command and control systems

Essentially, a combination of information systems and embedded systems where special purpose computers provide information which is collected and stored and used to make decisions

Software Requirements Engineering21

Emergent properties Emergent properties are properties of the

system as a whole and only emerge once all of its individual sub-systems have been integrated

Examples of emergent properties Reliability Maintainability Performance Usability Security Safety

Software Requirements Engineering22

Summary Introduction to course

Course objectives Course learning outcomes Course outline Books System Requirements

Type of Requirements FAQs about requirements Computer systems

Emergent properties