Software Engineering 10e (Global Edition) By Ian Sommerville (Solutions Manual All Chapters, 100% Original Verified, A+ Grade) 1 / 4
- Software Engineering 10e, Global Edition – Solutions Manual
- Introduction
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?The essential difference is that in generic software product development, the specification is owned by the product developer. For custom product development, the specification is owned and controlled by the customer. The implications of this are significant – the developer can quickly decide to change the specification in response to some external change (e.g. a competing product) but, when the customer owns the specification, changes have to be negotiated between the customer and the developer and may have contractual implications.For users of generic products, this means they have no control over the software specification so cannot control the evolution of the product. The developer may decide to include/exclude features and change the user interface. This could have implications for the user’s business processes and add extra training costs when new versions of the system are installed. It also may limit the customer’s flexibility to change their own business processes.
1.3 Briefly discuss why it is usually cheaper in the long run to use software engineering methods and techniques for software systems .The majority of the costs involved in the life cycle of a product since its inception until it is decommissioned are in changing the software after it has been put to use. Using software engineering methods can facilitate and reduce the cost of product maintenance .
. 2 / 4
Software Engineering 10e, Global Edition – Solutions Manual 5
1.4 Software engineering is not only concerned with issues like system heterogeneity, business and social change, trust, and security, but also with ethical issues affecting the domain. Give some examples of ethical issues that have an impact on this domain .
Like any other engineering discipline, many ethical issues affect this domain. These include issues of
:
[a.] customer confidentiality, [b.] not accepting work that is outside an engineer’s competence, [c.] responsibility to create systems that do not harm their consumers, [d.] responsibility towards the preservation of customs and norms in society, [e.] not misusing other people’s computers, as well as [f.] intellectual property.
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.
Different application types require the use of different development techniques for
a number of reasons:
- Costs and frequency of change. Some systems (such as embedded systems
in consumer devices) are extremely expensive to change; others, must change frequently in response to changing requirements (e.g. business systems). Systems which are very expensive to change need extensive up- front analysis to ensure that the requirements are consistent and extensive validation to ensure that the system meets its specification. This is not cost- effective for systems that change very rapidly.
- The most important ‘non-functional’ requirements. Different systems have
different priorities for non-functional requirements. For example, a real-time
. 3 / 4
- Software Engineering 10e, Global Edition – Solutions Manual
control system in an aircraft has safety as its principal priority; an interactive game has responsiveness and usability as its priority. The techniques used to achieve safety are not required for interactive gaming; the extensive UI design required for games is not needed in safety-critical control systems.
- The software lifetime and delivery schedule. Some software systems have a
relatively short lifetime (many web-based systems), others have a lifetime of tens of years (large command and control systems). Some systems have to be delivered quickly if they are to be useful. The techniques used to develop short-lifetime, rapid delivery systems (e.g. use of scripting languages, prototyping, etc.) are inappropriate for long-lifetime systems which require techniques that allow for long-term support such as design modelling.
1.8 Noncertified individuals are still allowed to practice software engineering.Discuss some of the possible drawbacks of this.
Like any other engineering discipline, there are many responsibilities in the domain that go beyond the application of technical skills. All such skills must be assessed and controlled. Noncertified individuals may lack the necessary technical, societal, legal, and ethical skills to understand the implication of the systems they are building.
.
- / 4