Chapter 7: System Development

Chapter Outline

  • 7.1. Chapter Introduction

  • 7.2. Systems Development

  • 7.3. Systems Development Life Cycle

  • 7.4. Other Development Methods

  • 7.5. Feasibility

  • 7.6. Design

  • 7.7. Building a Mobile App

  • 7.8. Programming

  • 7.9. Build vs. Buy

  • 7.10. Implementation and Maintenance

  • 7.11. Summary

  • 7.12. Key Terms

  • 7.13. Knowledge Check

7.1. Chapter Introduction

  • Learning Outcomes:

    • Define systems development.

    • Explain the new systems development process.

    • Discuss system development methodologies.

    • Identify components of a feasibility analysis.

    • List programming languages used in software development.

    • Address issues surrounding mobile app development.

    • Compare build vs buy decision.

    • Recognize four primary implementation policies.

  • Systems development is the process of transforming ideas into functional systems, involving various methods and practices.

7.2. Systems Development

  • Systems development involves more than writing code; it's a process that addresses user needs and involves various stakeholders.

  • Key Challenges:

    • User and programmer communication gap.

    • Management support and budget constraints.

  • Critical Success Factors:

    • Well-defined system objectives.

    • Feasibility testing.

    • Top management involvement.

    • User involvement and commitment.

    • Detailed user requirements analysis.

    • Sound design principles for maintainability.

    • Effective project management.

7.3. Systems Development Life Cycle (SDLC)

  • Overview of SDLC: Developed in the 1960s for large software projects on mainframes, structured to manage projects with multiple programmers.

  • Phases of SDLC:

    1. Preliminary Analysis: Evaluate request, identifying the problem, alternatives, and feasibility.

    2. Systems Analysis: Gather requirements without programming.

    3. System Design: Transform requirements into technical specifications.

    4. Programming: Actual coding of the software.

    5. Testing: Structure tests to ensure software meets specifications.

    6. Implementation: Training users and migrating data.

    7. Maintenance: Providing support and updates.

  • SDLC is often criticized for rigidity (waterfall approach) and long timelines.

7.4. Other Development Methods

  • Rapid Application Development (RAD): Focuses on quick development and user feedback through iterative processes.

    • Phases of RAD:

      1. Requirements Planning.

      2. User Design with JAD sessions for collaboration.

      3. Construction of applications iteratively.

      4. Cutover to new system.

  • Agile Methodologies: Incremental development focusing on quick changes and quality; based on principles from the Agile Manifesto.

  • Lean Methodology: Develop a Minimum Viable Product (MVP) focusing on user feedback and iterative improvements.

7.5. Feasibility

  • Analyze the feasibility of new systems against organizational needs.

  • Three types of feasibility:

    • Economic Feasibility: Assess costs vs. benefits.

    • Technical Feasibility: Evaluate resource availability.

    • Operational Feasibility: Willingness of stakeholders to adopt the new system.

  • The Quality Triangle highlights the trade-offs between time, cost, and quality in development projects.

7.6. Design

  • Good design is crucial for system effectiveness.

  • Design Considerations:

    • Usability: Ease of navigation and user-friendliness.

    • Graphic Design: Visual appeal and adherence to branding.

    • Analytical Design: Effective representation of quantitative data.

7.7. Building a Mobile App

  • Key differences in mobile app development vs. traditional software:

    • Use of small, efficient components.

    • Integration of sensors for contextual awareness.

    • Focus on simple, intuitive interfaces.

    • Access to cloud data enables functionality.

    • Simplified acquisition via app stores.

  • Cross-platform development allows apps to run on multiple mobile OS.

7.8. Programming

  • Programming Definition: Creating logical instructions for a device using a programming language.

  • Generations of Programming Languages:

    • First: Machine code.

    • Second: Assembly language.

    • Third: High-level languages (e.g., C, Python).

    • Fourth: Very high-level languages (e.g., SQL).

  • Programming Tools: IDEs and CASE tools enhance productivity.

7.9. Build vs. Buy

  • The decision-making process when developing new software: To build in-house or purchase.

  • Advantages of Purchasing:

    • Lower costs and quicker implementation.

    • Tested functionality.

  • Disadvantages:

    • Lack of exclusivity and potential customization challenges.

  • Web Services: Companies can integrate external functionalities without full development.

7.10. Implementation and Maintenance

  • Implementation strategies can include:

    • Direct Cutover: Quick but risky transition to new systems.

    • Pilot Implementation: Test in subset before full deployment.

    • Parallel Operation: Use both systems temporarily for risk management.

    • Phased Implementation: Gradually switch functions.

  • Change management is critical for user adoption and system success.

7.11. Summary

  • Key takeaways include understanding systems development processes, methodologies, and the importance of feasibility analysis.

  • Maintenance and effective implementation strategies are crucial for software project success.

7.12. Key Terms

  • Agile Methodologies: Incremental changes focusing on quality.

  • Build vs. Buy Decision: Evaluate between developing in-house and purchasing.

  • Change Management: Managing transitions in systems.

  • Feasibility Analysis: Assessing the viability of a project.

  • Lean Methodology: Development of MVP based on feedback.

  • Minimum Viable Product (MVP): Basic version for user evaluation.

7.13. Knowledge Check

  • Review questions address critical concepts from chapter, preparing for deeper understanding and application.