Download as pdf or txt
Download as pdf or txt
You are on page 1of 41

OOAD: Requirements

Presenter: Dr. Ha Viet Uyen Synh.


Part A

GENERAL SYSTEM THEORY


System’s Concept
Def. A system is a set of components that interact with
other ones and serve for a common purpose or goal.

Systems may be: (1) abstract or (2) physical


• An abstract system is conceptual, a product of a
human mind. That is, it cannot be seen or pointed to as
an existing entity. However, they do exist and can be
discussed, studied and analyzed.
• A physical system, in contrast, has a material nature.
It is based on material basis rather than on ideas or
theoretical notions.
Example _ an abstract system
Example _ a physical system

SCADA System
Nine System’s Characteristics
“Systems” Thinking
Identify something as a system

Involves being able to identify subsystems

Identify system characteristics and functions

Identify where the boundaries are (or should be)

Identify inputs and outputs to systems

Identify relationships among subsystems

7
Information Systems
Def. An Information System (IS) is a collection of
interrelated components that collect, process, store, and
provide as output the information needed to complete a
business task.

Example: A payroll system collects information on


employees and their work, processes and stores that
information, and than produces paychecks and payroll
reports for the organization. Then information is
provided to manufacturing so the department can
schedule production.

8
Types of Information Systems

9
Hierarchy of Information Systems
Hierarchy: System, Subsystem, Supersystem
Ex: customer support system: order entry subsystem, order fulfillment
subsystem, shipping and back order subsystem, product catalog
maintenance, etc.

Supersystem – a larger system that includes the system. The system


is a subsystem of the larger supersystem
Ex: production system includes other systems, such as inventory
management and manufacturing and customer support system.

10
System Boundary vs. Automation
Boundary
System boundary: separates system from other
systems and from its environment

Automation boundary - separates the automated part


of the IS (where work is done by computers) from the
manual part (where work is done by the people).

11
Example _ System Boundary
Example _ Automation Boundary
Part B

REQUIREMENT ANALYSIS
Conceptual Model for SW Architectures
Requirements Analysis
Traditional SE suggests requirements analysis should
remain unsullied by any consideration for a design

However, without reference to existing architectures it


becomes difficult to assess practicality, schedules, or
costs

In engineering, new products come from the observation


of existing solution and their limitations

17
New Perspective on Requirements
Analysis
Existing designs and architectures provide the solution
vocabulary

Our understanding of what works now, and how it works,


affects our wants and perceived needs

The insights from our experiences with existing systems


helps us imagine what might work and enables us to
assess development time and costs

→ Requirements analysis and consideration of design


must be pursued at the same time

18
Software Architecture’s Elements
A software system’s architecture typically is not (and
should not be) a uniform monolith

A software system’s architecture should be a


composition and interplay of different elements:
Processing
Data, also referred as information or state
Interaction
Deployment
• A software system cannot fulfill its purpose
until it is deployed
• Executable modules are physically placed on the
hardware devices on which they are supposed to
run

• The deployment view of an architecture can


be critical in assessing whether the system
will be able to satisfy its requirements

• Possible assessment dimensions


• Available memory
• Power consumption
• Required network bandwidth
Components
Elements that encapsulate processing and data in a
system’s architecture are referred to as software
components

Definition
A software component is an architectural entity that
encapsulates a subset of the system’s functionality and/or data
restricts access to that subset via an explicitly defined interface
has explicitly defined dependencies on its required execution
context

Components typically provide application-specific


services
Connectors
In complex systems interaction may become more
important and challenging than the functionality of the
individual components

Definition
A software connector is an architectural building block
tasked with effecting and regulating interactions among
components

In many software systems connectors are usually simple


procedure calls or shared data accesses

Connectors typically provide application-independent


interaction facilities
Some types of Connectors
Procedure call connectors

Shared memory connectors

Message passing connectors

Streaming connectors

Distribution connectors

Wrapper/adaptor connectors

23
Configurations
Components and connectors are composed in a specific
way in a given system’s architecture to accomplish that
system’s objective

Definition
An architectural configuration, or topology, is a set of
specific associations between the components and
connectors of a software system’s architecture
Example for Context Diagram
Small
Individuals Businesses

Users
act as act as

