1. Exercise 1.2: What is the most important difference between generic software product development and custom software development? What might this mean in practice for users of generic software products
Answer: Generic software product are the stand alone systems that are produced by a development organization and sold on the open market to any customer who is able to buy them. Examples of this type of product include software for PCs Such as databases, word processors, drawing packages, and project management tools. It also includes vertical applications designed for some specific purpose such as library information systems, accounting systems, or systems for maintaining dental records.
Customized (or …show more content…
Efficiency: Software should not make wasteful use of system resources such as memory and processor cycles. Efficiency therefore includes responsiveness, processing time, memory utilization, etc.
Acceptability: Software must be acceptable to the type of users for which it is designed. This means that it must be understandable, usable, and compatible with other systems that they use.
Four other attributes that may sometimes be significant include:
Reusability: Software code can be reused in other systems
Distributable/Portable: Software can be distributable over a network, or it can be operable on multiple platforms
Inter-operable: It should have the Ability to integrate with other software systems
Security: Software should be secure enough so that the code/characteristics and/or data that the software supports should not be compromised
3. Exercise 1.5: Based on your own knowledge of some of the application types discussed in section 1.1.2, explain, with examples, why different application types require specialized software engineering techniques to support their design and development.
Answer: If we develop a game for a mobile (cell) phone, we have to take into account the same constraints (power, hardware interaction) as the developers of the phone software. Batch processing systems are often used in conjunction with web-based systems. For example, in a company, travel expense claims may be submitted