You are on page 1of 45

Presented By –

M.M. Rakibul Hasan


Faculty, CSE, IUBAT University

CSC-387 [System Analysis and Design] 1


Learning Objectives
• Understand the need for systems analysis and
design in Organizations.
• Realize what the many roles of systems
analyst are.
• Comprehend the fundamentals of three
development methodologies: SDLC, the agile
approach and object-oriented systems
analysis and design.

CSC-387 [System Analysis and Design] 2


Who is a Systems Analyst?
• System analyst is an IT professionals who is
specialized in analyzing and designing
information systems.
• System analyst is bridge between business and
information technology professionals.
• For example:
– Responsible for developing
– Cost analysis
– Design Considerations
– Implementation time-lines
CSC-387 [System Analysis and Design] 3
Responsibility of a system analyst
• Researches problems
• Plans solutions
• Recommends software and systems
• Coordinates development

CSC-387 [System Analysis and Design] 4


Roles of System analyst
• Systems analysts act as
– Outside consultants to businesses
– Supporting experts within a business
– As change agents

CSC-387 [System Analysis and Design] 5


Quality of System Analyst
• Problem Solver
• Communication
• Strong & professional ethics
• Self discipline & self motivated

CSC-387 [System Analysis and Design] 6


Systems Development Life Cycle
• The systems development life cycle is a
systematic approach to solving business
problems
• It is divided into seven phases
• Each phase has unique activities

CSC-387 [System Analysis and Design] 7


The seven phases of the systems development
life cycle

CSC-387 [System Analysis and Design] 8


Phase 1: Identifying Problems,
Opportunities, and Objectives
• Activity:
– Interviewing user management
– Summarizing the knowledge obtained
– Estimating the scope of the project
– Documenting the results
• Output:
– Feasibility report containing problem definition and
objective summaries from which management can make a
decision on whether to proceed with the proposed project
• Personnel involved:
– Analyst
– User management
– Systems management
CSC-387 [System Analysis and Design] 9
Phase 2: Determining Human Information
Requirements
• Activity:
– Interviewing
– Sampling and investing hard data
– Questionnaires
– Observe the decision maker’s behavior and environment
– Prototyping
– Learn the who, what, where, when, how, and why of the current system
• Output:
– Analyst understands how users accomplish their work when interacting with
a computer; and begin to know how to make the new system more useful
and usable. The analyst should also know the business functions and have
complete information on the people, goals, data and procedure involved
• Personnel involved :
– Analyst
– User management
– User operations workers
– Systems management

CSC-387 [System Analysis and Design] 10


Phase 3: Analyzing System Needs
• Activity:
– Create data flow diagrams
– Complete the data dictionary
– Analyze the structured decisions made
– Prepare and present the system proposal
• Output:
– Recommendation on what, if anything, should be
done
• Personnel involved:
– Analyst
– User management
– Systems management
CSC-387 [System Analysis and Design] 11
Phase 4: Designing the Recommended
System
• Activity:
– Design procedures for data entry
– Design the human-computer interface
– Design system controls
– Design files and/or database
– Design backup procedures

• Output:
– Model of the actual system

• Personnel involved:
– Analyst
– System designer
– User management
– User operations workers
– Systems management
CSC-387 [System Analysis and Design] 12
Phase 5: Developing and Documenting
Software
• Activity:
– System analyst works with programmers to develop any original software
– Works with users to develop effective documentation
– Programmers design, code, and remove syntactical errors from computer
programs
– Document software with help files, procedure manuals, and Web sites
with Frequently Asked Questions
• Output:
– Computer programs
– System documentation
• Personnel involved:
– Analyst
– System designer
– Programmers
– Systems management
CSC-387 [System Analysis and Design] 13
Phase 6: Testing and Maintaining the
System
• Activity:
– Test the information system
– System maintenance
– Maintenance documentation

• Output:
– Problems, if any
– Updated programs
– Documentation

• Personnel involved:
– Analyst
– System designer
– Programmers
– Systems management
CSC-387 [System Analysis and Design] 14
Phase 7: Implementing and Evaluating the
System
• Activity:
– Train users
– Analyst plans smooth conversion from old system to new system
– Review and evaluate system

• Output:
– Trained personnel
– Installed system

• Personnel involved:
– Analyst
– System designer
– Programmers
– User management
– User operations workers
– Systems management
CSC-387 [System Analysis and Design] 15
Some researchers estimate that the amount of time spent on systems
maintenance may be as much as 60 percent of the total time spent on
systems projects

CSC-387 [System Analysis and Design] 16


