This is Dr. Nancy Zeliff. I will discuss Chapter 6 with you, which is on Systems Development. Part 6.1 is on the System Development Life Cycle and other component-based development methodologies.
After reading Chapter 6 and listening/viewing this lecture, you will achieve these objectives: Define the traditional systems development life cycle (SDLC) and describe the seven major phases within it, and compare and contrast the various component-based development methodologies.
Systems developers must ensure that all the business’ needs and requirements are met when developing information systems. They must also establish uniform privacy and security practices for system users and develop acceptable implementation strategies for the new systems. New systems are created because employees request them and to obtain a competitive advantage over competitors.
Three choices are available to build a new system. Insourcing, self-sourcing, and outsourcing are the choices. Insourcing involves in-house IT specialists within your organization to develop the system. Self-sourcing or end-user development is the development and support of IT systems by end users or knowledge workers with little or no help from IT specialists. Outsourcing is the delegation of specific work to a third party for a specified length of time at a specified cost and at a specified level of service.
The Systems Development Life Cycle (SDLC) is a structured step-by-step approach for developing information systems. There are seven key phases and numerous activities within each. The waterfall methodology is a sequential, activity based process in which one phase of the SDLC is followed by another, from planning through maintenance. Some activities include determining budgets, gathering business requirements, designing models, writing detailed user documentation, and project management.
The seven phases are planning, analysis, design, development, testing, implementation, and maintenance.
During the planning phase, you create a solid plan for developing your information system. One of the primary activities is defining the system to be developed. Organizations typically track all the proposed systems and prioritize them based on business impact or critical success factors (CSF). This process allows the organization to decide which system to build.
A second activity in the planning process is setting the project scope. The project scope document is a written document of the project scope and is usually no longer than a paragraph. Project scoping is important to avoid scope creep and feature creep. Scope creep occurs when the scope of the project increases beyond its original intentions. Feature creep occurs when developers and end users add extra features that were not part of the initial requirements. For example, when my husband and I remodeled our home about a decade ago, the project scope was to add a two-car garage, enlarge the kitchen, add a bath and laundry room. While the mess was in our home for 7 months, we added features and additional remodeling projects (and time and cost) by tearing out plaster in the entire first level of the 90-year old farm house and adding new windows and replacing plaster with drywall. Our costs nearly doubled and added three more months to the project. We certainly experienced feature creep!
A third activity in the planning process is to develop the project plan. The project plan defines the what, when, and who questions of who will perform the activities, the time required, and what resources will be used. A project manager is an expert in project planning and management and defines and develops the project plan and tracks the plan to ensure that all key project milestones are completed on time. Project milestones represent key dates by which a certain group of activities need to be performed. Scope creep and feature creep can throw off a project plan.
The analysis phase involves end users and IT specialists working together to gather, understand, and document the business requirements for the proposed system.
One of the primary analysis activities involves gathering the business requirements, which are the detailed set of knowledge worker requests that system must meet in order to be successful. During a joint application development (JAD) session, business requirements are discussed and identified. Let’s use the Degree Audit system that is available to Northwest students and advisors. Prior to the present online degree audit system, only printed degree audits from the Registrar’s Office were available. Advisors and students could not view these online nor generate degree audits on demand. When Northwest was looking at overhauling the degree audit system, the knowledge workers or advisors and students indicated they wanted to view and print degree audits on demand and even pose “what if’s” ---what if a student wanted to change his/her major or add another.
A second activity of the analysis process is prioritize the requirements in order of business importance and place them in a formal comprehensive document. Users sign off indicating they approve the business requirements.
The third phase of the system development life cycle is the design phase where a technical blueprint of the proposed system is designed. One of the primary activities is the technical architecture that defines the hardware, software, and telecommunications equipment required to run the system.
The second primary activity of the design phase is designing the system model. Modeling is the activity of drawing a graphical representation of a design. You model everything including screens, reports, software, and databases. End users take a less active role with the design phase. IT specialists perform most of the functions in the design phase.
The fourth phase is the development phase. All the detailed designs are transformed into the actual system. Two primary activities of this phase are building the technical architecture and building the database and programs. IT specialists develop these, which can take months or even years to design, create, and write the software.
Phase five is testing, which verifies that the system works and meets all of the business requirements defined in the analysis. Detailed test conditions are needed to perform an exhaustive test. The tester will execute each test condition and compare the expected results with the actual results to verify that the system functions correctly.
A second activity of the testing phase is actually testing the system with unit testing that tests individual units of code. System testing verifies that the units of code function correctly. Integration testing verifies that separate systems work together, and user acceptance testing determines if the system satisfies the business requirements. When the degree audit system was ready to be tested by select faculty, I participated in the group of advisors for user acceptance testing. The Registrar’s Office provided us with specific testing requirements we were to test: advisees that were incoming freshmen, upperclassmen, seniors, and graduate students. We ran degree audits for varied student populations to ensure the results were accurate. If errors were found, we were to clearly write out the errors so corrections could be made.
The sixth phase of the systems development life cycle is Implementation where the system is distributed to all users and they begin using the system. One of two primary activities includes writing detailed user documentation. Documentation highlights how to use the system by users.
Training is another important activity. Online training is provided over the Internet or other digital means. Workshop training takes place in a classroom environment and led by an instructor. Training for the use of the degree audit system consisted of workshop training for advisors led by the Registrar’s Office staff. One representative from each department participated and then returned to their respective department to train their peers. This is the “train the trainer” model of training.
Four types of implementation can take place. Parallel implementation is when the old and new system are run simultaneously. Plunge implementation is when the old system is completely discarded and the new is put in place. Pilot implementation starts with small groups of people on the new system and with more users added gradually. Phased implementation implements the system in phases. The online degree audit system at Northwest was implemented with the pilot and phased methods. Select advisors and their advisees participated in pilot implementation before the system was launched for all. The degree audit is just one part of Banner or as faculty and students know it-CatPaws. Each semester, new features of CatPaws are launched. The degree audit was an added feature, one that was phased in. More recently, the feature of registering for campus parking permits was phased into the CatPaws system.
The seventh and final phase of the system development life cycle is maintenance. The new system is monitored and maintained to ensure it continues to meet the business goals. Once a system is in place, it must change as the business changes. Two primary maintenance activities include a help desk to support the system. A help desk system is a group of people who respond to knowledge workers’ questions. Another activity is to maintain an environment that supports system changes. An example of changes to CatPaws since it was launched was the online payment feature. Students, faculty, and staff can pay their monthly statements with varied credit cards. This was not available when CatPaws was first launched but certainly is indicative of changes businesses have made in the last few years, with the prevalence of online bill payments. If students or advisors have questions about the degree audit, the Registrar’s Office staff serves as the help desk.
The systems development life cycle is one of the oldest software development methodologies. SDLC takes a very singular view of the system under consideration and focuses solely on system development. Component-based development (CBD) is a general approach to systems development that focuses on building small self-contained blocks of code or components that can be reused across a variety of applications within an organization.
Let’s look at three Component-Based Development methodologies---rapid application development (RAD), extreme programming (XP), and agile methodology.
RAD or rapid application development is also called rapid prototyping. This development methodology emphasizes extensive user involvement in the rapid and evolutionary construction of working prototypes of a system to accelerate systems development. The planning and analysis phases are similar to those in the system development life cycle. But software libraries are reviewed to see if components exist that can be used as part of this system. Prototypes are designed, created, and tested. The last two phases of implementation and maintenance resemble those in the SDLC.
Extreme programming (XP) breaks a project into tiny phases and developers cannot continue on to the next phase until the first phase is complete. Like the SDLC, the planning phase begins and the maintenance phase ends. However the analysis, design, development, testing, and implementation phases do not progress sequentially but can go through multiple rounds. Like RAD, XP methodology relies on reusing existing software components contained in a software library.
Agile methodology is a form of Extreme Programming and aims for customer satisfaction through early and continuous delivery of useful software components. The implementation of CatPaws (Banner to the administration) can be considered the result of agile methodology. As each year progresses, additional features or components are added as they are developed by in-house Northwest IT programmers or purchased from the software developer.
Service-Oriented Architecture (SOA or SoA) is a software architecture perspective that focuses on the development, use, and reuse of small self-contained blocks of code (called services) to meet all the application software needs of an organization. These services within the SoA are the same as components in any of the component-based development methodologies. SoA is a holistic approach within an organization. If adopted, an organization is saying that all software will be developed and managed as a series of reusable services. SoA is growing rapidly in business importance and will be discussed further in Chapter 7.
This concludes part 6.1. Part 6.2 continues and will discuss self-sourcing and outsourcing.