Lecture notes in PowerPoint presentation - Why CIS at Baruch?

lumpysteerSoftware and s/w Development

Dec 2, 2013 (3 years and 11 months ago)

104 views

Chapter 12

APPROACHES TO SYSTEMS
-
BUILDING

Approaches to Systems
-
Building,
Challenges


Controlling information systems
development outside the information
system department.


Enforcing a standard methodology

The life cycle methodology for
system development
(Figure 12
-
1)

Project
Definition
STAGES
Project proposal report
Systems
Study
Design
Programming
Installation
Post-
implementation
System proposal report
Design specifications
Program specifications - code
System performance tests
Post-implementation audit
END PRODUCTS
OPERATIONS
Milestone 1
Project
initiation
Milestone 2
Design solution
decision
Milestone 3
Design
specification sign-off
Milestone 4
Production
decision
Year 1
Year 2
3-8Year Life Span
The Traditional System Lifecycle


Systems Lifecycle:
A traditional methodology for
developing an information system that partitions the
system development process into formal stages that
must be completed sequentially with a very formal
division of labor between end users and information
system specialists.


Project Definition:
A stage in the systems lifecycle
that determines whether the organization has a
problem and whether the problem can be solved by
launching a system project.


Systems Study:
A stage in the systems lifecycle that
analyzes the problems of existing systems, defines
the objectives to be attained by a solution, and
evaluates various solution alternatives.

The Traditional System Lifecycle


Design:
A stage in the systems lifecycle that
produces the logical and physical design
specifications for the system solution.


Programming:
A stage in the systems lifecycle that
translates the design specifications produced during
the design stage into software program code.


Installation:

A stage in the systems lifecycle
consisting of testing training, and conversion; the
final steps required to put a system into operation.


Post
-
implementation:
The final stage of the
systems lifecycle in which the system is used and
evaluated while in production and is modified to
make improvements or meet new requirements.


Limitations of SDLC


Costly and time consuming


Inflexible and discourage change


Ill
-
suited to decision oriented
applications

Alternative System
-
Building
Approaches


Prototyping:
The process of building an
experimental system quickly and inexpensively for
demonstration and evaluation


Application software packages:
A set of
prewritten, precoded application software programs
that are commercially available for sale or lease


End
-
user development:
The development of
information systems by end users with little or no
formal assistance from technical specialists.


Outsourcing:
The practice of contracting computer
center operations, telecommunication networks, or
applications development to external vendors


Prototype:
The preliminary working version of an
information system for demonstration and evaluation
purposes


Prototyping:
The process of building an
experimental system quickly and inexpensively for
demonstration and evaluation


End
-
user interface:
The part of information system
through which the end user interacts with the system

Advantages of prototyping

1.
Uncertainty about
requirements or design
solutions

2.
Valuable for designing end
user interface

3.
Technical features can be
tested

4.
User involvement

Disadvantages of
prototyping

1.
Not for all applications

2.
Rapid prototyping may gloss
over essential steps in
system development

3.
Prototype may be used as is
instead of redeveloping it

The Prototyping Process

Identify
basic
requirements
Develop a
working
prototpe
Use the
prototype
User
satisfied?
Revise and
enhance the
prototype
Operational
Prototype
YES
NO
STEP 1
STEP 2
STEP 3
STEP 4
Application Software Packages


A set of prewritten, precoded application software
programs that are commercially available for sale or
lease


Fast, less costly, easy to install and test
disadvantages


Low level of sophistication


Customization:
Modifications to most organizational
needs may be costly, in general it is exponential






Initial price may be deceptive

Front end
programs
Package
Back end
programs
Selecting Software Packages


Request for Proposal:
A detailed list of
questions submitted to vendors of software to
determine how well the vendor’s product can
meet the organization’s specific
requirements




Installation effort


Maintenance


Documentation


Vendor quality


Cost



Functionality


Flexibility


User friendliness


Hardware / software
requirements


Database characteristics

End User Development
(Fig. 12
-
5)

Front end
programs
Staff
Middle or
senior
management
End-user computing tools
Query languages
Graphics languages
Report generators
Application generators
Very high level languages
PC tools
End User Development


End
-
user development:
The development of
information systems by end users with little or no
formal assistance from technical specialists.


Information center:

A special facility to provide
training and support for end user development


4GL tools:

enhanced productivity, can not replace
conventional tools, non procedural, may not be
appropriate for detailed logic.

Advantages

1.
Improved required
determination

2.
User involvement &
satisfaction

3.
Reduced application backlog

Disadvantages

1.
Insufficient reviews

2.
Lack of proper quality
assurance

3.
Uncontrolled data

4.
Proliferation of private IS
applications


Outsourcing:
Contracting computer center
operations, telecommunications, networks or
application development to external vendors.


Solution Center:

Facility operated by a commercial
information technology vendor which provides clients
with repeatable or reusable processes, models, and
architectures for solving common information system
problems

Advantages of Outsourcing

1.
Economies of scale

2.
Service quality

3.
Predictability

4.
Flexibility

5.
Making fixed costs variable

6.
Freeing up human resources
for other projects

7.
Freeing up financial capitals

Disadvantages of Outs.

1.
Loss of control

2.
Vulnerability of strategic
information

3.
Dependency

When to Use Outsourcing


Limited competitive advantage from IS


