INF3707 exam prep
Chapter 2 2.1 Suggest the most appropriate generic software process model that might be used as a basis for managing the development of the following systems: A system to control antilock braking in a car A virtual reality system to support software maintenance A university accounting system that replaces an existing system An interactive travel planning system that helps users plan journeys with the lowest environmental impact Generic software process model for: A system to control anti-lock braking in a car It is used for safety critical. Here the method is based on formal transformations and it would be the most appropriate. Partial credit was given for “incremental” or “spiral” if accompanied by a reasonable rationale. It certainly needs a plan-driven approach to development with the requirements carefully analysed. A waterfall model is therefore the most appropriate approach to use, perhaps with formal transformations between the different development stages. A virtual reality system to support software maintenance A virtual reality system would be cutting edge, and its usability would depend heavily on the quality of its user interface. Design/implementation that follows a “waterfall” or “formal” process model would be difficult here. An Evolutionary model seems ideal here, but full credit was given to “incremental” or “Spiral” with some UI prototyping. An agile process may be used. A university accounting system that replaces an existing system This system’s requirements are fairly well-known and will be used in an environment in conjunction with lots of other systems such as a research grant management system. A reuse-based approach is likely to be appropriate An interactive travel planning system that helps users plan journeys with the lowest environmental impact System with a complex user interface but which must be stable and reliable. An incremental development approach is the most appropriate as the system requirements will change as real user experience with the system is gained. 2.2 Incremental software development could be very effectively used for customers who did not have a clear idea about the systems needed for their operations. Discuss Incremental development is based on the idea of developing an initial implementation, getting feedback from users and others, and evolving the software through several versions until the required system has been developed. The approach can be either plan-driven, agile, or a mixture of these approaches. In Plan-driven, the system increments are identified in advance. In agile the early increments are identified but the development of later increments depends on progress and customer priorities. Each increment of version of the system incorporates some of the functionality that is needed by the customer. The early increments of the system include the most important of most urgently required functionality. This means the customer can evaluate the system as a relatively early stage in the development to see if it delivers what is required. If not, then only the current increment has to be changed and, possible, new functionality defined for later increments. 2.3 Consider the integration and configuration process model shown in Figure 2.3. Explain why it is essential to repeat the requirements engineering activity in the process. At first the requirements specification involve the initial requirements for the system that are proposed. These do not have to be elaborated in detail but should include brief descriptions of essential requirements and desirable system features. During the requirement refinement stage, the requirements are refined using information about the reusable components and applications that have been discovered. The requirements are modified to reflect the available components, and the system specification is re-defined. Where modifications are impossible, the component analysis activity may be re-entered to search for alternative solutions. 2.4 Suggest why it is important to make a distinction between developing the user requirements and developing system requirements in the requirements engineering process There is a fundamental difference between the user and the system requirements that mean they should be considered separately: 1. The user requirements are intended to describe the system’s functions and features from a user perspective and it is essential that users understand these requirements. User requirements are abstract statements. Its described the systems functions and features of customer needs. System requirements are provided at a more detailed explanation of the procedure 2. They should be expressed in natural language and may not be expressed in great detail, to allow some implementation flexibility. System requirements are much more detailed and are intended to be a precise specification of the system that may be part of a system contract. 3. In user requirements, the starting level of the project, development team may put interest on gathering good information, identifying the important things and understanding them correctly. System requirements are implemented after user requirements have been established. The development of system requirements are important from the beginning of a project to end and beyond programmers must have the knowledge and skill to write program applications. 2.5 Using an example, explain why the design activities of architectural design, database design, interface design and component design are interdependent Interdependent design activities: Design of any software is a very important activity. It includes design of database, design of various components, user interface design and design of architecture. The diagram show an example to show interdependency of all design activities:
Geschreven voor
- Instelling
- University of South Africa
- Vak
- INF3707 - Database Design And Implementation
Documentinformatie
- Geüpload op
- 5 november 2021
- Aantal pagina's
- 132
- Geschreven in
- 2021/2022
- Type
- Tentamen (uitwerkingen)
- Bevat
- Vragen en antwoorden
Onderwerpen
-
inf3707
-
inf3707 exam prep