Amazon.com: Software Engineering (6th Edition) (9780201398151): Ian Sommerville: Books

Have one to sell? Sell yours here
Software Engineering (6th Edition)
 
 
Tell the Publisher!
I'd like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

Software Engineering (6th Edition) [Hardcover]

Ian Sommerville (Author)
3.6 out of 5 stars  See all reviews (19 customer reviews)


Available from these sellers.


Textbook Student FREE Two-Day Shipping for students on millions of items. Learn more

Formats

Amazon Price New from Used from
Hardcover --  
Paperback $74.95  
There is a newer edition of this item:
Software Engineering (9th Edition) Software Engineering (9th Edition) 2.9 out of 5 stars (9)
$108.99
In Stock.

Book Description

August 21, 2000 020139815X 978-0201398151 6
Software Engineering presents a broad perspective on software systems engineering, concentrating on widely-used techniques for developing large-scale software systems. This best-selling book covers a wide spectrum of software processes from initial requirements elicitation through design and development to system evolution. It supports students taking undergraduate and graduate courses in software engineering. The sixth edition has been restructured and updated, important new topics have been added and obsolete material has been cut. Reuse now focuses on component-based development and patterns; object-oriented design has a process focus and uses the UML; the chapters on requirements have been split to cover the requirements themselves and requirements engineering process; cost estimation has been updated to include the COCOMO 2 model.

Customers Who Bought This Item Also Bought


Editorial Reviews

Review

"The book is aimed at both students and practitioners of software engineering. For both, it is an excellent source of knowledge. Practitioners will find relevant chapters to update their knowledge or to get a clear explanation of particular topics." ACM Computing Reviews, on the 4th Edition. --This text refers to an out of print or unavailable edition of this title.

From the Inside Flap

Software systems are now ubiquitous. Virtually all electrical equipment now includes some kind of software; software is used to help run manufacturing industry, schools and universities, health care, finance and government; many people now use software of different kinds for entertainment and education. The specification, development, management and evolution of these software systems make up the discipline of software engineering. Even simple software systems have a high inherent complexity so engineering principles have to be used in their development. Software engineering is therefore an engineering discipline where software engineers use methods and theory from computer science and apply this cost-effectively to solve difficult problems. These difficult problems have meant that many software development projects have not been successful. However, most modern software provides good service to its users; we should not let high-profile failures obscure the real successes of software engineers over the past 30 years. Books inevitably reflect the opinions and prejudices of their authors. Some readers will inevitably disagree with my opinions and with the choice of material which I include. Such disagreement is a healthy reflection of the diversity of the discipline and is essential for its evolution. Nevertheless, I hope that all software engineers and software engineering students can find something of interest here. Although the book is intended as a general introduction to software engineering, it is biased, to some extent, towards my own interests in system requirements engineering and critical systems. I think these are particularly important for software engineering in the 21st century where the challenge we face is to ensure that our software meets the real needs of its users without causing damage to them or to the environment. I dislike zealots of any kind, whether they are academics preaching the benefits of formal methods or salesmen trying to convince me that some tool or method is the answer to software development problems. There are no simple solutions to the problems of software engineering and we need a wide spectrum of tools and techniques to solve software engineering problems. I therefore don't describe commercial design methods or CASE systems but paint a broad picture of software engineering methods and tools. Software engineering research has made tremendous strides over the past 15 years but there has been a relatively slow diffusion of this research into industrial practice. The principal challenge which we now face is not the development of new techniques and methods but the transfer of advanced software engineering research into everyday use. I see this book as a contributor to this process. I therefore discuss some techniques, such as viewpoints for requirements engineering, which are reasonably well developed but which are not yet widely used in industry. Finally, it is impossible to over-emphasize the importance of people in the software engineering process. People specify, design and implement systems which help other people with their work. Most of the difficulties of very large system engineering are not technical problems but are the problems of managing large numbers of people with diverse priorities, abilities and interests. Software engineering techniques and tools are only effective when applied in a context which respects these different skills and abilities. Changes from the fourth edition Like many software systems, this book has grown and changed since its first edition was published in 1982. This latest edition started as a relatively minor update of the fourth edition but, in the course of writing the book, I decided that more significant revision and re-engineering was necessary. Although much of the material in the fourth edition has been retained, the following changes have been made: There are five completely new chapters covering computer-based system engineering, requirements analysis, architectural design, process improvement and software re-engineering. The book has been restructured into eight parts covering an introduction to software engineering, requirements and specification, design, dependable systems development, verification and validation, CASE, management, and software evolution. There have been radical revisions of the material on requirements engineering, object-oriented and functional design, and CASE. Project management is introduced in the first part of the book then covered in more detail in a separate section which incorporates previous material on human factors. There is more emphasis on quality management.

