Software Requirement (SWR302)
Vietnamese title: Yêu cầu phần mềm
Credits: 3
Prerequisites: SWE102 or SWE201c

Description:
This course is a model-based introduction to RE, providing the conceptual background and terminology on RE, addressing a variety of techniques for requirements development including Analysis and Requirements Elicitation; Requirements Evaluation; Requirements Specification and Documentation; Requirements Quality Assurance. To implement these frameworks, student will be learnt how to find appropriate customer representatives, elicit requirements from them, and document user requirements, business rules, functional requirements, data requirements, and nonfunctional requirements.
The numerous visual models that will be represented to illustrate the requirements from various perspectives to supplement natural-language text. Other contents recommend the most effective requirements approaches for various specific classes of projects: agile projects developing products of any type, enhancement and replacement projects, projects that incorporate packaged solutions, outsourced projects, business process automation projects, business analytics projects, and embedded and other real-time systems.

Learning outcomes:
Develop a good understanding of principles and techniques for requirement enginneering (RE) regarding requirement inception, requirement development(elicitation, analysis, specification, validation) and requirement management; understand main characteristics of specific projects
Identify the appropriate requirements elicitiation techniques to identify requirements
Utilize various requirements validation techniques to critically evaluate their requirements to identify defects
Analysis of system requirements and the production of system specifications
Create models of requirements using a variety of notations and techniques, including domain and usage models
Design and plan software solutions to problems using an object-oriented strategy
Prepare and deliver coherent and structured verbal and written technical reports
Understand how to reduce risks by prototyping.
Utilize the tactic of requirements management regarding changing, tracing and improving requirements

Student tasks:
- Students must attend at least 80% of contact slots in order to be accepted to the final examination.
- Student is responsible to do all exercises given by instructor in class or at home and submit on time
- Promptly access to the https://flm.fpt.edu.vn/ for up-to-date course information

