Software Development and Professional Practice
Software Development and Professional Practice
         L02: Requirements developing
                    Dr. Nora Shoaip
              Damanhour University
              Faculty of Computers & Information Sciences
              Department of Information Systems
                              2023
                                                                                                   1
Outline
 ►   Requirements developing
 ►   What is the Algorithm?
 ►   What is the Algorithm Properties?
 ►   How we measure the complexity ?
 ►   Asymptotic Notation?
                                         2
Requirements developing
►   The process to gather the software requirements from
    client, analyze and document them is known as
    requirement developing.
►   The process of establishing the services that the customer
    requires from a system and the constraints under which it
    operates and is developed.
                                                                 3
Why so difficult?
►   Different “worlds”
         ► knowing what should be done vs knowing to let a
           computer do that
►   Users/stakeholders are not an uniform group
         ► conflict between cost and usability / performance /
           features
         ► conflicting demands from different departments
►   Getting the good (ideal) system vs possibility building it
    good
 Users/stakeholders                             Software designer
                           Interaction….match
                                                                    4
Requirements Example
►   A user shall be able to search the appointments lists for all
    clinics.
►   The system shall generate each day, for each clinic, a list
    of patients who are expected to attend appointments that
    day.
►   Each staff member using the system shall be uniquely
    identified by his / her 8-digit employee number.
                                                                    5
Requirements imprecision
►   Ambiguous requirements may be interpreted in different
    ways by developers and users.
►   Consider the term „search‟ in requirement
►   User intention – search for a patient name across all
    appointments in all clinics;
►   Developer interpretation – search for a patient name in an
    individual clinic. User chooses clinic then search.
                                                                 6
Requirements completeness and consistency
►   Complete
        ►   They should include descriptions of all facilities
            required.
►   Consistent
        ►   There should be no conflicts or contradictions in the
            descriptions of the system facilities.
►   In practice, it is impossible to produce a complete and
    consistent requirements document.
                                                                    7
RE Process and Related Activities
                                    8
Users of a requirements document
                                   9
Requirement Elicitation Techniques
►   Interviews
          Structured (closed) interviews
          Non-structured (open) interviews
          One-to-one interviews
          Group interviews
►   Surveys
►   Questionnaires
                                              10
Requirements categorized logically
►   Must Have :
        Software cannot be said operational without them.
►   Should have :
        Enhancing the functionality of software.
►   Could have :
        Software can still properly function with these
        requirements.
►   Wish list :
        These requirements do not map to any objectives of
        software.
                                                             11
Requirement Engineering Process
►   Feasibility Study
►   Requirement Gathering
►   Requirement Specification
►   Requirement Validation
                                  12
Feasibility study
►   When the client approaches the organization for getting the
    desired product developed, it comes up with rough idea
    about what all functions the software must perform and
    which all features are expected from the software.
                                                                  13
Types of requirement
►   Business Requirements:
        the scope of the project and identify stakeholders
►   User requirements
        ► concern the user goals of the system
        ► Statements in natural language plus diagrams of the
          services the system provides and its operational
          constraints. Written for customers.
                                                                14
Types of requirement
System requirements
►   define functional and non-functional (or quality)
    requirements.
►   A structured document setting out detailed descriptions of
    the system‟s functions, services and operational
    constraints. Defines what should be implemented so may
    be part of a contract between client and contractor.
                                                                 15
Example
►   you are designing a website for teachers to post homework
    assignments online
        ►   Allow teachers to upload documents.
        ►   Provide a login for teachers.
        ►   Be accessible from schools and teachers' homes.
                                                                16
Example
          17
System requirements Types
►   Functional requirements
        Statements of services the system should provide,
        how the system should react to particular inputs and
        how the system should behave in particular situations.
►   Non-functional requirements
        Constraints on the services or functions offered by the
        system such as timing constraints, constraints on the
        development process, standards, etc.
►   Domain requirements
        Constraints on the system from the domain of
        operation
                                                                  18
Functional requirements
►   Describe functionality or system services.
►   Depend on the type of software, expected users and the
    type of system where the software is used.
►   Functional system requirements should describe the
    system services in detail.
                                                             19
Functional requirements Example
►   A user shall be able to search the appointments lists for all
    clinics.
►   The system shall generate each day, for each clinic, a list
    of patients who are expected to attend appointments that
    day.
►   Each staff member using the system shall be uniquely
    identified by his / her 8-digit employee number.
                                                                    20
