Chapter 12, Discovering Computers 2004

Information Systems Development

Updated 11 May 04 1521 hrs

Information System

Information System (IS): Hardware, software, data, people, and procedures that work together to manipulate data.

System Development Life Cycle

The Cycle

Mission Needs Statement
Concept Formulation, brainstorming
Authorization
Analysis
Buy or Build Decision
Acquisition Phase
Design
Construction or Development
Implementation
Support
Ongoing Activities
Retirement Phase
Post-Retirement Phase

Guidelines for System Development

Use a phased approach
Installing a system to perform functions never before done in this organization
Replacing an existing system
Involve the users: Customers, data entry clerks, accountants, sales managers, owners
Be disciplined in how to use such information.
Users tend to think in terms of what they are already familiar with. Such input is great for incremental improvement, evolution.
Users tend not to be good at thinking about the effects of radical changes, revolution.
Develop standards
Rules and procedures an organization expects employees to accept and follow.
Terminology and notation

Participants in System Development Life Cycle

Project Leader
Manages the project cost, schedule, personnel
I strongly recommend that a project have only one person that has ultimate authority, responsibility, and accountability for a project, and use committees only as advisors.
Systems Analyst
Designs and develops an information system.
Liaison between users and programmers.
Converts user requests into technical specifications.
While not necessarily a programmer, a systems analyst is often an experienced programmer.
Programmer: Writes programs to implement a system according to design specifications.
Steering Committee: Decision making body, such as a board of directors, used when decision by consensus is needed.
Widens the range of issues considered.
Dilutes responsibility.
  Leader Makes Decision Use Committee or Consult Others
Use When
The issue is trivial
Personnel issues
You are unwilling to negotiate or compromise
Speed is more important that commitment from others
You need commits from others
You lack the expertise
* You lack authority over all the players
Advantages
* Best decision when leader is the most competent person available
Faster decisions
* When information security is essential and trustworthiness of players is questionable
Broader perspective
Draw on others experience and ideas
Get commitments from members
Disadvantages
* Human relations aspects can scuttle your effectiveness if your authority is limited and the decision in unpopular
Increasing committee size slows decision making
Larry Richman, PhD, PMP, "Making Team Decisions Wisely", IEEE Today's Engineer (November 2002) http://www.todaysengineer.org/Nov02/decisions.htm, 06 December 2002 [except as noted with *].
Requirements
The Leader The Team
Leader must set the agenda
Must be willing to negotiate
Leader must be able to control the team
Leader must be able to handle those who are alienated.  Not everyone will get their way.
Leader must separate helpful from unhelpful members.
All team members must actively participate
Each team member must listen with respect
Each team member must express their point of view
The team must focus on what is best for the organization
The team makes the final decisions
The team must agree on follow-up, assignments, and evaluation
Larry Richman, PhD, PMP, "Making Team Decisions Wisely", IEEE Today's Engineer (November 2002) http://www.todaysengineer.org/Nov02/decisions.htm, 06 December 2002 [except as noted with *].

Project Management

Balance the effort and cost of management to the value of the project and decisions to be made.  The role of management is to
Focus attention to mission related goals
Increase effectiveness
Reduce risk, cost, and time to acceptable completion
Plan, schedule, control
Scope: 
goals, objectives, expectations
Activities to be completed
Schedule
Time estimates for each activity
Order in which activities may occur
Identify concurrent activities
Cost estimates for each activity
Project Plan and Management Tools and Methods
Quantitative methods:  Decision Theory, Bayesian Statistics, Utility Curves, Decision Tables
Gantt Chart (time versus activity) [Named after Henry L. Gantt.]
The Gantt Chart allows a manager to quickly determine what events in a project are occurring at a specific point in time.
The Gantt Chart is good for managing projects having concurrent activities.
Good for detecting unplanned project growth, called scope creep by the text.
Chart from QuickDraw template. [Do not publish this commercially without permission of QuickDraw.]


