Prince Sultan University
Course Code : IS 225
Course Name : Systems Analysis & Design- I
Course Instructor : Hisham Alkhawar
Credit Hours : 4
Text Book : Systems Analysis & Design
Author(s) : Jeffery Hoffer, Joseph Valich 5th Edition
Reference Book :
1. Systems Analysis & Design By Jeffery Whitten
Chapter 1
The Systems Development Environment
1.11.1
Learning Objectives
Define information systems analysis and design
Describe three types of information systems: Transaction Processing Systems (TPS) Management Information Systems (MIS) Decision Support Systems (DSS)
1.21.2
Learning Objectives
Describe the information systems development life cycle (SDLC)
Water fall Model Discuss Rapid Application Development
(RAD) and its constituents parts Prototyping JAD CASE
1.31.3
Learning Objectives
Describe Object Oriented Analysis and Rational Unified Process (RUP)
Describe the Agile Methodologies and eXtreme Programming
1.41.4
Information System-Introduction
An Information system ( IS) is a collection of interrelated components (hardware, software, and telecommunications networks) that people build and use to collect, process, store and provide/distribute as output useful information needed to complete a business task in organizations.
Examples: Payroll System Sales Management System
Information System-Introduction
Why do we design Information Systems?Information systems are built and rebuiltTo provide access to information anywhere
and anytime.
for organizational benefits by adding values during the process of creating, producing and supporting the organization’s product and services.
to improve employee efficiency by applying software solutions to key business tasks
Understand what the business requires from the Information System. In other words thorough “Systems Analysis & Design”
What is Systems Analysis & Design?
Systems Analysis means understanding and specifying in detail what the information system should accomplish.
Systems Design means how to accomplish what is needed by the information system, by specifying in details how many components of the information system should be physically implemented.
What is Systems Analysis & Design?
Information Systems Analysis and DesignComplex, and challenging
organizational process used by a team of business and system professionals, to develop and maintain computer-based information systems that helps in performing business functions efficiently.
1.51.5
What is the outcome of SAD ?
The total Information System includes the hardware, systems software on which the application software runs, documentation and training materials, the specific job roles associated with the overall system and the end users.
An important result of Systems A&D is Application Software, i.e. software designed to support a specific organizational function or process, such as Inventory management, payroll etc.
Who is Systems Analyst?
Systems Analyst performs analysis and design based upon: Understanding of organization’s objectives,
structure and processes. Studies the problems and needs of an organization Knowledge of how to exploit information technology
for advantage Determine how people, methods and IT can be best
combined to bring about improvements in the organization.
1.81.8
Types of Information Systems
Transaction Processing Systems
Management Information Systems
Decision Support Systems
1.121.12
Types of Information Systems
Transaction Processing Systems (TPS) Automate handling of data about business activities the routine day to day business processes Data about each transaction are captured, transaction
are verified and accepted or rejected, and validated transaction are stored for later aggregation.
A transaction occurs each time a sale is made, supplies are ordered or interest payment is made
1.131.13
Types of Information Systems
Transaction Processing Systems (TPS) -contd.The A&D of a TPS means
Focusing on the firm’s current proceduresThe goal of TPS development is to
improve transaction processing by speeding it up using fewer people,
improve efficiency and accuracy, integrate it with other organizational information
systems, provide information not previously available.
1.141.14
Types of Information Systems
Examples of TPSBusiness to consumer e commerce systems
Point of Sale SystemOnline Registration SystemOnline Airline Reservation SystemATM SystemCar Rental SystemLibrary Information System
Business to Business e commerce systems
Types of Information Systems
Management Information Systems (MIS) Converts raw data available through a transaction
processing system (TPS) into meaningful aggregated form (report) that managers need for planning and controlling business.
Examples of MISMIS used by executives often include external data on the competitive environment –
news about competitors Stock market reports Economic forecast
Types of Information Systems
Decision Support Systems (DSS) Designed to help organizational decision makers make
decisions. Allows a user to explore the impact of available options
or decisions, and this is known as “what if” analysis, because the user asks the system to answer.
Provides interactive surroundings for decision making in which data can be quickly manipulated.
DSS uses both historical data as well as judgment about alternative histories or possible futures.
A DSS can help in exploring data at a high level of aggregation and selectively drill down into specific areas where more detailed understanding of business is required.
Types of Information Systems
The A&D for a DSS concentrates on Database (data Orientation) Model base ( mathematical rules defining
interrelationships among different data, used to predict future data or to find best solutions to decisions problems.
User dialogue – decision maker should feel easy to use the system.
Types of Information Systems
Systems Development Life Cycle
System Development methodology-
Standard set of steps to develop and support IS.
Development of IS follows a life cycle. During the life of an IS, it is first conceived as an idea, then it is designed, built and deployed during a development project and finally it is put into production and used to support the business.
SDLC – common methodology for system development
SDLC is used to describe the life of an information system from conception to retirement.
Life Cycle – a circular process Life cycle appear to be sequentially ordered
set of phases, but it is not. Some activities in one phase can be
completed in parallel with some activities of another phase.
Sometimes life cycle is iterative- phases are repeated until accepted.
Systems Development Life Cycle
Systems Development Life Cycle
Consists of five phases: Planning Analysis Design Implementation Maintenance
Each phase has a specific outcome and deliverable
1.221.22
Planning
Analysis
DesignImplementation
Maintenance
Systems Development Life Cycle
Ch 4-5
Ch 6-9
Ch 10-14Ch 15
Ch 16
Systems Development Life Cycle
Planning- Ist PhaseProject Identification and SelectionProject Initiation and Planning
Systems Development Life Cycle
Project Identification and Selection Examine Information needs. Identify the project Prioritization and translation of needs Development of Schedule for different projects Selection of a project.
Project Initiation and PlanningTwo Activities
Formal preliminary investigation of the problem at hand Determining the scope of the proposed system known as Feasibility
Study Producing a specific plan (Baseline project plan) for the proposed system
if it has been approved, specifying the time and resources needed for its execution.
Outcome Final presentation of the business case
1.251.25
Systems Development Life Cycle
Analysis - 2nd Phase To understand and document the business needs and the
processing requirements of the new system. A discovery and understanding process.
Activities Gather information Define system requirements Prioritize requirements Generate and evaluate alternatives matching the requirements Review recommendations with management.
Outcome Once the recommendation is accepted, the analyst makes plans to
acquire hardware and software necessary to build or operate the system as proposed
1.261.26
Systems Development Life Cycle
Design- 3rd phaseUsed to design the solution system, based on the requirements defined and decisions made during analysis.
High level design consisting of developing an architectural structure for the software components, database design, user interfaces and operating environment.Low level design entails developing the detailed algorithms and data structures required for software development.
1.271.27
Systems Development Life Cycle
The description of recommended alternative solution is converted into
Logical design Physical design
Logical design focuses on “what” rather than the “how”.
Logical design process is independent of any specific hardware or software platform – logical design.
Logical design concentrates on the business aspects of the system.
Logical design is oriented towards high level of design
• Physical design concentrates on the design of the various parts of the system to perform the physical operations necessary to facilitate data capture, processing and information output. Physical design includes
-Hardware selection, determination of software ( custom/off-the shelf applications)
-Data capture devices-Data input and report formats-The media to be used for input and output-Construction of database structure-Network communication, data security etc
Outcome:Physical system specifications in a form ready to be turned over to the programmers or other system builders for construction e.g. programming language, database, hardware platform
Systems Development Life Cycle
Systems Development Life Cycle
Implementation-4th phase Implementation
Coding- programmer write the program for the systemTestingOperationHardware and software installationUser Training Documentation
Systems Development Life Cycle
CodingPrograms can be written in Java, Visual
Basic etc.Testing
Individual testing of the programsSystem or Integration testing
Systems Development Life Cycle
Operation (System conversion) :It is the process abandoning the current system (automated or manual) and installing the new automated information system.
System conversion can be done in at least three ways :1. Direct changeover : Old system is discontinued on one day and the new is used on the next.2. Parallel running : Old and new systems are used at same time.3. Phased changeover : Part of the new system are implemented in phases.
Systems Development Life Cycle
InstallationApplication software is installed on existing
or new hardware.The new system becomes a part of the daily
activities of the organization.Training
Users are trained.
Systems Development Life Cycle
Documentation :
Many types of documentation must be produced for a software system
System documentation : Software Engineers develop system documentation that details the inner working of the system to ease future maintenance.
Systems Development Life Cycle
User Documentation : It is user–related documentation which contains the following
User and reference guides,User training and tutorialsInstallation procedures and
troubleshooting suggestions.Initial user support
In addition to documentation, users may also need training program and on going support to use a new system.
Systems Development Life Cycle
Maintenance- 5th PhaseMaintenance means system is changed to reflect changing conditions
Corrective Maintenance : Making changes to an information system to repair flaws in the design, coding or implementation.
Adaptive Maintenance : Making changes to an information system to accommodate changing business needs .
Systems Development Life Cycle
Perfective Maintenance : Making enhancements to improve processing performance or interface usability.
Preventive Maintenance: Making changes to a system to reduce the chance of future system failure.
The Traditional Waterfall SDLC
This model is known as ‘water fall model’ because, the output of one phase is the input of the next phase.
It is a traditional methodology used to analyze, design, implement and maintain information system.
The flow of the project begins in the planning phase.
Planning
Analysis
Design
Implementation
Maintenance
The Traditional Waterfall SDLC
The Traditional Waterfall SDLC
Strengths:The water fall cycle is a very good approach
to follow when the requirements for the information system are highly structured and straightforward and at the same time they are known in the early phases only. e.g. payroll, or inventory system.
Tackles complexity in an orderly way, works well for well understood projects That is why, waterfall model is mostly used for large systems engineering projects.
The Traditional Waterfall SDLC
Drawbacks This model requires that all the
requirements should be specified in advance. It is difficult for end-users to anticipate how they will use new information systems to support their everyday work. If these systems are large and complex, it is probably impossible to make this assessment before the system is built and put into use. In short, the requirements are not clear to the end-users in the beginning.
The Traditional Waterfall SDLC
Drawbacks contd
It was not possible to implement changes in the requirement specifications all the time during system development. The analyst freeze requirements in the early phase, even though those requirements might get changed. With the result it is very expensive to make changes in a system once it was developed.
The role of users are narrowly defined. Limited User involvement throughout the system development.
The Traditional Waterfall SDLC
Drawbacks contd.
Focus on milestone deadlines, instead of obtaining feedback from the development process leads to too little focus on good analysis and design.
Focus on deadlines results in systems that do not match users’ needs and that require extensive maintenance, unnecessarily increasing development cost (maintenance cost is 40% – 70% of software development costs). Finding and fixing a problem after implementation is 100 time more expensive than finding and fixing it during A&D.
Different Approaches to improving Development
PrototypingCase toolsJoint Application Design
The Prototype- Approaches to Improve Development
What is a Prototype ? An easily modifiable and extensible working model of
a proposed system, not necessarily representative of a complete system
What is a Prototyping ? Prototyping is the process of building a working
replica of a system.
The Prototype- Approaches to Improve Development
The Prototype Software Development approach is used to counter the limitations of the waterfall model. The basic idea is that instead of freezing the requirements before any design or coding can process, a prototype is built to help understand the requirements by exposing it to the user comment and refining this through many versions until adequate system has been developed.
© 2008 by Prentice Hall 47Chapter 1
Prototyping (Cont.)
The Prototype- Approaches to Improve Development
Strengths: By using this prototype , the client can get an actual
feel of the system, because the interactions with the prototype can enable the client to better understand the requirements of the desired system. The prototype can be refined through many versions until adequate system has been developed.
This results in more stable requirements that change less frequently.
CASE (Computer-Aided Software Engineering) - Approaches to Improve Development
Software systems which are intended to provide automated support for software process activities. Diagramming tools- graphical representation of
processes, data and control structures.
Computer display and report generators- help the SA to identify data requirements and relationships.
Analysis tools-check for incompleteness, inconsistency or incorrect specification in diagrams, forms, reports
CASE (Computer-Aided Software Engineering) - Approaches to Improve Development
Central Repository- integrated storage of specifications, diagrams, reports, project management information
Documentation Generators- technical and user documentation
Code generators- enable the automatic generation of program and database definition code directly from the design documents, diagrams, forms and reports
CASE Tools
Microsoft VisioVisible AnalystRational RoseOracle
© 2008 by Prentice Hall 52Chapter 1
Joint Application Design (JAD)
Structured process involving users, analysts, and managers.
Several-day intensive workgroup sessions.
Purpose: to specify or review system requirements.
Joint Application Design (JAD): A structured process in which users, managers, and analyst
work together for several days in series of in a series of intensive meetings to specify or review system requirement.
Rapid Application Development
Methodology to radically decrease design and implementation time.
Involves: extensive user involvement, prototyping, JAD sessions, integrated CASE tools, and code generators.
Provides a series of techniques for compressing the analysis, design, build and test phases into a series of short iterative development cycles.
Rapid Application Development
System developers and end-users work together jointly in real time to develop system
Use of small, well trained development teams Phases are shortened and combined with
each other. Tasks done in parallel rather than sequentially. Prototyping is used extensively.
Rapid Application Development (RAD) (Cont.)
RAD – Comparing RAD to the SDLC
Labor – intensive activities of the SDLC are condensed through parallel actions
Use of JAD requirement Extensive iterative process. Includes the development and refinement of process
models and prototype In waterfall model, activities are performed in a
sequential manner whereas in RAD approach they are performed in a iterative, parallel manner.
In RAD, user requirements are refined, a solution is designed, the solution is prototyped, the prototype is reviewed, user input is provided and the process begins again.
Agile Methodologies
For engineering disciplines such as civil, requirements tend to be well understood. Once designing is completed, constructions becomes very predictable.
For software engineering: requirements are rarely well understood; they
change continually during the lifetime of the project.
Agile Methodologies
What is needed in software engineering? Methodologies that embrace change Methodologies that are able to deal with a lack of
predictability. Agile methodologies is based on the above
principles, which focuses on Iterative development Focus on people Promotes self adaptive software development
process
Agile Methodologies
Iterative developmentFrequent production of the working versions
of a system that have a subset of the total number of required features.
Provides feedback to the customer and developers alike.
Agile Methodologies
Focus on peopleFocus on individuals rather than on the
roles those people perform. Roles are not as important as the
individuals who fill those rolesDoesn’t view people as interchangeable
units instead as talented individuals.
Agile Methodologies
Promotes self adaptive software development process The process used to develop software should be
refined and improved by reviewing it repetitively which is of course done by a number of iterations.
AS the processes are adapted (modified), one would not expect to find a single monolithic methodology within an organization, instead many variations of the methodology which reflects the particular talents and experience of the team using it.
Agile Methodologies
When should we recommend Agile methodologies?Unpredictable or dynamic requirementsResponsible and motivated developersCustomers who understand the process and
will get involved
Extreme Programming
Short, incremental development cycles. Focus on automated tests written by
programmers and customers. Two-person programming teams. Customer on site during the development
process. Building working system in a very little time,
without written or diagramming design specification.
Extreme Programming
Coding and testing operate together.Advantages:
Communication between developers.High level of productivity.High-quality code.
Extreme Programming
Drawbacks:Long term commitment and dedication is
required from both the user and customer.Lack of design documentation.Not effective on large projectsRequires experienced developersNeglected planning
Object Oriented Analysis and Design
Views information system as collection of interacting objects that work together to accomplish tasks
Objects – things in computer system that can respond to messages
Conceptually, no processes, programs, data entities, or files are defined – just objects
Data and process are combined in to single entity known as objects.
Objects correspond to the real things an information system deals with, such as customer, supplier, contracts, rental agreement etc.
Maintenance of the software becomes much easier
Systems Analysis and Design in a Changing World, 4th Edition 67
Object-Oriented Approach (continued)
Object-oriented analysis (OOA) Defines types of objects users deal with Shows use cases are required to complete tasks
Object-oriented design (OOD) Defines object types needed to communicate with
people and devices in system Shows how objects interact to complete tasks Refines each type of object for implementation with
specific language of environment Object-oriented programming (OOP)
Writing statements in programming language to define what each type of object does
Systems Analysis and Design in a Changing World, 4th Edition 68
Class Diagram Created During OO Analysis
Rational Unified Process ( RUP)
Based on an iterative, incremental approach to system development.
Phases Inception, elaboration, construction, transition
Rational Unified Process ( RUP)
Figure 1-14 Phases of OOSAD-based development
Systems Analysis and Design in a Changing World, 4th Edition 71
Life Cycles with Different Names for Phases (Figure 2-20)
Rational Unified Process ( RUP)
InceptionDefine the scopeDetermine the feasibility of the projectUnderstand the user requirementsPrepare software development planShort phase and the least resource
intensive.Single iteration
Rational Unified Process ( RUP)
Elaboration Major activities –Detailed Analysis (Define the requirements),
design a baseline architecture. Long phase and has several iterations. Less resource
intensive. Most critical phase Create use case diagrams, class diagrams, sequence
diagrams etc. Final cost and benefits estimates are also completed. The architecture includes a vision of the product, an
executable demonstration of the critical pieces, a detailed glossary and a preliminary user manual, a detailed construction plan and a revised of planned expenditures.
Rational Unified Process ( RUP)
Construction Longest phase. Several iterations. Most resource
intensive. The software is actually coded, tested and documented. Some components are purchased and used in the code. As each executable is completed, it is tested and
integrated. Continue to build the system with additional features using
number of iterations that also include requirements, design and implementation, possibly creating multiple releases of the system.
Revised user requirements could require analysis and design.
At the end beta version of the project is released that should have operational capabilities.
Rational Unified Process ( RUP)
TransitionThe System is goes for beta testing, and then
deployed, and the users are trained and supported.
The project gets acceptance in this phaseOnce accepted, the product can then be
released for distribution.Resource intensive but short phase.
76
Methodologies and ModelsMethodologies
Comprehensive guidelines to follow for completing every SDLC activity
Collection of models, tools, and techniquesModels
Representation of an important aspect of real world, but not same as real thing
Abstraction used to separate out aspectDiagrams and chartsProject planning and budgeting aids
77
Some Models Used in System Development
78
Tools and Techniques
ToolsSoftware support that helps create models or
other required project components Range from simple drawing programs to
complex CASE tools to project management software
TechniquesCollection of guidelines that help analysts
complete a system development activity or taskCan be step-by-step instructions or just general
advice
79
Some Techniques Used in System Development
80
Some Techniques Used in System Development
81
Relationships Among Components of a Methodology
Our Approach to SDLC
The SDLC is an organizing and guiding principle in this book.
We may construct artificial boundaries or artificially separate activities and processes for learning purposes.
Our intent is to help you understand all the pieces and how to assemble them.
Summary
In this chapter you learned how to: Define information systems analysis and
design. Describe the different types of information
systems. Describe the information Systems
Development Life Cycle (SDLC).
Summary
Explain Rapid Application Development (RAD), prototyping, Joint Application Development (JAD), and Computer Aided Software Engineering (CASE).
Describe agile methodologies and eXtreme programming.
Explain Object Oriented Analysis and Design and the Rational Unified Process (RUP).