Non-functional requirements
►   These define system properties and constraints e.g.
    reliability, response time and storage requirements.
    Constraints are I/O device capability, system
    representations, etc.
►   Process requirements may also be specified mandating in
    programming language or development method.
                                                              21
Non-functional requirements implementation
►   Non-functional requirements may affect the overall
    architecture of a system rather than the individual
    components.
►   A single non-functional requirement, such as a security
    requirement, may generate a number of related functional
    requirements that define system services that are required.
        ►   It may also generate requirements that restrict
            existing requirements
                                                                  22
Types of nonfunctional requirement
                                     23
Non-functional classifications
►   Product requirements
        Requirements which specify that the delivered product
        must behave in a particular way e.g. execution speed,
        reliability, etc.
►   Organizational requirements
        Requirements which are a consequence of
        organizational policies and procedures e.g. process
        standards used, implementation requirements, etc.
►   External requirements
        Requirements which arise from factors which are
        external to the system and its development process
        e.g. interoperability requirements, legislative
        requirements, etc.
                                                                24
Examples of nonfunctional requirements
► Product requirement
The system shall be available to all clinics during normal
working hours (Mon–Fri, 0830–17.30). Downtime within
normal working hours shall not exceed five seconds in any
one day.
►   Organizational requirement
    Users of the system shall authenticate themselves using
    their health authority identity card.
►   External requirement
    The system shall implement patient privacy provisions as
    set out in HStan-03-2006-priv.
                                                               25
Usability requirements Example
►   The system should be easy to use by medical staff and
    should be organized in such a way that user errors are
    minimized.
►   Medical staff shall be able to use all the system functions
    after four hours of training.
►   After this training, the average number of errors made by
    experienced users shall not exceed two per hour of system
    use. (Testable non-functional requirement)
                                                                  26
Metrics for specifying nonfunctional requirements
                                                    27
Domain requirements
►   The system‟s operational domain imposes requirements on
    the system.
         For example, a train control system has to take into
         account the braking characteristics in different weather
         conditions.
►   Domain requirements be new functional requirements,
    constraints on existing requirements or define specific
    computations.
►   If domain requirements are not satisfied, the system may
    be unworkable.
                                                                    28
Train protection system Example
This is a domain requirement for a train protection system:
► The deceleration of the train shall be computed as:
        Dtrain = Dcontrol + Dgradient
        where Dgradient is 9.81ms2 * compensated
        gradient/alpha and where the values of 9.81ms2
        /alpha are known for different types of train.
► It is difficult for a non-specialist to understand the
  implications of this and how it interacts with other
  requirements.
                                                              29
Domain requirements problems
►   Understandability
         Requirements are expressed in the language of the
         application domain;
         This is often not understood by software engineers
         developing the system.
►   Implicitness
         Domain specialists understand the area so well that
         they do not think of making the domain requirements
         explicit.
                                                               30
The software requirements document
►   The software requirements document is the official
    statement of what is required of the system developers.
►   Should include both a definition of user requirements and a
    specification of the system requirements.
►   It is NOT a design document. As far as possible, it should
    set of WHAT the system should do rather than HOW it
    should do it.
                                                                  31
Problem Identification & Requirements Specification
►   Answering question:
          What problem is being solved?
►   10-25% of life cycle should be spent here
          E.g., Expected software or application life is 10 years
          1 to 2.5 years in this phase
►   Techniques
          Partitioning: Divide and conquer
                   Parts & relationships
          Abstraction: Defining in general terms
                   Leaving out details
          Projection: Viewing problem from different perspectives
                   User perspective, programmer perspective, maintainer
                     perspective
          Many other techniques
                   E.g., data flow diagrams
                                                                           32
Banking ATM system Example
►   The example used here is an auto-teller system which
    provides some automated banking services
►   use a very simplified system which offers some services to
    customers of the bank who own the system and a narrower
    range of services to other customers
►   Services include cash withdrawal, message passing (send
    a message to request a service), ordering a statement and
    transferring funds
                                                                 33
Requirements document variability
►   Information in requirements document depends on type of
    system and the approach to development used.
►   Requirements documents standards have been designed
    e.g. IEEE standard. These are mostly applicable to the
    requirements for large systems engineering projects.
                                                              34
The structure of a requirements document
Chapter               Description
Preface               This should define the expected readership of the document and
                      describe its version history, including a rationale for the creation of a
                      new version and a summary of the changes made in each version.