The Impact of Maintenance
• Maintenance is performed for two reasons
– Removing software errors, and
– Enhancing existing software
• Over time the cost of continued maintenance
will be greater than that of creating an entirely
new system. At that point it becomes more
feasible to perform a new systems study

CSC-387 [System Analysis and Design] 17


Resource consumption over the system
life

CSC-387 [System Analysis and Design] 18


CASE Tools
– Computer Aided Software Engineering.
– CASE tools are automated, microcomputer-based
software packages for systems analysis and design
– CASE is the use of computer-based support in the
software development process
– Four reasons for using CASE tools are:
• To increase analyst productivity
• Facilitate communication among analysts and users
• Providing continuity between life cycle phases
• To assess the impact of maintenance

CSC-387 [System Analysis and Design] 19


CASE Tool Categories
• CASE tools may be divided into several
categories
– Upper CASE (also called front-end CASE) tools,
used to perform analysis and design
– Lower CASE (also called back-end CASE). These
tools generate computer language source code
from CASE design
– Integrated CASE, performing both upper and
lower CASE functions. Ex. Project Management
Tools (Trac tools)

CSC-387 [System Analysis and Design] 20


Upper CASE
• Upper CASE tools
– Create and modify the system design
– Store data in a project repository
– The repository is a collection of records, elements,
diagrams, screens, reports, and other project
information
– These CASE tools model organizational
requirements and define system boundaries
– Ex. Ms Visio.
CSC-387 [System Analysis and Design] 21
Lower CASE
• Lower CASE tools generate computer source
code from the CASE design
• Source code may usually be generated in
several languages
• Ex. Visual studio.

CSC-387 [System Analysis and Design] 22


CASE Used in Different Levels of SDLC

Examples of CASE tools include diagram tools, documentation tools, process modeling tools, analysis
and design tools, system software tools, project management tools, design tools, prototyping tools,
configuration manage tools, programming tools, Web development tools, testing tools, maintenance
tools, quality assurance tools, database management tools and re-engineering tools.
CSC-387 [System Analysis and Design] 23
Advantages and disadvantages of CASE
Tools
• Advantages :
– To increase productivity
– Increase quality of software at low price.

• Disadvantages :
– Need for specialized training
– Inadequate standardization
– May be difficult to use with existing system

CSC-387 [System Analysis and Design] 24


Reverse Engineering
• It is the process followed so as to find
unknown and difficult information about a
software.
• Source code is examined, analyzed, and
converted into repository entities.
• It is important in case when software lacks
proper documentation, is highly unstructured
or it’s structured has degraded through
maintenance work.

CSC-387 [System Analysis and Design] 25


Reverse Engineering Produces
• Reverse engineering produces (depending on
the tool set used)
– Data structures and elements, describing the files,
records, and field
– Screen designs, if the program is online
– Report layouts for batch programs
– A structure chart showing the hierarchy of the
modules in the program
– Database design and relationships
CSC-387 [System Analysis and Design] 26
Advantages of Reverse Engineering
• It has the following advantages:
– Reduced system maintenance time
– Program documentation is produced for loosely
documented programs
– Structured programs may be generated from
unstructured, older programs
– Future system maintenance is easier to implement
– Unused portions of programs may be eliminated

CSC-387 [System Analysis and Design] 27


The Agile Approach
• The agile approach is a software development
approach based on values, principles and core
practices.
• The four values are communication, simplicity,
feedback and courage.
• Four core agile practices are short releases, the
40 hour workweek, hosting an onsite customer
and using pair programming.
• Agile methods can ensure successful completion
of a project by adjusting the important resources
of time, cost, quality and scope.
CSC-387 [System Analysis and Design] 28
The Agile Approach
• Agile SDLC model is a combination of iterative and
incremental process models with focus on process
adaptability and customer satisfaction by rapid delivery
of working software product.
• Agile Methods break the product into small
incremental builds. These builds are provided in
iterations. Each iteration typically lasts from about one
to three weeks.
• At the end of the iteration a working product is
displayed to the customer and important stakeholders.
• A team of software developers published the Agile
Manifesto (a public declaration of policy and aims) in
2001.
CSC-387 [System Analysis and Design] 29
Agile Manifesto
12 Agile Principles:
1. Our highest priority is to satisfy the customer
through early and continuous delivery of
valuable software.
2. Welcome changing requirements, even late
in development.
3. Deliver working software frequently, from a
couple of weeks to a couple of months, with
a preference to the shorter timescale.
CSC-387 [System Analysis and Design] 30
Agile Manifesto
12 Agile Principles:
4. Business people and developers must work
together daily throughout the project.
5. Build projects around motivated individuals.
Give them the environment and support they
need, and trust them to get the job done.
6. The most efficient and effective method of
conveying information to and within a
development team is face-to-face conversation.
CSC-387 [System Analysis and Design] 31
Agile Manifesto
12 Agile Principles:
7. Working software is the primary measure of
progress.
8. Agile processes promote sustainable
development. The sponsors, developers and
users should be able to maintain a constant
pace indefinitely.
9. Continuous attention to technical excellence
and good design enhances agility.
CSC-387 [System Analysis and Design] 32
Agile Manifesto
12 Agile Principles:
10.Simplicity - the art of maximizing the amount
of work not being done - is essential.
11.The best architectures, requirements and
designs emerge from self-organizing teams.
12.At regular intervals, the team reflects on how
to become more effective, then tunes and
adjusts its behavior accordingly.

