Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CIS490
Software Engineering
Spring2001
Manufacturing the software product
Modeling
Problem Modules Mapping Solution
techniques
Structured
Programming
and
VORD Languages
OO
Problem Final
Models
statement Product
A comprehensive approach to apply
The partitioning concept
module
service
(function)
Loose
Coupling
Structured
approach module service
(function)
module
service
(function)
Partitioning
Problem
the
statement
Problem
Class service
Tight
Cohesion Object
Oriented
approach class
service
service
class
The Software Engineering Grammatical Model
SEGM
by Osama Eljabiri
Automatic
CASE External DFD
Entities and
tools
software OO
Nouns
engineers
Data
stores
and Data flows DFD
Analyze
Build
Identify requirement Apply
Final
Initial s with grammatical
Problem ERM
problem VORD Analysis Attributes
statement and
method OO
DFD
Process
Stake
holders
use of Verbs
Methods
OCR Associations OO
Technology
Relations
ERM
A comprehensive approach for generating software engineering documentation
By Osama Eljabiri
Documentation
Analysis
Data flow
Graphical Structured
diagramin
representation chart
g
Stakeholders
ERM Structurded
Data Decisin Decision
dectionary table tree english
Nouns
Grammatical Associate
Determine Nouns and verbs
analysis methodology to their relevant
components
Verbs
Build models
DFD diagrams , Context diagrams
, data dictionary ,decision table
Decision tree , structured charts, pseudo code,
ERM model , architectural models
For your project
Check list
Title page
Table of contents
Background
VORD method
Problem statement
Literature Review
Methods and Techniques used
Glossary
References
ATM Problem Statement
Design the software to support a computerized banking network including
both human cashiers and automatic teller machine (ATMs) to be shared by a
consortium of banks. Each bank provides its own computer to maintain its
own accounts and process transactions against them. Cashier stations are
owned by individual banks and communicate directly with their own bank's
computers. Human cashiers enter account and transaction data. Automatic
teller machines communicate with a central computer which clears
transactions with the appropriate banks.
An automatic teller machine accepts a cash card, interacts with the user,
communicates with the central system to carry out the transaction,
dispenses cash, and prints receipts. The system requires appropriate
recordkeeping and security provisions. The system must handle concurrent
accesses to the same account correctly. The banks will provide their
network. The cost of the shared system will be apportioned to the banks
according to the number of customers with cash cards.
ATM Problem Statement
(SOLUTION)
Design the software to support a computerized banking network including
both human cashiers and automatic teller machine (ATMs) to be shared by a
consortium of banks. Each bank provides its own computer to maintain its
own accounts and process transactions against them. Cashier stations are
owned by individual banks and communicate directly with their own bank's
computers. Human cashiers enter account and transaction data. Automatic
teller machines communicate with a central computer which clears
transactions with the appropriate banks.
An automatic teller machine accepts a cash card, interacts with the user,
communicates with the central system to carry out the transaction,
dispenses cash, and prints receipts. The system requires appropriate record
keeping and security provisions. The system must handle concurrent
accesses to the same account correctly. The banks will provide their
network. The cost of the shared system will be apportioned to the banks
according to the number of customers with cash cards.
Requirements Engineering
Feasibility Requirements
study analysis
Requir ements
definition
Feasibility Requirements
report specification
System
models
Definition of
requirements
Requirements Specification of
document requirements
Introduction to Requirements
Analysis
What are Requirements?
IEEE definition [IEEE90]:
Business level
To meet these needs, what process,
Requirements procedures etc. are required?
Behavioral requirements
The system shall allow the withdrawal of funds from customer
checking accounts.
The system shall allow the deposit of funds into customer checking
accounts.
The system shall only allow access to users with a valid 8 digit PIN
security number.
Non-Behavioral requirements
The system shall respond to all requests within 20 seconds.
The system shall be available 24/7 except for a 30 minute period
each day for maintenance.
Sources of Requirements
Requirements come from:
– Users/Customers (e.g. Bank employees,
management, selected customers)
– Standards (e.g. Bank standards for data, Year2000 )
– Policy/Legal (e.g. Government Banking regulations)
– System/Process Documentation (e.g. current
system being replaced, could be manual)
– Subject Matter Experts (e.g. experts on consumer
banking)
Why do we care
about Requirements
Analysis?
Key System Development Challenges
correct wrong
requirements requirements
40% 38%
35%
30%
24% 23%
25%
20%
15% 10%
10%
4%
5% 1%
0%
Incorrect Omission Clerical Inconsis- Ambi- Misplaced
Facts Errors tency guity Requirements
Difficulties in creating good
requirements include:
• Understanding - Users and customers do not always
know what they want until they see it
• Modeling - For a large system, the modeling the
requirements is time consuming and challenging
• Communication - Software is complex and precise, it is
hard to effectively communicate requirements for this
software across users, customers and developers,
• Management of Requirements - Since requirements are
typically not stable thourghout development, it is critical
to control and understand the impact of change to the
requirements
What is the Requirements Process?
The requirements process is one in which
“what is to be done” is elicited and modeled.
This process has to deal with multiple
perspectives, and it uses a combination of
methods, tools and actors.
The product of this process is a model,
from which a document, called
a requirements specification
is produced.
Requirements Process and Work
Products
• What is the process lifecycle?
• Who participates?
Requirements Analysis
Design
Code
System Test
Activities
Analysis
Elicitation and Specification Validation
Organization
Work Products
Analysis
Elicitation and Specification Validation
Design
Code
However, requirements
will change and be
reworked throughout
System Test
the development lifecycle
Stakeholders who participate in the
Requirements Analysis Process
• Users
• Managers,
• Analysts,
• Sponsors/funders,
• Developers.
Activities
Analysis
Elicitation and Specification Validation
Organization
Work Products
Security Feedback
System Easiness
Operator
Selling Owners
On-line Maintainable Existing
customers
Communicating Marketing
Dependability Linking
Together Manager Sister
Companies
Maintenance
engineer
Rapidity
Viewpoint service information
ACCOUNT FOREIGN BANK
HOLDER CUSTOMER TELLER
Service list Service list Service list
Services
Query balance
Withdraw cash Customer Bank staff
Auto-teller
system
Branch
Usage
counter
database
system
Maintenance
system
Introduction to Use Case
Modeling
What is Use Case Modeling?
• When individuals use a system, they perform a
behaviorally-related sequence of transactions in a
dialogue with the system.
• Use cases model the system by identifying events and
describing system response (behavior)
• Use cases are a combination of English descriptions
and/or graphical representations that specify the
interaction which takes place between a user and the
system for the purpose of completing a single event
• System functionality is defined by the collection of all
use cases
Background of Use case
modeling
• Developed by Ivar Jacobson at Erricson Telecom
• Was the center of the Objectory(TM) Methodology
• Used to supplement object modeling during system
analysis
• Widely accepted by object oriented community
• Incorporated into Unified Modeling Language (UML)
• Still a very loosely defined approach
• Many ways to do “It Right”
A Use Case is:
• Jacobson defines a use case as “a sequence of
transactions in a system whose task is to yield a result of
measurable value to an individual actor of the system
“[Jaco95].
Use Case A
Actor
What is an Actor?
“The actors represent what interacts with the system.”
- Ivar Jacobson [Jacobson92a]
Airline
Determine seat
Reservation availability
System
• A tangible entity,
• Is a role played
There can be a couple of significant
exceptions to these guidelines.
The bank would like to automate as much of the loan processing as possible. With the goal of
helping to reduce the time to respond to a customer to 24 hours, as well as reducing the
number of personnel involved in the process and increasing the number of loans that can be
processed in a given period of time. The bank would also like to improve the efficiency of
their current loan service activities such as payment processing and late loan collection.
They would also like to be able to share data between the loan processing system and other
bank systems.
Context Level Diagram
• Represents the system as a black box (a big circle)
• Defines System boundary
• External entities that interaction with it.
• With the interactions (or alternatively the
information flow between an entity and the
system)
• Evaluate the external entities to see if they are
actors, normally this is the case.
Context Diagram for Loan Processing
System
Loan Officer
Evaluate, Loan Applicant
Generate, Submit loan request
Close loan
Customer
Provide loan
statistic report Current Customer
Approve Account Information
Credit
Specialist
Find the Actors
Look for external entities that have interactions with the system in:
• Draft Context diagrams and other models that describe the system within its
environment. (eg BPR results, existing system models etc)
• The stakeholder analysis that has identified the stakeholders.
• Written specifications and other project documentation, such as memos
about meetings with users, to help find users whom may be potential actors.
• Participation in Joint Application Development (JAD) or Joint
Requirements Planning (JRP) sessions,
• Training guides and user manuals from current processes and systems.
• Finally, and most importantly, involve the key users in the use case
modeling process.
Actors can both initiate and respond to
interactions from the system
• Initiator - An external (normally) actor that initiates a
behavior of the system
• External Servers and Receivers - Form of actor that
support a behavior of the system.
Credit Bureau
Primary and Secondary Actors
• Remember:
:
Use Cases involved in Actor Type: <Primary, Secondary>
Use Case Name/ID: <name, ID> Actor Form: <Initiator, Server, Receiver>
1)
2)
3)
etc.
Actors for the loan processing
include:
• Applicant
• Customer
• Loan Officer
• Accounting System
• Credit Specialist
• Credit Bureau
• Loan Manager
• Data Warehouse
Example specification for: Applicant
Actor Specification
Actor Name: Applicant Abstract: No
Description: An Applicant is an individual or organization who submits
a request for a loan to the Bank.
:
Use Cases involved in
Use Case Name/ID: <name, ID> Actor Form: <Initiator, Server, Receiver>
1)
2)
3)
etc.
Example specification for: Credit
Bureau
Actor Specification
Actor Name: Credit Bureau Abstract: No
Description: Credit Bureau is a organization that maintains and
provides credit histories on individuals and organizations
:
Use Cases involved in
Use Case Name/ID: <name, ID> Actor Form: <Initiator, Server, Receiver>
1)
2)
3)
etc.
Abstract Actors
• An abstract actor is a role that represents shared or
common behavior across two or more actors.
• For example, if there is a business customer and
individual, much of the way they interaction with
the system is the same.
• However, there are some differences in the details
of the interactions these two actors have with the
system.
• Just as in object modeling, generalization
relationships can be defined to capture this concept.
Abstract Actor Example
Customer
Individual Business
Customer Customer
When looking for actors ask the
following questions:
• Who or what initiates events with the system?
• Who or what interacts with the system to help the system
response to an event?
• Are there any reporting interfaces?
• Are there any system administrative interfaces?
• Will the system need to interact with any existing legacy
systems?
• Are their significant special cases of the actors already
defined for the system?
• Are their any other hardware or software devices that interact
with the system and make sense to model during analysis?
Use Case Modeling Process
Post-condition:
Post-condition:
Assumptions:
Assumptions:
Sample Template for Documenting a
Initial Use Case Description.
Actor (s): <Names of the actor or actors who interact with the system>
Description:
The System
A Partial Use Case Diagram for the Loan
Processing System
Applicant
Loan Officer
Book a Loan
Loan Clerk
Customer
Account Management
System
Collection Agency