Fundamentals of Systems Analysis and Design
Fundamentals of Systems Analysis and Design
In addition to understanding business operations, systems analyst must know how to use a
variety of techniques, such as modeling, prototyping, and computer-aided systems engineering
tools to plan in a team environment, where input from users, managers, and IT staff contributes
to the system design.
MODELING
Modeling produces a graphical representation of a concept or process that systems developers
can analyze, test, and modify.
A system analyst can describe and simplify an information system by using a set of business,
data, object, network, and process models.
A business model, or requirements model, describes the information that a system must
provide. A data model describes data structure and design; An object model describes objects,
which combine data and processes; A network model describes the design and protocols of
telecommunications link and a process model describes the logic that programmers use to
write code modules.
Although the models might appear to overlap, they actually work together to describe the
same environment from different points of view.
PROTOTYPING
Prototyping tests system concepts and provides an opportunity to examine input, output, and
user interfaces before final decisions are made. A prototype is an early working version of an
information system.
Just as an aircraft manufacturer tests a new design in a wind tunnel, systems analysts
construct and study information systems prototypes. A prototype can serve as an initial model
that is used as benchmark to evaluate the finished system, or the prototype itself can develop
into the final version of the system. Either way, prototyping speeds up the development
process significantly.
A possible disadvantage of prototyping is that important decisions might be made too
early, before business or IT issues are understood thoroughly. A prototype based on careful fact
finding and modeling techniques, however can be an extremely valuable tool.
CASE tools provide an overall framework for systems development and support a wide variety
of design methodologies, including structured analysis and object-oriented analysis.
Because CASE tools make it easier to build an information system, they boost its productivity
and improves the quality of the finished product.
In addition to traditional CASE tools, system developers often use project management tools,
such as Microsoft Project, and special –purpose charting tools, such as Microsoft Visio. A
system analyst’s can use Visio to create many different types of diagrams, including block
diagrams, building plans, forms and charts, maps, network diagrams, and organization charts.
1
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
SYSTEMS ANALYSIS METHODS
Qn. Differentiate between systems analysis and systems design.
Constraint – something that will limit your flexibility in defining a solution to your
objectives. Essentially, constraints cannot be changed.
• The new system must be operational by April 15.
• The new system cannot cost more than $350,000.
• The new system must be web-enabled.
• The new system must bill customers every 15 days.
NOTE 1 -A mandatory requirement is one that must be fulfilled by the minimal system,
version 1.0
NOTE2- A desirable requirement is one that is not absolutely essential to version 1.0. It may
be essential to the vision of a future version.
STRUCTURED ANALYSIS
It is a systematic approach, which uses graphical tools that analyze and refine the objectives of
an existing system and develop a new system specification which can be easily understandable
by user.
Structured analysis uses a set of processes models to describe a system graphically. Because it
focuses on processes that transform data in useful information, structured analysis is called a
process-centered technique.
In addition to modeling the processes, structured analysis includes data organization and
structure, relational database design and user interfaces issue.
Process modeling identifies the data flowing into a process, the business rules that transform
the data, and the resulting output data flow.
ATTRIBUTES OF STRUCTURED ANALYSIS
It has following attributes:
It is graphic which specifies the presentation of application.
It divides the processes so that it gives a clear picture of system flow.
It is logical rather than physical i.e., the elements of system do not depend on vendor or
hardware.
It is an approach that works from high-level overviews to lower-level details.
During Structured Analysis, various tools and techniques are used for system development.
They are:
Data Flow Diagrams
Data Dictionary
Decision Trees
Decision Tables
Structured English
Pseudo code
4
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
Data Flow Diagrams (DFD) or Bubble Chart
It shows the flow of data between various functions of system and specifies how the
current system is implemented.
It is an initial stage of design phase that functionally divides the requirement
specifications down to the lowest level of detail.
Its graphical nature makes it a good communication tool between user and analyst or
analyst and system designer.
It gives an overview of what data a system processes, what transformations are
performed, what data are stored, what results are produced and where they flow.
The following table shows the symbols used in designing a DFD and their significance:
Types of DFD
DFDs are of two types: Physical DFD and Logical DFD. The following table lists the points that
differentiate a physical DFD from a logical DFD.
Physical DFD Logical DFD
Data Dictionary
A data dictionary is a structured repository of data elements in the system. It stores the
descriptions of all DFD data elements that is, details and definitions of data flows, data stores,
data stored in data stores, and the processes.
5
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
A data dictionary improves the communication between the analyst and the user. It plays an
important role in building a database. Most DBMSs have a data dictionary as a standard
feature. For example, refer the following table:
2 TITLE Title 60
Decision Trees
Decision trees are a method for defining complex relationships by describing decisions and
avoiding the problems in communication. A decision tree is a diagram that shows alternative
actions and conditions within horizontal tree framework. Thus, it depicts which conditions to
consider first, second, and so on.
Decision trees depict the relationship of each condition and their permissible actions. A square
node indicates an action and a circle indicates a condition. It forces analysts to consider the
sequence of decisions and identifies the actual decision that must be made.
The major limitation of a decision tree is that it lacks information in its format to describe what
other combinations of conditions you can take for testing. It is a single representation of the
relationships between conditions and actions.
Decision Tables
Decision tables are a method of describing the complex logical relationship in a precise manner
which is easily understandable.
It is useful in situations where the resulting actions depend on the occurrence of one or
several combinations of independent conditions.
It is a matrix containing row or columns for defining a problem and the actions.
Structured English
Structure English is derived from structured programming language which gives more
understandable and precise description of process. It is based on procedural logic that uses
6
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
construction and imperative sentences designed to perform operation for action.
It is best used when sequences and loops in a program must be considered and the
problem needs sequences of actions with decisions.
It does not have strict syntax rule. It expresses all logic in terms of sequential decision
structures and iterations.
Pseudocode
A pseudocode does not conform to any programming language and expresses logic in plain
English.
It may specify the physical programming logic without actual coding during and after the
physical design.
It is used in conjunction with structured programming.
It replaces the flowcharts of a program.
Use the following guidelines for selecting the most appropriate tool that would suit your
requirements:
Use DFD at high or low level analysis for providing good system documentations.
Use data dictionary to simplify the structure for meeting the data requirement of the
system.
Use structured English if there are many loops and actions are complex.
Use decision tables when there are a large number of conditions to check and logic is
complex.
Use decision trees when sequencing of conditions is important and if there are few
conditions to be tested.
INFORMATION ENGINEERING
Information engineering ( IE) or information engineering methodology ( IEM ) is a software
engineering approach to designing and developing information systems . It can also be
considered as the generation, distribution, analysis and use of information in systems.
Information engineering involves an architectural approach for planning, analyzing, designing,
and implementing applications. It focuses on structure of stored data and uses entity
relationship diagram as its key model.
Information engineering has many purposes, including organization planning, business re-
engineering, application development, information systems planning and systems re-
engineering.
7
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
The result is a set of software objects that represent actual people, things, transaction, and
events. Using an O-O programming language, a programmer then writes the code that creates
the objects.
In analysis phase, OO models are used to fill the gap between problem and solution. It performs
well in situation where systems are undergoing continuous design, adaption, and maintenance.
It identifies the objects in problem domain, classifying them in terms of data and behavior.
The OO model is beneficial in the following ways:
It facilitates changes in the system at low cost.
It promotes the reuse of components.
It simplifies the problem of integrating components to configure large system.
It simplifies the design of distributed systems.
Objects An object is something that is exists within problem domain and can be
identified by data (attribute) or behavior. All tangible entities (student, patient) and
some intangible entities (bank account) are modeled as object.
Attributes They describe information about the object.
Behavior It specifies what the object can do. It defines the operation performed on
objects.
Class A class encapsulates the data and its behavior. Objects with similar meaning and
purpose grouped together as class.
Methods: Methods determine the behavior of a class. They are nothing more than an
action that an object can perform.
Message A message is a function or procedure call from one object to another. They are
information sent to objects to trigger methods. Essentially, a message is a function or
procedure call from one object to another.
Encapsulation
Encapsulation is a process of information hiding. It is simply the combination of process and
data into a single entity. Data of an object is hidden from the rest of the system and available
only through the services of the class. It allows improvement or modification of methods used
by objects without affecting other parts of a system.
Abstraction
It is a process of taking or selecting necessary method and attributes to specify the object. It
focuses on essential characteristics of an object relative to perspective of user.
Relationships
All the classes in the system are related with each other. The objects do not exist in isolation,
they exist in relationship with other objects.
There are three types of object relationships:
Aggregation It indicates relationship between a whole and its parts.
Association In this, two classes are related or connected in some way such as one class
works with another to perform a task or one class acts upon other class.
Generalization The child class is based on parent class. It indicates that two classes are
similar but have some differences.
Inheritance
8
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
Inheritance is a great feature that allows to create sub-classes from an existing class by
inheriting the attributes and/or operations of existing classes.
Polymorphism and Dynamic Binding
Polymorphism is the ability to take on many different forms. It applies to both objects and
operations. A polymorphic object is one who true type hides within a super or parent class.
In polymorphic operation, the operation may be carried out differently by different classes of
objects. It allows us to manipulate objects of different classes by knowing only their common
properties.
The following table explains how the object-oriented approach differs from the traditional structured approach:
Structured Approach Object oriented approach
UML is a visual language that lets you to model processes, software, and systems to express
9
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
the design of system architecture. It is a standard language for designing and documenting a
system in an object oriented manner that allow technical architects to communicate with
developer.
It is defined as set of specifications created and distributed by Object Management Group. UML
is extensible and scalable.
Query: Accessing state without changing value, has no side effects. For
example, finding address of a particular employee.
Update: changes value of one or more attributes & affect state of object
For example, changing the address of an employee.
Uses of UML
UML is quite useful for the following purposes:
Modeling the business process
Describing the system architecture
Showing the application structure
Capturing the system behavior
Modeling the data structure
Building the detailed specifications of the system
Sketching the ideas
Generating the program code
10
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
Users can be misled to believe that the completed system can be built
•
rapidly using prototyping tools
Rapid architected analysis – an approach that attempts to derive system models (as
described earlier in this section) from existing systems or discovery prototypes.
Reverse engineering – the use of technology that reads the program code for an existing
database, application program, and/or user interface and automatically generates the
equivalent system model.
FEASIBILITY STUDY
Feasibility Study can be considered as preliminary investigation that helps the management to
take decision about whether study of system should be feasible for development or not.
It is used to obtain the outline of the problem and decide whether feasible or appropriate
solution exists or not.
The main objective of a feasibility study is to acquire problem scope instead of solving
the problem.
The output of a feasibility study is a formal system proposal act as decision document
which includes the complete nature and scope of the proposed system.
Types of Feasibilities
Economic Feasibility
It is evaluating the effectiveness of candidate system by using cost/benefit analysis
method.
It demonstrates the net benefit from the candidate system in terms of benefits and costs
to the organization.
The main aim of Economic Feasibility Analysis (EFS) is to estimate the economic
requirements of candidate system before investments funds are committed to proposal.
It prefers the alternative which will maximize the net worth of organization by earliest
and highest return of funds along with lowest level of risk involved in developing the
candidate system.
Technical Feasibility
It investigates the technical feasibility of each implementation alternative.
It analyzes and determines whether the solution can be supported by existing
technology or not.
The analyst determines whether current technical resources be upgraded or added it
that fulfill the new requirements.
It ensures that the candidate system provides appropriate responses to what extent it
11
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
can support the technical enhancement.
Operational Feasibility
It determines whether the system is operating effectively once it is developed and
implemented.
It ensures that the management should support the proposed system and its working
feasible in the current organizational environment.
It analyzes whether the users will be affected and they accept the modified or new
business methods that affect the possible system benefits.
It also ensures that the computer resources and network architecture of candidate
system are workable.
Behavioral Feasibility
It evaluates and estimates the user attitude or behavior towards the development of new
system.
It helps in determining if the system requires special effort to educate, retrain, transfer,
and changes in employee’s job status on new ways of conducting business.
Schedule Feasibility
It ensures that the project should be completed within given time constraint or schedule.
It also verifies and validates whether the deadlines of project are reasonable or not.
12
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
1. PROJECT SELECTION
What is Project Selection?
Project Selection is a process to assess each project idea and select the project with the highest
priority. Projects are still just suggestions at this stage, so the selection is often made based on
only brief descriptions of the project. As some projects will only be ideas, you may need to
write a brief description of each project before conducting the selection process.
Selection of projects is based on:
Benefits: A measure of the positive outcomes of the project. These are often described
as "the reasons why you are undertaking the project
Feasibility: A measure of the likelihood of the project being a success, i.e. achieving its
objectives. Projects vary greatly in complexity and risk. By considering feasibility when
selecting projects, it means the easiest projects with the greatest benefits are given
priority.
Note: A detailed review of a project's feasibility is conducted in the Feasibility Study Stage.
Why Project Selection?
Lack of enough resources. Often you will have a number of suggested projects but not
enough resources, money or time to undertake all of the projects.
Priority. Project selection is considered according to the needs and priorities of the
organization. By following the Project Selection Stage you will follow a step by step
objective method for prioritizing projects - this can be used to explain to stakeholders
the reasoning behind why you selected a particular project.
Experience and expertise. If your organization has limited experience in conducting
eradications then it is recommended to concentrate on a small number of projects,
ideally one project at a time, until the people in your organization have developed the
skills and experience. Grow capacity and build up to undertaking multiple projects at any
one time. Do the easy projects first. Work towards the most difficult and rewarding
projects. Use the easy projects to help answer questions/solve issues for the more
difficult projects. Use the best opportunities to learn.
Project selection helps the organisation owners to provide a process to compare the
importance of the available projects and select the most suitable project to undertake.
The benefits of completing the Project Selection are:
A transparent and documented record of why a particular project was selected
A priority order for projects, that takes into account their importance and how achievable the
project is
Who Should Be Involved?
Agency Management: Set selection criteria to ensure the selection process aligns with
agency strategies. Selection processes are often run as a management initiative before
the implementing Project Manager is assigned.
Stakeholders: Stakeholder participation at the start of a project creates strong
community ownership and support, and increases the chances of a successful outcome.
Stakeholder input should be included at the ideas stage; consult widely as you are
developing the ideas for projects as the community will be the source of many of the
best project ideas. Stakeholders must be informed of the outcome of the Project
Selection Stage.
Project Manager: Involving the Project Manager in the Project Selection process will help
build ownership in the project and support a successful project in the long run.
Project selection issues:
Resource scarcity. As a result the project selected may be substandard or lacking some
features as a result of limited resources.
Lack of sufficient software specific expertise. The project selected must fit the expertise
of the company’s workers. If it is too hard for them to operate with it, it may not serve its
purpose well.
13
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
Infrastructure issues. Bigger projects require well organized, big and standardized
infrastructure.
Third party integration and interface issues. Many software developers no longer develop
standalone software. There is therefore need for third party integration, making it more
complex for project managers because the undergo pressure to increase their
knowledge and experience with other software that may integrate and interface with the
one they are implementing.
Some selected software require quality testing and bug fixes in numerous software
iterations.
2. PROJECT PLANNING:
Software project planning is task, which is performed before the production of software actually
starts. It is there for the software production but involves no concrete activity that has any
direction connection with software production; rather it is a set of multiple processes, which
facilitates software production.
• Developing a realistic project plan is essential to gain an understanding of the resources
required, and how these should be applied.
• Types of plan:
– Software development plan.
The central plan, which describes how the system will be developed.
– Quality assurance plan.
Specifies the quality procedures & standards to be used.
– Validation plan.
Defines how a client will validate the system that has been developed.
– Configuration management plan.
Defines how the system will be configured and installed.
– Maintenance plan.
Defines how the system will be maintained.
– Staff development plan.
Describes how the skills of the participants will be developed.
3. SCOPE MANAGEMENT.
It defines the scope of project; this includes all the activities and processes that need to be
done in order to make a deliverable software product. Scope management is essential because
it creates boundaries of the project by clearly defining what would be done in the project and
what would not be done.
4. PROJECT ESTIMATION.
14
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
For an effective management, accurate estimation of various measures is a must. With correct
estimation, managers can manage and control the project more efficiently and effectively.
Project estimation may involve the following:
- Software size estimation: Software size may be estimated either in terms of KLOC (Kilo
Line of Code) or by calculating number of function points in the software.
- Effort estimation: The managers estimate efforts in terms of personnel requirement and
man-power required to produce the software. For effort estimation
- Time estimation: Once size and efforts are estimated, the time required to produce the
software can be estimated.
- Cost estimation: This might be considered as the most difficult of all because it depends
on more elements than any of the previous ones. For estimating project cost, it is
required to consider: -Size of software, Software quality, Hardware, Additional software
or tools, licenses, skilled personnel with task-specific skills, Travel involved, etc.
16
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
System functionality. Any system should be able to operate and meet all functional
requirements. Should be able to solve problems for which it was created.
Usability. The system should be very easy to use and easy to learn.
Efficiency. It should be able to perform all activities very efficiently and effectively.
Simplicity.
Cost. The selection may depend on how much it will cost the system project manager to
develop. Therefore, the methodology must be cost effective.
High success rate of the end product . The methodology selected must be able to
produce the most efficient software product that is affordable and easy to use.
Modification. The chosen methodology must be able to allow modification in case there
some changes that are necessary changes to be implemented. (Versioning).
Nature of the system to be developed. Some methodologies are good for small projects
and not big projects. The content of the project will determine the suitable methodology
to be used. If the nature of the software is incremental, agile methods are better.
The size of the team for whom the project is developed. For small teams, where team
members can easily communicate with each other, agile methods are used. On the other
hand, for the bigger teams, plan driven process models are used.
Business case.
A business case is a document that is written to convince a decision maker to approve the
action of developing a project. It captures the reasoning for initiating a project or a task.
The main objective of the business case is to identify the requirements of an organization and
propose strategies to meet them.
Whereas a project proposal focusses on why you want a project and contains an outline of the
project like business vision, business need, expected benefits and others, a business case
outlines the why, what, how and who aspects necessary to decide if it is worth continuing the
project or not.
A business case should set out the benefits gained from carrying out a project charter. Benefits
need not only be in terms of finance such as revenue, cost reduction, etc., but also the benefit
that the customer receives.
Following are the characteristics of a good business case:
The reasons of undertaking the project.
The benefits gained from undertaking the project now.
The consequences of not doing the project.
17
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
The factors that would conclude that it fits the business goals.
Why business case?
Preparing the business case involves an assessment of:
Business problem or opportunity
Benefits
Risks involved
Costs involved
Impact on the operations of the company
Organizational capabilities to deliver the project outcomes.
PROJECT CHARTER
Project Charter refers to a statement of objectives, scope and participants in a project. This
statement also sets out detailed project goals, roles and responsibilities, identifies the main
stakeholders, and the level of authority of a project manager.
It acts as a guideline for future projects as well as an important material in the organization's
knowledge management system.
The project charter is a short document that would consist of new offering request or a request
for proposal. This document is a part of the project management process, which is required by
Initiative for Policy Dialogue (IPD) and Customer Relationship Management (CRM).
The Role of Project Charter
Following are the roles of a Project Charter:
It documents the reasons for undertaking the project.
Outlines the objectives and the constraints faced by the project.
Provides solutions to the problem in hand.
Identifies the main stakeholders of the project.
Benefits of Project Charter
Following are the prominent benefits of Project Charter for a project:
It improves and paves way for good customer relationships.
Project Charter also works as a tool that improves project management processes.
Regional and headquarter communications can also be improved to a greater extent.
By having a project charter, project sponsorship can also be gained.
Project Charter recognizes senior management roles.
Allows progression, which is aimed at attaining industry best practices.
Elements in Project Charter
Since project charter is a project planning tool, which is aimed at resolving an issue or an
opportunity, the below elements are essential for a good charter project.
Identity of the project.
Time: the start date and the deadline for the project.
People involved in the project.
18
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
Outlined objectives and set targets.
The reason for a project charter to be carried out, often referred to as 'business case'.
Detailed description of a problem or an opportunity.
The return expected from the project.
Results that could be expected in terms of performance.
The expected date that the objectives is to be achieved.
Clearly defined roles and responsibilities of the participants involved.
Requirement of resources that will be needed for the objectives to be achieved.
Barriers and the risks involved with the project.
Informed and effective communication plan.
19
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
Understand how to gather requirements using interviews, JAD sessions, questionnaires,
document analysis, and observation.
TYPES OF REQUIREMENTS
1. FUNCTIONAL REQUIREMENTS
These define a function of a system/project or its components, where a function is described as
a specification of behavior between outputs and inputs.
Functional requirements may involve calculations, technical details, data manipulation and
processing, and other specific functionality that define what a system is supposed to
accomplish.
Functional requirements are supported by non-functional requirements (also known as "quality
requirements"), which impose constraints on the design or implementation (such as
performance requirements, security, or reliability).
2. Non-functional requirement
A non-functional requirement (NFR) is a requirement that specifies criteria that can be used to
judge the operation of a system, rather than specific behaviors. They are contrasted with
functional requirements that define specific behavior or functions.
4. Performance Requirements
The extent to which a mission or function must be executed; generally measured in terms of
quantity, quality, coverage, timeliness or readiness. During requirements analysis, performance
(how well does it have to be done) requirements will be interactively developed across all
identified functions based on system life cycle factors; and characterized in terms of the degree
of certainty in their estimate, the degree of criticality to system success, and their relationship
to other requirements.
6. Design Requirements
The “build to,” “code to,” and “buy to” requirements for products and “how to execute”
requirements for processes expressed in technical data packages and technical manuals.
20
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
USE CASES
A use case in software and systems engineering refers to a list of actions or event steps
typically defining the interactions between a role ( known in UML as actor) and a system to
achieve a goal. The role/actor can be human or other external system.
Use cases are modeled using unified modeling language and are represented by ovals
containing the names of the use case. Actors are represented using lines with the name of the
actor written below the line. To represent an actor's participation in a system, a line is drawn
between the actor and the use case. Boxes around the use case represent the system
boundary.
Characteristics associated with use cases are:
Organizing functional requirements.
Modeling the goals of system user interactions.
Recording scenarios from trigger events to ultimate goals.
Describing the basic course of actions and exceptional flow of events
Permitting a user to access the functionality of another event
The steps in designing use cases are:
Identify the users of the system
For each category of users, create a user profile. This includes all roles played by the
users relevant to the system.
Identify significant goals associated with each role to support the system. The system’s
value proposition identifies the significant role.
Create use cases for every goal associated with a use case template and maintain the
same abstraction level throughout the use case. Higher level use case steps are treated
as goals for the lower level.
Structure the use cases
Review and validate the users
Use case diagrams (UCDs) are used in the process of software system design for modeling
functional requirements. The system is considered as a black-box, where only external features
are taken into account.
The objective of UCDs is identify system users, user requirements, and how the user interacts
with the system. The model consists of actors and use cases.
A. Actor
Actor is an external entity working with the software
system, so that actor is not part of the system, but it is a
generator of input stimulus and data for the system.
Actor models a group of real users, whereas all members
of the group work with the system by the same way.
Therefore, actor represents a role of the user in the
system.
B. Use Case
An important part of functional requirements analysis is
21
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
to identify sequences of interaction between actors and modeled system. The sequence of
interactions is modeled by a use case. The use case describes a main sequence of interactions
and is invoked (its execution starts) by input stimulus from the actor.
A use case diagram at its simplest is a representation of a user's interaction with the system
that shows the relationship between the user and the different use cases in which the user is
involved. A use case diagram can identify the different types of users of a system and the
different use cases and will often be accompanied by other types of diagrams as well.
Application
While a use case itself might drill into a lot of detail about every possibility, a use-case diagram
can help provide a higher-level view of the system. It has been said before that "Use case
diagrams are the blueprints for your system". They provide the simplified and graphical
representation of what the system must actually do.
Due to their simplistic nature, use case diagrams can be a good communication tool for
stakeholders. The drawings attempt to mimic the real world and provide a view for the
stakeholder to understand how the system is going to be designed.
The purpose of the use case diagrams is simply to provide the high level view of the system
and convey the requirements in layman's terms for the stakeholders. Additional diagrams and
documentation can be used to provide a complete functional and technical view of the system.
Actors: Stick figures that represent the people actually employing the use cases.
Associations: A line between actors and use cases. In complex diagrams, it is important to
know which actors are associated with which use cases.
System boundary boxes: A box that sets a system scope to use cases. All use cases outside
the box would be considered outside the scope of that system
Packages: A UML shape that allows you to put different elements into groups. Just as with
component diagrams, these groupings are represented as file folders
Types of Actors
Primary business actor
• The stakeholder that primarily benefits from the execution of the use case.
• e.g. the employee receiving the paycheck
Primary system actor
• The stakeholder that directly interfaces with the system to initiate or trigger the
business or system event.
• e.g. the bank teller entering deposit information
External server actor
• The stakeholder that responds to a request from the use case.
• e.g. the credit bureau authorizing a credit card charge
External receiver actor
• The stakeholder that is not the primary actor but receives something of value from
the use case.
• e.g. the warehouse receiving a packing slip
23
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
2. Generalization of an Actor
Generalization of an actor means that one actor can inherit the role of the other actor. The
descendant inherits all the use cases of the ancestor. The descendant has one or more use
cases that are specific to that role. Let’s expand the previous use case diagram to show the
generalization of an actor.
24
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
4. Include Relationship Between Two Use Cases
Include relationship show that the behavior of the included use case is part of the including
(base) use case. The main reason for this is to reuse the common actions across multiple use
cases. In some situations, this is done to simplify complex behaviors. Few things to consider
when using the <<include>> relationship.
The base use case is incomplete without the included use case.
The included use case is mandatory and not optional.
25
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
Objective is to elicit and analyze enough requirements information to prepare a model
that:
• Communicates what is required from a user perspective.
• Is free of specific details about how system will be implemented.
To effectively estimate and schedule project, may need to include preliminary
implementation assumptions.
Steps
• Identify business actors.
• Identify business use cases.
• Construct use-case model diagram.
• Documents business requirements use-case narratives.
Step 1: identify Business Actors
When looking for actors, ask the following questions:
• Who or what provides inputs to the system?
• Who or what receives outputs from the system?
• Are interfaces required to other systems?
• Are there events that are automatically triggered at a predetermined time?
• Who will maintain information in the system?
Actors should be named with a noun or noun phrase
During requirements analysis, strive to identify and document only the most
•
critical, complex, and important use cases, often called essential use cases.
When looking for use cases, ask the following questions:
• What are the main tasks of the actor?
• What information does the actor need from the system?
• What information does the actor provide to the system?
• Does the system need to inform the actor of any changes or events that have
occurred?
• Does the actor need to inform the system of any changes or events that have
occurred?
Use cases should be named with a verb phrase specifying the goal of the actor (i.e.
Submit Subscription Order)
26
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
Step 4: Document Business Requirements Use-Case Narratives
• Document first at high level to quickly obtain an understanding of the events and
magnitude of the system.
• Then expand to a fully-documented business requirement narrative.
• Include the use case’s typical course of events and its alternate courses.
Use-case ranking and priority matrix – a tool used to evaluate use cases and determine
their priority.
• Evaluates use cases on 1-5 scale against six criteria.
1. Significant impact on the architectural design.
2. Easy to implement but contains significant functionality.
3. Includes risky, time-critical, or complex functions.
4. Involves significant research or new or risky technology.
5. Includes primary business functions.
6. Will increase revenue or decrease costs.
27
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
Use-Case Dependency Diagram
Use-case dependency diagram – graphical depiction of the dependencies among use cases.
Process Modeling
Process models describe the sequential flow of work or activities. A business process model
describes the sequential flow of work across defined tasks and activities through an enterprise
or part of an enterprise. A system process model defines the sequential flow of control among
programs or units within a computer system.
A program process flow shows the sequential execution of program statements within a
software program. A process model can also be used in documenting operational procedures.
29
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
A scenario describes just one way that an actor can accomplish a particular goal. Scenarios are
written as a series of steps performed by actors or by the solution that enable an actor to
achieve a goal. A use case describes several scenarios.
User Stories
User stories capture the needs of a specific stakeholder and enable teams to define features of
value to a stakeholder using short, simple documentation. They can serve as a basis for
identifying needs and allow for the prioritizing, estimating, and planning of solutions.
A user story is typically a sentence or two that describes who has the need addressed by the
story, the goal the user is trying to accomplish, and any additional information that may be
critical to understanding the scope of the story.
Data Modeling
A data model describes the entities, classes or data objects relevant to a domain, the attributes
that are used to describe them, and the relationships among them to provide a common set of
semantics for analysis and implementation.
30
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
Business Drivers - This section describes the reasons why the customer is looking to
build the system.
Business Model - This section describes the underlying business model of the customer
that the system will need to support. This includes such items as the organizational
context, current-state and future-state diagrams, business context, key business
functions and process flow diagrams. This section is usually created during the functional
analysis phase.
Functional and System Requirements – This section usually consists of a hierarchical
organization of requirements, with the business/functional requirements at the highest-
level and the detailed system requirements listed as their child items.
Business and System Use Cases – This section usually consists of a UML use case
diagram that illustrates the main external entities that will be interacting with the
system together with the different use cases (objectives) that they will need to carry out.
Technical Requirements - This section is used to list any of the "non-functional"
requirements that essentially embody the technical environment that the product needs
to operate in, and include the technical constraints that it needs to operate under. These
technical requirements are critical in determining how the higher-level functional
requirements will get decomposed into the more specific system requirements.
System Qualities - This section is used to describe the "non-functional" requirements
that define the "quality" of the system. These items are often known as the "-ilities"
because most of them end in "ility". They included such items as: reliability, availability,
serviceability, security, scalability, maintainability.
Constraints and Assumptions - This section will outline any design constraints that
have been imposed on the design of the system by the customer, thereby removing
certain options from being considered by the developers. Also this section will contain
any assumptions that have been made by the requirements engineering team when
gathering and analyzing the requirements. If any of the assumptions are found to be
false, the system requirements specification would need to be re-evaluated to make sure
that the documented requirements are still valid.
Acceptance Criteria - This section will describe the criteria by which the customer will
"sign-off" on the final system. Depending on the methodology, this may happen at the
end of the testing and quality assurance phase, or in an agile methodology, at the end of
each iteration. The criteria will usually refer to the need to complete all user acceptance
tests and the rectification of all defects/bugs that meet a pre-determined priority or
severity threshold.
PLANNING
• Project Charter & Business Case
• Form CORE project team
• Project Managers “Big 13”
ANALYSIS
• Needs /Requirements analysis
• Specifications analysis
• Feasibility Study
• Conceptual design
31
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
DESIGN
• Physical design “Prototypes”
• Construction –Develop and/or Purchase
• System testing
• User acceptance testing
IMPLEMENTATION
• System integration & testing
• Post-implementation audit, maintenance & support
Interchangeable Terms
Systems Analysis & Design Methodology
Systems Development Methodology
Software Development Methodology
IMPRTANCES OF SDM
To students;
Preparation for future role as a business manager
Bridging the gap between IT & Business through education
Software evolution;
Acceptable speed & cost for development
Traceable time schedule for development process
High Quality
Longevity—used/maintained over a long period of time
Accommodate the changing requirements of the user
Compliance
32
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
Requirement Gathering and analysis − All possible requirements of the system to be
developed are captured in this phase and documented in a requirement specification
document.
System Design − the requirement specifications from first phase are studied in this phase
and the system design is prepared. This system design helps in specifying hardware and
system requirements and helps in defining the overall system architecture.
Implementation − With inputs from the system design, the system is first developed in
small programs called units, which are integrated in the next phase. Each unit is developed and
tested for its functionality, which is referred to as Unit Testing.
Integration and Testing − All the units developed in the implementation phase are
integrated into a system after testing of each unit. Post integration the entire system is tested
for any faults and failures.
Deployment of system − Once the functional and non-functional testing is done; the
product is deployed in the customer environment or released into the market.
Maintenance − There are some issues which come up in the client environment. To fix those
issues, patches are released. Also to enhance the product some better versions are released.
Maintenance is done to deliver these changes in the customer environment.
All these phases are cascaded to each other in which progress is seen as flowing steadily
downwards (like a waterfall) through the phases. The next phase is started only after the
defined set of goals are achieved for previous phase and it is signed off, so the name "Waterfall
Model". In this model, phases do not overlap.
ADVANTAGES OF WATER FALL MODEL
Some of the major advantages of the Waterfall Model are as follows.
1. Simple and easy to understand and use
2. Easy to manage due to the rigidity of the model. Each phase has specific deliverables
and a review process.
3. Phases are processed and completed one at a time.
4. Works well for smaller projects where requirements are very well understood.
5. Clearly defined stages.
6. Well understood milestones.
7. Easy to arrange tasks.
33
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
6. Not suitable for the projects where requirements are at a moderate to high risk of
changing. So, risk and uncertainty is high with this process model.
7. It is difficult to measure progress within stages.
8. Cannot accommodate changing requirements.
9. Adjusting scope during the life cycle can end a project.
2. SPIRAL MODEL
The spiral model is similar to the incremental model, with more emphasis placed on risk
analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and
Evaluation. A software project repeatedly passes through these phases in iterations (called
Spirals in this model). The baseline spiral, starting in the planning phase, requirements are
gathered and risk is assessed. Each subsequent spirals builds on the baseline spiral.
Planning Phase: Requirements are gathered during the planning phase. Requirements like
‘BRS’ that is ‘Bussiness Requirement Specifications’ and ‘SRS’ that is ‘System Requirement
specifications’.
Risk Analysis: In the risk analysis phase, a process is undertaken to identify risk and
alternate solutions. A prototype is produced at the end of the risk analysis phase. If any risk is
found during the risk analysis then alternate solutions are suggested and implemented.
Engineering Phase: In this phase software is developed, along with testing at the end of
the phase. Hence in this phase the development and testing is done.
Evaluation phase: This phase allows the customer to evaluate the output of the project to
date before the project continues to the next spiral.
35
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
A new technology is being used and is being learnt by the development team while
working on the project.
Resources with needed skill sets are not available and are planned to be used on
contract basis for specific iterations.
There are some high-risk features and goals which may change in the future.
36
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
purpose of the session, scope of project, its expected outcome, as well as participants of
application development.
• Session preparation: This is often the sole responsibility of the facilitator who is expected
to gather all relevant information and sent to participants ahead of time. The facilitator is also
expected to carry out some research at this stage in order to get better insight into the
objectives of the JAD sessions as it relates to the project at hand and an organization as a
whole. The logistics for the session needs to the arranged and planned, things such as venue
and time of the session need to be identified and communicated to the participants in due
course.
Conducting and facilitating the actual session.
The success of the meeting depends on good planning and the competence of the facilitator to
see through completion to all goals until a definite conclusion is reached.
Follow up documentation.
Preparing and circulating the final document that incorporates the decisions made is
important, for otherwise the purpose of the meeting would fritter out. The scribe or modeler
prepares the design document, gets approval from the executive sponsor, and circulates it to
everyone involved.
39
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
Process control systems
Message switching systems
STEPS INVOLVED
The process of prototyping involves the following steps.
1. Identify basic requirements
Determine basic requirements including the input and output information desired. Details, such
as security, can typically be ignored.
2. Develop initial prototype
The initial prototype is developed that includes only user interfaces.
3. Review
The customers, including end-users, examine the prototype and provide feedback on potential
additions or changes.
4. Revise and enhance the prototype
Using the feedback both the specifications and the prototype can be improved. Negotiation
about what is within the scope of the contract/ product may be necessary. If changes are
introduced then a repeat of steps #3 and #4 may be needed.
40
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
Dimensions of prototypes
Horizontal prototype
A common term for a user interface prototype is the horizontal prototype. It provides a broad
view of an entire system or subsystem, focusing on user interaction more than low-level
system functionality, such as database access.
USES OF HORIZONTAL PROTOTYPES
Horizontal prototypes are useful for:
- Confirmation of user interface requirements and system scope.
- Demonstration version of the system to obtain buy-in from the business.
- Develop preliminary estimates of development time, cost and effort.
Vertical prototype
A vertical prototype is an enhanced complete elaboration of a single subsystem or function. It
is useful for obtaining detailed requirements for a given function, with the following benefits:
- Refinement of database design.
- Obtain information on data volumes and system interface needs, for network sizing and
performance engineering.
- Clarify complex requirements by drilling down to actual system functionality.
Types of prototyping
Software prototyping has many variants. However, all of the methods are in some way based
on two major forms of prototyping:
Throwaway prototyping
Evolutionary prototyping.
Throwaway prototyping
Also called close-ended prototyping. Throwaway or rapid prototyping refers to the creation of a
model that will eventually be discarded rather than becoming part of the final delivered
software.
After preliminary requirements gathering is accomplished, a simple working model of the
system is constructed to visually show the users what their requirements may look like when
they are implemented into a finished system.
It involves creating a working model of various parts of the system at a very early stage, after a
relatively short investigation. The method used in building it is usually quite informal, the most
important factor being the speed with which the model is provided. The model then becomes
the starting point from which users can re-examine their expectations and clarify their
requirements.
When this goal has been achieved, the prototype model is 'thrown away', and the system is
formally developed based on the identified requirements.
Summary: In this approach the prototype is constructed with the idea that it will be discarded
and the final system will be built from scratch. The steps in this approach are:
1. Write preliminary requirements
2. Design the prototype
3. User experiences/uses the prototype, specifies new requirements
4. Repeat if necessary
5. Write the final requirements
41
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
Evolutionary prototyping
Evolutionary prototyping (also known as breadboard prototyping) is quite different from
throwaway prototyping. The main goal when using evolutionary prototyping is to build a very
robust prototype in a structured manner and constantly refine it.
The reason for this approach is that the evolutionary prototype, when built, forms the heart of
the new system, and the improvements and further requirements will then be built.
When developing a system using evolutionary prototyping, the system is continually refined
and rebuilt. This technique allows the development team to add features, or make changes
that couldn't be conceived during the requirements and design phase.
Evolutionary prototypes have an advantage over throwaway prototypes in that they are
functional systems. Although they may not have all the features the users have planned, they
may be used on an interim basis until the final system is delivered.
Other types
Incremental prototyping
- The final product is built as separate prototypes.
- At the end, the separate prototypes are merged in an overall design. By the help of
incremental prototyping the time gap between user and software developer is reduced.
Extreme prototyping
- Extreme prototyping as a development process is used especially for developing web
applications.
- Basically, it breaks down web development into three phases, each one based on the
preceding one.
- The first phase is a static prototype that consists mainly of HTML pages. In the second
phase, the screens (user interfaces) are programmed and fully functional using a
simulated services layer. In the third phase, the services are implemented.
Advantages of prototyping
• Reduced time and costs: Prototyping can improve the quality of requirements and
specifications provided to developers. Because changes cost exponentially more to
implement as they are detected later in development, the early determination of what
the user really wants can result in faster and less expensive software.
• Improved and increased user involvement: Prototyping requires user involvement
and allows them to see and interact with a prototype allowing them to provide better
and more complete feedback and specifications. Because of user involvement, the final
product is more likely to satisfy the user's desire for look, feel and performance.
Disadvantages of prototyping
• Insufficient analysis: The focus on a limited prototype can distract developers from
properly analyzing the complete project. This can lead to overlooking better solutions,
preparation of incomplete specifications or the conversion of limited prototypes into
poorly engineered final projects that are hard to maintain.
• User confusion of prototype and finished system: Users can begin to think that a
prototype, intended to be thrown away, is actually a final system that merely needs to
be finished or polished. (They are, for example, often unaware of the effort needed to
add error-checking and security features which a prototype may not have.) .
• Developer misunderstanding of user objectives: Developers may assume that
users share their objectives (e.g. to deliver core functionality on time and within budget),
without understanding wider commercial issues. For example, user representatives
attending Enterprise software (e.g. PeopleSoft) events may have seen demonstrations of
"transaction auditing" (where changes are logged and displayed in a difference grid
view) without being told that this feature demands additional coding and often requires
more hardware to handle extra database accesses.
42
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES
• Developer attachment to prototype: Developers can also become attached to
prototypes they have spent a great deal of effort producing; this can lead to problems,
such as attempting to convert a limited prototype into a final system when it does not
have an appropriate underlying architecture
• Excessive development time of the prototype: A key property to prototyping is the
fact that it is supposed to be done quickly. If the developers lose sight of this fact, they
very well may try to develop a prototype that is too complex. When the prototype is
thrown away the precisely developed requirements that it provides may not yield a
sufficient increase in productivity to make up for the time spent developing the
prototype.
• Expense of implementing prototyping: the startup costs for building a development
team focused on prototyping may be high.
Project Monitoring refers to the process of keeping track of all project-related metrics including
team performance and task duration, identifying potential problems and taking corrective
actions necessary to ensure that the project is within scope, on budget and meets the specified
deadlines
With automated task monitoring,one can monitor how everything is going, including what the
team is working on, which team members are stuck on a task or what other tasks need to be
done to move forward with the project.
The report displays the amount of time the assignee has spent on a task and predicts how
much more is needed to complete the entire project so you can identify existing issues and
make timely adjustments to get things back on track.
This includes predicting the probability of tasks going overdue or missing its deadline and
provide valuable advice on how you can get the team to work together to prevent this from
happening.
43
SYSTEMS ANALYSIS & DESIGN ALEX MWEBAZE OWN NOTES