Introduction          This should describe the need for the system. It should briefly describe
                      the system‟s functions and explain how it will work with other systems.
                      It should also describe how the system fits into the overall business or
                      strategic objectives of the organization commissioning the software.
Glossary              This should define the technical terms used in the document. You
                      should not make assumptions about the experience or expertise of the
                      reader.
User      requirements Here, you describe the services provided for the user. The
definition             nonfunctional system requirements should also be described in this
                       section. This description may use natural language, diagrams, or other
                       notations that are understandable to customers. Product and process
                       standards that must be followed should be specified.
System architecture   This chapter should present a high-level overview of the anticipated
                      system architecture, showing the distribution of functions across
                      system modules. Architectural components that are reused should be
                      highlighted.
                                                                                             35
 The structure of a requirements document
Chapter            Description
System             This should describe the functional and nonfunctional requirements in more
requirements       detail. If necessary, further detail may also be added to the nonfunctional
specification      requirements. Interfaces to other systems may be defined.
System models      This might include graphical system models showing the relationships between
                   the system components and the system and its environment. Examples of
                   possible models are object models, data-flow models, or semantic data models.
System evolution   This should describe the fundamental assumptions on which the system is
                   based, and any anticipated changes due to hardware evolution, changing user
                   needs, and so on. This section is useful for system designers as it may help
                   them avoid design decisions that would constrain likely future changes to the
                   system.
Appendices         These should provide detailed, specific information that is related to the
                   application being developed; for example, hardware and database descriptions.
                   Hardware requirements define the minimal and optimal configurations for the
                   system. Database requirements define the logical organization of the data used
                   by the system and the relationships between data.
Index              Several indexes to the document may be included. As well as a normal
                   alphabetic index, there may be an index of diagrams, an index of functions, and
                   so on.
                                                                                            36
Ways of writing a system requirements specification
Notation              Description
Natural language      The requirements are written using numbered sentences in natural
                      language. Each sentence should express one requirement.
Structured   natural The requirements are written in natural language on a standard form or
language             template. Each field provides information about an aspect of the
                     requirement.
Design description This approach uses a language like a programming language, but with
languages          more abstract features to specify the requirements by defining an
                   operational model of the system. This approach is now rarely used although
                   it can be useful for interface specifications.
Graphical notations   Graphical models, supplemented by text annotations, are used to define the
                      functional requirements for the system; UML use case and sequence
                      diagrams are commonly used.
Mathematical          These notations are based on mathematical concepts such as finite-state
specifications        machines or sets. Although these unambiguous specifications can reduce
                      the ambiguity in a requirements document, most customers don‟t
                      understand a formal specification. They cannot check that it represents
                      what they want and are reluctant to accept it as a system contract
                                                                                            37
Example requirements for the insulin pump software system
►   The system shall measure the blood sugar and deliver
    insulin, if required, every 10 minutes. (Changes in blood
    sugar are relatively slow so more frequent measurement is
    unnecessary; less frequent measurement could lead to
    unnecessarily high sugar levels.)
►   The system shall run a self-test routine every minute with
    the conditions to be tested and the associated actions
    defined in Table 1. (A self-test routine can discover
    hardware and software problems and alert the user to the
    fact the normal operation may be impossible.)
                                                                 38
A structured specification of a requirement for an insulin pump
                                                                  39
A structured specification of a requirement for an insulin pump
                                                                  40
Tabular specification of computation for an insulin pump
  Condition                                           Action
  Sugar level falling (r2 < r1)                       CompDose = 0
  Sugar level stable (r2 = r1)                        CompDose = 0
  Sugar level increasing and rate of increase CompDose = 0
                          decreasing
  ((r2 – r1) < (r1 – r0))
  Sugar level increasing and rate of increase stable or CompDose                     =
                          increasing                         round ((r2 – r1)/4)
  ((r2 – r1) ≥ (r1 – r0))                               If rounded result = 0 then
                                                        CompDose = MinimumDose
                                                                                         41
Stakeholders in the MHC-PMS
►   Patients whose information is recorded in the system.
►   Doctors who are responsible for assessing and treating
    patients.
►   Nurses who coordinate the consultations with doctors and
    administer some treatments.
►   Medical receptionists who manage patients‟ appointments.
►   IT staff who are responsible for installing and maintaining
    the system.
                                                                  42