Microsoft Project
A good collection of project management software.
Used successfully by the US government for major project management.
Includes the following displays that take data from a common database: 
Calendar, Gantt Table, Gantt Chart, Pert Chart, Project Resource Table, Project Resource Graph, Project Resource Usage, Project Task Usage Chart, Project Task Usage Composite
Critical Path Analysis / Critical Path Method (CPM) / Critical Path Chart
The number above each box refers to the amount of a critical resource used (usually time).
All events in the Critical Path Chart must be completed before the project is considered complete.
The Critical Path is the path that uses the most resources (like time).  
If an event along the critical path consumes more than the scheduled amount of resources, the whole delivery date of the project is delayed.
The Critical Path Chart helps a project manager focus attention and resources on the path that consumes the largest amount of resources to complete a project.
PERT Chart
Deliverable: any tangible item: software, hardware, reports, documentation, etc
Methods: Directive versus Participative. Buzz word management fads cycle.
Directive
Best for radical changes, innovation, revolution
High risk, high pay-off
Unsaturated market, best idea wins (cell phones, portable computing)
Best leadership wins
Participative
Best for incremental improvement, evolution
Efficiency, economy, safety
Saturated market (TV, automobiles, telephones, washing machines)
Best business management wins
Management By Objectives
Top-Down approach
Project progress and personnel performance are measured against project objectives.
Management By Exception
Decision making at the lowest competent level.
Good manager only makes decisions when necessary, and does not do job of subordinates.
Management By Walking Around
People-oriented approach
Situation awareness
Leadership by presence
Zero Defects (ZD) (Army Nike-Redstone project approach of 1960s)
Quantitative measurement
Total Quality Management (TQM), Total Quality Manufacturing, Total Quality Leadership (TQL): 14 points to Project Correctness (PC)
Appropriate in manufacturing operations, Industrial Engineering
Malcomb Baldridge Award: The Golden Hammer [This is considered a very prestigious achievement.], ISO 9000 
Bottom-Up approach
Quantitative measurement, minimize variance
Demming buzz words and magic 10 points or 14 points.
Based on statistical discipline of Design of Experiments.
Tough Positive Management (TPM)

Documentation

The bane of all technical people, geeks, and nerds.
Programmers need a very easy method for recording thoughts during program development.
Need a good bureaucrat in charge of logistic support planning and management.
Documentation used for project planning and development is not identical with documentation needed for life cycle support.  Neophyte project managers often confuse these.
For large, sophisticated systems with long life expectancy, it may be good to have a separate group do documentation.
Creative programmers often dislike (in the extreme) detailed program documentation.
Development programmers may be too close to the problem to anticipate documentation a person new to the project will need to learn, use, maintain, and modify the program.
Large systems must be documented throughout the development cycle.  Personnel changes occur. You need new people to learn quickly.  You cannot have a project held hostage by a disgruntled employee that has key knowledge only in the head.

System Development Life Cycle (SDLC) Phases

Project Request, Operational Requirement, Mission Needs Statement

Purpose
Correct a problem
Respond to external direction
Develop new product, implement new vision or goal
Initiators
External Direction
Strategic Review Outcome
Periodic Management Review Outcome
User Level Idea
External Idea
Type of Request
Formal statement of need
Informal statement of need
External Unsolicited Proposal
Solutions looking for a problem to solve
Navy Swath Ship

Data and Information Gathering Techniques

Understand the organization. 
Organization chart for formal lines of authority. Product of abstract thinking.
Informal organization. Product of experience and performance.
Sometimes a large organization understands the informal organization better than the formal one.
Sometimes a contribution is proposing changes that will align the formal organization with the informal one, or move the informal decision makers into positions of formal authority.
Review current system documentation
Observe the system in use
Use questionnaires
This is usually a very unproductive exercise.
Interviews
Unstructured interview
Structured interview
Joint Application Design (JAD) session (buzz....word) [Committee meeting.]
The grande committee
Good for brainstorming, and for examining strawman approaches for problems.
IBM used this general technique in the development of the OS 360.
You need people from different perspectives
Group must be large enough to generate ideas (3 or more)
Group must be small enough to be productive (6 or less)
Only well prepared key event presentations should involve large numbers of people.  Good planning is necessary to get needed feedback.
Literature search.  (Research is when you do your own thinking, and experiment.  Literature search, which is very important and productive, is not research.  It is finding out what others have learned.  Good research is always preceded by a good literature search.)