In previous editions, I have presented program examples in Ada as I consider this an excellent language for large-scale software engineering. However, Ada has not become as widely used as was once predicted. C or C++ are the programming languages of choice for most personal computer and workstation applications. Because of this wide use, I have included C++ as well as Ada versions of most of the program examples in the book. For safety-critical systems, however, I think it unwise to use a language which includes potentially unsafe constructs. Those examples are, therefore, only presented in Ada. I considered for a long time whether it would be appropriate to include a new chapter on professional and ethical issues. I decided not to do so because the topic is so subjective that it is difficult to present in a balanced way in a single chapter. There are no absolutes in this area and it is best addressed in an interactive context rather than as a chapter of a book. However, I have included a brief discussion of these issues in the introduction to the book. I have also included possible ethical and professional topics for discussion as exercises in many chapters. Links to WWW pages on this topic are included in the Web page whose URL is given below. The further reading associated with each chapter has been updated from previous editions. However, in many cases, articles written in the 1980s are still the best introduction to some topics. As new articles which are useful become available, I will include them on the Web page. The author index in previous editions has been removed. Rather, each entry in the References section includes the page numbers where it has been referenced. Readership The book is aimed at students in undergraduate and graduate courses and at software engineers in commerce and industry. It may be used in general software engineering courses or in courses such as advanced programming, software specification, software design or management. Practitioners may find the book useful as general reading and as a means of updating their knowledge on particular topics such as requirements engineering, architectural design, dependable systems development and process improvement. Wherever practicable, the examples in the text have been given a practical bias to reflect the type of applications which software engineers must develop. I assume that readers have a basic familiarity with programming and modern computer systems. Some examples rely on knowledge of basic data structures such as stacks, lists and queues. The chapters on formal specification assume knowledge of very elementary set theory. No other mathematical background is required. Using the book as a course text There are three main types of software engineering courses where this book can be used: General introductory courses in software engineering. For students who have no previous software engineering experience, you can start with the introductory section then pick and choose the introductory chapters from the different sections of the book. This will give students a general overview of the subject with the opportunity of more detailed study for those students who are interested. Introductory or intermediate courses on specific topics in software engineering such as software specification, design or dependable systems development. Each of the parts in the book can serve as a text in its own right for an introductory or intermediate course on that topic. More advanced courses in specific software engineering topics. In this case, the chapters in the book form a foundation for the course which must be supplemented with further reading which explores the topic in more detail. All chapters include my suggestions for further reading.

The benefit of a general text like this is that it can be used in several different related courses. At Lancaster, we use the text in an introductory software engineering course, in courses on specification, design and critical systems and in a software management course where it is supplemented with further reading. With a single text, students are presented with a consistent view of the subject. They also like the extensive coverage because they don't have to buy several different books. This book covers all suggested material in Units SE2 to SE5 in the ACM/IEEE 1991 Curriculum. It also includes material to supplement an introductory programming text which would normally cover Unit SE1 and all material in the suggested course entitled 'Advanced Software Engineering'. Supplements The following supplements are available: An instructor's guide including hints on teaching the material in each chapter, class and term project suggestions, and solutions to some of the exercises. This is available in Postscript or on paper from Addison-Wesley. A set of overhead projector transparencies for each chapter. These are available in Postscript and in Microsoft Powerpoint format. Source code for most of the individual program examples including supplementary code required for compilation. An introduction to the Ada programming language. Information on course presentation using electronically mediated communication and links to material for that approach to teaching. ac.uk/computing/resources/ser/ This page also includes links to other software engineering resources which you may find useful. If you have any problems, you can contact me by E-mail (is@comp.lancs.ac.uk). Acknowledgements I am indebted to a number of reviewers who provided helpful and constructive criticism of early drafts of this book. Many thanks to Leonora Barocca of the Open University, Stewart Green of the University of the West of England, Andrew McGettrick of the University of Strathclyde, Philip Morrow of the University of Ulster and Ray Welland of the University of Glasgow. Thanks also to Rodney L. Bown, University of Houston-Clear Lake, Charles P. Howerton, Metropolitan State College of Denver, Josephine DeGuzman Mendoza of California State University, San Bernardino and David C. Rine of George Mason University. Thanks also to all users of previous editions who have provided me with comments and constructive criticism and to my colleagues in the Cooperative Systems Engineering Group and Lancaster University. Finally, a big thank-you to my wife Anne and daughters, Ali and Jay. They have provided coffee, encouragement and occasional inspiration during the long hours I spent writing this book. Ian Sommerville August 1995 --This text refers to an out of print or unavailable edition of this title.


