-
Background Reading: Chapter 4 requirements engineering
- Please read Chapter 4 and do the associated activities.
- 4.1 Functional and non-functional requirements
- 4.2 Requirements engineering processes
- 4.3 Requirements elicitation
- 4.4 Requirements specification
- 4.5 Requirements validation
- 4.6 Requirements change
-
Requirement Engineering
- This chapter is to introduce software requirements and to explain the processes involved in discovering and documenting these requirements in order to meet stakeholders' needs. You will :
- understand the concepts of user and system requirements and why these requirements should be written in different ways;
- understand the differences between functional and non-functional software requirements;
- understand the main requirements engineering activities of elicitation, analysis and validation and the relationships between these activities,.
- understand why requirements management is necessary and how it supports other requirements engineering activities.
Requirement management and use case
Objectives
- Part 1:
- Introduce Computer Systems Development
- What is requirement?
- Why clear and correct requirements are one of success factors for IT project?
- Identify contributing factors to project success and project failure.
- What is requirement management? And why we need it?
- Describe how requirements management increases the chances of project success
- Quality of requirement management.
- Part 2: how to identify functional and non-functional requirements in a project?
- Need to know what this project about?
- How to gather right requirements from stakeholders/end users?
- Who are involve in projects?
- What is UML? What is use case diagram?
- What are Functional and non-functional requirements?
- Identify use cases (functional requirement only)
- Identify the relationship between actors and use cases
-
Part 1:
Computers Systems Development
-
What is requirement management? And why it is important?
- 📷 Requirement management: Overview
- Requirement management
- A systematic approach to:
- Capturing, organizing, and documenting requirements.
- Establishing and maintaining agreement between stakeholders/end users and the project team on the changing requirements.
- It is important because:
- Good requirements management increases the chances of project success
Effective Requirements Management
- Maintain a clear statement of the requirements which include functional and non-functional requirements with:
- clear and good quality of requirements
- Requirements are easy traceable
The GOAL is to deliver quality products
On scopes, on time and on budget
that meet the stakeholders’/customers’/end users’
business needs.What is requirement?
- Requirements define the expected services of the system (service statements) and constraints that the system must obey (constraint statements). It is a condition or capability to which the system must conform.
- Service statements are also called functional requirements which include the necessary business functions and the required data structure etc.
- Functional requirements are which the system has to have them.
- Constraint statements are also called non-functional requirements or supplementary requirements. It can be grouped into different categories of restriction imposed on the system such as supportability, reliability, security or usability etc.
Why clear and correct requirements are one of success factors for IT project?
- Base on Standish group survey in 2014. The top 10 project success factors, the clear statement of requirements are in 3rd position. ( Data source: projectsmart.co.uk, 2014 pp.8) Accessed date : 26/06/16 https://www.projectsmart.co.uk/white-papers/chaos-report.pdf
- It shows how important to gather clear requirements. But where we can capture these requirements?
- Answer: We use requirements captured from stakeholders.
- How do we know what a specific computer system is required to do?
- How do we choose appropriate computer hardware?
- Answer: We use requirements captured from stakeholders.
X -
Qualities of Software Requirements Sets
- Correct
- Is a true statement of something the system must do.
- Complete
- Describes all significant requirements of concern to the user.
- Consistent
- Does not conflict with other requirements.
- Unambiguous
- Is subject to one and only one interpretation.
- Verifiable
- Can be tested cost effectively.
- Ranked for importance and stability
- Can be sorted based on customer importance and stability of the requirement itself.
- Modifiable
- Changes do not affect the structure and style of the set.
- Traceable
- The origin of each requirement can be found.
- Understandable
- Comprehended by users and developers.
-
Part 2:
How to gather right requirements from stakeholders/end users?
- Marketing survey (online or paper base)
- Interview
- Brainstorm
- Focus group
Requirements Management Is Not always Easy to Manage Because…
- Requirements:
- Are not always clear.
- Come from many stakeholders.
- May not always be easy to express clearly in words.
- Relate to one another and to other deliverables of the software development process. It can be very complicated such as system of system
- Requirements may keep Changing in order to meet the business needs.
- Are difficult to control in large numbers.
how to identify functional and non-functional requirements in a project?
- Need to know what this project about?
- How to gather right requirements from stakeholders/end users?
- Who are involve in projects?
- What is UML? What is use case diagram?
- What are Functional and non-functional requirements?
- Identify use cases (functional requirement only)
- Identify the relationship between actors and use cases
Need to know what this project about and how IT (Information Technology) can help?
- Where does a project come from?
- A project is initiated to meet a business needs, whether it results from competition, cut costs or expansion etc.
- For example:
- Competition: need to develop a website to reach more customers
- Cut costs: develop a self check-in system for hotel to cut hiring staff costs.
- Expansion: A new bank branch is going to set up and needs IT to help their business
-
Definitions
Stakeholder Request A solution-independent expression of a stakeholder’s requirement to address an issue in the problem spaceFeature An externally observable service by which the system directly fulfills one or more stakeholder requests.Software Requirements- Functional Requirement
- A requirement that specifies, from a black-box perspective, how the solution interacts with the outside world.
- Non-Functional Requirement
- A requirement that expresses, from a black-box perspective, the quality attributes of the solution.
Constraint A limitation on the design of the system or the process used to build the system.Who are involve in projects?
- Stakeholders,
- End users,
- Customers,
- Project manager, etc.
What is UML? What is use case diagram?
- UML is stand for Unified Modelling Language.
- A graphical language used in object-oriented development that includes several types of system models that provide different views of a system. The UML has become a de facto standard for object-oriented modelling.
- “A use case diagram at its simplest is a representation of a user's interaction with the system that shows the relationship between the user and the different use cases in which the user is involved.” Data source: Wikipedia.org accessed date : 26/06/16 https://en.wikipedia.org/wiki/Use_Case_Diagram
What are Functional and non-functional requirements?
- Once the requirements are collected, then identify these requirements are functional or non-functional requirements.
- Once the functional requirement has been identified, use case is employed, as it is a representation of a user's interaction with the system that shows the relationship between the user and the different use cases in which the user is involved.
-
Dimensions of Quality
Components of FURPS+
Functionality Feature set capabilities, security, generality Usability Human factors aesthetics, consistency, documentation Reliability Frequency/severity of failure, recoverability, predictability, accuracy, MTBF Performance Speed efficiency, resource usage, throughput, response time Supportability Testability, Extensibility,Adaptability, Maintainability, Compatibility, Configurability, Serviceability, Installability, Localizability, Robustness Examples from the Course Registration System
Stakeholder Request We need less administrative overhead during the registration process.
All Professors need to have immediate access to student grades.Feature A tree browser provides a way to view student information by semester and by class.Software Requirement- Functional
- The use case starts when the student selects the “register for course” command. The system displays the list of available courses…
- Non-Functional
- 99% of 24/7 availability (3.65 days downtime per year)
Constraint Operate on the College DEC VAX Main Frame. -
Qualities of a Requirement: Unambiguous
- A requirement is unambiguous if it has only one interpretation.
Explore Ambiguity: An Observation
Qualities of a Requirement: Verifiable
- A requirement is verifiable if:
- There exists some finite, cost-effective process with which a person or machine can check that the product meets the requirement.
- The system supports up to 1,000 simultaneous users.
- The system shall respond to an arbitrary query in 500 msec.
- The color shall be a pleasing shade of green.
- The system shall be available 24 x 7.
- The system shall export view data in comma-separated format, according to the IEEE specification.
Are these requirements verifiable? If not, what is a better way to state them?Qualities of a Requirement: Traceable
-
Review: Introduction to RMUC
- 1. What is a requirement?
- 2. What is requirements management?
- 3. What factors contribute to project success?
- 4. What are some requirement characterizations?
- 5. What are some qualities of requirements?
-
Glossary
ABCDEIOQRSUV
A
Activity diagram
- Activity diagrams/ flow charts are useful tool which it can be use to describe a use case too.
Actor
- Actor represents a role that interacts with the system.
Return to TopB
Brainstorming
- A technique by which a group attempts to generate ideas or find a solution for a specific problem by amassing ideas spontaneously and without judgement
- Data source: Schwalbe K,2010 "Information Technology Project Management" 6th Edition, Cengage Pp.G2
Return to TopC
Change management
- A process to record, check, analysis, estimate and implement proposed changes to a software system.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.759
change requirement
- A process to record, check, analyse, estimate and implement proposed changes to a software system.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.759
Class Diagram
- Entity classes define the functional requirements in software system.
- A UML diagram types that shows the object classes in a system and their relationships.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.759
Client-Server architecture
- An architectural model for distributed systems where the system functionality is offered as set of services provided by a server. There ae accessed by client computers that make use of the services. Variants of this approach, such as three-tier client-server architectures, use multiple servers.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.760
communicates-associations
- Relationships between actors and used cases are called communicates-associations.
component
- A deployable, independent unit of software that is completely defined and accessed through a set of interfaces.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.760
component model
- A set of standards for component implementation, documentation and deployment. These cover the specific interfaces that may be provided by a component, component naming, component interoperation, and component composition. Component models provide the basis for middleware to support executing components.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.760
conceptual design
- The development of a high-level vision of a complex system and a description of its essential capabilities. Designed to be understood by people who are not system engineers.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.761
contingency plans
- Predefined actions that the project team will take if an identified risk event occurs.
- Data source: Schwalbe K,2010 "Information Technology Project Management" 6th Edition, Cengage Pp.G3
contract
- A mutually binding agreement that obligates the seller to provide the specified products or services, and obligates the buyer to pay for them.
- Data source: Schwalbe K,2010 "Information Technology Project Management" 6th Edition, Cengage Pp.G3
Return to TopD
deliverable
- A product or service, such as a technical report, a training session, a piece of hardware, or a segment of software code, produced or provided as part of a project.
- Data source: Schwalbe K,2010 "Information Technology Project Management" 6th Edition, Cengage Pp.G5
Delphi technology
- An approach used to derive a consensus among a panel of experts to make predictions about future development
- Data source: Schwalbe K,2010 "Information Technology Project Management" 6th Edition, Cengage Pp.G3
dependability
- The dependability of a system is an aggregate property that takes into account the system's safety, reliability, availability, security, resilience and other attributes. The dependability of a system reflects the extent to which it can be trusted by its users.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.762
dependability requirement
- A system requirement that is included to help achieve the required dependability for a system. Non-functional dependability requirements specify dependability attribute values; functional dependability requirements are functional requirements that specify how to avoid, detect, tolerate or recover from system faults and failures.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.762
documentary analysis
- A form of research which relies on the collection and analysis of written documents or other forms of artefacts produced by organisations and groups
- Data source: Beynon-Davies p, 2002 "Information systems: An introduction to informatics in organisations" , 1st Edition, Palgrave. pp.581
Return to TopE
end user
- That stakeholder group which uses an information system to conduct work
- Data source: Beynon-Davies p, 2002 "Information systems: An introduction to informatics in organisations" , 1st Edition, Palgrave. pp.564
Experiments
- designed in terms of hypothesised relationships between independent variables (Those presumed to cause certain phenomena) and dependent variables (those presumed to indicate the presence of certain effects). To study these relationships closely all other variation in the environment has to be controlled.
- Data source: Beynon-Davies p, 2002 "Information systems: An introduction to informatics in organisations" , 1st Edition, Palgrave. pp.564
Return to TopI
interview
- The research technique is frequently used as a means of gaining an in-depth appreciation of some phenomena. Interviews essentially involve either a structured or unstructured discussion with some person(s) on a certain topic.
- Data source: Beynon-Davies p, 2002 "Information systems: An introduction to informatics in organisations" , 1st Edition, Palgrave. pp.564
Return to TopO
object class
- An object class defines that attributes and operations of objects. Objects are created at run-time by instantiating the class definition. The object class name can be used as a type name in some object-oriented language.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.766
object model
- A model of a software system that is structured and organised as a set of object classes and the relationships between these classes. Various different perspectives on the model may exist such s a state perspective and a sequence perspective.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.766
object-oriented (OO) development
- An approach to software development where the fundamental abstractions in the system are independent objects. The same type of abstraction is used during specification, design and development
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.766
observation
- This research technique is important as a means of gaining detailed data on what people actually do. The observer may participate in the activities of the observed group or be independent of these activities. Observation may also be explicit or illicit.
- Data source: Beynon-Davies p, 2002 "Information systems: An introduction to informatics in organisations" , 1st Edition, Palgrave. pp.564
Return to TopQ
questionnaires
- A questionnaire is a set of formulated questions on some topic. The answers to questions in a questionnaires may be used in association with interviews or set to a group of respondents to be filled in independently such as focus group.
- Data source: Beynon-Davies p, 2002 "Information systems: An introduction to informatics in organisations" , 1st Edition, Palgrave. pp.564
Return to TopR
requirement management
- The process of managing changes to requirements to ensure that the changes made are properly analysed and tracked through the system
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.769
requirement, functional
- a statement of some function or feature that should be implemented in a system.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.769
requirement, non-functional
- A statement of a constraint or expected behaviour that applies to a system. This constraint may refer to the emergent properties of the software that is being developed or to the development process.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.769
risk
- An undesirable outcome that poses a threat to the achievement of some objective. A process risk threatens the schedule or cost of a process; a product risk is a risk that may mean that some of the system requirements may not be achieved.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.770
risk management
- The process of identifying risks, assessing their severity, planning measures to put in place if the risks arise, and monitoring the software and the software process for risks.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.770
Return to TopS
scenario
- A description of one typical way in which a system is used or a user carries out some activity/activities.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.770
scenario testing
- An approach to software testing where test cases are derived from a scenario of system use.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.770
sequence diagram
- A diagram that shows the sequence of interactions required to complete some operation. In the UML, sequence diagrams ma be associated with use cases.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.771
stakeholder
- The group of people to which an information system is relevant
- Data source: Beynon-Davies p, 2002 "Information systems: An introduction to informatics in organisations" , 1st Edition, Palgrave. pp.591
stakeholder analysis
- Analysing the types of and impact of stakeholders on information systems
- Data source: Beynon-Davies p, 2002 "Information systems: An introduction to informatics in organisations" , 1st Edition, Palgrave. pp.591
stakeholder involvement
- Involvement of stakeholder representatives in the development of an IT system.
- Data source: Beynon-Davies p, 2002 "Information systems: An introduction to informatics in organisations" , 1st Edition, Palgrave. pp.591
stakeholder participation
- involvement of stakeholders both in the development of the IT system and the work surrounding its use.
- Data source: Beynon-Davies p, 2002 "Information systems: An introduction to informatics in organisations" , 1st Edition, Palgrave. pp.591
stakeholder resistance
- The resistance of stakeholder groups to the introduction of some information system
- Data source: Beynon-Davies p, 2002 "Information systems: An introduction to informatics in organisations" , 1st Edition, Palgrave. pp.591
stakeholder satisfaction
- The state of satisfaction expressed by some stakeholder group in an information system
- Data source: Beynon-Davies p, 2002 "Information systems: An introduction to informatics in organisations" , 1st Edition, Palgrave. pp.591
state diagram
- A UML diagram types that shows the states of a system and the events that trigger a transition from one state to another.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.772
system
- A system is a purposeful collection of interrelated components, of different kinds, which work together to deliver a set of services to the system owner and users.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.772
system engineering
- A process that is concerned with specifying a system, integrating its components and testing that the system meets its requirements. System engineering is concerned with the whole socio-technical system-software, hardware and operational process-not just the system software.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.772-773
Return to TopU
unified modeling language(UML)
- A graphical language used in object-oriented development that includes several types of system models that provide different views of a system. The UML has become a de facto standard for object-oriented modelling.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.773
use case
- "Use case represents something of value that the system does for its actors. A use case defines a sequence of actions performed by a system that produces an observable result of value to an actor."
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.773
use-case modelling
- A use-case model consists of both diagrams and text. The text gives descriptions of the actors and the use case.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.773
Return to TopV
validation
- The process of checking that a system meets the needs and expectations of the customer.
- Data source: Sommerville I. 2016" Software Engineering" 10th Edition. Pearson Pp.774
verification
- The process of checking that a system meets its specification.
- Data source: Sommerville I. 2016"Software Engineering" 10th Edition. Pearson Pp.774
Return to Top