Human factors

Automated systems usually means someone is going to lose a job.  People who are in the best position to provide needed information are often the people whose jobs are at risk.  An often taken strategy is to move affected people to another job and reduce staff through natural attrition.  This is the approach that GE is attempting in the IT reductions.  It assumes there are other jobs to move people to.

Authorization Phase

The committee of 5 - 9 high level decision makers doing proposal reviews for routine work is wasteful.  It is appropriate for very expensive and complex projects, such as the overhaul of an aircraft carrier.  Even here, the committee method is easy to abuse.
Define the need.
Define alternative solutions, with initial cost, schedule, and manning requirement estimates.
Major activities
Review and approve the project requests.
Prioritize the project requests.
Allocate resources such as money, people, and equipment to approved projects.
Form a project development team for each approved project.

Analysis Phase

Specify clearly what the system is supposed to do.

Preliminary Investigation

Is there a real need? Is the project worth doing?
Define the real problem. This is often different that the initial perceived problem.
Identify candidate solutions, alternatives.
Document findings briefly.

Feasibility Assessment

Operational feasibility
Will the system meet real needs?
Will it get used?
Human factors issues. Is the system for purpose of evolution or revolution? Whose jobs are threatened? Who cares? Who has the power to direct change? Who has the resources to finance and implement change?
Schedule feasibility
Are deadlines reasonable? 
External versus internal deadlines.
Real versus artificial deadlines.
Deadlines you control, influence, or cannot influence.
The first 90 % of the job is completed in the first 90 % of the time.  The second 90 % of the job is completed in the second 90 % of the time.
Schedules are frequently squeezed by proponents (middle managers) to get (upper) management to approve a project. The "Can Do" is more appropriately termed "Canned Doo".  The working level project team members are often skeptical.  Often, the working level people are right.
Technical feasibility
Can you obtain the hardware, software, and people?
Can you bring the pieces together, test them, and deliver a working system?
Economic feasibility
Is the benefit worth the cost over the lifetime of the project?
Will enough cost be recovered soon enough to provide necessary cash flow?
Is the financing available?
What investment in local public infrastructure is required to establish and sustain the system?
Considering competition, technology changes, etc, when will the system cease being profitable?
Detailed Analysis
Understand the present system
Understand the current and future needs
Determine alternatives

Process Modeling

State Diagrams
States
Transitions between states
Finite State Automata (FSA)
Queuing Theory
Markov Processes
Simon Fraser University Database Systems and Structures http://www.cs.sfu.ca/CC/354/han/material/notes/notes-contents.html
Entity Relationship Model
Relational Model
Entity-Relationship Diagrams (ERD)
Each object about which data is stored is called an "entity".
An entity-relationship diagram graphically illustrates the associations between objects.
http://www.cs.sfu.ca/CC/354/han/material/notes/354notes-chapter1/node7.html#SECTION00141100000000000000
Data Flow Diagram: State Diagram
States
Initial state: source or agent
Terminal state
Nodes: Data store
Transitions (Process)
Top-Down design approach, showing only necessary detail at each level
Drawing Tools
SmartDraw:  Easy to learn.  Basic symbols.  Does not have all symbols shown in text for Entity-Relationship Diagram or Data Flow Diagram.  There are enough symbols that you could still do a nice job.  30-day free trial download.  Beginner's version is $69. (11 NOV 2001)  http://www.smartdraw.com 
Project Dictionary, or Project Repository
Contains all documents and deliverables of a project
Definitions, specifications
Structured English
Pseudocode describing processes
Decision Tables and Decision Trees
Rule based artificial intelligence
Data Dictionary
Name of each data item
Description of each data item
Data characteristics (type, length, default value, validation rules)

Object Modeling, Object-Oriented Analysis (OOA) and Design (OOD)

