04
  • 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


    Computer Systems Development Diagram

  • 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
    Requirements Management Diagram
  • 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 space
    Feature

    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.

    Qualities of a Requirement: Unambiguous

    Explore Ambiguity: An Observation

    Explore Ambiguity: An Observation Diagram

    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

    Qualities of a Requirement: Traceable Diagram
  • 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 Top

    B

    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 Top

    C

    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 Top

    D

    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 Top

    E

    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 Top

    I

    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 Top

    O

    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 Top

    Q

    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 Top

    R

    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 Top

    S

    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 Top

    U

    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 Top

    V

    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