Introduction
- The process of creating, testing, and implementing a new software application is known as systems development. It involves tasks such as internal development of customized systems, establishment of database systems, and acquisition of third-party software. Throughout this process, adherence to written standards and techniques governing information systems functions is essential.
- To effectively manage this, a company's management must set and enforce standards while adopting appropriate practices for the entire system development life cycle. These practices cover the development, acquisition, implementation, and maintenance of computerized information systems.
Key Aspects:
- Standards and Techniques: Adherence to written standards and techniques guides all information systems processing functions.
- Management Responsibility: The responsibility lies with the company's management to define and implement standards, adopting suitable system development life cycle practices.
System Development Methodologies
To enhance the management and control of the software development process, methodologies are recommended. These methodologies aim to structure and streamline the process, standardizing both development procedures and the resulting products. Implicitly, the use of such methodologies is believed to contribute to increased output and excellence in system development.
System Development Management Life-cycle
- In the field of management, it is asserted that an effective approach to safeguard information and information systems involves integrating security measures at every stage of the system development process.
- This process, spanning initiation, analysis, design, implementation, maintenance, and disposal, is collectively termed the System Development Life Cycle (SDLC). According to Walsham (1993), the SDLC is characterized by a linear sequence of steps progressing from start to finish without revisiting previous stages. It is considered one of the oldest systems development models and is widely employed.
- As per Dennis, Wixom, and Tegarden (2009), the SDLC is defined as "the process of understanding how an information system (IS) can support business needs by designing a system, building it, and delivering it to users."
- The SDLC model primarily serves as a project management tool for planning, executing, and controlling systems development projects (Whitten and Bentley, 1998). Two commonly discussed perspectives on system development life cycles are the waterfall model and the prototyping development spiral model.
- The primary goals of SDLC include ensuring the delivery of high-quality systems, establishing robust management controls, and optimizing the productivity of systems staff. To achieve these objectives, SDLC has specific requirements, such as supporting projects and systems of varying scopes and types, encompassing all technical and management activities, being highly user-friendly, and providing installation guidance.
Question for Systems Development
Try yourself:
What is systems development?Explanation
- Systems development refers to the process of creating, testing, and implementing a new software application.
- It involves tasks such as internal development of customized systems, establishment of database systems, and acquisition of third-party software.
- Adherence to written standards and techniques governing information systems functions is essential throughout the systems development process.
- The goal is to effectively manage the development, acquisition, implementation, and maintenance of computerized information systems.
Report a problem
Phases of System Development
A system development project involves several stages, including feasibility analysis, requirements analysis, software design, software coding, testing and debugging, installation, and maintenance.
- The feasibility study is conducted to determine if a project should proceed, involving an initial project plan and budget estimates for future stages. For instance, in developing a central ordering system, the feasibility study would assess its reception by various departments and its cost relative to enhancing existing systems.
- Requirement analysis identifies the system's needs, delving into a detailed examination of the specific problem or expectations. It clarifies what the system is intended to do. For the central ordering system, analysis would scrutinize existing systems and incorporate their best aspects while leveraging potential benefits of centralization.
- The design phase determines required programs, their interactions, individual program functionality, software interface, and data needs. It may use tools like flowcharts and pseudo-code to develop system logic. In the central ordering system, the design phase outlines detailed steps for order processing involving various organizational departments.
- The implementation stage translates the design into code, choosing an appropriate programming language. It involves writing the code to make the design functional and developing a user-friendly interface. The central ordering system is essentially coded during this stage, ensuring efficient use by various departments.
- Testing and debugging involve testing individual modules and the entire system to ensure it performs as expected on intended platforms. This stage may use prototypes to identify necessary improvements before full implementation in all departments.
- In the installation phase, the system becomes part of the organization's workflows. Some training may be necessary to familiarize employees with the system. In the case of the central ordering system, it is installed in all departments, replacing the older system.
- All systems require maintenance, ranging from minor updates to more significant changes due to unexpected circumstances. As the organization evolves, modifications to the ordering process may be needed to maximize the benefits of the new centralized system.
Phases of the system development cycle
Whitten and Bentley (1998) proposed the following categories for the system development project lifecycle:
- Planning
- Analysis
- Design
- Implementation
- Support
Various SDLC models and methodologies exist, such as Fountain, Spiral, and rapid prototyping. Regardless of the specific SDLC model chosen, it typically involves a series of defined steps. To ensure the appropriate protection of information transmitted, processed, and stored by the system, information security must be integrated into the SDLC.
System development life-cycle models
Waterfall Model
The Waterfall Model represents a traditional form of the system development project lifecycle, utilizing a top-down development cycle to complete the system.
Walsham (1993) outlined the steps in the Waterfall Model:
- Preliminary Evaluation: Evaluate the existing system and identify deficiencies by consulting with support personnel and interviewing system users.
- System Requirements Definition: Define the requirements for the new system, addressing deficiencies in the existing system with specific improvement proposals.
- System Design: Design the proposed system, developing plans for physical construction, hardware, operating systems, programming, communications, and security.
- System Development: Develop the new system, obtaining and installing new components and programs.
- User Training and Testing: Train users in system usage, conduct performance testing, and make adjustments if necessary.
- System Implementation: Put the system into use, which can involve phasing in the new system gradually or implementing it all at once.
- System Evaluation: Evaluate the new system thoroughly after it has been operational for a while.
- Maintenance and Updates: Rigorously maintain the system, keeping users informed about the latest modifications and procedures.
Based on the Waterfall Model, if issues arise during a step, system developers make an effort to go back to the previous step or the specific step where the problem occurred, reevaluate, and complete the step again to resolve the problem.
The model's development schedule
- Fountain Model: The Fountain model represents a logical extension of the Waterfall model, allowing progression through various stages of software development irrespective of whether sufficient tasks have been completed to reach each stage.
- Prototyping Model: The prototyping paradigm initiates with gathering requirements where developers and customers collaborate to define software's overall objectives, identify known requirements, and highlight areas requiring further clarification. The prototype is assessed by the customer/user, serving to refine the software requirements. Iteration takes place as the prototype is adjusted to meet customer needs, facilitating a better understanding for the developer regarding necessary tasks.
Benefits of Prototyping Model
- When the prototype is presented to the user, it provides clarity and functionality of the software, allowing for suggestions and modifications.
- It offers a clear concept to potential investors, aiding in securing funding for the project and providing a transparent view of how the software will perform.
- It reduces the risk of failure by identifying potential risks early, enabling effective mitigation measures to be implemented.
- Iteration between the development team and the client fosters a conducive environment throughout the project, ensuring coordination on both sides.
- The time required to complete the project after finalizing the Software Requirements Specification (SRS) is reduced, as the developer gains a better understanding of how to approach the project.
Drawbacks of Prototyping Model
- Prototyping is typically done at the expense of the developer, requiring nominal resources and potentially high start-up costs for building the development team focused on creating the prototype.
- Once developers receive proper requirements from the client after presenting the prototype, it may become obsolete.
- The process is slow, and excessive client involvement may not always be favored by the creator.
Different phases of Prototyping model
Applications of Prototyping
- Verifying User Needs: Prototyping is used to validate and verify user requirements, ensuring that the final product aligns with user expectations.
- Verifying Design Equals Specifications: It helps in confirming that the actual design matches the specified requirements and design criteria.
- Selecting the "Best" Design: Prototyping allows for the evaluation and selection of the most suitable design among different alternatives.
- Developing a Conceptual Understanding of Novel Situations: It aids in developing a conceptual understanding of complex or novel situations, providing insights into potential challenges and solutions.
- Testing a Design Under Varying Environments: Prototypes facilitate the testing of a design in different environments, helping identify how it performs under various conditions.
- Demonstrating a New Product to Upper Management: It is used to showcase and demonstrate a new product or system to upper management, allowing them to visualize the final outcome.
- Implementing a New System in the User Environment Quickly: Prototyping enables a rapid implementation of a new system in the user environment, expediting the development process and gathering feedback early on.
Question for Systems Development
Try yourself:
What is the purpose of the feasibility study in a system development project?Explanation
- The purpose of the feasibility study in a system development project is to assess the reception of the project and its cost relative to enhancing existing systems.
- It involves conducting an initial project plan and budget estimates for future stages.
- The feasibility study helps determine if a project should proceed based on its reception by various departments and its cost-effectiveness compared to enhancing existing systems.
- By analyzing these factors, organizations can make informed decisions about whether to proceed with the development project or explore alternative options.
Report a problem
Rapid Application Development (RAD)
Rapid Application Development is a model that relies on prototyping and iterative development, minimizing detailed planning. The software development process encompasses the planning necessary for product development. RAD emphasizes gathering customer requirements through workshops or focus groups, early prototype testing by the customer through an iterative concept, reuse of existing prototypes (components), continuous integration, and swift delivery.
The three primary phases of Rapid Application Development are:
- Requirements Planning: This phase involves outlining the requirements for the application. Customer input is gathered through workshops or focus groups to understand their needs and expectations.
- RAD Design Workshop: During this phase, a rapid design workshop is conducted to create prototypes based on the gathered requirements. The focus is on quickly developing prototypes to be tested by the customer.
- Implementation: The implementation phase involves the actual coding and development of the software based on the approved prototypes. Continuous integration and rapid delivery are key aspects of this phase, allowing for quick adjustments based on customer feedback.
RAD Model
Rapid Application Development (RAD) is employed when the team consists of proficient programmers and analysts, there is a compelling need to accelerate application development, the project focuses on creating an innovative ecommerce application with a requirement for swift outcomes, and the users are sophisticated and deeply aligned with the company's objectives.
Spiral Model
The Spiral Model, introduced by Barry Boehm in 1988, was created as an improvement upon the limitations of the Waterfall Model. Boehm emphasized that the Spiral Model takes a risk-driven approach to the software process, deviating from primarily document-driven or code-driven methods. This model combines the strengths of various approaches while addressing their respective challenges.
Key Features:
- Iteration Significance:
- Originality: The Spiral Model was the first to articulate the importance of iteration in the software development process.
- Evolutionary Nature: It blends an iterative prototyping approach with the controlled and systematic aspects found in the traditional waterfall model.
- Duration: Initially, iterations were typically 6 months to 2 years long.
- Phases:
- Planning: Each phase starts with a defined design goal and concludes with client review to assess progress.
- Risk Analysis: Identifying and addressing potential risks associated with the project.
- Engineering: Conducting analysis and engineering efforts in each phase.
- Evaluation: Continuous assessment of the project's status.
- Benefits:
- Adaptability to Change: The model accommodates changing requirements during the development process.
- Prototype Utilization: Extensive use of prototypes is facilitated.
- Accurate Requirement Capture: The model enables more precise capturing of project requirements.
- Early User Involvement: Users get an early view of the system.
- Risk Management: Development can be divided into smaller parts, allowing the more risky components to be tackled early for better risk management.
- Drawbacks:
- Management Complexity: The model introduces added complexity in project management.
- Uncertain Project Conclusion: The project's conclusion may not be evident early in the process.
- Suitability: Not ideal for small or low-risk projects due to cost considerations and process difficulty.
- Indeterminate Spiral: The spiral may extend indefinitely.
- Documentation Overhead: Numerous intermediate stages may necessitate unnecessary documentation.
- Application:
- Typically employed in large-scale projects, such as the military's adoption for the Future Combat Systems program.
- May also be suitable for smaller software applications.
Phases of spiral model
Incremental Model
The Incremental Model is a software development technique where the model undergoes incremental analysis, design, testing, and implementation. This model offers several advantages, such as being suitable for large projects and combining features from both the waterfall and prototyping models. The project is more manageable as it is divided into smaller increments, allowing changes throughout development stages and facilitating the identification of errors.
Advantages:
- Handling Large Projects: The model is adept at managing large-scale projects effectively.
- Combining Waterfall and Prototyping: Incorporates functionalities from both the waterfall and prototyping models, providing a balanced approach to development.
- Project Manageability: Breaking down the project into smaller increments enhances manageability.
- Flexibility for Changes: Changes can be accommodated throughout the development stages, promoting flexibility.
- Error Identification: Errors are easily identified and addressed during the incremental development process.
Disadvantages:
- Time Consumption in Remedying Problems: Rectifying an issue in one functional unit requires corrections in all functional units, leading to time-consuming efforts.
- Need for Comprehensive Planning and Designing: Successful implementation of the incremental model necessitates thorough planning and designing.
Increment model of SDLC
Integrating security into the system development life cycle offers numerous benefits, including:
- Early Vulnerability Identification and Documentation: Detection and documentation of security vulnerabilities and configuration issues at an early stage, resulting in lower implementation costs for security controls and effective mitigation of vulnerabilities.
- Awareness of Engineering Challenges: Early recognition of potential engineering challenges posed by mandatory security controls, allowing for proactive solutions and smoother development processes.
- Identification of Shared Security Services: Recognition and utilization of shared security services, along with the reuse of established security strategies and tools. This approach reduces development costs and enhances the system's security by applying proven methods and techniques.
- Informed Executive Decision-Making: Assistance in informed executive decision-making through the application of a comprehensive risk management process in a timely manner. This enables executives to make well-informed choices regarding security measures.
- Documentation of Security Decisions: Documentation of crucial security decisions made throughout the development process, providing management with insights into security considerations at every phase of development.
- Enhanced Confidence for Adoption and Use: Increased organizational and customer confidence, facilitating the adoption and use of systems. This, in turn, instills confidence in continued investments in government systems.
- Improved Interoperability and Integration: Improved systems interoperability and integration. Considering security as an integral part of the development life cycle enhances the ability to achieve seamless interoperability, which might be challenging if security is addressed separately at various system levels.
Strengths of System Development Life Cycle
- Methodologies incorporating this approach have been well tried and tested.
- This cycle divides development into distinct phases.
- Makes tasks more manageable.
- It Offers opportunity for more control over development process.
- It Provides standards for documentation.
- It is better than trial and error.
Weaknesses of System Development Life Cycle
- It fails to realise the “big picture” of strategic management.
- It is too inflexible to cope with changing requirements.
- It stresses on “hard” thinking (which is often reflected in documentation that is too technical).
- It unable to capture true needs of users.
Question for Systems Development
Try yourself:
What is the primary focus of Rapid Application Development (RAD)?Explanation
- Rapid Application Development (RAD) emphasizes gathering customer requirements through workshops or focus groups.
- It focuses on early prototype testing by the customer through an iterative concept.
- The primary focus is on customer input and prototype testing to ensure the development of a product that meets their needs and expectations.
Report a problem
Conclusion
In Conclusion, the systems development life cycle (SDLC) serves as a theoretical model in project management, outlining the different stages of an information system development project, starting from the initial feasibility study to the ongoing maintenance of the completed application. SDLC represents a systematic, step-by-step approach that spans from project planning to testing and deployment. The essential phases, including analysis, design, coding, testing, and implementation, are consistently adhered to in a sequential order. Various SDLC models are employed to undertake the development of diverse projects.