Chapter 1: Introduction to
The Role of Systems Analysis and Design
Systems analysis and design is a step-by-step
process for developing high-quality information
systems.
An information system combines information
technology, people, and data to support business
requirements.
Information system components
A system is a set of related components that
produces specific results.
Every system requires input data. In an information
system, data consists of basic facts that are the system’s
raw material.
Information is data that has been transformed into output
that is valuable to users.
An information system has five key components:
hardware, software, data, processes, and people
The systems development life cycle
The systems development life cycle (SDLC) is a
common methodology for systems development in
many organizations.
The systems development life cycle
Systems Planning and Selection
Identify the need for a new or enhanced system.
Investigate (tìm hiểu) the system and determine the
proposed system’s scope.
Produce a specific plan for the proposed project
Systems Analysis
Determine the requirements of the system
Study the requirements and structure them according to
their interrelationships, eliminating any redundancies
The systems development life cycle
Systems Design: Convert the description of the
recommended solution into logical and then physical
system specifications
Logical design concentrates on the business aspects of
the system.
Physical design convert the logical design into physical,
or technical, specifications, specify the programming
languages, database systems and file structures will be
used for the data
The systems development life cycle
Systems Implementation and Operation
Implementation: coding, testing, and installation.
Operation: programmers make the changes that users
ask for and modify the system to reflect changing business
conditions.
Systems development tools
Modeling
Modeling produces a graphical representation of a concept
or process that systems developers can analyze, test, and
modify
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.
Systems development tools
Computer-Aided Systems Engineering (CASE) Tools
CASE tools provide an overall framework for systems
development and support a wide variety of design
methodologies, including structured analysis and objectoriented analysis.
Systems development models
Waterfall model
The Rational Unified Process
Waterfall model
In a waterfall model, each
phase must be completed
fully before the next phase
can begin.
This type of model is basically
used for the for the project
which is small and there are
no uncertain requirements.
Waterfall model
Advantages of waterfall model
This model is simple and easy to understand and use.
It is easy to manage due to the rigidity of the model.
In this model phases are processed and completed one at
a time. Phases do not overlap.
Waterfall model works well for smaller projects where
requirements are very well understood.
Waterfall model
Disadvantages of waterfall model
It is very difficult to go back.
High amounts of risk and uncertainty.
Not a good model for complex and object-oriented
projects.
Poor model for long and ongoing projects.
Not suitable for the projects where requirements are at a
moderate to high risk of changing.
Rational Unified Process
Stands for "Rational Unified Process." RUP is a
software development process from Rational, a
division of IBM.
RUP is a method of managing OO Software
Development
RUP divides the development process into four
distinct phases that each involve business modeling,
analysis and design, implementation, testing, and
deployment.
Rational Unified Process
The Development Phases in RUP
Inception Phase
Elaboration Phase
Construction Phase
Transition Phase
Inception Phase
Overriding goal is obtaining buy-in from all interested
parties
Initial requirements capture
Cost Benefit Analysis
Initial Risk Analysis
Project scope definition
Defining a candidate architecture
Development of a prototype
Elaboration Phase
Requirements Analysis and Capture
Use Case Analysis
Use Case (80% written and reviewed by end of phase)
Use Case Model (80% done)
Scenarios
Sequence and Collaboration Diagrams
Class, Activity, Component, State Diagrams
Elaboration Phase
Glossary (so users and developers can speak common
vocabulary)
Domain Model
To understand the problem: the system’s requirements as they
exist within the context of the problem domain
Risk Assessment Plan revised
Architecture Document
Construction Phase
Focus is on implementation of the design:
Cumulative increase in functionality
Greater depth of implementation
Implement all details.
Analysis continues, but focus on design and
coding
Transition Phase
Transfer of the system to the user community
It includes manufacturing, shipping, installation,
training, technical support and maintenance
Control is moved to maintenance team
Software updates
Integration with existing systems
Core workflows
During each of these phases the RUP defines 6 core
process work flows
Business modeling:
The vision and scope of the business is captured.
The business use-cases, workflows and business objects are
identified
Requirements modeling
Mapping of the business use cases and objects onto system use
cases and objects.
Scoping of the requirements.
Development of the requirements Specification including functional
and non-functional requirements.
Core workflows
Analysis and Design: Here the high-level architecture and
design is developed and verified to ensure that
The architecture can accommodate the requirements
The architecture and design can grow with increasing number of
concurrent users and higher transaction volumes.
Implementation
The lower-level design of the system.
The actual construction of the system in terms of components,
subsystems and classes.
The development of low-level unit tests.
Core workflows
Testing: Unit testing done for individual objects the testing
workflow tests
the objects interact correctly,
the integration of higher level components and subsystems
the requirements have been implemented correctly,
any failures are fed beck to the development team and that the
system is not deployed with any defects.
Core workflows
Deployment
Producing external releases of the software.
Packaging the software.
Distributing the software.
Installing the software.
Providing training and assistance to users.
Beta testing.
Migration of existing software or data.
Initiating the process of formal acceptance.
Systems development methods
Structured analysis
Agile methods
Object-oriented analysis (O-O)
Structured Analysis
Structured analysis is a traditional systems
development technique that is time-tested and easy
to understand.
Represents the system in terms of data and the
processes that act upon that data.
Modeling tools: Data flow diagrams (DFDs)
Agile methods
Build a series of prototypes and constantly adjusting
them to user requirements.
Emphasize continuous feedback, and each
incremental step is affected by what was learned in
the prior steps.
Use a spiral model
Agile methods
Object-oriented analysis and design
Object-oriented (O-O) analysis and design is an
approach that is used to develop the systems that
must change rapidly in response to dynamic
business environments.
Use the industry standard for modeling objectoriented systems, called the unified modeling
language (UML), to break down a system into a use
case model.
Object-oriented analysis and design
Object-oriented analysis and design
The object-oriented modeling approach provides
several benefits:
The ability to tackle more challenging problem domains
Improved communication among
designers, and programmers
users,
analysts,
Reusability of analysis, design, and programming results
Increased consistency among the models developed
during object-oriented analysis, design, and programming
Object-oriented analysis and design
Design review
Object Modeling Technique
Object-Oriented Analysis
Object-Oriented Design
Three models
Object model
Dynamic model
Functional model
Four phases
Design - Review
Design transforms requirements into
an architecture diagram
subsystems, modules and their relationships
a detailed design
a specification of the abstract interface, data structures, and
algorithms of each module
Also develops
a review plan for ensuring the design meets the
requirements
a test plan for ensuring the implementation meets the
design
Object-Oriented Software Development
Object-Oriented Methodology
Development approach used to build complex systems using
the concepts of object, class, polymorphism, and inheritance
with a view towards reusability
Encourages software engineers to think of the problem in
terms of the application domain early and apply a consistent
approach throughout the entire life-cycle
Object-Oriented Software Development
Object-Oriented Analysis and Design
Analysis
models
the
“real-world”
requirements,
independent of the implementation environment
Design applies object-oriented concepts to develop and
communicate the architecture and details of how to meet
requirements
Object-Oriented Analysis
• Object-Oriented Analysis is the “requirements phase” of ObjectOriented Software Development
– think of it as an alternative semi-formal technique
Semi-formal technique
Reuses familiar tools
class modeling
E-R diagrams
dynamic modeling
Finite State Machines
functional modeling
Data flow diagrams
These steps focus on
data
actions
and their relationships
Steps and diagrams
are typically performed in
parallel after initial class
definition
must be kept in synch
Object-Oriented Analysis
Builds a real-world model from requirements
client interviews
domain knowledge
real-world experience
Model is more precise and concise than the informal
problem definition
The model addresses three aspects of objects
class structure and relationships
sequencing of interactions and events
data transformations and computations