Buyers Sellers
buy items from the

sell and ship items to the


Accountants

buy sell
items items
in the in the
perform
accounting duties
Security using the
Employees Officers
Global
handle sends
Personal
security violations information
Marketplace
of the to the
(GPM)
provide
User Support
user support
work for Agents authorizes
for the
credit card
transactions
via the

Global
Personal
Marketing Authorization
Corp. Processor
Gateway
Deployment Diagram
Network Architecture Diagram
What’s the difference between software that
works and software that works well?
Example
You’ve been hired to build an online store

You’ve gone ahead and applied the feature/use case-driven


approach to design

You’ve done that process of identifying the use cases,


planning and estimating them with user stories, and
thinking about how you can write those stories as tests

Looking back at what you’ve done, you’ve acceptance


tested the use cases, integration tested the infrastructure
code that interacts with external APIs and the outside
world, and even did a little bit of end-to-end testing to
ensure things work from front to back.

Has everything been OK?


Example _ Complaints from
customers.
• “The cart page takes around 10 seconds to load — it’s way too
slow! If it’s already this slow under regular traffic, I’m not sure
what’s going to happen when we have our boxing day sale. Will
the site just go down completely?”

• “We keep having to refund orders! Customers are purchasing


products that are out of stock, so I’m not sure how you did the
sync to our backend inventory but it’s either taking too long to
sync or it’s not syncing at all.”

• “The site looks weird on mobile.”

• “Customers are confused about how to get to the page where


they can see the status of their orders.”

• “The animations moving between pages feels kind of choppy. I


was expecting it to be smoother. Can you fix that?”

Where did we go wrong?


What is a non-functional requirement?
Where functional requirements describe what the system should do
(ie: the use cases or features), non-functional requirements
(sometimes called constraints or behavioral requirements) describe
what the system should be (ie: the system level properties).
Types of non-functional requirements

Capacity

Localization Regulatory

Performance Portability

Reliability
Example
• Scalability, performance, efficiency: “The website
should process each request within 4 seconds or less
99% of the time.”

• Scalability, performance: “In standard network


conditions, the website should fully load in less than
5 seconds when the total number of simultaneous
users on the website are greater than 50,000.”

• Security, data integrity, capacity: “Every unauthorized


request to a resource must be logged and stored for
audit over the next 5 years.”
Functional vs. non-functional requirements
Non-functional requirement
Functional

Constrains the functional


Describes what the
Description requirements and describes
system should do
“how the system should be”
No, but some are more
Mandatory Yes
important than others
As a use case / feature - As a system-level property
Scope
component level against the system as a whole
More difficult (it can be
difficult to make qualitative
Ease of
Straightforward properties quantitative — we
definition
sometimes have to use
indicators instead).
Unit, integration,
Performance, stress, security,
Test types acceptance, end-to-end
usability testing (for example)
tests
Given a user has not (1) The site should be able to
created an account, when process 99.9% of requests in
they register, a new users less than 6 seconds. (2)
Example
should be created and an Emails should be sent no later
email should be sent to than 20 minutes after the
them. triggering event.
Why should we learn about non-
functional requirements
• It’s one of the main reasons why projects fail

• It has a massive influence on architecture (execution


qualities)

• Makes good design techniques necessary (evolution


qualities)
Best practices for dealing with
non-functional requirements

• Uncover non-functional requirements early

• Make requirements as measurable as possible

• Use popular products as a quality baseline


Exercise #1
Are these procedures written for system boundary or
automation boundary?
Exercise #2
Exercise #3
Given the following list of requirements of a sales system:

The system should do


1. Be accessible to Web users.
2. Include the company standard logo and color scheme.
3. Restrict access to profitability information.
4. Include actual and budgeted cost information
5. Provide management reports
6. Include sales information that is updated at least daily.
7. Have two-second maximum response time for predefined queries
and ten-minute maximum response time for ad-hoc queries.
8. Include information from all company subsidiaries
9. Print subsidiary reports in the primary language of the subsidiary
10. Provide monthly rankings of salesperson performance

Questions:
1. Which requirements are functional business requirements?
2. Which requirements are non-functional business requirements?
3. What kinds of non-functional requirements are they? Provide two
additional examples.
Any Questions?

You might also like