Tools:
- Microsoft office for documents and presentation.
- https://www.visual-paradigm.com/download/community.jsp students must install visual-paradigm for drawing UML (offline) before taking Final Practical Exam
- BOUML (http://bouml.free.fr/) : UML Drawing software

Materials:
description: Software Requirements
author: Karl E. Wiegers
publisher: Microsoft Press
edition: Third Edition
isbn: 978-0-7356-7966-5
description: More About Software Requirements: Thorny Issues and Practical Advice
author: Karl E. Wiegers
publisher: Microsoft Press
isbn: 978-0-7356-2267-8
description: The Software Requirements Memory Jogger: A Pocket Guide to Help Software And Business Teams Develop and Manage Requirements
author: Ellen Gottesdiener
publisher: GOAL/QPC
isbn: 978-1-57681-060-6
description: Requirements Engineering: Secure Software Specifications Specialization
publisher: Coursera
note: https://www.coursera.org/specializations/requirements-engineering-secure-software

Assessments:
category: Assignment
type: on-going
weight: 20.0
duration: Option 1: 26 slots ; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
question_type: LO1, LO2, LO3, LO4, LO5, LO6, LO7, LO8
no_question: Option 1: Teacher raise projects, students practice step by step to complete their assignments. Student could base on study guide COS_Document_Example to do assignments. Option 2 (For Constructivism Approach only): Follow lecturer's proposal
knowledge_and_skill: Option 1: Depending on questions in assignment Option 2 (For Constructivism Approach only): Follow lecturer's proposal
grading_guide: All subjects in syllabus
note: in class, by teacher
category: LAB
type: on-going
weight: 10.0
duration: Option 1: 26slots/each Option 2 (For Constructivism Approach only): Follow lecturer's proposal
question_type: LO5
no_question: 1. Model 1 Context diagram based on the topic of assignment. 2. Model 1 Swimlane diagam based on the topic of assignment. 3. Model 1 State diagam based on the topic of assignment.
knowledge_and_skill: Option 1: Depending on questions in assignment Option 2 (For Constructivism Approach only): Follow lecturer's proposal
grading_guide: Chapter 5, Chapter 12
note: In class, by teacher
category: Progress Test
type: on-going
weight: 20.0
duration: Option 1: 30'/each; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
question_type: LO1, LO2, LO3, LO4, LO5, LO6, LO7, LO8, LO9
no_question: Option 1: Multiple choices Marked by Computer or a suitable format; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
knowledge_and_skill: Option 1: 30/each; Option 2 (For Constructivism Approach only): Follow lecturer's proposal
grading_guide: Test 1: Chapter 1-> Chapter 9 Test 2: Chapter 10 ->20 Test 3: Chapter 21 -->32
note: in class, by LMS system
category: Final exam
type: Final exam
weight: 50.0
duration: 145 minutes
question_type: All CLOs
grading_guide: All subjects in syllabus
note: By exam board
Manual evaluating
category: Practical Exam
type: Final exam
weight: 25.0
duration: 85'
question_type: LO1, LO2, LO3, LO4, LO5, LO7, LO8, LO9
grading_guide: All subjects in syllabus
note: LSM system
category: Theory Exam
type: Final exam
weight: 25.0
duration: 60'/each
question_type: LO1, LO2, LO3, LO4, LO5, LO6, LO7, LO8, LO9
no_question: Multiple choicesMarked by Computer
knowledge_and_skill: 60
grading_guide: All subjects in syllabus
note: LSM system

Schedule:
session: Course Introduction
The essential of software requirement
- Software requirements defined
learning_outcomes: I
materials: SWR302
session: The essential of software requirement (cnt)
- Requirements development and management
- When bad requirements happen to good people
- Benefits from a high-quality requirements process
learning_outcomes: I
materials: SWR302
session: Requirements from the customer’s perspective
- Who is the customer?
- The customer-development partnership
- Creating a culture that respects requirement
learning_outcomes: I
T
session: Requirements from the customer’s perspective (cnt)
- Identifying decision makers
- Reaching agreement on requirements
Assignment introduction
learning_outcomes: I
T
session: Good practices for requirements engineering (introduce)
- A requirements development process framework
- Requirements elicitation
- Requirements analysis
- Requirements specification
- Requirements validation
- Requirements management
learning_outcomes: I
T
session: Good practices for requirements engineering (practice/apply)
learning_outcomes: I
T
session: Group discussion
Summary and Exercises (groups)
session: Group discussion
Summary and Exercises (groups)
session: The business analyst
- The business analyst role
- The business analyst’s tasks
- Essential analyst skills
- Essential analyst knowledge
- The making of a business analyst
- The analyst role on agile projects
learning_outcomes: I
T
U
session: Establishing the business requirements
- Defining business requirements
- Vision and scope document
- Scope representation techniques
learning_outcomes: I
T
U
session: Establishing the business requirements (con't)
- Keeping the scope in focus
- Vision and scope on agile projects
- Introduce LAB requirements: draw 1 context diagram, 1 swimlane diagram and 1 state diagram.
session: Finding the voice of users
- User classes
- User personal
- Connecting with user representatives
- The product champion
- User representation on agile project
- Resolving conflicting requirements
session: Requirements elicitation
- Requirements elicitation techniques: Interviews, workshops, Focus groups, Observations, Questionaires, System interface analysis, User Interface Analysis, Document Analysis
- Planning and Preparing for elicitation on your project
- Performing elicitation activities
- Follow up after elicitation
learning_outcomes: I
T
U
session: Requirements elicitation (cnt)
- Classifying customer input
- Some cautions about elicitation
- Assumed and implied requirements
- Finding missing requirements
learning_outcomes: I
T
U
session: Understanding user requirements
- Use cases and user stories
learning_outcomes: T
U
session: Understanding user requirements (cnt)
- The use case approach
- Benefits of usage-centric requirements
learning_outcomes: T
U
session: Playing by the rules
- A business rules taxonomy
- Documenting business rules
- Discovering business rules
- Business rules and requirements
- Tying everything together
learning_outcomes: T
U
session: Progress test 1 and Review
session: Documenting the requirements
- The software requirements specification
learning_outcomes: T
U
session: Documenting the requirements (cnt)
- A software requirements specification template
- Requirements specification on agile projects
learning_outcomes: T
U
session: Writing excellent requirements
- Characteristics of excellent requirements
- Guidelines for writing requirements
- Sample requirements, before and after
learning_outcomes: T
U
session: A picture is worth 1024 words
- Data flow diagram; Swimlane diagram; State-transition diagram and state table ; Dialog map ;
learning_outcomes: T
U
session: A picture is worth 1024 words (con't)
- Decision tables and decision trees;
learning_outcomes: T
U
session: A picture is worth 1024 words (con't)
- Event-response tables ; Modeling on agile projects
learning_outcomes: T
U
session: Specifying data requirements
- Modeling data relationships
- The data dictionary
learning_outcomes: T
U
session: Specifying data requirements (cnt)
- Data analysis
- Specifying reports
learning_outcomes: T
U
session: Beyond functionality
- Software quality attributes
- Exploring quality attributes
- Defining quality requirements
- Specifying quality requirements with Planguage
learning_outcomes: T
U
session: Beyond functionality (cnt)
- Quality attribute trade-offs
- Implementing quality attribute requirements
- Constraint
- Handling quality attributes on agile projects
learning_outcomes: T
U
session: Risk reduction through prototyping
- Prototyping: What and why
- Mock-ups and proofs of concept
- Throwaway and evolutionary prototypes
- Paper and electronic prototypes
learning_outcomes: T
U
session: Risk reduction through prototyping (cnt)
- Working with prototypes
- Prototype evaluation
- Risks of prototyping
- Prototyping success factors
learning_outcomes: T
U
session: First things first: Setting requirement priorities
- Why prioritize requirements?
- Some prioritization pragmatics
- Games people play with priorities
learning_outcomes: T
U
session: First things first: Setting requirement priorities (cnt)
- Some prioritization techniques
- Prioritization based on value, cost, and risk
learning_outcomes: T
U
session: Validating the requirements
- Validation and verification
- Reviewing requirements
- Prototyping requirements
learning_outcomes: T
session: Validating the requirements
- Testing the requirements
- Validating requirements with acceptance criteria
learning_outcomes: T
session: Exercises (can be interspersed with the lecture)
learning_outcomes: I
T
U
session: Discuss and/or present on Chapter 6
learning_outcomes: I
T
U
session: Requirements reuse
- Why reuse requirements?
- Dimensions of requirements reuse
- Types of requirements information to reuse
- Common reuse scenarios
- Requirement patterns
- Tools to facilitate reuse
- Making requirements reusable
- Requirements reuse barriers and success factors
session: Beyond requirements development
- Estimating requirements effort
- From requirements to project plans,designs and code, tests, success
Review the first half of assignment and evaluation
session: Review the first half of assignment and evaluation
session: Progress test 2 and Review
- Review LAB
session: Agile projects
- Limitations of the waterfall
- The agile development approach
- Essential aspects of an agile approach to requirements
- Adapting requirements practices to agile projects
- Transitioning to agile: Now what?
learning_outcomes: I
T
U
session: Enhancement and replacement projects
- Expected challenges
- Requirements techniques when there is an existing system
- Prioritizing by using business objectives
- When old requirements don’t exist
- Encouraging new system adoption
learning_outcomes: I
T
U
session: Packaged solution projects
- Requirements for selecting packaged solutions
- Requirements for implementing packaged solutions
- Common challenges with packaged solution
learning_outcomes: I
T
U
session: Outsourced projects
- Appropriate levels of requirements detail
- Acquirer-supplier interactions
- Change management
- Acceptance criteria
learning_outcomes: I
T
U
session: Group discussion
Summary and Exercises
session: Group discussion (cnt)
Summary and Exercises (cnt)
session: Assignment supporting
session: Assignment supporting (cnt)
session: Requirements management practices
- Requirements management process
- The requirements baseline
- Requirements version control
- Requirement attributes
learning_outcomes: I
T
U
session: Requirements management practices (cnt)
- Tracking requirements status
- Resolving requirements issues
- Measuring requirements effort
- Managing requirements on agile projects
learning_outcomes: I
T
U
session: Change happens
- Change control policy
- Basic concepts of the change control process
- A change control process description
- The change control board
learning_outcomes: I
T
U
session: Change happens (cnt)
- Change control tools
- Measuring change activity
- Change impact analysis
- Change management on agile projects
learning_outcomes: I
T
U
session: Links in the requirements chain
- Tracing requirements
- Motivations for tracing requirements
- The requirements traceability matrix
learning_outcomes: I
T
U
session: Links in the requirements chain (cnt)
- Tools for requirements tracing
- A requirements tracing procedure
learning_outcomes: I
T
U
session: Tools for requirements engineering (self-study)
Improving your requirements processes
- How requirements relate to other project processes
- Requirements and various stakeholder groups
- Gaining commitment to change
- Fundamentals of software process improvement
- Root cause analysis
- The process improvement cycle
- Requirements engineering process assets
- Creating a requirements process improvement road map
learning_outcomes: ITU
session: Software requirements and risk management
- Fundamentals of software risk management
- Requirements-related risks
- Risk management is your friend
learning_outcomes: ITU
session: Progress test 3
session: Assignment evaluation
session: Assignment evaluation
session: Assignment evaluation