Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Requirements Engineering Introduction to the Class and Course CSE 305 Dr. Naveed Ahmad."— Presentation transcript:

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

2 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)

3 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), 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.

4 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 Engineering5

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 Engineering6

7 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) 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 4 Writing functional requirements: Use case modeling, deriving functional requirement, characteristic of good requirements, software requirement specification template. 6.0

8 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 ) 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, and managers, 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 Engineering9

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

11 An introduction to requirements engineering 11Software Requirements Engineering

12 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

13 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

14 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

15 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

16 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

17 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

18 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

19 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

20 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

21 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

22 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


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

Similar presentations


Ads by Google