Chapter 3 Developing Requirements Modelling With Classes OOSE - MCA2005
Chapter 3 Developing Requirements Modelling With Classes OOSE - MCA2005
1
Module 3 Developing Requirements And Class-based Requirements
Design Modeling With Classes ( 10 Hours)
3.1 Developing requirements: Domain analysis
3.2 Types of requirements
3.3 Requirements gathering
3.4
object-based requirements analysis
3.5 Use cases: describing how the user will use the system
3.6 techniques for gathering requirements
3.7 Managing changing requirements,
3.8 class-based requirements design
Module 3 _ Part 2 : Modeling with classes:
3.9 Introduction to UML
3.10 Essentials of UML class diagrams
3.11 Associations and multiplicity
3.12 Generalization
3.14 More advanced features of class diagrams
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
SYLLABUS
MODULE 1 AND MODULE 2
NO OF HOURS : 11 HOURS
3
SYLLABUS Module 3
Hours: 10 Sessions
4
SYLLABUS Module 4
Hours: 12 Sessions
5
SYLLABUS Module 5
Hours: 10 Sessions
6
Text Books:
7
Reference Books:
8
Module 3 Developing Requirements And Class-based Requirements
Design Modeling With Classes
topics as per syllabus
=
3.1 Developing requirements: Domain analysis
3.2 Types of requirements
3.3 Requirements gathering
3.4 object-based requirements analysis
3.5 Use cases: describing how the user will use the system
3.6 techniques for gathering requirements
3.7 Managing changing requirements,
3.8 class-based requirements design Modeling with classes:
Time : 10 Hours
COURSE OUTCOMES : CO3, CO4, CO5
PROGRAM OUTCOMES : PO1, PO2,PO3,PO4,PO5 and PSO2
3.1 Developing requirements:
Domain analysis
3.2 Types of requirements
10
3.1 Domain analysis
subsystems.
3.1 Developing requirements: Domain analysis
13
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
3.2 Types of requirements
Users, System Engineers, and Program Managers will have to develop
several different types of requirements on an acquisition program
through its life cycle. These requirements range from very high-level
concept-focused to very specific for a part. The four (4) main types of
requirements that you can expect on a program are:
•Functional Requirements
•Performance Requirements
•System Technical Requirements
•Specifications
A requirement is a statement that identifies a product or
process operational, functional, or design characteristic or
constraint, which is unambiguous, testable or measurable,
and necessary for product or process acceptability.
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
17
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
Requirements
• Requirements = services the system is expected to
provide + constraints placed on the system.
20
21
22
Functional and Non functional Requirements
Functional Requirements:
• These are the requirements that the end user specifically demands as basic facilities
that the system should offer.
• All these functionalities need to be necessarily incorporated into the system as a part of
the contract.
• describe the requested functionality/behaviour of the system: services (functions),
reactions to inputs, exceptions, modes of operations
23
FUNCTIONAL REQUIREMENTS NON FUNCTIONAL REQUIREMENTS
1. A functional requirement defines a system or its A non-functional requirement defines the quality
component. attribute of a software system.
7. Helps you verify the functionality of the software. Helps you to verify the performance of the software.
8. Functional Testing like System, Integration, End to Non-Functional Testing like Performance, Stress,
End, API testing, etc are done. Usability, Security testing, etc are done.
33
Validating Requirements
Is each requirement consistent with the overall objective for
the system/product?
Have all requirements been specified at the proper level of
abstraction? That is, do some requirements provide a level of
technical detail that is inappropriate at this stage?
Is the requirement really necessary or does it represent an
add-on feature that may not be essential to the objective of
the system?
Is each requirement bounded and unambiguous?
Does each requirement have attribution? That is, is a source
(generally, a specific individual) noted for each requirement?
Do any requirements conflict with other requirements?
34
Validating Requirements
Is each requirement achievable in the technical environment
that will house the system or product?
Is each requirement testable, once implemented?
Does the requirements model properly reflect the information,
function and behavior of the system to be built.
Has the requirements model been “partitioned” in a way that
exposes progressively more detailed information about the
system.
Have requirements patterns been used to simplify the
requirements model. Have all patterns been properly
validated? Are all patterns consistent with customer
requirements?
35
3.3 Requirements gathering
3.4 Object-based requirements analysis
36
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
3.3 Requirements gathering
37
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
38
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
Requirement gathering process
39
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
40
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
3.3 Requirements Gathering
meetings are conducted and attended by both software engineers and
customers
rules for preparation and participation are established
an agenda is suggested
a "facilitator" (can be a customer, a developer, or an outsider) controls
the meeting
a "definition mechanism" (can be work sheets, flip charts, or wall
stickers or an electronic bulletin board, chat room or virtual forum) is
used
the goal is
to identify the problem
propose elements of the solution
negotiate different approaches, and
specify a preliminary set of solution requirements
41
42
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
Quality Function Deployment
Normal requirements: Requirements which are stated during
the meeting with the customer
Example:) normal requirements might be requested types of
graphical displays, specific system functions
Expected requirements: Requirements are implicit to the
product or system that are not explicitly stated by the customer.
Exciting requirements: features go beyond the customer’s
expectations and prove to be very satisfying when present.
Example:) software for a new mobile phone comes with
standard features, but is coupled with a set of unexpected
capabilities (e.g., multitouch screen, visual voice mail) that
delight every user of the product.
43
System Design Problems
• Requirements partitioning to hardware,
software and human components may involve a lot of negotiation
44
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
Understanding the Classification of Requirements
Functional requirements :
• Describe functionality or system services, how the system should react to particular inputs and how the system
should behave in particular situations.
• Depend on the type of software, expected users and the type of system where the software is used
• Functional user requirements may be high-level statements of what the system should do but functional system
requirements should describe the system services in detail.
Non-functional requirements :
• Defines system properties and constraints e.g. reliability, response time and storage requirements. Constraints
are I/O device capability, system representations, etc.
• Can be constraints on the process too
• Use a particular CASE system, programming language or development method
• System maybe unusable if non-functional requirements are not satisfied (Critical)
• 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.
Jain University 45
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
3.7 Managing changing requirements
Jain University 46
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
3.7 Managing changing requirements
Jain University 47
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
Objectives of Modular Software Design
• Functional partitioning into discrete scalable , reusable modules.
• Rigorous use of well-defined modular interface.
• Ease of change to achieve technology transparency and to the
extent possible make use of industry standards for key interfaces.
• Modularity is the principle of keeping separate the various unrelated aspects
of a system, so that each aspect can be studied in isolation (also called
separation of concerns).
• If the principle is applied well, each resulting module will have a single
purpose and will be relatively independent of the others.
• Each module will be easy to understand and develop easier to locate faults
(because there are fewer suspect modules per fault).
• Easier to change the system (because a change to one module affects
relatively few other modules)
48
Objectives of Modular Software Design
49
What is Requirement Analysis?
Requirements analysis
specifies software’s operational characteristics
indicates software's interface with other system elements
establishes constraints that software must meet
Requirements analysis allows the software engineer (called
an analyst or modeler in this role) to:
elaborate on basic requirements established during earlier
requirement engineering tasks
build models that depict user scenarios, functional
activities, problem classes and their relationships, system
and class behavior, and the flow of data as it is
transformed.
50
Elements of Requirement Analysis
51
Scenario-Based Models
52
Jain University 53
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
Use case Notation:
Use case is represented as an eclipse with a name inside it. It may contain additional
responsibilities.
Actor is used in a use case diagram to describe the internal or external entities.
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
USE CASE DIAGRAM
59
Class Notation:
UML class is represented by the diagram shown below. The diagram is divided into four
parts.
The top section is used to name the class.
The second one is used to show the attributes of the class.
The third section is used to describe the operations performed by the class.
The fourth section is optional to show any additional components.
Classes are used to represent objects. Objects can be anything having properties and
responsibility.
Jain University 60
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
Object Notation:
The object is represented in the same way as the class. The only difference is the name
which is underlined as shown below.
72
Data models
73
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
Data Flow Models
74
Data Flow Diagrams (DFD)
75
Elements of a DFD
• Processes
• Change the data. Each process has one or more inputs and
outputs
• Data stores
used by processes to store and retrieve data (files, DBs)
• Data flows
-movement of data among processes and data
stores
• External entities
- outside things which are sources or destinations of
data to the system
76
DFD for Order Processing
Checked and
Completed Signed Signed Send to signed order
order form order form order form supplier + order
Order
notification
details + Complete Validate Record
blank order form order order
order form Adjust
Order available
Signed budget
details order form
Order
amount
+ account
details
Orders Budget
file file
77
What is Object Oriented Data Modeling?
•Centers around objects and classes
•Involves inheritance
•Encapsulates both data and behavior
•Benefits of Object-Oriented Modeling
• Ability to tackle challenging problems
• Improved communication between users, analysts, designer, and
programmers
• Increased consistency in analysis and design
• Explicit representation of commonality among system components
• System robustness
• Reusability of analysis, design, and programming results
78
OO vs EER Data Modeling
Object Oriented ER
81
UML class and object diagram
Class diagram showing two classes
Object diagram shows instances that are compatible with a given class
83
diagram.
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
Object diagram for customer order
84
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan
Class Diagram for Library Management System
Library management system provides support for a library,
including book and member management. It logs and processes book lending.
Domain Classes and Enumerations
•Book (Class)
•Genre (Enumeration) - adventure, contemporary, fantasy, horror, mystery,
romance, thriller
•Author (Class)
•BookCopy (Class)
•BookEdition (Class)
•Publisher (Class)
•Member (Class)
•BookLoanLog (Class)
•MemberType (Enumeration) - standard, VIP
•Bookshelf (Class)
•Department (Class)
•Bookcase (Class)
•Reminder (Class)
3. Design traceability information links the requirements to the design modules where these
requirements are implemented. You use this information to assess the impact of proposed
requirements changes on the system design and implementation.
87
Module 3 Summary Developing Requirements And Class-based Requirements
Design Modeling With Classes ( 10 Hours)
So far in this Module, we discussed the following concepts..
3.1 Developing requirements: Domain analysis
3.2 Types of requirements
3.3 Requirements gathering
3.4 object-based requirements analysis
3.5 Use cases: describing how the user will use the system
3.6 techniques for gathering requirements
3.7 Managing changing requirements,
3.8 class-based requirements design Modeling with classes:
Module 3 _ Part 2 Introduction to UML
3.9 Essentials of UML class diagrams
3.10 Associations and multiplicity
3.11 Generalization
3.12 More advanced features of class diagrams 88
88
Module 3 Part 1 Developing Requirements Modeling with Classes by Dr MK Jayanthi Kannan