4-Analyzing The Problem PDF
4-Analyzing The Problem PDF
Problem Analysis :
Concepts and Techniques
Problem Analysis
1
SWE 214 - Introduction to Software Engineering
Five steps of problem analysis
2
SWE 214 - Introduction to Software Engineering
Five steps of problem analysis
Step 3 : Identify stakeholders and users
Stakeholder: anyone who could be affected by the new system
or has input to provide in the implementation of the new system
Complex problems always involve the input of different
stakeholders that have different viewpoints on the problem.
Users: will use the system
Managers: will pay for the system, or will manage the users
IT people: will install, manage and maintain the system
External regulators: will impose constraints on the system
operation
System developers: will implement a solution to the problem
Forgetting one of these might lead to major rework later on, or
even to project failure.
3
SWE 214 - Introduction to Software Engineering
Five steps of problem analysis
Summary
4
SWE 214 - Introduction to Software Engineering
Problem Analysis :
Concepts and Techniques
Business Modeling
Business Modeling
5
SWE 214 - Introduction to Software Engineering
Business Modeling
6
SWE 214 - Introduction to Software Engineering
Business Models
Business Models
7
SWE 214 - Introduction to Software Engineering
Business Models
Business Modeling
Business modeling clearly fits in the use-case driven approach
It provides a first overview of the problem domain.
It forces a first draft using simple terms that belong to the problem
domain:
Forces early stakeholder implication
Forces problem domain understanding by the software developers
Question: How can these models be integrated in the use case
driven approach, or to an object-oriented design methodology?
Translations from business models to the system model
business workers -> actors
behaviors of the workers -> system use cases, functionality, scenario
business entities -> entity classes
8
SWE 214 - Introduction to Software Engineering
Business Modeling
Summary
9
SWE 214 - Introduction to Software Engineering
Problem Analysis :
Concepts and Techniques
System Engineering
Systems Engineering
Systems engineering provides eight principles (INCOSE
1993)
Know the problem, know the customer, and know the
consumer.
Use effectiveness criteria based on needs to make the system
decisions.
Establish and manage requirements.
Identify and assess alternatives so as to converge on a
solution.
Verify and validate requirements and solution performance.
Maintain the integrity of the system.
Use an articulated and documented process.
Manage against a plan.
10
SWE 214 - Introduction to Software Engineering
Systems Engineering
Requirements Flowdown
Assigning a system-level requirement to a
subsystem.
A matter of ensuring that all system requirements
are filled by a subsystem somewhere or by a set of
subsystems collaborating together.
Systems Engineering
The initial requirements of the system (system level
requirements) are normally very high level and abstract.
System decomposition will also decompose these high
level requirements into subsystem level requirements.
Derived requirements:
Two subclasses of Derived Requirements
Subsystem requirements
must be imposed on the subsystems
do not necessarily provide a direct benefit to the end user
Interface requirements
may arise when the subsystems need to communicate with one
another to accomplish an overall result.
The propagation of requirements and levels of
requirements derivation increases the complexity of
requirements management
11
SWE 214 - Introduction to Software Engineering
Systems Engineering
Systems complexity has moved from hardware to
software components. Why?
Cheaper, easier to change, lighter, etc.
Nowadays, software, not hardware
will determine the functionality of the system
will determine the success of the system
will consume the majority of the costs of research and system
development
will absorb most of the changes that occur during development
will be evolved over the next few years to meet the changing
needs of the system
The great majority of systems requirements are now
software requirements, even though these are still
hardware systems
Systems Engineering
12
SWE 214 - Introduction to Software Engineering
Problem Analysis Summary
Process :
Inception Phase:
Project description agreement
Project risks
Context of the project
Scope of the project
Elaboration Phase:
Detailed definition of all use cases
UML diagrams modeling scenarios
Use case diagram(s)
13
SWE 214 - Introduction to Software Engineering
Problem analysis
Process :
Gain agreement on the problem definition
Understand the root causes of the problem
Identify the stakeholders and users
Determine the boundaries of the solution
Understand the constraints
Business modeling
Business Use-Case Model
Describes who (or what other system) is involved in this
business activity and how this activity takes place
Could represent a preliminary version of the use case diagram
as developed in the Use-Case driven approach
Business Object Model
Describes the entities and how they interact to deliver the
functionality to realize the business use cases
Could represent a preliminary version of the object diagrams
(sequence and class diagrams) as developed in the Use-Case
driven approach
14
SWE 214 - Introduction to Software Engineering
Systems engineering
User needs
domain Requirements
information, document
Agreed
existing system System requirements
information, specification
regulations,
standards, etc.
15
SWE 214 - Introduction to Software Engineering
They all fit in our general process
Existing
systems
information
Stakeholder Agreed
needs requirements
Requirements System
Organisational engineering process
standards specification
System
Regulations models
Domain
information
Problem Analysis :
Concepts and Techniques
The UML
Use-Case-Driven Approach to
Requirements Engineering
16
SWE 214 - Introduction to Software Engineering
UML vs. Requirements Modeling
The Process
Inception Phase:
Project description agreement
Project risks
Context of the project
Scope of the project
Elaboration Phase:
Detailed definition of all use cases
UML diagrams modeling scenarios
Use case diagram(s)
17
SWE 214 - Introduction to Software Engineering
Problem Analysis :
Concepts and Techniques
Inception Phase
Project Description
Project description agreement
Identify the problem and its root causes
Write a short textual description of the problem to be solved,
and the key features of the system
Should not describe solutions
From a paragraph to a couple of pages for a complex project
Every stakeholder has to agree on the project description
Project risks
Look at the system from many viewpoints
Other systems, marketing, technology, users, managers
Identify things that can go wrong
User resistance, inexperienced developers, system dependencies
18
SWE 214 - Introduction to Software Engineering
Context of the Project
19
SWE 214 - Introduction to Software Engineering
Context of the Project
Describe actors
Customer: a person who orders products through the system.
Shipping company: UPS, FedEx, DHL.
Shipping clerk: user of the system who packages, labels and
ships orders.
Inventory system: software that tracks the company inventory.
20
SWE 214 - Introduction to Software Engineering
Context of the Project
Order-processing use cases
Customer: place order, send catalog, get status on order,
return product, cancel order, register complaint
Shipping clerk: print mailing labels, calculate postage
Inventory system: give product information, update product
quantities
21
SWE 214 - Introduction to Software Engineering
Problem Analysis :
Concepts and Techniques
Elaboration Phase
22
SWE 214 - Introduction to Software Engineering
Define Use Cases
Place Order
Pre-conditions:
A valid user has logged into the system
Primary Flow of Events:
1. (start) The customer selects Place Order
2. The customer enters its address
3. The customer enters the product codes it wants to order
4. The system provides the items description and prices, and a running total
5. The customer enters its credit card number
6. The customer clicks on submit
7. The system validates the information, saves the order and forwards
the transaction request to the accounting system
8. (end) When the payment is confirmed, the order is marked as paid
Alternate Flow of Events 1:
In step 7, the system prompts the user to correct any incorrect information
Alternate Flow of Events 2:
In step 8, if the transaction is refused by the bank, the order is marked as pending
Post-conditions:
The order has been saved in the database
Scenarios: Diagrams
23
SWE 214 - Introduction to Software Engineering
Use Case Diagrams
Roles
Model the context of the system. Define what are the
actors that are external to the system
Model the requirements of the system. Define what
the system should do from an external point of view
Place
Order
Get order
status
Return
Product
Supplier
Send
Catalog
Shipping
Company Deliver Send Us
Product Product
Calculate Shipping
Postage Clerk
24
SWE 214 - Introduction to Software Engineering