FI:PV258 SW Requirements Engineering - Course Information
PV258 Software Requirements Engineering
Faculty of InformaticsSpring 2024
- Extent and Intensity
- 2/0/0. 2 credit(s) (plus extra credits for completion). Type of Completion: zk (examination).
- Teacher(s)
- Bruno Rossi, PhD (lecturer)
Radmila Čermáková (assistant) - Guaranteed by
- prof. RNDr. Tomáš Pitner, Ph.D.
Department of Computer Systems and Communications – Faculty of Informatics
Supplier department: Department of Computer Systems and Communications – Faculty of Informatics - Timetable
- Mon 10:00–11:50 A320
- Prerequisites
- No prerequisites are compulsory. The students are expected to have an understanding of software development models and different UML diagram types (as taught in the PB007 Software Engineering course). The course is taught entirely in the English language.
- Course Enrolment Limitations
- The course is also offered to the students of the fields other than those the course is directly associated with.
The capacity limit for the course is 40 student(s).
Current registration and enrolment status: enrolled: 29/40, only registered: 0/40, only registered with preference (fields directly associated with the programme): 0/40 - fields of study / plans the course is directly associated with
- Image Processing and Analysis (programme FI, N-VIZ)
- Bioinformatics and systems biology (programme FI, N-UIZD)
- Computer Games Development (programme FI, N-VIZ_A)
- Computer Graphics and Visualisation (programme FI, N-VIZ_A)
- Computer Networks and Communications (programme FI, N-PSKB_A)
- Cybersecurity Management (programme FI, N-RSSS_A)
- Formal analysis of computer systems (programme FI, N-TEI)
- Graphic design (programme FI, N-VIZ)
- Graphic Design (programme FI, N-VIZ_A)
- Hardware Systems (programme FI, N-PSKB_A)
- Hardware systems (programme FI, N-PSKB)
- Image Processing and Analysis (programme FI, N-VIZ_A)
- Information security (programme FI, N-PSKB)
- Informatics (programme FI, B-INF) (2)
- Informatics in education (programme FI, B-IVV) (2)
- Information Security (programme FI, N-PSKB_A)
- Quantum and Other Nonclassical Computational Models (programme FI, N-TEI)
- Deployment and operations of software systems (programme FI, N-SWE)
- Design and development of software systems (programme FI, N-SWE)
- Computer graphics and visualisation (programme FI, N-VIZ)
- Computer Networks and Communications (programme FI, N-PSKB)
- Principles of programming languages (programme FI, N-TEI)
- Programming and development (programme FI, B-PVA)
- Cybersecurity management (programme FI, N-RSSS)
- Services development management (programme FI, N-RSSS)
- Software Systems Development Management (programme FI, N-RSSS)
- Services Development Management (programme FI, N-RSSS_A)
- Software Systems Development Management (programme FI, N-RSSS_A)
- Software Systems (programme FI, N-PSKB_A)
- Software systems (programme FI, N-PSKB)
- Machine learning and artificial intelligence (programme FI, N-UIZD)
- Teacher of Informatics and IT administrator (programme FI, N-UCI)
- Informatics for secondary school teachers (programme FI, N-UCI) (2)
- Computer Games Development (programme FI, N-VIZ)
- Processing and analysis of large-scale data (programme FI, N-UIZD)
- Natural language processing (programme FI, N-UIZD)
- Course objectives
- Objectives of the course are to:
- provide an overview of different Software Requirements types (functional vs non-functional (quality), constraints, business requirements, business rules, user and system requirements);
- explain the Software Requirements Process (ISO/IEC/IEEE 29148 Standard for Requirements Engineering) also in agile contexts;
- provide the instruments for the definition of user requirements;
- describe different software requirements elicitation modalities;
- provide approaches for requirements analysis and verification & validation;
- provide approaches to manage requirements prioritization;
- provide approaches for software requirements effort estimation;
- describe the software architecture and the relevance in the context of software requirements.
- describe how to decompose system models: abstraction, & different system views for the definition of the software architecture from the requirements;
- describe how to model Non-Functional Requirements (NFR); - Learning outcomes
- At the end of the course students will:
- have a clear understanding about processes, tools and techniques used in requirements engineering;
- understand the concepts of software requirements elicitation, modelling, validation and verification;
- be able to model software requirements rigorously according to the latest requirements engineering standards;
- be able to conduct a prioritization process for software requirements according to different approaches;
- be able to make a reasoned choice about the best approach for requirements modelling given the context of a project;
- be able to proper manage requirements and their quality concerns;
- understand the differences between different requirements modelling approaches (agile and non-agile);
- be able to generate and maintain a software requirements specification document - Syllabus
- - Software Requirements types (functional vs non-functional (quality), constraints, business requirements, business rules, user and system requirements);
- The Software Requirements Process (ISO/IEC/IEEE 29148 Standard for Requirements Engineering);
- Business Requirements: vision, scope, context diagram, ecosystem maps, events lists, feature trees, the goal-design scale;
- User Requirements: User Stories & Use cases modelling;
- Requirements elicitation modalities: Stakeholders Analysis, design/brainstorming workshops, prototyping, pilot experiments, cost/benefit & risk analysis;
- Requirements analysis. (C)lass (R)esponsability (C)ollaborators cards. Linking Requirements to UML Analysis Models;
- Requirements Verification & Validation: Consistency checks, CRUD checks, Acceptance Testing;
- Managing requirements prioritization. Analytic Hierarchy (AHP) process, Software Quality Deployment Function (SQFD), the Agile Planning Game;
- Requirements Effort estimation & Project Velocity: Early models of effort estimation (LOCs based). Three modalities of estimation: COCOMO II, k-Nearest Neighbour, Planning Poker;
- Emergence of the software architecture from requirements. Decomposing system models: abstraction, & different system views. The Attribute-Driven Design (ADD) Method;
- Modelling Non-Functional Requirements (NFR): SQuaRE (Software product Quality Requirements and Evaluation) & ISO/IEC 25010;
- From Lean to Agile Methodologies. Overview of SCRUM, XP, and other agile approaches in relation to Requirements Engineering;
- - Software Requirements types (functional vs non-functional (quality), constraints, business requirements, business rules, user and system requirements);
- Literature
- LEFFINGWELL, Dean. Agile software requirements : lean requirements practices for teams, programs, and the enterprise. Upper Saddle River, NJ: Addison-Wesley, 2011, xxxv, 518. ISBN 9780321635846. info
- BASS, Len, Paul CLEMENTS and Rick KAZMAN. Software architecture in practice. 2nd ed. Boston: Addison-Wesley, 2003, xxii, 528. ISBN 0321154959. info
- LAUESEN, S. Software Requirements: Styles & Techniques. Addison-Wesley Professional, 2002. ISBN 978-0-201-74570-2. info
- Teaching methods
- Frontal lectures and a small interesting group project developed during lectures to see the practical application of theory and techniques seen during the course;
- Assessment methods
- 100 minutes examination with questions about the material seen during the course.
- Language of instruction
- English
- Further Comments
- Study Materials
The course is taught annually.
- Enrolment Statistics (recent)
- Permalink: https://is.muni.cz/course/fi/spring2024/PV258