Product Details

  • Hardcover: 720 pages
  • Publisher: Addison Wesley; 6 edition (August 21, 2000)
  • Language: English
  • ISBN-10: 020139815X
  • ISBN-13: 978-0201398151
  • Product Dimensions: 9.4 x 7.4 x 1.6 inches
  • Shipping Weight: 3 pounds
  • Average Customer Review: 3.6 out of 5 stars  See all reviews (19 customer reviews)
  • Amazon Best Sellers Rank: #1,420,073 in Books (See Top 100 in Books)

More About the Author

Discover books, learn about writers, read author blogs, and more.

 

Customer Reviews

19 Reviews
5 star:
 (5)
4 star:
 (7)
3 star:
 (2)
2 star:
 (4)
1 star:
 (1)
 
 
 
 
 
Average Customer Review
3.6 out of 5 stars (19 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

9 of 9 people found the following review helpful:
5.0 out of 5 stars Excellent text for an introduction to Software Engineering., June 12, 1999
By A Customer
Sommerville gives a keen view of the entire breath of this broad topic. His text is filled with easy to understand illustrations and chapter summaries. The examples are end-to-end because he provides the needed preliminaries (concepts and foundations) to understand the results. His treatment of requirements engineering and formal specification methods is quite good. In addition to the key points (of each chapter) he provides pointers to other resources on each subtopic. I find this text better for use in the classroom than the other leading text (which I use as a reference) because Sommerville's presentation provides a more logical flow and organization (i.e., its easier to read). I used the slides that are available (.ppt) from his web site to supplement my lectures.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


8 of 8 people found the following review helpful:
5.0 out of 5 stars It reads well, October 1, 1999
By A Customer
I checked several books on Software Engineering but this one was the only one readable by an ordinary human being. I was in for a nice surprise because it has a support page on the web (see "preface") and you can download an updated chapter with recent stuff and examples in Java. At least someone cares to keep up with new things such as UML. I'd give this book 4.5 stars, but someone else says they gave it 4 instead of 4.5, so I'll give it 5.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


7 of 7 people found the following review helpful:
4.0 out of 5 stars Great text book, October 13, 2000
This review is from: Software Engineering (6th Edition) (Hardcover)
Sommerville has updated his classic textbook. We are using it for part of a Master in Software Engineering program. While you won't get detail on any one topic, you will find a very current (java, UML, distributed arch) review of many SE topics. Supposedly a big improvement over the last version. Clear, good examples, and reccomended readings that get you to key articles in the literature. The only reason I didn't give it 5 stars is that I reserve that for pure classics. It is hard to get a textbook into that category.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews











Only search this product's reviews



Inside This Book (learn more)
Browse and search another edition of this book.
Browse Sample Pages:
Front Cover | Table of Contents | First Pages | Back Cover | Surprise Me!
Search Inside This Book:

What Other Items Do Customers Buy After Viewing This Item?


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 

Your tags: Add your first tag
 

Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Customer Discussions

This product's forum
Discussion Replies Latest Post
No discussions yet

Ask questions, Share opinions, Gain insight
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
Search all Amazon discussions
   
Related forums


Listmania!

Create a Listmania! list



Look for Similar Items by Category


Look for Similar Items by Subject