CSC-387 [System Analysis and Design] 33


Agile Methodologies
• Agile thought process had started early in the software
development and started becoming popular with time
due to its flexibility and adaptability.
• The most popular agile methods include Rational
Unified Process (1994), Scrum (1995), Crystal Clear,
Extreme Programming (1996), Adaptive Software
Development, Feature Driven Development, and
Dynamic Systems Development Method (DSDM)
(1995). These are now collectively referred to as agile
methodologies, after the Agile Manifesto was
published in 2001.

CSC-387 [System Analysis and Design] 34


Development Process for an Agile Project
• Two words that characterize a project done
with an agile approach are interactive and
incremental.
• There are five distinct stages:
– Exploration
– Planning
– Iterations to the first release
– Productionizing
– Maintenance
CSC-387 [System Analysis and Design] 35
Fig: The five stages of the agile modeling
CSC-387 [System Analysis and Design] 36
Advantages of Agile Model
• Customer interaction is the backbone of Agile
methodology
• Delivers early partial working solutions.
• Is a very realistic approach to software
development
• Suitable for fixed or changing requirements
• Little or no planning required
• Easy to manage
CSC-387 [System Analysis and Design] 37
Disadvantages of Agile Model
• Not suitable for handling complex dependencies.
• Depends heavily on customer interaction, so if
customer is not clear, team can be driven in the
wrong direction.
• There is very high individual dependency, since
there is minimum documentation generated.
• Transfer of technology to new team members
may be quite challenging due to lack of
documentation.
CSC-387 [System Analysis and Design] 38
Object-Oriented
Systems Analysis and Design
• Object-oriented (O-O) analysis and design is
an approach that is intended to facilitate the
development of systems that must change
rapidly in response to dynamic business
environments.
• Object-oriented approaches use the industry
standard for modeling object-oriented
systems, called Unified Modeling
Language(UML), to break down a system into
a use case model.
CSC-387 [System Analysis and Design] 39
Phases in UML
1. Define the use case
model: Analyst
identifies the actors
and the major
events initiated by
the actors.

2. Write use case


scenarios: Describe
in words the steps
that are normally
performed.
Fig: Phases in UML development process

CSC-387 [System Analysis and Design] 40


Phases in UML
3. Derive Activity
Diagrams from use
cases: illustrate all the
major activities in the
use case.
4. Develop Sequence
Diagrams: creates
one or more
sequence diagrams
for each use case,
which show the
sequence of activities
and their timing .
Fig: Phases in UML development process

CSC-387 [System Analysis and Design] 41


Phases in UML
5. Create Class Diagrams:
describes the structure
of a system by showing
the system's classes,
their attributes,
operations (or methods),
and the relationships
among objects.
6. Draw Statechart
Diagrams: help in
understanding complex
processes that cannot be
fully derived by the
sequence diagram. Fig: Phases in UML development process

CSC-387 [System Analysis and Design] 42


Phases in UML
7. Modify diagrams and
complete specification:
Begin systems design by
modifying the UML
diagrams.

8. Development and
document the system

Fig: Phases in UML development process

CSC-387 [System Analysis and Design] 43


How to decide which development
method to use?

CSC-387 [System Analysis and Design] 44


Review Questions
1. Who is System analyst? Discuss the roles & qualities
of a system analyst?
2. What is SDLC? Discuss the responsibility of system
analyst in different phases of SDLC.
3. What is CASE Tools? Discuss different categories of
CASE Tools.
4. What is Reverse Engineering? What are the
advantages of Reverse Engineering?
5. Write short note on: agile and object-oriented
systems analysis and design approach.
6. How would a system analyst decide which
development method to use?
CSC-387 [System Analysis and Design] 45

You might also like