16 System life cycle (3)
Resources |
Revision Questions |
Information Technology IT
Login to see all questions
Click on a question to view the answer
1.
A project manager is considering using either evolutionary or throwaway prototyping for a new online banking application. Discuss the factors the project manager should consider when deciding which prototyping approach is most appropriate. Provide a reasoned recommendation, justifying your choice.
The project manager should consider several factors when choosing between evolutionary and throwaway prototyping:
- Requirement Clarity: If the requirements are well-defined and stable, evolutionary prototyping is more suitable. If the requirements are unclear or likely to change, throwaway prototyping allows for more flexibility.
- Risk Tolerance: If the project has a low tolerance for risk, evolutionary prototyping is preferred as it reduces the risk of building a completely incorrect product.
- Time Constraints: Throwaway prototyping is generally faster, as it focuses on rapid iteration. Evolutionary prototyping can be more time-consuming due to the iterative nature of development.
- Budget: Throwaway prototyping can be more cost-effective in the short term, as it avoids investing in a final product that may not be viable. However, evolutionary prototyping may be more cost-effective in the long run if it helps to avoid costly rework.
- User Involvement: Both approaches benefit from user involvement, but evolutionary prototyping requires more continuous user feedback.
Recommendation: For a new online banking application, I would recommend an evolutionary prototyping approach. Online banking applications are complex and require a high degree of security and usability. Early user feedback is crucial to ensure that the application is secure, easy to use, and meets the needs of the target audience. While it may take longer initially, the benefits of incorporating user feedback throughout the development process outweigh the potential drawbacks. The iterative nature of evolutionary prototyping allows for the identification and resolution of usability issues early on, reducing the risk of costly rework later in the project. Furthermore, the need for stringent security in online banking necessitates thorough testing and refinement, which evolutionary prototyping facilitates.
2.
Question 1: A local school's network experienced frequent disruptions due to software bugs and security vulnerabilities. The IT department quickly patched these issues to restore normal operations. Identify the type of maintenance performed and explain why it was necessary.
Answer: The maintenance type performed is corrective maintenance.
Corrective maintenance is performed to fix faults and restore a system to its normal operating condition. In this scenario, the software bugs and security vulnerabilities caused disruptions, meaning the system was not functioning as intended. The IT department's actions of patching these issues directly addressed the faults and restored normal operations.
Key characteristics of corrective maintenance include:
- Addressing unexpected problems
- Often reactive - responding to issues as they arise
- Can be time-sensitive to minimize disruption
3.
Describe the key activities undertaken during the design phase of the system life cycle. Include considerations for system architecture, data modelling, and user interface design. Illustrate your answer with a brief example of a system design decision.
The design phase translates the requirements specification into a detailed blueprint for the system. Key activities include:
- System Architecture Design: Defining the overall structure of the system, including hardware and software components, and how they interact. This involves selecting appropriate technologies and platforms.
- Data Modelling: Designing the structure of the data that the system will store and manage. This includes creating data diagrams (e.g., Entity-Relationship Diagrams) to represent data relationships.
- User Interface (UI) Design: Designing the user interface to ensure it is user-friendly, intuitive, and meets the needs of the users. This involves creating mockups and prototypes.
- Database Design: Designing the database schema, including tables, fields, and relationships. This ensures data integrity and efficient data retrieval.
- Security Design: Incorporating security measures into the system design to protect against unauthorized access and data breaches.
- Detailed Design Specification: Documenting all the design decisions in a detailed specification that can be used by developers to implement the system.
Example of a system design decision: For an e-commerce website, the decision to use a microservices architecture might be made. This involves breaking down the website into smaller, independent services (e.g., product catalog service, shopping cart service, payment processing service). This allows for independent scaling and development of different parts of the system. This decision would be documented in the detailed design specification, including the technologies to be used for each service (e.g., Node.js, Python, Java) and the communication protocols between them (e.g., REST APIs).