Professional Documents
Culture Documents
Chapter 1
Chapter 1
Introduction
Software Requirements
1
Before we start..
What is ..
•Software Engineering?
•Software Process?
• Software Process ?
A set of activities to develop a software.
These activities include:
Requirements Engineering – Design – Implementation – Testing – Deployment –
Maintenance
Enas Naffar, 2020
Before we start..
• Requirements Engineering
5
Software Requirements
6
Types of Requirements
7
Types of Requirements
8
Requirements Artifacts
9
Requirements Artifacts
10
11
Case study : Eastern State University (ESU)
Background
• The process of assigning professors to courses and the registration of students is a
frustrating and time-consuming experience.
• After the professors of ESU have decided which courses they are going to teach
for the semester, the Registrar's office enters the information into the computer
system. A batch report is printed for the professors indicating which courses they
will teach. A course catalog is printed and distributed to the students.
• The students currently fill out (mulitpart, multicolor) registration forms that
indicate their choice in courses, and return the completed forms to the Registrar's
office. The typical student load is four courses. The staff of the Registrar's office
then enters the students' forms into the mainframe computer system. Once the
students' curriculum for the semester has been entered, a batch job is run
overnight to assign students to courses. Most of the time the students get their
first choice; however, in those cases where there is a conflict, the Registrar's office
talks with each student to get additional choices. Once all the students have been
successfully assigned to courses, a hard copy of the students' schedule is sent to
the students for their verification. Most student registrations are processed within
a week, but some exceptional cases take up to two weeks to solve.
• Once the initial registration period is completed, professors receive a student list
for each course they are scheduled to teach.
12
Case study : Eastern State University (ESU)
• The new system will allow students to select four course offerings for the coming
semester. In addition, each student will indicate two alternative choices in case a
course offering becomes filled or canceled. No course offering will have more than
ten students or fewer than three students. A course offering with fewer than three
students will be canceled. Once the registration process is completed for a
student, the registration system sends information to the billing system so the
student can be billed for the semester.
• Professors must be able to access the online system to indicate which courses
they will be teaching, and to see which students signed up for their course
offerings.
• For each semester, there is a period of time that students can change their
schedule. Students must be able to access the system during this time to add or
drop courses.
13
Requirements activities
14
Capturing Requirements as
Use-Cases
15
Activity 1 : Finding actors and use Cases
• Outline who and what (actors) will interacts with the system,
and what functionality (use cases) is expected from the
system.
• This activity consists of four steps
Finding actors
Finding use cases
Briefly describing each use case
Describing the use-case model as a whole
16
1.1 Finding Actors
17
1.1 Finding Actors
18
1.1 Finding Actors
19
1.2 Identifying use cases
20
1.2 Identifying use cases
21
1.2 Identifying use cases
• The Student actor needs to use the system to register for courses.
• After the course selection process is completed, the Billing System must
be supplied with billing information.
• The Professor actor needs to use the system to select the courses to teach
for a semester, and must be able to receive a course roster from the
system.
• The Registrar is responsible for the generation of the course catalog for a
semester, and for the maintenance of all information about the
curriculum, the students, and the professors needed by the system.
22
1.2 Identifying use cases
24
1.4 Describing the use-case model as a whole
25
Activity 2: Prioritize use cases
26
Activity 3: Detail a use case
29
2.1.5 if the activity selected is Review Schedule,
• The student requests information on all course offerings in which the
student is registered for a given semester.
• The system displays all courses for which the student is registered
including course name, course number, course offering number, days of
the week, time, location, and number of credit hours.
2.1.6 if the activity selected is Delete a course,
• The student indicates which course offerings to delete.
• The system checks that the final date for changes has not been exceeded.
• The system deletes the student from the course offering.
• The system notifies the student that the request has been processed.
30
2.1.7 If the activity selected is ADD a course
• The student indicates which course offerings to add.
• The system checks that the final date for changes has not been
exceeded.
• The system then:
- Verifies that the maximum course load for the
student has not been exceeded.
- Checks that prerequisites are satisfied for the
requested course.
- Adds the student to the course offering if the
course offering is open.
• The student indicates that the activity is complete.
31
2.2 Alternate flow
2.2.1 If an invalid id number is entered, the system will not allow access to the
registration system.
2.2.2 If an attempt is made to create a schedule for a semester where a schedule
already exists, the system will prompt for another choice to be made.
2.2.3 If a primary course offering is not available, the system will substitute an
alternate course offering.
32
Activity :Identify relationships among use cases
• An association relationship may exist between an actor and a use case.
This type of association is often referred to as a communicate
association (one direction, both direction).
• There are three types of relationships that may exist between use cases:
- include (functional decomposition, reuse existing functionality.
- extend
-Optional behavior
- Behavior that is run only under certain conditions such as
triggering an alarm
-Several different flows that may be run based on actor
selection
-generalization .
You have common behavior among use cases and want to
factor this out.
33
Include/ Extend relationship
34
Generalization relationship
35
Use case Diagram
36
Main use case Diagram for registration system
37
Try to update the previous diagram by
adding use case relationships
38
Activity Diagrams
39
Example: Activity Diagram
Select
Course
Check Check
Schedule Pre-requisites
[checks completed]
[checks failed]
Assign to
Course Resolve
Conflict
[student added
to course]
Update
Schedule
40
Supplementary Specification
Functional requirements and non-functional requirements that are not
captured by use cases are included in supplementary specifications. The
Supplementary Specifications include constraints on the
implementation.
•Functionality: List of the functional requirements that are general to
many use cases.
•Usability: Those requirements that relate to, or affect, the usability of
the system. Examples include ease-of-use requirements or training
requirements that specify how readily the system can be used by its
actors.
•Reliability: Any requirements concerning the reliability of the system.
Quantitative measures such as mean time between failure or defects per
thousand lines of code should be stated.
•Performance: The performance characteristics of the system. Include
specific response times. Reference related use cases by name.
•Supportability: Any requirements that will enhance the supportability
or maintainability of the system being built.
•Design Constraints: Any design constraints on the system being built. 41
Glossary
The Glossary defines important terms used in the project.
•There is one Glossary for the system. This document is
important to many developers, especially when they need to
understand and use the terms that are specific to the project.
The glossary is used to facilitate communications between
domain experts and developers.
•The Glossary is primarily developed during the inception and
elaboration phases, because it is important to agree on a
common terminology early in the project.
•In Inception/Elaboration it is used by domain experts (e.g.,
business analysts) to explain all the domain-specific terminology
used in their use cases.
• In Elaboration/Construction, developers use the Glossary to
explain technical terms used in the other four models.
•A system analyst is responsible for the integrity of the Glossary,
ensuring that the Glossary is produced in a timely manner and is
continuously kept consistent with the results of development.
42
Summary of the Requirements workflow
43