THE FIVE STEPS IN PROBLEM ANALYSIS
Problem analysis is a systematic process used to clearly understand a problem before
defining requirements. It ensures that the real problem is identified and that the proposed
solution addresses the actual needs of stakeholders.
The five steps in problem analysis are as follows:
1. Understand the Problem
The first step is to clearly understand what the problem is and why it exists.
This involves studying the current situation and identifying gaps between the existing system
and the desired outcome.
2. Define the Problem Scope
In this step, the boundaries of the problem are identified.
It determines what is included and what is excluded to avoid unnecessary complexity and
scope creep.
3. Identify Stakeholders and Their Needs
All stakeholders affected by the problem are identified.
Their expectations, concerns, and needs are gathered to ensure a complete understanding
of the problem from multiple perspectives.
4. Analyze Root Causes
The underlying causes of the problem are analyzed instead of focusing only on symptoms.
Techniques such as cause-and-effect analysis help in identifying the real source of the
problem.
5. Document and Validate the Problem
The analyzed problem is documented clearly and reviewed with stakeholders.
Validation ensures that all stakeholders agree on the problem definition before moving to
solution development.
BUSINESS MODELLING
Business Modelling is the process of understanding, representing, and analyzing how an
organization operates. It focuses on business goals, processes, roles, and information before
designing or developing a software system.
THE PURPOSE OF BUSINESS MODELLING
The main purpose of business modelling is to clearly understand the business environment
and identify how software systems can support business objectives.
1. Understanding Business Processes
It helps in identifying how work is done, including inputs, outputs, and workflows.
2. Identifying Business Problems and Opportunities
Business modelling highlights inefficiencies, gaps, and areas for improvement.
3. Improving Communication
Models provide a common language for communication between business
stakeholders and technical teams.
4. Defining Business Requirements
It helps in capturing accurate and relevant business requirements.
5. Reducing Risk
Early understanding of business operations reduces the risk of developing incorrect
solutions.
6. Supporting Decision Making
Clear business models help management make informed decisions.
USING SOFTWARE ENGINEERING TECHNIQUES FOR BUSINESS MODELLING
Software engineering techniques are widely used to model business processes and
structures in a systematic way.
1. Process Modelling
Techniques such as workflow diagrams and activity diagrams are used to represent
business processes.
2. Use Case Modelling
Use cases describe interactions between business actors and the system.
3. Data Modelling
Data models represent business information, relationships, and data flow.
4. Object-Oriented Modelling
Business entities and their behavior are represented as objects.
5. Standard Notations
Notations such as UML help in creating clear and standardized models.
6. Documentation Support
These techniques ensure models are well-documented and easy to understand.
FROM THE BUSINESS MODEL TO THE SYSTEMS MODEL
The transition from a business model to a systems model ensures that business needs are
correctly translated into technical solutions.
1. Identifying System Boundaries
Determine what parts of the business will be automated by the system.
2. Mapping Business Processes to System Functions
Business activities are converted into system functionalities.
3. Deriving System Requirements
Business requirements are transformed into functional and non-functional system
requirements.
4. Defining System Architecture
The system structure is designed based on business needs.
5. Refining Models
Business models are refined into detailed system models such as use case diagrams
and class diagrams.
6. Validation with Stakeholders
Both business and technical stakeholders review models to ensure alignment.
SYSTEMS ENGINEERING OF SOFTWARE – INTENSIVE SYSTEMS
Systems Engineering of Software focuses on designing, developing, and managing complex
systems where software plays a critical role along with hardware, people, processes, and data.
Such systems are often referred to as software-intensive systems.
Software-Intensive Systems
A software-intensive system is one in which software is the key component that controls,
integrates, and coordinates system functionality.
1. Combination of Multiple Elements
These systems include software, hardware, networks, databases, users, and
operational procedures.
2. High Complexity
Interactions between components are complex and require careful coordination.
3. Critical Dependence on Software
System performance, safety, and reliability largely depend on software behavior.
4. Examples
Banking systems, air traffic control systems, healthcare systems, and embedded
control systems.
5. Need for Systems Engineering
A system-level approach is required to ensure all components work together
effectively.
REQUIREMENTS ALLOCATION IN SYSTEMS ENGINEERING
Requirements allocation is the process of distributing system-level requirements to
individual subsystems such as software, hardware, and human operations.
Purpose of Requirements Allocation
1. Clarifies Responsibilities
Each subsystem clearly knows what it must deliver.
2. Ensures System Consistency
All parts of the system collectively satisfy overall system requirements.
3. Supports Parallel Development
Different teams can work simultaneously on assigned requirements.
Process of Requirements Allocation
1. Identify System Requirements
Overall functional and non-functional requirements are defined at the system level.
2. Decompose Requirements
High-level requirements are broken down into smaller, manageable parts.
3. Assign to Subsystems
Requirements are allocated to software, hardware, interfaces, or users.
4. Define Interfaces
Interactions between subsystems are clearly specified.
5. Ensure Traceability
Each allocated requirement is traceable back to the original system requirement.
6. Validate Allocation
Confirm that allocated requirements collectively meet system objectives.
Importance of Requirements Allocation
• Prevents gaps and overlaps in system functionality
• Improves coordination among development teams
• Reduces risk of system failure
• Enhances system quality and reliability