Title: The University of Akron Summit College Department of Business Technology Computer Information System
1The University of AkronSummit CollegeDepartment
of Business TechnologyComputer Information
Systems
- 2440 241 Systems Analysis and Design
- Chapter 2 Approaches to System Development
- Instructor Enoch E. Damson
2The Systems Development Life Cycle (SDLC)
- Analysts organize their work into projects
- Project a planned undertaking that has a
beginning and an end, and produces a desired
result or product - System development project a planned
undertaking that produces a new information
system - Information systems development go through phases
- Phase related system development activities
that are grouped into categories of planning,
analysis, design, implementation, and support - The three major information systems development
phases are as follows - Analysis phase
- Design phase
- Implementation phase
3The Systems Development Life Cycle (SDLC)
- Analysis phase provides a thorough
understanding of the businesss information needs
and requirements - Design phase defines the architecture and
structure of a new system to satisfy the
businesss requirements - Implementation phase involves the actual
construction, testing, and installation of the
function information system
4The Systems Development Life Cycle (SDLC)
- The two other systems development phases include
- Project planning phase
- Support phase
- Project planning phase the beginning of a
systems development project that consists of
required activities to initiate, plan, and obtain
approval for the project - Support phase the most expensive and longest
phase that consists of ongoing activities to
maintain and enhance the system (after its
completion and installation) over its lifetime
5The Systems Development Life Cycle (SDLC)
- The approach to defining the required phases and
activities for a system development project is
called the systems development life cycle (SDLC) - The five phases of the systems development life
cycle includes the following - Project Planning phase
- Analysis phase
- Design phase
- Implementation phase
- Support phase
- Current approaches to system development include
iteration phases that tend to break projects down
into a series of mini-projects (iterations) - Each iteration involves analysis, design, and
implementation activities
6The Phases of the Systems Development Life Cycle
- Identifying the objectives and primary activities
of each of the SDLC phases is vital to
understanding information systems development
7The Planning Phase
- Primary objective identify the scope of the new
system, ensure that project is feasible, and
develop a schedule, resource plan, and budget for
the remainder of the project - Activities in the planning phase includes
- Defining the problem
- Producing the project schedule
- Confirm project feasibility
- Staff the project
- Launch the project
8The Analysis Phase
- Primary Objective understand and document
business needs and processing requirements of the
new system - Keywords in analysis phase are discovery and
understanding - Activities of the phase include
- Gathering information
- Defining system requirements
- Building prototypes for discovery of requirements
- Prioritizing requirements
- Generating and evaluating alternatives
- Reviewing recommendations with management
- Gathering information is fundamental to the
analysis phase - Gathering information involves learning from
users about the problem domain - Problem domain the area of users business for
which a system is being developed
9The Design Phase
- Primary objective design the solution system
based on the requirements defined and decisions
made during analysis - Activities in this phase include
- Designing and integrating the network
- Designing the application architecture
- Designing the user interfaces
- Designing the system interfaces
- Designing and integrating the database
- Prototyping for design details
- Designing and integrating the system controls
- The application is the portion of the new
information system that satisfies the users
needs in the problem domain
10The Implementation Phase
- Primary objective produce a reliable, fully
functional information system and ensure that
users are all trained and that the organization
is ready to benefit as expected from use of the
system - Activities include
- Constructing software components
- Verifying and testing
- Convert data
- Train users and document the system
- Install the system
11The Support Phase
- Primary objective keep the system running
productively after initial installation - Activities include
- Maintaining the system
- Enhancing the system
- Supporting the system
12Scheduling Project Phases
- Analysts in the 1970s and 1980s used the
waterfall approach to their projects - Waterfall approach executing an SDLC in which
one face leads sequentially into the next phase - The waterfall method required rigid planning and
final decision making at each step of the SDLC - Analysts rarely attempt to use a straight
waterfall approach
13Scheduling Project Phases
- Most activities of the SDLC phases overlap and
appear to be done concurrently - The overlap occurs because of the following
reasons - Efficiency some analysis thoughts may lead to
design thoughts - Interdependency most components of a computer
system depend on each other leading to both
analysis and some design at the same time - Not all activities overlap completely in the SDLC
because of dependency some activities naturally
depend on results of prior work - Most successful projects have schedules that
provide some flexibility but requiring completion
of identified milestones on a timely basis
14Understanding Iteration and Project Phases
- Overlapping schedules are best defined and
managed using iteration across phases - With iteration, work activities are repeated and
each iteration is refined to be closer to the
desired result - There are several approaches to defining each
iteration including - Defining and implementing key functions the
system must include in the first iteration before
getting to the less crucial functions and then to
the optional functions - Focusing on one subsystem at a time with the
first subsystem containing the core functionality
and data for the other subsystems - Using the incremental development approach that
completes parts of the system in one or more
iterations and puts them into operation for users - All approaches to system development can use some
amount of iteration. - The object-oriented approach to system
development is always described as highly
iterative
15Methodologies, Models, Tools, and Techniques
- Systems analysts have variety of aids to help
complete activities in the SDLC - The aids include
- Methodologies
- Models
- Tools
- Techniques
16Methodologies
- System development methodology provides
guidelines for completing every activity in the
SDLC, including specific models, tools, and
techniques - Some methodologies are homegrown or purchased and
contain written documentation that defines
everything needed to produce at any point of the
project development
17Models
- A model is a representation (abstraction) of an
important aspect of the real world - Some models are
- physically similar to the real product
- graphical representations of important details
- abstract mathematical notations
- Models used in systems development include
representations of inputs, outputs, processes,
data, objects, object interactions, locations,
networks, and devices
18Models
- Most models are graphical models drawn that
employ agreed-upon symbols and conventions called
diagrams and charts - Some models of system components include
- Flowchart
- Data flow diagram (DFD)
- Entity-relationship diagram (ERD)
- Structure chart
- Use case diagram
- Class diagram
- Sequence diagram
- Some models used to manage the development
process include - PERT chart
- Gantt chart
- Organizational hierarchy chart
- Financial analysis models NPV, ROI, BSC
19Tools
- A tool in the context of system development is
software support that helps create models or
other components required in the project - The most comprehensive tool available for system
developers is called a computed-aided system
engineering (CASE) tool - CASE tools help analysts create the important
system models to automatically check the models
for completeness and compatibility with other
system models - CASE tools can also generate program code based
on the models - Some tools used in system development include
- Project management application
- Drawing/graphics application
- Word processor/text editor
- Computer-aided system engineering (CASE) tools
- Integrated development environment (IDE)
- Database management application
- Reverse-engineering tool
- Code generator tool
20Techniques
- A technique in system development is a collection
of guidelines that help an analyst complete a
system development activity or task - Techniques often include step-by-step
instructions or for creating a model a more
general advice for collecting information from
system users - Some techniques used in system development
include the following - Strategic planning techniques
- Project management techniques
- User interviewing techniques
- Data-modeling techniques
- Relational database design techniques
- Structured analysis technique
- Structured design technique
- Structured programming technique
- Software-testing techniques
- Object-oriented analysis and design techniques
21Relationships Among Components of a Methodology
- A methodology includes a collection of techniques
used to complete activities within each phase of
the SDLC - The activities include completion of a variety of
models and other documents and deliverables - System developers use software tools to help
complete activities
22Two Approaches to System Development
- Systems development is done in many different
ways - Different companies, groups in a company,
individuals in a group may have different ways of
developing systems - The two general approaches to system development
that form the basis of virtually any
methodologies include - The traditional approach
- The object-oriented approach
23The Traditional Approach
- The traditional approach includes many variations
based on techniques used to develop information
systems with structured and modular programming - The approach is often referred to as structured
system development - A refinement to structured development is called
information engineering (IE), a popular variation
24Structured System Development
- The structured approach to system development
uses structured analysis, structured design, and
structured programming - The approach is also known as the structured
analysis and design technique (SADT) - The structured programming technique, developed
in the 1960s, was the first attempt to provide
guidelines to improve quality of computer
programs - The structured design technique was developed in
the 1970s to make it possible to combine separate
programs into more complex information systems - The structured analysis technique evolved in the
early 1980s to help clarify the requirements for
the computer system for developers before they
designed the programs
25Structured Programming
- A structured program is one that has one
beginning and one ending, and for which each step
on the program execution consists of - Sequence
- Decision
- Repetition constructs
- Another structured programming concept is
top-down programming which divides more complex
programs into a hierarchy of program modules - With top-down programming, one module at the top
of the hierarchy controls program execution by
calling required lower-level modules - When the hierarchy involves multiple programs,
the arrangement is sometimes called modular
programming
26Structured Design
- The structured design technique was developed to
provide some guidelines for deciding - what the set of programs should be
- what each program should accomplish
- how the programs should be organized into a
hierarchy - The modules and arrangements of the modules are
shown graphically using a model called a
structure chart - Two main principles of structured design are that
program modules should be designed to be - Loosely coupled each module is independent of
other modules - Highly cohesive each module accomplishes one
clear task - Newer structured design assume database
management systems (DBMS) are used in the system
to interact with a database
27Structured Analysis
- The structured analysis technique helps the
developer to define - what the system needs to do (the processing
requirements) - what data the system needs to store and use (data
requirements) - what inputs and outputs are needed
- how the functions work together as a whole to
accomplish tasks - The key graphical model of the system
requirements used with structured analysis is
called the data flow diagram (DFD) - The data flow diagram is a model that shows
inputs, processes, storage, and outputs of a
system produced in structured analysis
28Structured Analysis
- The most recent variation of structured analysis
defines systems processing requirements by
identifying all of the events that will cause the
system to react in some way - Each event leads to a different system activity
- The analyst takes each of these activities and
creates a DFD showing the processing details,
including inputs and outputs - A graphical model called an entity-relationship
diagram (ERD) can also be created based on the
data needed by a system, including things about
which information (data entities) is stored and
the relationships among them, produced in
structured analysis and information engineering - The data entities from the ERD correspond to the
data storage shown on DFDs
29Weaknesses of the Structured Approach
- The structured approach has been considered to be
weak because critics thought that - the techniques address only some, but not all, of
the activities of analysis and design - the transition from the DFD (in structured
analysis) to the structure chart (in structured
design) did not work well in practice - the data modeling and the ERD were much more than
modeling processes with the DFD - to ensure that systems are comprehensive and
coordinated, the development of a system should
begin only after the organization completed an
overall strategic planning effort - Because of these weaknesses, some developers
turned to a refinement of structured development
named information engineering (IE)
30Information Engineering
- Information engineering (IE) is a traditional
system development methodology thought to be more
rigorous and complete than the structured
approach, because of its focus on strategic
planning, data modeling, and automated tools - IE focused much more on data
- The process model of IE process dependency
diagram is similar to a DFD but focuses more on
which processes are dependent on other processes
and less on inputs and outputs - IE provides a more complete life cycle support
through the use of an integrated CASE tool - The CASE tool helps analysts to follow the IE
approach faithfully but it lacks flexibility - By the late 1980s, the IE was popular with large
mainframe systems but less useful for smaller
desktop applications and client/server
applications because of the lack of flexibility
31The Object-Oriented Approach
- Many information systems projects today are now
using the object-oriented technology which
requires a completely different approach - The object-oriented approach views an information
system as a collection of interacting objects
that work together to accomplish tasks - Conceptually, there are no processes (or
programs) and data entities (or files) - The system consists of objects which is a thing
in the computer system that can respond to
messages
32The Object-Oriented Approach
- The object-oriented approach began with the
development of the Simula programming language in
Norway in the 1960s - Simula was used to create computer simulations
involving objects like ships, etc - In the 1970s, the Smalltalk language was
developed to solve the problem of creating
graphical user interfaces (GUIs) that involved
objects like buttons, menus etc - Other programming languages include C, Java, C
33The Object-Oriented Approach
- Object-oriented analysis (OOA) defines all of the
types of objects that do the work in the system
and shows what user interactions are required to
complete tasks - Object-oriented design (OOD) defines all of the
types of objects necessary to communicate with
people and devices in the system, showing how
objects interact to complete tasks, and refining
the definition of each type of object so it can
be implemented with a specific language or
environment - Object-oriented programming (OOP) consists of
writing statements in a programming language to
define what each type of object does, including
the messages that the objects send to each other - The object-oriented approach uses a class diagram
to show all of the classes of objects in the
system - Every class may have more sophisticated
subclasses that inherit characteristics of the
class above them
34Benefits of the Object-Oriented Approach
- Two major benefits of the object-oriented
approach include - Naturalness intuitive because people tend to
think about the world in terms tangible objects - Reuse many systems in organizations use the
same objects, so the classes can be used over and
over again when needed - Many systems developed today combine both
traditional and object-oriented technology - Some IDEs also combine the two approaches in the
same tool
35Systems Development Life Cycle Variations
- There are some variations to the SDLC
- Some of the variations are based on the life
cycle phases - Some life cycles differ in their emphasis on the
social, technical, and subsystems - Following are some of the variations
- Variations of names for phases
- Variations based on an emphasis on people
- Variations based on speed of development
36Variations of Names for Phases
- Early SDLC
- Feasibility study
- System investigation and analysis
- Systems design
- Implementation
- Review and maintenance
- Information Engineering (IE)
- Information strategy planning
- Business area analysis
- Business systems design and technical design
- Construction and transition
- Production
- Unified Process (UP)
- Inception phase
- Elaboration phase
- Construction phase
- Transition phase
37Variations of Names for Phases
- SDLC with Activity Names and Phases
- Organize the project and study feasibility
- Study and analyze the current system
- Model and prioritize the functional requirements
- Generate alternatives and propose the best
solution - Design the system
- Obtain needed hardware and software
- Build and test the new system
- Install and operate the new system
38Variations Based on an Emphasis on People
- Some methodologies recognize more explicitly that
information systems are socio-technical systems - Socio-technical systems information systems
that include both social and technical subsystems
designed to work well together - Other terms for socio-technical system
development include user-centered design and
participatory design
39Variations Based on Speed of Development
- Reasons for speeding up the development process
include - Continuing backlog of needed systems
- Constantly changing technological and business
environment - Some of the variations include
- Rapid application development (RAD)
- Prototype development
40Current Trends in Development
- Below are some of the new trends in systems
development - Risk and the spiral model
- extreme programming (XP)
- The unified process (UP)
- Agile Modeling
41Risk and the Spiral Model
- The spiral model is a highly iterative model
- The model shows the SDLC as spiral, starting in
the center and working its way around, over and
over again, until project completion - Among the many ways of implementing the spiral
model is the following - Initial planning gather just enough information
for a prototype - The first prototype goes through the sequential
path through analysis, design, construction,
testing, integration with previous prototype
components - Planning for the next prototype
- Cycle of activities begins again
- Spiral model focuses on identifying risk factors
42eXtreme Programming (XP)
- The XP (lightweight systems development) method
adapts techniques from many sources and adds some
new ideas - Developers plan project by making users describe
user stories - User stories descriptions of the support users
need from the system required functionalities - The stories are documented quickly with informal
descriptive models - Developers plan a series of releases for the
project, each including a working part of the
final system - The first release is worked, taking several
iterations to complete before going to the next
release
43The Unified Process (UP)
- The UP is an object-oriented (OO) system
development method offered by Rational software
(recently purchased by IBM) - The UP is the attempt by the three proponents
(Grady Booch, James Rumbaugh, and Ivar Jacobson)
of the Unified Modeling Language (UML) to define
complete methodology that - Provides several unique features
- Uses UML for systems modeling
- UP is not a standard OO development methodology
yet but rapidly gaining attention because of the
stature of the UML proponents
44The Unified Process (UP)
- The UP is designed to reinforce six best
practices of systems development common to many
system development methodologies - Develop iteratively
- Define and manage system requirements
- Use component architectures
- Create visual models
- Verify quality
- Control changes
- The UP defines four cycles
- Inception
- Elaboration
- Construction
- Transition
45The Unified Process (UP)
- The inception phase defines the scope of the
project by specifying use cases (similar to user
stories) and completes a feasibility study - The elaboration phase focuses on several
iterations that take part of the system and
define the requirements, design the solution, and
implement the solution - The construction phase focuses on building the
system (possibly multiple releases) using
additional iterations that include requirements,
design, and implementations - The transition phase involves turning the system
over to the end users and focusing on end-user
training, installation, and support
46The Unified Process (UP)
- The four phases on the UP are different from the
traditional SDLC - Rather than defining the generic analysis,
design, and implementation phases, the four
phases of the UP define the project sequentially
by indicating the emphasis on the project team at
any point in time.
47The Unified Process (UP)
- The UP defines the following disciplines within
each phase to make iterative development
manageable - Business modeling
- Requirements modeling
- Design
- Implementation
- Testing
- Deployment
- Configuration and change management
- Project management
- Some of the defined roles of the UP include
- Designer
- User case specifier
- Systems analyst
- Implementer
- Architect
48Agile Modeling
- The Agile Modeling (popularized by Scott Ambler)
encourages developers to combine the best of XP
with the best of the UP - It increases the amount of modeling over XP but
decreases the formality and documentation
required of the UP - It includes the following
- Iterative and incremental modeling applying the
right models, creating several models in
parallel, and modeling in small increments - Teamwork model with others, get active
stakeholder participation, encourage collective
ownership, and display models quickly - Simplicity create simple content, depict models
simply, and use the simplest modeling tools - Validation consider testability, then prove the
model is right code
49Tools to Support System Development
- Automated tools are needed to improve the speed
and quality of systems development, irrespective
of the methodology used - CASE tools contain a database information about
the project, called a repository which stores
information about the system, including models,
descriptions, and references that link the
various models - Upper CASE tools - provide suport for analysts
during the analysis and design phases - Lower CASE tools - provide support for
implementation, primarily generating programs and
database schemas based on specifications in the
repository - Integrated CASE (ICASE) tools - combine support
for the full life cycle
50Tools to Support System Development
- Below are sample CASE tools
- Microsoft Visio
- Visible Analyst
- Oracle Designer
- Rational Rose
- Together
- Embarcadero Describe
- Rational XDE Professional