An object is a data structure and accompanying procedure code for manipulating that data.
Each data element is called an attribute, property, or variable.
Each procedure is called a method, operation, or behavior.
Unified Modeling Language (UML) is a graphical language that is used to represent object-oriented designs using a common notation.
Rational Unified ProcessTM by Rational Software Corporation is a commercial tool that applies UML.
Use Case diagram. [See Deitel and Deitel, How to Program C++, 3rd Edition, pages 124-125.]
An actor is a user, an external client of the system, other systems, or other entity, such as application software.
The function that the actor can perform is called the use case.
Each use case represents a different function the system provides the actor.
The use case diagram models the interactions between the actors and the use cases of the system.
Class
A generic object from which objects are created or "instantiated".
Base class
Derived class: usually has more features than base class.
Subclass, Superclass
Inheritance: subclass inheriting methods and attributes of parent class.
Abstraction: Ability to create an hierarchy of objects.
Encapsulation
Combining procedures and data into a single object
Information Hiding
Internal code and data structures from external modules are not accessible to external code, except under closely controlled circumstances.
Message: Procedure call for an object.
Class Diagram: Graphically shows hierarchy of classes and subclasses in a system.

Build-or-Buy Decision

Commercial Off-The-Shelf (COTS) Software; Packaged Software
COTS is the buzzword in government contracting
Goal: reduce cost, speed development of solutions
Competitive market
Large market spreads out recovery of development cost
Available immediately
Often has features compatible with other common software
Often has customer service support infrastructure
Often has adequate documentation
Often has associated training
Feedback and testing by a large number of users improves reliability
Horizontal application software: used by many different types of organizations
Vertical application software: designed specifically for a particular business or industry
Real estate, libraries, dental offices, insurance companies, construction firms, lawyers
Reviewed in trade publications: PC World, etc
Custom Software: Developed by or for user
Meet specific requirements
For the same set of goals, custom software uses less storage and executes faster.
Not dependent on external organizations for support
Own copyright
Can resell for profit without paying royalties
Can encode and protect trade secrets
Solutions Providers (Outsourcing, subcontracting whole functions like Information Technology)
Hardware and software currency responsibility of contractor
Reduces in-house training requirements

Project Authorization Milestone Review

Select approach
Determine hardware requirements for development and for operations
Determine software requirements for development and for operations
Determine personnel requirements for development and for operational staffing
Determine development schedule
Determine costs

Acquisition Phase

Acquiring Necessary Hardware and Software
Identifying Technical Specifications
Soliciting Vendor Proposals
RFP: Request For Proposal
RFQ: Request For Quotation
RFI: Request For Information
Value-Added Reseller (VAR): support, equipment maintenance, training, installation, warranties.
Warranty: guarantee that a product will function properly under specified conditions for a predetermined period of time.
Testing and Evaluating Vendor Proposals
Proposal Evaluation Plan
Benchmark
Choosing good measures of performance is critical
Long term storage use
Temporary storage use
Transaction processing time
Personnel required to complete a transaction or operation
Use data set typical of expected operations
Type of data and output
Volume of data and output
Exercise all required features
Allow vendor to configure data to demonstrate best performance
Warranty period
Vendor responsiveness and success in problem solving
Pilot / test period
Training requirements
Documentation
Making a Decision
Purchase, lease, license
Contract out
Type of solicitation
Competitive bidding
Open to the general public
Closed to a pre-qualified bidder list
Sole source contract
Purchase order
Unsolicited proposal
Bid selection methods
Lowest bidder wins
Lowest qualified bidder wins
Lowest negotiated bid from qualified proposals
Contract types
Fixed price
Fixed price plus performance incentive
Cost plus fixed fee
Cost plus fixed fee plus performance incentive
Order now, negotiate later
Order now, negotiate later within constraints
Basic ordering agreement
In-house procurement
Direct charge project
Overhead charge project

Detailed Design

Specify clearly how the system is to accomplish its tasks.