Scenarios
Scenarios are real-life examples of how a system can be
used.
They should include
► A description of the starting situation;
► A description of the normal flow of events;
► A description of what can go wrong;
► Information about other concurrent activities;
► A description of the state when the scenario finishes.
                                                           43
Example
►   A Scenario 1: User logs in using a valid username and
    password
►   Scenario 2: User performs search using item description
►   Requirement 1: only authorized user can use the system
►   Requirement 2: search result page should only return the
    first 50 records
                                                               44
Scenario: customer withdrawing money from ATM
►   A It‟s Friday afternoon and Hassan is flying to Aswan.
►   He doesn‟t have enough money for a taxi to the airport,
    and he‟s running late.
►   He goes to the local ATM and identifies himself.
►   He specifies that he wants 100 from his savings account.
►   He‟d like the money in 20 notes so that he can give the taxi
    driver the correct change.
►   He doesn‟t want a printed receipt, as he doesn‟t bother
    keeping track of transactions in this account
                                                                   45
In details
►   Mohamed Hassan presses the "Withdraw Funds" button in ATM
►   The ATM displays the preset withdrawal amounts (20, 100, and so on)
►   Mohamed chooses the option to specify the amount of the withdrawal
►   The ATM displays an input field for the withdrawal amount
►   Mohamed indicates that he wishes to withdraw 500
►   The ATM displays a list of Mohamed's accounts, a checking and two
    savings accounts
►   Mohamed chooses his checking account
►   The ATM verifies that the amount may be withdrawn from his account
►   The ATM verifies that there is at least 500 available to be disbursed
    from the machine
                                                                       46
Scenarios
►   The ATM debits Mohamed's account by 500
►   The ATM disburses 500 in cash
►   The ATM displays the "Do you wish to print a receipt"
    options
►   Mohamed indicates "Yes"
►   The ATM prints the receipt
                                                            47
Event scenario - start transaction
                                     48
Scenario for collecting medical history in MHC-PMS
                                                     49
Scenario for collecting medical history in MHC-PMS
                                                     50
Requirements checking
►   Validity. Does the system provide the functions which best
    support the customer‟s needs?
►   Consistency. Are there any requirements conflicts?
►   Completeness. Are all functions required by the customer
    included?
►   Realism. Can the requirements be implemented given
    available budget and technology
►   Verifiability. Can the requirements be checked?
                                                                 51
Requirements validation techniques
►   Requirements reviews
         Systematic manual analysis of the requirements.
►   Prototyping
         Using an executable model of the system to check
         requirements.
►   Test-case generation
         Developing tests for requirements to check testability.
                                                                   52
Requirements management
►   Requirements management is the process of managing
    changing requirements during the requirements
    engineering process and system development.
►   New requirements emerge as a system is being developed
    and after it has gone into use.
►   You need to keep track of individual requirements and
    maintain links between dependent requirements so that
    you can assess the impact of requirements changes. You
    need to establish a formal process for making change
    proposals and linking these to system requirements.
                                                             53
Changing requirements
►   Requirements will change!
          inadequately captured or expressed in the first
            place
          user and business needs may change during the
            project
►   Validation is needed throughout the software lifecycle, not
    only when the “final system” is delivered!
          build constant feedback into your project plan
          plan for change
          early prototyping [e.g., UI] can help clarify
            requirements
                                                                  54
Changing requirements
►   The business and technical environment of the system
    always changes after installation.
        New hardware may be introduced, it may be
        necessary to interface the system with other systems,
        business priorities may change (with consequent
        changes in the system support required), and new
        legislation and regulations may be introduced that the
        system must necessarily abide by.
►   The people who pay for a system and the users of that
    system are rarely the same people.
        System customers impose requirements because of
        organizational and budgetary constraints. These may
        conflict with end-user requirements and, after delivery,
        new features may have to be added for user support if
        the system is to meet its goals.
                                                                   55
Requirements evolution
                         56
Requirements change management
Deciding if a requirements change should be accepted
► Problem analysis and change specification
       During this stage, the problem or the change proposal is
       analyzed to check that it is valid. This analysis is fed back to the
       change requestor who may respond with a more specific
       requirements change proposal, or decide to withdraw the request.
► Change analysis and costing
       The effect of the proposed change is assessed using traceability
       information and general knowledge of the system requirements.
       Once this analysis is completed, a decision is made whether or
       not to proceed with the requirements change.
► Change implementation
       The requirements document and, where necessary, the system
       design and implementation, are modified. Ideally, the document
       should be organized so that changes can be easily implemented.
                                                                              57