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

Slides:



Advertisements
Similar presentations
CS3773 Software Engineering Lecture 01 Introduction.
Advertisements

Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Human Computer Interaction G52HCI
Requirements Specification
WKES 3202 SOFTWARE REQUIREMENTS ENGINEERING SEMESTER 1 SESSION 2004/2005.
Software Engineering General Project Management Software Requirements
CS 425/625 Software Engineering Software Requirements
Overview of Software Requirements
Requirements Management Course Plan System Group Company – Training Department By: Dr. Ahmad Abdollahzadeh.
Methodology Conceptual Database Design
Software Requirements and the Requirements Engineering Process Chapters 5 and 6.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 5 Slide 1 Requirements engineering l The process of establishing the services that the.
©Ian Sommerville 2006Critical Systems Slide 1 Critical Systems Engineering l Processes and techniques for developing critical systems.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Frequently asked questions about software engineering
Lecture 1.
Requirement engineering for an online bookstore system
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 2 Slide 1 Systems engineering 1.
Requirements Engineering
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes 1.
Chapter 3 Software Processes.
Chapter 1- Introduction
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
Chapter 1- Introduction Lecture 1 Ready, fire, aim (the fast approach to software development). Ready, aim, aim, aim, aim... (the slow approach to software.
1 Chapter 2 Socio-technical Systems (Computer-based System Engineering)
Acceptance Testing Senior Design Fall 2013
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Animating and.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
2-Oct-15 1 Introduction to Software Engineering Softwares Importance of SWE Basic SWE Concepts ICS Software Engineering.
2-Oct-15 Introduction to SWE1 Introduction to Software Engineering Softwares Importance of SWE Basic SWE Concepts.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
Software Requirements Engineering CSE 305 Lecture-2.
A GENERIC PROCESS FOR REQUIREMENTS ENGINEERING Chapter 2 1 These slides are prepared by Enas Naffar to be used in Software requirements course - Philadelphia.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
Requirements Engineering ments_analysis.
Lecture 7: Requirements Engineering
Requirements Engineering Csaba Veres. Outline What is requirements engineering? Why is it important? How can you do it (properly)?
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Foundations of Information Systems in Business. System ® System  A system is an interrelated set of business procedures used within one business unit.
Requirements Engineering ments_analysis.
Requirements Engineering Requirements Validation and Management Lecture-24.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 7 Slide 1 Requirements Engineering Processes.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Requirements Engineering Requirements Management Lecture-25.
Requirements Engineering Process CS-862 (Spring 2013)
Requirements engineering The process of establishing the services that the customer requires from a system and the constraints under which it operates.
Chapter 1- Introduction Lecture 1. Topics covered  Professional software development  What is meant by software engineering.  Software engineering.
1 Software Requirements Engineering (CS 708) Dr. Ghulam Ahmad Farrukh.
 The processes used for RE vary widely depending on the application domain, the people involved and the organisation developing the requirements.  However,
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 6 Slide 1 Software Requirements (utvalgte foiler fra Kap 6 og 7 i Sommerville)
1 Requirements Management - II Lecture # Recap of Last Lecture We talked about requirements management and why is it necessary to manage requirements.
CompSci 280 S Introduction to Software Development
Software Requirements Engineering (CS 708)
Requirements Engineering
Chapter 4 – Requirements Engineering
Chapter 1- Introduction
Software Requirements
Frequently asked questions about software engineering
SE-565 Software System Requirements I. Introduction
Requirements Management - I
Lecture # 7 System Requirements
Requirements Document
Presentation transcript:

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

Software Requirements Engineering2  Qualification: PhD ( )  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)

Research Area Software Requirements Engineering3  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),  ‘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  ‘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 ' International Conference on Engineering Design– ICED 2011, Denmark, August  'An evolution of information while building cross-domain models of a design: A video experiment' International Conference on Engineering Design – ICED 2011, Denmark, August  '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  ‘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, January 2009 

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 Engineering5

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 Engineering6

Course Outline Software Requirements Engineering7 UnitTopic No 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) Requirements engineering process activities:Inception, elicitation, elaboration, negotiation, specification, validation, requirement management (Pressman: Ch.10 ) 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 ) Writing functional requirements: Use case modeling, deriving functional requirement, characteristic of good requirements, software requirement specification template. 6.0

Course Outline Cont….. Software Requirements Engineering8 UnitTopic No 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 ) Requirements Management: Stable and volatile requirements, requirements identification and storage, change management, traceability (G.Kotonya: Ch.5,S.Lauesen:Ch 9 ) Methods for requirements engineering: Data-flow modeling, semantic data models, object-oriented approaches, Formal methods (G.Kotonya: Ch.6) Requirements validation: requirements reviews, prototyping, model validation, requirements testing (G.Kotonya: Ch.4) Requirements engineering for agile methods:Traditional and agile requirement engineering, agile approaches to requirements engineering, role and responsibility of customers, developers, and managers, tools for requirements management in agile methods (A.Aurum: Ch.14) 6.0

Text Book(s)  Gerald Kotonya, Ian Sommerville, Requirements Engineering Processes and Techniques.  Soren Lauesen: Software Requirements - Styles and Techniques. Software Requirements Engineering9

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, 7 th Edition, McGraw-Hill. Software Requirements Engineering10

An introduction to requirements engineering 11Software Requirements Engineering

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. 12Software Requirements Engineering

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. 13Software Requirements Engineering

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. 14Software Requirements Engineering

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#’). 15Software Requirements Engineering

FAQs contd. Software Requirements Engineering16  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

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 17Software Requirements Engineering

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 18Software Requirements Engineering

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 19Software Requirements Engineering

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 20Software Requirements Engineering

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 21Software Requirements Engineering

Summary Software Requirements Engineering22  Introduction to course  Course objectives  Course learning outcomes  Course outline  Books  System Requirements  Type of Requirements  FAQs about requirements  Computer systems  Emergent properties