Database Design, Physical Design
Content
Data density, sparseness, parsimony requirements
Access restrictions
Volume of activity
Reliability requirements
Responsiveness requirements
User training requirements
Database administrator and  maintainer training requirements
Structure
Input and Output Design
Define outputs first
Human factors important for input design
Beware: It is easy for a programmer to define a system too complicated for most users, without realizing it is too complicated.  User feedback early in the development stage is critical.
Test Data design: 
typical good data, typical mistakes, pathologically bad data
Use data from previous two years of operations (2 full cycles)
Historically difficult data sets
Program Design
Program specification package
Relationship between each program: system flowchart
Input
Output
Processing
Data structure
Prototyping
Let users work with model before the system is completed.
Usually, a prototype is not economical for general production use.  
Problem: lack of documentation.
Examples: 
A business database problem might first be set up with MS Access, which is easy and quick to do. An example: use of Access to prototype a database. Access is not suitable for large database applications, but is very useful for concept development. Once inputs, outputs, reports, and procedures are understood well, the system can then be implemented using a more powerful system or custom coded. After people get experience, they can take the concepts and implement them on a large scale, perhaps with Oracle or other approaches.
In engineering, MatLab, Pspice, and LabView are often used for prototyping ideas. Engineers often use MatLab to construct solutions to problems and to do simulations. After experience and proofing of concepts, special purpose software is written that greatly speeds up the process and tailors inputs and outputs to specific needs.
Programmers may code ideas first with BASIC. Once the code is working well, it can be recoded in a compiled language to achieve execution time efficiency. 
Rapid Applications Development (RAD)
RAD tutorial: http://csweb.cs.bgsu.edu/maner/domains/RAD.htm  
A software development process that allows usable software to be built within 60-90 days. 
Schedule is fixed. Features, quality, and cost are balanced to meet schedule requirements. 
“Fitness for business purposes” is the acceptance criteria for RAD deliverables. 
Development is conducted at a higher level of abstraction, and thus does not make as efficient use of resources as a traditionally developed system. 
Because of the higher level of abstraction, the system is more likely to be portable. 
Results are not always scalable to much larger situations. 
DSDM: Dynamic System Design Method: 
http://www.dsdm.org 
Corporations use these tools to explore and try out new ideas or approaches. 
It costs less than doing development using production-oriented tools. 
This is an appropriate approach when the customer does not have a clear understanding of system requirements. 
The concept is to develop the most important functions first. 
Allow changes in project goals as the project proceeds. (This is typical anyway.)
Computer-Aided Software Engineering (CASE) Tools
Project repository: diagrams, specifications, descriptions, programs
Graphics facility
Prototyping facility
Quality assurance facility, to analyze deliverables for accuracy and consistency
Code generators
Housekeeping facility
Establish and maintain user accounts
Backup and recovery functions
UNIX Historian style function for code development
I-CASE: Integrated CASE tools
Compatible file formats
Common human interface look and feel
Quality Review Techniques
Structured walkthrough

System Implementation Phase

Develop Programs
Analyze the problem
Design programs
Code programs
Test programs
Formalize solution
Maintain programs
Install and Test the New System
Systems test: verify all programs in an application work together properly
Integration test: verify all applications work with other applications
Acceptance test: performed by end-users with actual data
Should run new system in parallel with old system for one or two complete cycles to test reliability while still having the old system available.
Train and Educate Users
Convert to the New System
Direct conversion: abrupt cut-over. Risk is high. Problems usually surface.
Parallel conversion.
Phased conversion, location conversion: by function.
Pilot conversion. Total system conversion, by part of an organization.
Data conversion

System Maintenance and Support Phase

Half the cost of a typical product is in this phase.
Systems Audit and Certification
Post-implementation system review
Certify the system meets specifications. This is different than certifying that it performs well, or that the specifications were good.  This is a contractual step.
Debugging.  Identify errors
Upgrading.  Identify enhancements
Configuration Management, Documentation, Control
Who has what versions of hardware and software
Upgrade schedule
Configuration certification methods and schedule
Monitor system performance: effectiveness and efficiency
Periodic Evaluation. Monitor system performance: effectiveness and efficiency.

Retirement Phase

Archiving associated data on media and in format readable in the future.
When to cease primary support for legacy systems
Arranging or permitting secondary support for legacy systems
Mandating that legacy systems stop being used
Disposal of old hardware and software

Post-Retirement Phase

Updating conversion of archived data of historical, operational, or legal importance.