Uninterrupted service is not important


Technical know
-
how for future
innovation is not essential


Existing IS is inferior, limited or
ineffective

Rewards and penalties of outsourcing

PENALTY FOR PROBLEMS
REWARD FOR EXCELLENCE
HIGH
OUTSOURCING
POTENTIAL
Cafeteria
Accounting
Payroll
Plant
Scheduling
Airline
Reservations
Engineering
analysis tool
System Building Methodologies &
Tools


Development Methodology:
A
collection of methods, one or more for
every activity within every phase of a
development project


Structured methodologies


Flowcharting


Object oriented software development


Computer
-
aided software engineering


Software reengineering


Decision tables and Decision trees


Pseudocode


Structured methodologies
have been used
to document, analyze, and design information
systems since the 1970s and remain an
important methodological approach


Structured analysis:
A method for defining
system inputs, processes, and outputs and
for partitioning systems into subsystems or
modules that show a logical graphic model of
information flow.


Structured Design:
Software design
discipline, encompassing a set of design rules
and techniques for designing a system from
the top down in a hierarchical fashion.


Data Flow Diagram (DFD):
A primary tool
in structured analysis that graphically
illustrates the system’s components processes
and the flow of data between them.

Data Flow Diagram (DFD)


External entity


Process


Data store


Dataflow

Level 0 Data Flow Diagram

Front end
programs
Staff
Requested
courses
Invoice
Payment
Confirmation
Data Flow Diagram for mail
-
in
university registration system

1.0
Verify
Availability
Student
2.0
Enroll
Student
3.0
Confirm
registration
Course file
Student
Master File
Requested Courses
Open courses
Accepted/
rejected-
selections
Registration
Confirmation-
letter
Student Details
Course
-enrollment
Course-
details
Level 2

2.2
Prepare
invoice
2.1
Past the
course
Student
2.3
Apply
payment
Student's
courses
Amount
Invoice
Check
Confirm
Course
offering
Fee schedule
Fee


Process Logic to Prepare Invoice



Compute total credit



Compute total fee



Add student fee

High Level Structure (Hierarchy)
Chart


Structured Chart:
Systems documentation showing
each level of design, the relationship among the
levels, and the overall place in the design structure;
can document one program, one system, or part o
one program.

Confirm
Registration
Verify
Availability
Enroll
Student
Apply
Payment
Post the
courses
Prepare
Invoice
Registration
Structured Programming


Structured programming:
A discipline for organizing
and coding programs that simplifies the control paths so
that the programs can be easily understood and modified.
Uses the basic control structures and modules that have
only one entry point and one exit point.


Module:
A logical unit of a program that performs one or
several functions.


Sequence construct:

The sequential single steps or
actions in the logic of a program that do not depend on
the existence of any condition.


Selection construct:

The logic pattern in programming
where a stated condition determines which of two or more
actions can be taken.


System flowchart:
A graphic design tool that depicts
the physical media and sequence of processing steps used
in an entire information system

System Flow Chart for a Payroll
System
(Figure 12
-
10)

Human
resources
data
Payroll
Master
File
Time Cards
Load and
validate
Valid
transactions
Compute and
update
Payroll
reports
and checks
Direct
deposit
tape
General
ledger file
Payroll
Master
File
Updated
Payroll
Master File
Basic Control Constructs
(Figure
12
-
8)

A
B
E
D
C
R
S
Sequence
Action A
Action B
T
F
F
T
Selection
IF condition R
Action C
ELSE
Action D
ENDIF
Iteration
DO WHILE Condition S
Action E
ENDDO
Object Oriented Software
Development


An approach to software development
that deemphasizes procedures and
shifts the focus from modeling business
processes and data to combining data
and procedures to create objects


Reusable components


Ease of maintainability


Joint application design:
Programmers, IS professionals, and
users participate for interactive design
of systems.



Rapid application development (RAD):

Process
for developing systems in a very short time period by
using prototyping, fourth
-
generation tools, and close
teamwork among users and systems specialists.


Software reengineering:

A methodology that
addresses the problem of aging software by savaging
and upgrading it so that the users can avoid a long
and expensive replacement project.


Reverse engineering:

The process of converting
existing programs, files, and database descriptions
into corresponding design
-
level components that can
then be used to create new applications.


Forward engineering:

The final step in
reengineering when the revised specifications are
used to generate new, structured program code for a
structured and maintainable system.

Decision Table for monthly money
market account statements

HEADER

RULES


Send Monthly
Statement

1

2

3

CONDITION
STUB


1. Balance
>=$500

Y

N

N

CONDITION
ENTRIES

2. Account activity
during past month

-

Y

N

3. Send monthly
statement only

X

X

ACTION

STATEMENTS

4. Send monthly
statement with
warning

X

ACTION ENTRIES

1

2

3

1

Balance

0
-
500

>500

0
-
500

2

Account action

Y

Y

N

3

Send statement

X

X

4

Statement+warning

X

Decision Table for monthly money
market account statements

Decision Tree for monthly market
account statements

Monthly
Statement
Balance
>=$500
Balance
$500
Account activity
during past month
No account activity
during past month
Send monthly
statement only
Send monthly
statement only
Send monthly
statement warning
Pseudo Code

for each
account

do
:


if

balance >= 500
then

stat



else if

there is account activity




send stat




else





send statment + warning