Contents MEDIUM QUESTIONS ................................................................................................................. 2 DISCUSS THE FOLLOWING TERMS: ................................................................................... 4 DIFFERENTIATE BETWEEN THE FOLLOWING: ............................................................ 8 LONG QUESTIONS ...................................................................................................................... 11 FULL TERM NAMES OF ACRONYMS: ................................................................................. 17 OUTCOMES ..................................................................................................................................... 17 MEDIUM QUESTIONS What is a project and what is the project manager? (4) A project is any undertaking, carried out individually or collaboratively and possibly involving research or design that is carefully planned to achieve a particular aim A project manager is a professional in the field of project management. Project managers have the responsibility of the planning, procurement and execution of a project, in any undertaking that has a defined scope, defined start and a defined finish; regardless of industry. Discuss units that can be reused by software engineers during system development (8) System reuse: Complete systems, which may include several application programs. Application reuse: An application may be reused either by incorporating it without change into other or by developing application families. Component reuse: Components of an application from sub-systems to single objects may be reused. Object and function reuse: Small-scale software components that implement a single welldefined object or function may be reused. Briefly discus five (5) disadvantages of COST (Commercially Off-Shelf) products (10) Can be more expensive over time Can be impossible or inflexible to change should you need it You have no control May not be supported after time Upgrades can cost extra Too many features and functions Too few features and functions May have integration issues Might not fit your work process Briefly explain two (2) types of CBSE (Component-Based Software Engineering) process (4) Development for reuse: This process is concerned with developing components or services that will be reused in other applications. It usually involves generalizing existing components. Development with reuse: This process is the process of developing new applications using existing components and services. Discuss the points to consider for a component to be reusable (8) Efficiency — with the basics already built, 80 percent of the work is done. You can save time and money by relying on some reusable components. That means getting the app done faster and for less cost. In very large organizations, having a shared database of components prevents duplicity across teams. Consistency — the primary functions will be consistent, allowing greater control and scalability for those building the apps and a more consistent experience for the users. Field-proven code — Code that has been used many times by various people is pretested already proven in the field. We liken this to manufacturing facilities that rely on parts built elsewhere to assemble the full product. The pieces are vetted, and you know they work; that way when you plug them in to your product, you’re less likely to encounter problems during development. Easier testing — because the code is already proven, testing is also easier. The base functionality of certain features has already been tested. Now, you’re testing to make sure the entirety of it works together and to make sure any new features or sections work well. If you discover problems, you have fewer places to search for the cause because, chances are, the issue is in the newer part you created. Discuss four (4) critical factors that need to be considered during people managing (8) Answer: (TB, 603) Consistency – all team members must be treated the same and rewards must be distributed evenly to all those who deserve them. At the same time, their contribution to the project must not seem as wasted, in other words, their contributions must not be undervalued. Respect – managers should respect everyone irrespective of their skills. Everyone should be given an opportunity to make a contribution towards the project. Inclusion – management must create an environment where they listen and act upon team members’ recommendations or suggestions. People always make contributions when they can see or feel that someone is listening to them. Honesty – a good leader must always express what’s going well and what is going wrong with the team. This is done to ensure that team members are made aware of the progress and hiccups of the projects and where ever necessary precaution measures can be done in the future. Discuss five (5) project management activities (10) Answer: (TB, 595) Project planning – project managers are responsible for planning, estimating, assigning tasks to team members and determining the schedule of the project. The project manager also ensures that the project meets a certain standard, delivered on time and within the budget. People management – project managers need to manage a team of people and they need to select their own team members and establish ways of working with the chosen team for the best results. Risk management – as a project manager, before the project begins, he/she needs to assess any possible risks which may be encountered during project development. The identified risks must be monitored and any possible action must be taken to avoid such risks. Reporting – this is one of the major responsibilities of a project manager. He/she needs to report the progress of the project to the owners. Proposal writing – before a project begins, a proposal must be written. The proposal must contain the objectives of the project with several tasks and how those tasks will be carried out. Discuss three (3) classifications of risk. (6) Business Risk: These types of risks are taken by business enterprises themselves in order to maximize shareholder value and profits. As for example, Companies undertake high-cost risks in marketing to launch a new product in order to gain higher sales. Non- Business Risk: These types of risks are not under the control of firms. Risks that arise out of political and economic imbalances can be termed as non-business risk. Financial Risk: Financial Risk as the term suggests is the risk that involves financial loss to firms. Financial risk generally arises due to instability and losses in the financial market caused by movements in stock prices, currencies, interest rates and more. Mention six (6) different types of risk (6) 1. Estimation risks arise from the management estimates of the resources required to build the system. 2. Organizational risks arise from the organizational environment where the software is being developed. 3. People risks are associated with the people in the development team. 4. Requirements risks come from changes to the customer requirements and the process of managing the requirements change. 5. Technology risks come from the software or hardware technologies that are used to develop the system. 6. Tools risks come from the software tools and other support software used to develop the system. DISCUSS THE FOLLOWING TERMS: - Application frameworks (2) These are collections of classes which are extended and adapted to create an application system. The types of classes can be a combination of concrete as well as abstract classes. (TB, 430) - Aspect-oriented software development (2) The process of developing a software which meets the needs of specific users. (TB, 430) - Architectural plans (2) These are common standard overviews or architectures which support an application system. (TB, 430) - Legacy system wrapping (2) The process of defining a set of legacy interfaces and providing access to those interfaces. (TB, 430) - Program generators (2) These generate systems by embedding knowledge of a given type of application in a specific domain. (TB, 430) - Service-oriented systems (2) Developing systems by linking shared services and these shared services may be externally provided. (TB, 430) - Systems of systems (2) Developing a system by using another system that is a process of integrating two or more systems. (TB, 430) - Model-driven engineering (2) The process of generating code from domain models and implementation models and these implementation models must be independent. (TB, 430) - Component-based software engineering (2) The process of reusing components during software development. (TB, 430) - Application system integration (2) This is a process whereby two or more application systems are integrated together to provide an extended functionality. (TB, 430) - CASE (2) Computer-Aided Software Engineering - Client (2) A computer or a program that, as part of its operation, relies on sending a request to another program or a computer hardware or software that accesses a service made available by a server (which may or may not be located on another computer). - Distributed system (2) A software system where the software sub-systems or components execute on different processors. - Interface (2) A specification of the attributes and operations associated with a software component. The interface is used as the means of accessing the component’s functionality - ISO 9000/9001 (2) A set of standards for quality management processes that is defined by the International Standards Organization (ISO). ISO 9001 is the ISO standard that is most applicable to software development. These may be used to certify the quality Management processes in an organization. Discuss five (5) characteristics of a component (10) Answer: (TB, 456) Components are composable that is components consists of standard defined interfaces Components are self-contained and can be stand-alone components, meaning they are deployable Most of the components are properly documented, such that potential users can easily decide whether the component meet their requirements or not Components are independent meaning they can operate without using other specific components All components meant for reuse must conform to a certain standard component model Identify and briefly discuss sub-models of the COCOMO estimation model (8) Answer: (TB, 637 - 638) An application composition model – this model estimates the effort required to develop a system using reusable components, scripting and even database programming. An early design model - uses an initial effort estimation based on system and design requirements and this is on the basis of a number of functional points (they quantify program functionality). Re-use model – uses an effort to integrate reusable components or even to automatically generate code and this is done on the basis of several lines of reused code or generated code. Post architecture model – uses a development effort based on system design specification on the bases of the number of lines for source code. Briefly discuss techniques that can be used for making estimation in a project. (6) Answer: (TB, 634) Experience-based techniques – this is whereby the estimate of future effort requirements is based on the manager’s experience of past projects. Algorithmic cost modelling – this a formula approach which computes effort based on estimates of the product attributes and these product attributes may be the size of the project, process characteristics and staff experience. Identify and briefly discuss five (5) project management activities. (10) 1. Project planning: Project managers are responsible for planning, estimating, and scheduling project development and assigning people to tasks. They supervise the work to ensure that it is carried out to the required standards, and they monitor progress to check that the development is on time and within budget 2. Risk management: Project managers have to assess the risks that may affect a project, monitor these risks, and take action when problems arise. 3. People management: Project managers are responsible for managing a team of people. They have to choose people for their team and establish ways of working that lead to effective team performance. 4. Reporting: Project managers are usually responsible for reporting on the progress of a project to customers and to the managers of the company developing the software. They have to be able to communicate at a range of levels, from detailed technical information to management summaries. They have to write concise, coherent documents that abstract critical information from detailed project reports. They must be able to present this information during progress reviews. 5. Proposal writing: The first stage in a software project may involve writing a proposal to win a contract to carry out an item of work. The proposal describes the objectives of the project and how it will be carried out. It usually includes cost and schedule estimates and justifies why the project contract should be awarded to a particular organization or team. Proposal writing is a critical task as the survival of many software companies depends on having enough proposals accepted and contracts awarded. Discuss the key factors of centralised and distributed version control system (10) Answer: (TB, 691) Version and release identification – each version released, has its own unique identification and these identifiers enable the software engineers to allow different versions of the same component to be managed. Change history recording – each time there is a new version of a component, the VC system records and keeps track of all the changes made to the system. Independent development – during development, different developers may be working on certain component simultaneously. Any changes made to the component must be tracked so that the components do not interfere. Project support – in project components may be shared. Storage management – the VC system ensures that duplicate copies of identical files are maintained and they are usually automatically re-created. In a scenario, where multiple components have small differences, the VC system may store those differences also. Elaborate on why standard is crucial to quality assurance (6) Answer: (TB, 658) They capture wisdom, in other words, they capture or emphasise value in an organisation. Standards provide a framework which can be used to define quality in an organisation. If standards are properly specified, there is continuity in a project since all software engineers will be using well-known quality management practices. Differentiate between product standard and process standard (12) Answer: (TB, 659) PRODUCT STANDARDS Design review form Requirements document structure Method header format Java programming style Project plan format Change request form PROCESS STANDARDS Design review conduct Submission of new code for system building Version release process Project plan approval process Change control process Test recording process Identify any five fault classes involved in an inspection checklist? (5) Fault class Data faults Control faults Inspection check Are all program variables initialized before their values are used? Have all constants been named? Should the upper bound of arrays be equal to the size of the array or Size 21? If character strings are used, is a delimiter explicitly assigned? Is there any possibility of buffer overflow? For each conditional statement, is the condition correct? Is each loop certain to terminate? Are compound statements correctly bracketed? In case statements, are all possible cases accounted for? If a break is required after each case in case statements, has it been included? Input/output faults Interface faults Storage management faults Exception management faults Are all input variables used? Are all output variables assigned a value before they are output? Can unexpected inputs cause corruption? Do all function and method calls have the correct number of parameters? Do formal and actual parameter types match? Are the parameters in the right order? If components access shared memory, do they have the same model of the shared memory structure? If a linked structure is modified, have all links been correctly reassigned? If dynamic storage is used, has space been allocated correctly? Is space explicitly de-allocated after it is no longer required? Have all possible error conditions been taken into account? DIFFERENTIATE BETWEEN THE FOLLOWING: - Architectural pattern and design pattern (4) Architectural pattern - Standard software architectures that Generic abstractions that occur across support common types of application applications are represented as design system are used as the basis of patterns showing abstract and concrete applications objects and interactions. Application framework and software product line (4) Application framework - Design pattern software product line Collections of abstract and concrete An application type is generalized around classes are adapted and extended to a common architecture so that it can be create application systems. adapted for different customers. Component based development and COTS product reuse (4) Component based development COTS product reuse set of reuse-enabling technologies, tools Systems are developed by configuring and techniques that allow application and integrating existing application development (AD) organizations to go systems through the entire AD process (i.e., analysis design, construction and assembly) or through any particular stage via the use of predefined componentenabling technologies (such as AD patterns, frameworks, design templates) tools and application building blocks. - Program libraries and program generators (4) Program libraries program generators Class and function libraries that implement A generator system embeds knowledge of commonly used abstractions are available a type of application and for reuse is used to generate systems in that domain from a user-supplied system model. - Model driven engineering and ERP System (4) Model driven engineering ERP System Software is represented as domain models Large-scale systems that encapsulate and implementation independent models, generic business functionality and rules and code is generated from these models are configured for an organization What is a reuse-base software engineering? (2) Reuse-based software engineering is a software engineering strategy where the development process is geared to reusing existing software. Discuss problems that come with software reuse. (10) Creating, maintaining, and using a component library: Populating a reusable component library and ensuring the software developers can use this library can be expensive. Development processes have to be adapted to ensure that the library is used. Finding, understanding, and adapting reusable components: Software components have to be discovered in a library, understood and, sometimes, adapted to work in a new environment. Engineers must be reasonably confident of finding a component in the library before they include a component search as part of their normal development process. Increased maintenance costs: If the source code of a reused software system or component is not available then maintenance costs may be higher because the reused elements of the system may become increasingly incompatible with system changes. Lack of tool support: Some software tools do not support development with reuse. It may be difficult or impossible to integrate these tools with a component library system. The software process assumed by these tools may not take reuse into account. This is particularly true for tools that support embedded systems engineering, less so for objectoriented development tools. Not-invented-here syndrome: Some software engineers prefer to rewrite components because they believe they can improve on them. This is partly to do with trust and partly to do with the fact that writing original software is seen as more challenging than reusing other people's software. Briefly discuss five disadvantages of COST (Commercially Off-Shelf) products. (10) Can be more expensive over time Can be impossible or inflexible to change should you need it You have no control May not be supported after time Upgrades can cost extra Too many features and functions Too few features and functions May have integration issues Might not fit your work process Discuss five characteristics of a component. (10) Answer: (SG, 18) (TB, 456) Components are composable that is components consists of standard defined interfaces Components are self-contained and can be stand-alone components, meaning they are deployable Most of the components are properly documented, such that potential users can easily decide whether the component meet their requirements or not Components are independent meaning they can operate without using other specific components All components meant for reuse must conform to a certain standard component model. Name and explain three classes of framework (6) System infrastructure frameworks support the development of system infrastructures such as communications, user interfaces, and compilers. Middleware integration frameworks consist of a set of standards and associated object classes that support component communication and information exchange. Examples of this type of framework include Microsoft’s .NET and Enterprise Java Beans (EJB). These frameworks provide support for standardized component models. Enterprise application frameworks are concerned with specific application domains such as telecommunications or financial systems (Baumer et al. 1997). These embed application domain knowledge and support the development of end-user applications. These are not now widely used and have been largely superseded by software product lines. Discuss five project management activities (10) Answer: (SG, 38) (TB, 595) Project planning – project managers are responsible for planning, estimating, assigning tasks to team members and determining the schedule of the project. The project manager also ensures that the project meets a certain standard, delivered on time and within the budget. People management – project managers need to manage a team of people and they need to select their own team members and establish ways of working with the chosen team for the best results. Risk management – as a project manager, before the project begins, he/she needs to assess any possible risks which may be encountered during project development. The identified risks must be monitored and any possible action must be taken to avoid such risks. Reporting – this is one of the major responsibilities of a project manager. He/she needs to report the progress of the project to the owners. Proposal writing – before a project begins, a proposal must be written. The proposal must contain the objectives of the project with several tasks and how those tasks will be carried out. Discuss three classifications of risk (6) Project risks affect the project schedule or resources. An example of a project risk is the loss of an experienced system architect. Finding a replacement architect with appropriate skills and experience may take a long time; consequently, it will take longer to develop the software design than originally planned. Product risks affect the quality or performance of the software being developed. An example of a product risk is the failure of a purchased component to perform as expected. This may affect the overall performance of the system so that it is slower than expected Business risks affect the organization developing or procuring the software. For example, a competitor introducing a new product is a business risk. The introduction of a competitive product may mean that the assumptions made about sales of existing software products may be unduly optimistic LONG QUESTIONS You been chosen to build a point of sale system that will be used to manage businesses that are located at different geographic region. Since the shops are not located in one place, you will need a distributed system, because some other customers will be placing the order of their items online through the web based system. Remember the numbers of shops might grow, the number of items might increase, or decreases when time goes on. What will be the benefits of using a distributed system in the development of the system in the case study above? (10) Answer: (TB, 480) There is resource sharing; that is computers connected to the network can easily share software and hardware resources There is openness; distributed system is open, that is they are compatible with any hardware or software There is the simultaneous execution of tasks or processes in a distributed system and this is known as concurrency New resources can be easily added to cope with demand in a distributed system as a result, distributed systems are scalable Distributed systems are fault tolerance and in case of software or hardware failure, data or information may be recovered, since some data or information may be replicated. Discuss the design issues that you must consider when designing the above distributed system (12) Answer: (TB, 481) There should be transparency in a distributed system. The following question must be asked, “To what extent should the system look like a single system?” They should be openness; the system must be open for interoperability and it should be compatible with most hardware and software resources in an organisation In case of resources needed in the system, a distributed system should support scalab Most distributed systems are secure since they are defined policies applied across independently managed systems Most distributed systems conform to a certain standard, hence there is the quality of service to users and most of the services will be predetermined A distributed system has the capability to manage and repair in case of a node failure Scalability is another important factor to consider when building the system. (6) Discuss the three dimensions of scalability. Answer: (TB, 483) Size – distributed systems must be able to cope with the increasing number of users at a given node. Hence, as the number of users increases, the size should automatically increase to cope with users of the system Distribution – components of a system must be geographically distributed without degrading the performance of the whole system Manageability – distributed systems must be manageable no matter the size of the system Briefly discuss the types of attacks which might occur in this distribution system (8) Answer: (TB, 483) Interception – this is a scenario whereby an attacker intercepts communication between nodes. As a result, they will be no privacy and confidentiality of data. Interruption – a scenario whereby certain services of a system are attacked and data or information along the way may not be delivered as expected. Denial of attacks are good examples of interruption Modification – a situation whereby an attacker gain access to sensitive data and then, makes some modifications or changes the data Fabrication – a situation whereby an attacker generates false data or information so as to gain access to some privileges. Fabrication is mostly done by fraudsters. Briefly discuss scale up or scale out. (4) Answer: (TB, 483) Scaling up - means replacing resources in the system with more powerful resources. Scaling out - means adding additional resources to the system. A middleware is important software used to support distributed system. What is middleware, and discuss the support provided by middleware. (6) A middleware is referred to as a software which sits in between components in a distributed system. In other words, middleware as the name implies, it is a software which is found in the middle of two components in a distributed system. Middleware is used to support the following: Middleware supports interaction amongst various types of components. There is transparency amongst components during communication Middleware provides common services to various components in a distributed system. The components in a distributed system must interoperate and be consistent in providing user services. Identify four (4) types of risks that can be encountered during the development of this project (4) Technology People Organizational Tools Requirements Estimation Which computing system is ideal to develop the system in case study above, and how does this system work? (4) Draw a diagram that represent the system you have mentioned in the question above. (6) Highlight the major problems associated with COTS (10) A vendor may stop providing support, or they may provide inadequate support for an organisation’s needs. No simple upgrade path between versions. The product’s development/maintenance may get dropped as time goes on. Lack of feature request processes. Lack of product enhancements for example “addons” or “plugins” to extend functionality. Components have two interfaces to allow the component to operate correctly. Differentiate between the two interfaces. Include a diagram to enhance your answer (15) The “provides” interface defines the services provided by the component. This interface is the component API. It defines the methods that can be called by a user of the component. In a UML component diagram, the “provides” interface for a component is indicated by a circle at the end of a line from the component icon. The “requires” interface specifies the services that other components in the system must provide if a component is to operate correctly. If these services are not available, then the component will not work. This does not compromise the independence or deployability of a component because the “requires” interface does not define how these services should be provided. In the UML, the symbol for a “requires” interface is a semicircle at the end of a line from the component icon. Notice that “provides” and “requires” interface icons can fit together like a ball and socket. There are many factors to consider when planning reuse. Outline the KEY factors you would consider when planning software re-use (18) The development schedule for the software: If the software has to be developed quickly, you should try to reuse complete systems rather than individual components. Although the fit to requirements may be imperfect, this approach minimizes the amount of development required. The expected software lifetime: If you are developing a long-lifetime system, you should focus on the maintainability of the system. You should not just think about the immediate benefits of reuse but also of the long-term implications. The background, skills and experience of the development team: All reuse technologies are fairly complex, and you need quite a lot of time to understand and use them effectively. Therefore, you should focus your reuse effort in areas where your development team has expertise. The criticality of the software and its non-functional requirements: For a critical system that has to be certified by an external regulator you may have to create a safety or security case for the system (discussed in Chapter 12). This is difficult if you don’t have access to the source code of the software The application domain: In many application domains, such as manufacturing and medical information systems, there are generic products that may be reused by configuring them to a local situation. This is one of the most effective approaches to reuse, and it is almost always cheaper to buy rather than build a new system. The platform on which the system will run: Some components models, such as .NET, are specific to Microsoft platforms. Similarly, generic application systems may be platformspecific, and you may only be able to reuse these if your system is designed for the same platform. As a starting point for risk identification, a checklist may be used. Identify and briefly explain the different types of risks that may be included in the risk checklist. (12) Estimation risks arise from the management estimates of the resources required to build the system. Organizational risks arise from the organizational environment where the software is being developed People risks are associated with the people in the development team Requirements risks come from changes to the customer requirements and the process of managing the requirements change. Technology risks come from the software or hardware technologies that are used to develop the system. Tools risks come from the software tools and other support software used to develop the system Discuss four closely related activities involved with the configuration management of a system product. (8) Version management – this is the process of keeping track of different versions of a system. Version management stops one developer from overwriting code that has been submitted by another developer System integration – different versions of components (which are added or modified to an existing component) are compiled and linked to the required components automatically Problem tracking – allows users to report bugs and errors to developers so that developers can see who is working on those problems and when they are fixed. Release management – is a process of releasing new versions of a software system to customers A CMMI assessment involves examining the processes in an organization and rating these processes or process areas on a six-point scale that relates to the level of maturity in each process area. The idea is that the more mature a process, the better it is. Identify and describe the level of maturity to a process area assigned by the six-point scale. (12) The levels in the process maturity model are: 1. Initial: The goals associated with the process area are satisfied, and for all processes the scope of the work to be performed is explicitly set out and communicated to the team members. 2. Managed: At this level, the goals associated with the process area are met, and organizational policies are in place that define when each process should be used. There must be documented project plans that define the project goals. Resource management and process monitoring procedures must be in place across the institution. 3. Defined: This level focuses on organizational standardization and deployment of processes. Each project has a managed process that is adapted to the project requirements from a defined set of organizational processes. Process assets and process measurements must be collected and used for future process improvements. 4. Quantitatively managed: At this level, there is an organizational responsibility to use statistical and other quantitative methods to control subprocesses. That is, collected process and product measurements must be used in process management 5. Optimizing: At this highest level, the organization must use the process and product measurements to drive process improvement. Trends must be analysed and the processes adapted to changing business needs Define software measurement analysis as well as the stages in component measurement. Include a diagram showing the process of product measurement (15) A measurement process that may be part of a software quality assessment process. Each system component can be analyzed separately using a range of metrics. The values of these metrics may then be compared for different components and, perhaps, with historical measurement data collected on previous projects. The key stages in this component measurement process are: 1. Choose measurements to be made: The questions that the measurement is intended to answer should be formulated and the measurements required to answer these questions defined. Measurements that are not directly relevant to these questions need not be collected 2. Select components to be assessed: You may not need to assess metric values for all of the components in a software system. Sometimes you can select a representative selection of components for measurement, allowing you to make an overall assessment of system quality. At other times, you may wish to focus on the core components of the system that are in almost constant use. The quality of these components is more important than the quality of components that are infrequently executed. 3. Measure component characteristics: The selected components are measured, and the associated metric values are computed. This step normally involves processing the component representation (design, code, etc.) using an automated data collection tool. This tool may be specially written or may be a feature of design tools that are already in use. 4. Identify anomalous measurements: After the component measurements have been made, you then compare them with each other and to previous measurements that have been recorded in a measurement database. You should look for unusually high or low values for each metric, as these suggest that there could be problems with the component exhibiting these values. 5. Analyze anomalous components: When you have identified components that have anomalous values for your chosen metrics, you should examine them to decide whether or not these anomalous metric values mean that the quality of the component is compromised. An anomalous metric value for complexity (say) does not necessarily mean a poor-quality component. There may be some other reason for the high value, so there may not be any component quality problems. Release Management involves making decisions on system release dates, preparation as well as documenting each system release. Describe in full your understanding of release management. (20) The release may also include: Configuration files defining how the release should be configured for particular installations; Data files, such as files of error messages in different languages that are needed for successful system operation; an installation program that is used to help install the system on target hardware; Electronic and paper documentation describing the system; Packaging and associated publicity that have been designed for that release. When planning the installation of new system releases, you cannot assume that customers will always install new system releases. Discuss this statement with regards to cost, platform, distribution, additional files, and marketing bugs in release, customer interest and risk. (15) To illustrate this problem, consider the following scenario: 1. Release 1 of a system is distributed and put into use. 2. Release 2 requires the installation of new data files, but some customers do not need the facilities of release 2 and so remain with release 1. 3. Release 3 requires the data files installed in release 2 and has no new data files of its own Which computing system is ideal to develop the system in question 4, and how does this system work? (4) FULL TERM NAMES OF ACRONYMS: ISO - International Organization for Standardization QOS - Quality of Service SCI – Software Configuration Item SaaS - Software as a Service SOA - Service-Oriented Architectures RPC - Remote Procedure Calls OCL - Object Constraint Language CBSE - Component-Based Software Engineering COTS - Commercial Off-The-Shelf P2P - Peer-to-Peer CMMI - Capability Maturity Model Integration OUTCOMES The reuse landscape (TB, 428 - 431) Component and component models (TB, 455 - 458) Managing people (TB, 602 - 603) COCOMO cost modelling (TB, 637 - 638) Estimation techniques (TB, 634) What is a project (TB, 595) Version management (TB, 691 - 693) Software standards (TB, 658) An overview of distributed systems (TB, 480) Risk management (TB, 599)