3-The+SDLC

=Systems Development Life Cycle a.k.a. SDLC=

Contents: Lecture 3, Yourdon 4-5

[|Source]
 * SDLC** is the process of developing information systems through investigation, analysis, design, implementation and maintenance. SDLC is also known as //information systems development// or application development. SDLC is a systems approach to problem solving and is made up of several phases, each comprised of multiple steps:
 * The software concept - identifies and defines a need for the new system
 * A requirements analysis - analyzes the information needs of the end users.
 * The architectural design - creates a blueprint for the design with the necessary specifications for the hardware, software people and data resources
 * Coding and debugging - creates and programs the final system
 * System testing - evaluates the system's actual functionality in relation to expected or intended functionality.

When effectively implemented, an HRIS can be a valuable asset in human resources. However, the success rate is often very low- approximately only 50%.

[|Why such a low success rate?]

So how do things go wrong and how can we solve the problems?

Let's begin by viewing the "problem" from a systems approach.


 * Systems** are an inter-related set of components, with an identifiable boundary, working together for some purpose.

__**A System's approach**__ -Analyzes problems -Proposes Solutions -Designs systems to effect the chosen solution



Todays systems are being used for a long period of time (some are older than 30 years old). Although implementation has a high initial cost, maintence becomes the most expensive part of an HRIS.

Each phase of the SDLC becomes more and more expensive. Testing each aspect of the system is critical. Problem identification in the early stages is much easier to fix than if ignored and dealt with at a later time.



**__THE STAGES BROKEN DOWN__**
-define problem to be addressed -make a go/no go decision
 * Preliminary investigatio**

-create logical models of current system -refine problem via detailed symptom analysis -determine requirements for new system
 * Analysis**

-revise current system logical models to reflect proposed system changes -validate logical model of proposed system against requirements determination
 * Logical Design**

-determine HW & SW specs -conduct feasibility analysis for new system -estimate implementation schedule -design data structures -prepare training guidelines -prepare testing approach
 * Physical Design**

-acquire hardware and software -install the new system -perform systems testing-train all end users -verify all end user and system documentation
 * Implementation**

KEY ACTIVITIES -fix small problems -perform small upgrades -monitor performance
 * Maintenance**

==[|Yourdon Chapter 4- Tools of Modern Systems Analysis] ==


 * Modeling** is an important aspect of complex systems. Modeling usually takes place during the logical design phase of the SDLC. Models are constructed to highlight critical features of a system, and de-emphasize less important features. They allow for communication and feedback from users, systems designers, and programmers. Problems or concerns can be brought up and addressed before the system has been implemented- saving money and time. After the system has been implemented, the models can still serve as documentation.

Three important systems modeling tools include the dataflow diagram, the entity-relationship diagram, and the state-transition diagram. The **dataflow diagram (DFD)** illustrates the functions of the system, and consists of processes, data stores, flows and terminators. Both data and processing components must be considered. **Entity-relationship diagrams (ERDs)** illustrate the data relationships. They consist of two major components; object types represent a collection, set or objects whose members contribute to the system's development, and relationships represent associations between object types. The **state-transition diagram (STD)** illustrates the time-dependant behavior of a system. Time-dependant behavior is the order that the data will be accessed and functions performed.






 * Dataflow Diagram****^**

The dataflow diagram gives a summary of the main functional systems components, but supporting textual models must be used to supplement the dataflow diagram in order to give details of how information is to be transformed. These supporting models are called the **data dictionary** and the **process specification**.


 * Data Dictionary^**


 * Process Specification^**


 * Entity-Relationship Diagram^**


 * State-Transition Diagram^**

[|Yourdon Chapter 5: The Project Life Cycle]
Modeling is only a small part of developing a project. **Methods** are also needed and play an important role in the project life cycle. Although some project life cycles may begin as a simple verbal discussion and move forward without any formal methodology, more and more organizations are moving toward a formal basis. This formal method usually consists of written documentation and several phases before completion, and is the method is often documented. **Project life cycles** exist to outline activities that will take place during a systems development project, ensure consistency among numerous systems development projects within a company, and to determine checkpoints for management to see if the project is on track. Four forms of project life cycles exist: classical, semistructured, structured and prototyping.

The **classical project life cycle** may differ in the number of phases from organization to organization, but it must always include some type of systems analysis, design and implementation. The two characteristics of the classical project life cycle include a strong tendency toward bottom- up implementation and linear, sequential progression from one step to the next. **Bottom- up implementation** is also know as the "waterfall life cycle" and is thought to have originated from assembly-line maufacturing industries. Problems that often arise from this method include the discovery of serious bugs at the end of the testing period, debugging is often more difficult toward the end of system testing, and the developers have nothing of value to show users until all testing is complete. This erases any opportunities for feedback until the project has already been completed. **Sequential Progression** allows for only one step to be performed at a time. This method is more time consuming and ignores matters of company politics, personnel issues, and economics.




 * ^Classical Project Life Cycle**

The **semistructured life cycle** was developed when the IT industry began to realize the benefits of top-down implementation and development of formal techniques. **Top-down** implemetation allows for testing of high- level modules first, so the major problems can be discovered early on, as well as some coding and testing taking place simultaneously. Feedback from users is a major benefit of this.


 * ^The Semistructured Life Cycle**

The **structured project life cycle** consists of nine activities and three terminators. The terminators include users, managers and operations personnel. The activities include a survey, systems analysis, design, implemetation, acceptance test generation, quality assurance, procedure description, database conversion, and installation. The **survey** is the initial business study and typically occupies 5- 10% of project time and resources. **Systems analysis** transforms user policy and a project charter into a structured specification. The **design** phase is where pieces of the specification are assigned to the appropriate processors. These processors can be CPUs or humans. **Implementation** consists of coding and integration of modules into a more complete design of the system. **Acceptance test generation** is the process of generating a set of acceptance test cases. **Quality assurance** is the phase of final testing. requires the user's current database and the design specification as inputs. **Database conversion** requires the user's current database and the design specification as inputs. **Installation** is the final phase and can sometimes be done overnight, or may be a gradual process.


 * ^The Structured Project Life Cycle

The prototyping life cycle differs from the structured project life cycle because the structured project life cycle assumes that a paper models will be created and will serve as documentation. The prototyping approach consists of a working model- a collection of computer programs that simulate some/all of the functions the user wants. With this approach, the prototypes are thrown away and replaced with real programs- no documentation is left behind.

^The Prototyping Life Cycle**