As a software project manager in a company that specializes in the development of software for company X, you have been given the task of discovering the factors that affect the maintainability of the systems developed by your company. Suggest how you might set up a program to analyze the maintenance process and determine appropriate maintainability metrics for the company in 3 - 4 pages about 900 to 1,200 words in length. The title and references pages do not count in the length of the paper.
· The LIRN has recent full text peer-reviewed articles suitable for your research
· Use the 7th edition APA style guidelines and follow the instructions
· All papers are to consist of original composition, double spaced, 12 type font in Times New Roman.
· Consider sending the paper to the Writing Center XXXXXXXXXX and revise your paper to include their suggested revisions
· Check the Title and References pages
· Research includes at least 6 peer reviewed articles from scholarly sources
· Use additional research sources
· Use the textbook as a reference
· Use the DOI if there is one. Avoid the use of ProQuest or JSTOR links. Instead use the DOI or a direct link to the article
· Do not use a question and answer format
· For each listed source, include at least 1 in-text citation in the body of the paper
Software Engineering Tenth Edition Global Edition
GlobAl
EdiTioN
Software Engineering
TENTH EdiTioN
ian Sommerville
Software engineering
tenth edition
Ian Sommerville
Boston Columbus Indianapolis New York San Francisco Hoboken
Amsterdam Cape Town Dubai London Madrid Milan Munich Paris Montreal Toronto
Delhi Mexico City São Paulo Sydney Hong Kong Seoul Singapore Taipei Tokyo
Editorial Director: Marcia Horton
Editor in Chief: Michael Hirsch
Acquisitions Editor: Matt Goldstein
Editorial Assistant: Chelsea Bell
Assistant Acquisitions Editor, Global
Edition: Murchana Borthaku
Associate Project Editor, Global
Edition: Binita Roy
Managing Editor: Jeff Holcom
Senior Production Project
Manager: Marilyn Lloyd
Director of Marketing: Margaret Waples
Marketing Coordinator: Kathryn Fe
anti
Senior Manufacturing Buyer: Carol Melville
Senior Manufacturing Controller, Production,
Global Edition: Trudy Kimbe
Text Designer: Susan Raymond
Cover Art Designer: Lumina Datamatics
Cover Image: © Andrey Bayda/Shutterstock
Interior Chapter Opener: © graficart.net/Alamy
Full-Service Project Management: Rashmi
Tickyani, Aptara®, Inc.
Composition and Illustrations: Aptara®, Inc.
Pearson Education Limited
Edinburgh Gate
Harlow
Essex CM20 2JE
England
and Associated Companies throughout the world
Visit us on the World Wide Web at:
www.pearsonglobaleditions.com
© Pearson Education Limited 2016
The rights of Ian Sommerville to be identified as the author of this work have been asserted by him in
accordance with the Copyright, Designs and Patents Act 1988.
Authorized adaptation from the United States edition, entitled Software Engineering, 10th edition, ISBN
XXXXXXXXXX, by Ian Sommerville, published by Pearson Education © 2016.
All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or
transmitted in any form or by any means, electronic, mechanical, photocopying, recording or otherwise,
without either the prior written permission of the publisher or a license permitting restricted copying in
the United Kingdom issued by the Copyright Licensing Agency Ltd, Saffron House, 6–10 Ki
y Street,
London EC1N 8TS.
All trademarks used herein are the property of their respective owners. The use of any trademark in this
text does not vest in the author or publisher any trademark ownership rights in such trademarks, nor does
the use of such trademarks imply any affiliation with or endorsement of this book by such owners.
ISBN 10: XXXXXXXXXX
ISBN 13: XXXXXXXXXX
British Li
ary Cataloguing-in-Publication Data
A catalogue record for this book is available from the British Li
ary
XXXXXXXXXX
Typeset in 9 New Aster LT Std by Aptara®, Inc.
Printed and bound by Courier Westford in the United States of America.
http:
www.pearsonglobaleditions.com
Progress in software engineering over the last 50 years has been astonishing. Our
societies could not function without large professional software systems. National
utilities and infrastructure—energy, communications and transport—all rely on
complex and mostly reliable computer systems. Software has allowed us to explore
space and to create the World Wide Web—the most significant information system
in the history of mankind. Smartphones and tablets are ubiquitous and an entire ‘apps
industry’ developing software for these devices has emerged in the past few years.
Humanity is now facing a demanding set of challenges—climate change and
extreme weather, declining natural resources, an increasing world population to be fed
and housed, international te
orism, and the need to help elderly people lead satisfying
and fulfilled lives. We need new technologies to help us address these challenges and,
for sure, software will have a central role in these technologies. Software engineering
is, therefore, critically important for our future on this planet. We have to continue to
educate software engineers and develop the discipline so that we meet the demand for
more software and create the increasingly complex future systems that we need.
Of course, there are still problems with software projects. Systems are still some-
times delivered late and cost more than expected. We are creating increasingly com-
plex software systems of systems and we should not be surprised that we encounter
difficulties along the way. However, we should not let these problems conceal the
eal successes in software engineering and the impressive software engineering
methods and technologies that have been developed.
This book, in different editions, has now been around for over 30 years and this edi-
tion is based around the essential principles that were established in the first edition:
1. I write about software engineering as it is practiced in industry, without taking
an evangelical position on particular approaches such as agile development or
formal methods. In reality, industry mixes techniques such as agile and plan-
ased development and this is reflected in the book.
Preface
4 Preface
2. I write about what I know and understand. I have had many suggestions for
additional topics that might be covered in more detail such as open source
development, the use of the UML and mobile software engineering. But I don’t
eally know enough about these areas. My own work has been in system depend-
ability and in systems engineering and this is reflected in my selection of
advanced topics for the book.
I believe that the key issues for modern software engineering are managing com-
plexity, integrating agility with other methods and ensuring that our systems are
secure and resilient. These issues have been the driver for the changes and additions
in this new edition of my book.
Changes from the 9th edition
In summary, the major updates and additions in this book from the 9th edition are:
• I have extensively updated the chapter on agile software engineering, with new
material on Scrum. I have updated other chapters as required to reflect the increas-
ing use of agile methods of software engineering.
• I have added new chapters on resilience engineering, systems engineering, and
systems of systems.
• I have completely reorganized three chapters covering reliability, safety, and security.
• I have added new material on RESTful services to the chapter covering service-
oriented software engineering.
• I have revised and updated the chapter on configuration management with new
material on distributed version control systems.
• I have moved chapters on aspect-oriented software engineering and process
improvement from the print version of the book to the web site.
• New supplementary material has been added to the web site, including a set of
supporting videos. I have explained key topics on video and recommended related
YouTube videos.
The 4-part structure of the book, introduced in earlier editions, has been retained
ut I have made significant changes in each part of the book.
1. In Part 1, Introduction to software engineering, I have completely rewritten
Chapter 3 (agile methods) and updated this to reflect the increasing use of Scrum.
A new case study on a digital learning environment has been added to Chapter 1
and is used in a number of chapters. Legacy systems are covered in more detail
in Chapter 9. Minor changes and updates have been made to all other chapters.
Preface 5
2. Part 2, which covers dependable systems, has been revised and restructured.
Rather than an activity-oriented approach where information on safety, security
and reliability is spread over several chapters, I have reorganized this so that
each topic has a chapter in its own right. This makes it easier to cover a single
topic, such as security, as part of a more general course. I have added a com-
pletely new chapter on resilience engineering which covers cybersecurity,
organizational resilience, and resilient systems design.
3. In Part 3, I have added new chapters on systems engineering and systems of
systems and have extensively revised the material on service-oriented systems
engineering to reflect the increasing use of RESTful services. The chapter on
aspect-oriented software engineering has been deleted from the print version but
emains available as a web chapter.
4. In Part 4, I have updated the material on configuration management to reflect
the increasing use of distributed version control tools such as Git. The chapter
on process improvement has been deleted from the print version but remains
available as a web chapter.
An important change in the supplementary material for the book is the addition of
video recommendations in all chapters. I have made over 40 videos on a range of topics
that are available on my YouTube channel and linked from the book’s web pages. In cases
where I have not made videos, I have recommended YouTube videos that may be useful.
I explain the rationale behind the changes that I’ve made in this short video:
http:
software-engineering-book/videos/10th-edition-changes
Readership
The book is primarily aimed at university and college students taking introductory
and advanced courses in software and systems engineering. I assume that readers
understand the basics of programming and fundamental data structures.
Software engineers in industry may find the book useful as general reading and to
update their knowledge on topics such as software reuse, architectural design,
dependability and security and systems engineering.
Using the book in software engineering courses
I have designed the book so that it can be used in three different types of software
engineering course:
1. General introductory courses in software engineering. The first part of the book
has been designed to support a 1-semester course in introductory software engi-
neering. There are 9 chapters that cover fundamental topics in software engineering.
http:
software-engineering-book/videos/10th-edition-changes
If your course has a practical component, management chapters in Part 4 may be
substituted for some of these.
2. Introductory or intermediate courses on specific software engineering topics.
You can create a range of more advanced courses using the chapters in parts
2–4. For example, I have taught a course in critical systems using the chapters in
Part 2 plus chapters