Limitations of the Human Brain
Traditional practices unfortunately support the use of thousands
of “system shall“ requirements
These requirements are typically generated via interviews and
working sessions with business stakeholders.
It is nearly impossible to read the thousands of requirements
and emerge confident that the requirements are complete.
Analysts who use traditional practices to create software
requirements experience common problems during analysis, organization, and consumption of the requirements.
Traditional practices use long lists of text requirements in the
form of shall statements or, more recently, user stories and product backlogs.
The challenge of working with long lists of items results from a
fundamental limitation of human cognition.
Miller magic number
In the 1950s, cognitive psychologist George A. Miller found that humans
Pictures Are Easy, Words Are
Hard
Where is elevator??
“From here you are going to go out to the
Pictures Are Easy, Words Are
Hard
A picture is worth a thousand words
Models
are visual representations
(pictures) of information related to the
processes, data, and interactions within
and surrounding the solution being
System modeling
System modeling is the process of developing
abstract models of a system, with each model
presenting a different view or perspective of that system.
System modeling represents a system using some
kind of graphical notation, which is now almost always based on notations in the Unified Modeling Language (UML).
System modelling helps the analyst to understand the
functionality of the system and they are used for
Existing and planned system models
Models of the existing system are used during
requirements engineering. They help clarify what the existing system does and can be used as a basis for discussing its strengths and weaknesses. These then lead to requirements for the new
system.
Models of the new system are used during
requirements engineering to help explain the proposed requirements to other system
stakeholders. Engineers use these models to discuss design proposals and to document the system for
implementation.
In a model-driven engineering process, it is
Uses of graphical models
As a means of facilitating discussion about an
existing or proposed system
Incomplete and incorrect models are OK as their
role is to support discussion.
As a way of documenting an existing system
Models should be an accurate representation of
the system but need not be complete.
As a detailed system description that can be used
to generate a system implementation
Types of System perspectives
An external perspective, where you model the
context or environment of the system.
An interaction perspective, where you model the
interactions between a system and its environment, or between the components of a system.
A structural perspective, where you model the
organization of a system or the structure of the data that is processed by the system.
A behavioral perspective, where you model the
Context models
Context models are used to illustrate the operational
context of a system - they show what lies outside the system boundaries.
At an early stage in the specification of a system, you
should decide on the system boundaries
This involves working with system stakeholders to
decide what functionality should be included in the system and what is provided by the system’s
environment.
You may decide that automated support for some
Context model for E-restaurant
Order meal
Pay for meal
Update menu
Deliver meal
Customer
Restaurant Manager
Credit/debit card authentication
System boundaries
System boundaries are established to define what is
inside and what is outside the system.
They show other systems that are used or depend
on the system being developed.
The position of the system boundary has a profound
effect on the system requirements.
Defining a system boundary is a political judgment
There may be pressures to develop system
UML diagram types
UML has become a standard modelling language Use case diagrams, which show the interactions
between a system and its environment.
Sequence diagrams, which show interactions
between actors and the system and between system components.
Class diagrams, which show the object classes in
the system and the associations between these classes.
State diagrams, which show how the system reacts
to internal and external events.
Activity diagrams, which show the activities
Interaction models
All systems involve interaction of some kind. This can be
user interaction, which involves user inputs and outputs,
interaction between the system being developed and other
systems or
interaction between the components of the system.
Modeling user interaction is important as it helps to identify
user requirements.
Modeling system-to-system interaction highlights the
communication problems that may arise.
Modeling component interaction helps us understand if a
proposed system structure is likely to deliver the required system performance and dependability.
Use case diagrams and sequence diagrams may be used for
Use case modeling
Use cases were developed originally to support
requirements elicitation and now incorporated into the UML.
Each use case represents a discrete task that
involves external interaction with a system.
Actors in a use case may be people or other
systems.
A use case is shown as an ellipse with the actors
involved in the use case represented as stick figures
Represented diagrammatically to provide an
Online Shopping System use cases example
The Online Shopping system facilitates the customer to view the
products, inquire about the product details, and product availability. It allows the customer to get register in order to purchase products. The customer can search products by browsing different product categories or by entering search keywords. Customer can place order and pay online. There are two acceptable payment methods. These are (1) pay by credit card and (2) pay by PayPal.
The system provide service to seller to place the products for selling.
The seller creates account to become the member and places his products under suitable product category.
The systems allows the administrator to manage the products. It
facilitates the administrator to modify the existing products categories or to add new products categories.
The system facilitate site manager to view different reports including (1)
Online Shopping System
Stakeholders and associated use cases
Customer
view the products
inquire about the product details inquire about products availability get register
purchase products search products
by category by keyword
pay online
Seller
place the products for selling create account
place products product category
Administrator
Manage products
modify the existing products categories add new products categories
Site manager
view order placed by customers view products added by sellers, view accounts created by users.
Online Shopping System
Transfer-data use case
Tabular description of the
‘Transfer data’ use-case
MHC-PMS: Transfer dataActors Medical receptionist, patient records system (PRS)
Description A receptionist may transfer data from the MHC-PMS to a general patient record database that is maintained by a health authority. The information transferred may either be updated personal information (address, phone number, etc.) or a summary of the patient’s diagnosis and treatment.
Data Patient’s personal information, treatment summary Stimulus User command issued by medical receptionist Response Confirmation that PRS has been updated
USE CASE 5 Buy Goods
Goal in Context Buyer issues request directly to our company, expects goods shipped and to be billed.
Scope & Level Company, Summary
Preconditions The company knows Buyer, their address, etc. Success End
Condition Buyer has goods, company have money for the goods.
Failed End Condition Company have not sent the goods, Buyer has not spent the money. Primary,
Secondary Actors Buyer, any agent (or computer) acting for the customer. Credit card company, bank, shipping service Trigger purchase request comes in.
Basic Events Flow Step Action
1 Buyer calls in with a purchase request
2 Company captures buyer’s name, address, requested goods, etc.
3 Company gives buyer information on goods, prices, delivery dates, etc.
4 Buyer signs for order.
5 Company creates order, ships order to buyer. 6 Company ships invoice to buyer.
7 Buyers pays invoice.
EXTENSIONS Step Alternative Flow (Branching Action)
3a Company is out of one of the ordered items: 3a1. Renegotiate order.
4a Buyer pays directly with credit card:
4a1. Take payment by credit card (use case 44) 7a Buyer returns goods:
7a. Handle returned goods (use case 105) Superordinates Manage customer relationship (use case 2) Subordinates (included use
cases)
Create order (use case 15)
Take payment by credit card (use case 44)
<<include>> and <<extend>>
An extend relationship specifies how the behavior of the extension use case can be inserted into the behavior defined for the base use case.
Sequence diagrams in the UML are used to model the
interactions between the actors and the objects in a system
and the interactions between the objects themselves.
A sequence diagram shows the sequence of interactions that
take place during a particular use case.
The objects and actors involved are listed along the top of the
diagram, with a dotted line drawn vertically from these.
Interactions between objects are indicated by annotated
arrows.
The annotations on the arrows indicate the calls to the objects,
and their parameters.
The rectangle on the dotted lines indicates the lifeline of the
object concerned
You read the sequence of interactions from top to bottom.
ATM
Issue of electronic items sequence diagram
:Library User
Ecat: Catalog
Lookup
Issue Display
:Library Item Lib1:NetServer
Issue licence
Accept licence
Compress
Structural models
Structural models of software display the organization
of a system in terms of the components that make up that system and their relationships.
You create structural models of a system when you
Class diagrams
Class diagrams are used when developing an
object-oriented system model to show the classes in a
system and the associations between these classes.
An object class can be thought of as a general
definition of one kind of system object.
When you are developing models, objects represent
something in the real world, such as a patient, a prescription, doctor, etc.
An association is a link between classes that indicates
Nouns as objects
If a
customer
enters
a
store
with the
intention of
buying
a
toy
for a
child
,
then advice must
be available
within a
reasonable time concerning
the suitability of the toy for the
child
.
This will depend on the age range of the
child and the attributes of the toy. If the
toy is a
dangerous item
, then it is
UML classes and association
Show how many objects are involved in the association
That is, each patient has exactly one record and each record
UML classes and association
Teacher 1 teaches * Student
Tricycle 1 has 3 wheels
Eggbox 1 holds 12,24 Egg
One- to-many
One -to -three
Classes and associations in Bank
Bank 1 maintains 1 ATM
Customer 1 1…* Account 1 1…* has Debit card 1 1
Provide access to
ATM
transaction
performs
Generalization
Generalization is an everyday technique that
we use to manage complexity.
Rather than learn the detailed characteristics
of every entity that we experience, we place
these entities in more general classes
(animals, cars, houses, etc.) and learn the
characteristics of these classes.
This allows us to infer that different members
Generalization
One class (the child class or subclass) can inherit
attributes and operations from another (the parent class or superclass). The parent class is more general than the child class.
The lower-level classes are subclasses inherit the
attributes and operations from their superclasses. These lower-level classes then add more specific attributes and operations.
The inheritance hierarchy doesn't have to end at two
Generalization example
Attributes: Weight, passenger capacity, fuel tank capacity, colour, registration number, engine
properties
Operation: startEngine(), stopEngine(), applyBrake(), accelerate()
Number of wheels
Library User class hierarchy
Name Address Phone Registration # Library user Register () De-register () Affiliation ReaderAggregation
Aggregation is a "has a" association relationship
It is an association that represents a part-whole
or part-of relationship.
In UML, it is graphically represented as
a hollow diamond shape on the containing class
with a single line that connects it to the
Aggregation example
Pond Duck
Composition
The composition relationship is just
another form of the aggregation
relationship,
However in composition the part class
instance lifecycle is dependent on the
whole class's instance lifecycle.
Composition relationship is drawn like
Composition example
Person
Leg Hand