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:
Preliminary Analysis: Evaluate request, identifying the problem, alternatives, and feasibility.
Systems Analysis: Gather requirements without programming.
System Design: Transform requirements into technical specifications.
Programming: Actual coding of the software.
Testing: Structure tests to ensure software meets specifications.
Implementation: Training users and migrating data.
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:
Requirements Planning.
User Design with JAD sessions for collaboration.
Construction of applications iteratively.
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.