没有合适的资源?快使用搜索试试~ 我知道了~
首页第8版:软件工程经典与面向对象方法升级
第8版:软件工程经典与面向对象方法升级
需积分: 10 20 下载量 146 浏览量
更新于2024-07-19
1
收藏 3.07MB PDF 举报
《面向对象与经典软件工程》第八版是Stephen R. Schach撰写的一本深入浅出的教材,它在继承前七版严谨的组织结构和方法论的同时,对内容、习题和项目进行了重大更新和扩充,以适应单学期课程的教学需求。该书以案例研究贯穿始终,展示了软件工程的面向对象方法,旨在为学习者提供全面的软件工程基础,涵盖了传统和面向对象的技术。 本书分为两部分:Part A专注于软件工程的基本概念,包括软件生命周期模型、软件过程、团队协作、工具使用、测试、模块到对象的设计转变、以及重用性和可移植性等内容。这部分理论性强,为后续实践环节打下坚实基础。 Part B则深入探讨软件生命周期的工作流程,包括从需求分析到设计、实施、维护以及UML的应用,同时关注新兴技术的发展。新增章节有助于教师更好地组织教学,并使学生能够理解和掌握各个阶段的具体实践操作。 作者以清晰、易于理解的写作风格呈现复杂的概念,使得即使是对软件工程初学者来说,也能逐步掌握关键知识点。此外,第八版在版权和使用上有着严格的限制,确保了学术诚信和内容的完整传播。 《面向对象与经典软件工程》第八版是一本既兼顾理论深度又强调实践应用的权威教材,对于学习软件工程的学生和教师来说,无论是在课堂讲解还是自我学习中,都是不可或缺的资源。
资源详情
资源推荐
• The iterative-and-incremental life-cycle model has been introduced as early as possible, namely,
in Chapter 2. Furthermore, as with all previous editions, numerous other life-cycle models are
presented, compared, and contrasted. Particular attention is paid to agile processes.
• In Chapter 3 (“The Software Process”), the workfl ows (activities) and processes of the
Unifi ed Process are introduced, and the need for two-dimensional life-cycle models is
explained.
• A wide variety of ways of organizing software teams are presented in Chapter 4 (“Teams”),
including teams for agile processes and for open-source software development.
• Chapter 5 (“The Tools of the Trade”) includes information on important classes of
CASE tools.
• The importance of continual testing is stressed in Chapter 6 (“Testing”).
• Objects continue to be the focus of attention in Chapter 7 (“From Modules to Objects”).
• Design patterns remain a central focus of Chapter 8 (“Reusability and Portability”).
• The IEEE standard for software project management plans is again presented in
Chapter 9 (“Planning and Estimating”).
• Chapter 11 (“Requirements”), Chapter 13 (“Object-Oriented Analysis”), and Chapter 14
(“Design”) are largely devoted to the workfl ows (activities) of the Unifi ed Process. For
obvious reasons, Chapter 12 (“Classical Analysis”) is largely unchanged.
• The material in Chapter 15 (“Implementation”) clearly distinguishes between imple-
mentation and integration.
• The importance of postdelivery maintenance is stressed in Chapter 16.
• Chapter 17 provides additional material on UML to prepare the student thoroughly for
employment in the software industry. This chapter is of particular use to instructors who
utilize this book for the two-semester software engineering course sequence. In the second
semester, in addition to developing the team-based term project or a capstone project, the
student can acquire additional knowledge of UML, beyond what is needed for this book.
• As before, there are two running case studies. The MSG Foundation case study and the
Elevator Problem case study have been developed using the Unifi ed Process. As usual,
Java and C++ implementations are available online at www.mhhe.com/schach.
• In addition to the two running case studies that are used to illustrate the complete life
cycle, eight mini case studies highlight specifi c topics, such as the moving target prob-
lem, stepwise refi nement, design patterns, and postdelivery maintenance.
• In all the previous editions, I have stressed the importance of documentation, mainte-
nance, reuse, portability, testing, and CASE tools. In this edition, all these concepts are
stressed equally fi rmly. It is no use teaching students the latest ideas unless they appreci-
ate the importance of the basics of software engineering.
• As in the seventh edition, particular attention is paid to object-oriented life-cycle mod-
els, object-oriented analysis, object-oriented design, management implications of the
object-oriented paradigm, and the testing and maintenance of object-oriented software.
Metrics for the object-oriented paradigm also are included. In addition, many briefer
references are made to objects, a paragraph or even only a sentence in length. The reason
is that the object-oriented paradigm is not just concerned with how the various phases
are performed but rather permeates the way we think about software engineering. Object
technology again pervades this book.
Preface xv
sch76183_FM-i-xx.indd xvsch76183_FM-i-xx.indd xv 10/06/10 2:36 PM10/06/10 2:36 PM
• The software process is still the concept that underlies the book as a whole. To control the pro-
cess, we have to be able to measure what is happening to the project. Accordingly, the emphasis
on metrics continues. With regard to process improvement, the material on the capability matu-
rity model (CMM), ISO/IEC 15504 (SPICE), and ISO/IEC 12207 has been retained.
• The book is still language independent. The few code examples are presented in C++
and Java, and I have made every effort to smooth over language-dependent details and
ensure that the code examples are equally clear to C++ and Java users. For example,
instead of using cout for C++ output and System.out.println for Java output, I have
utilized the pseudocode instruction print . (The one exception is the new case study,
where complete implementation details are given in both C++ and Java, as before.)
• As in the seventh edition, this book contains over 600 references. I have selected current
research papers as well as classic articles and books whose message remains fresh and rel-
evant. There is no question that software engineering is a rapidly moving fi eld, and students
therefore need to know the latest results and where in the literature to fi nd them. At the same
time, today’s cutting-edge research is based on yesterday’s truths, and I see no reason to
exclude an older reference if its ideas are as applicable today as they originally were.
• With regard to prerequisites, it is assumed that the reader is familiar with a high-level
programming language such as C, C#, C++, or Java. In addition, the reader is expected
to have taken a course in data structures.
Why the Classical Paradigm Is Still Included
There is now almost unanimous agreement that the object-oriented paradigm is superior
to the classical paradigm. Accordingly, many instructors who adopted the seventh edition
of Object-Oriented and Classical Software Engineering chose to teach only the object-
oriented material in that book. However, when asked, instructors indicated that they prefer
to adopt a text that includes the classical paradigm.
The reason is that, even though more and more instructors teach only the object-oriented
paradigm, they still refer to the classical paradigm in class; many object-oriented techniques are
hard for the student to understand unless that student has some idea of the classical techniques
from which those object-oriented techniques are derived. For example, understanding entity-
class modeling is easier for the student who has been introduced, even superfi cially, to entity-
relationship modeling. Similarly, a brief introduction to fi nite state machines makes it easier for
the instructor to teach statecharts. Accordingly, I have retained classical material in the eighth
edition, so that instructors have classical material available for pedagogical purposes.
The Problem Sets
As in the seventh edition, this book has fi ve types of problems. First, there are running
object-oriented analysis and design projects at the end of Chapters 11, 13, and 14. These
have been included because the only way to learn how to perform the requirements, analy-
sis, and design workfl ows is from extensive hands-on experience.
Second, the end of each chapter contains a number of exercises intended to highlight key
points. These exercises are self-contained; the technical information for all the exercises
can be found in this book.
xvi Preface
sch76183_FM-i-xx.indd xvisch76183_FM-i-xx.indd xvi 10/06/10 2:36 PM10/06/10 2:36 PM
Third, there is a software term project. It is designed to be solved by students working
in teams of three, the smallest number of team members that cannot confer over a standard
telephone. The term project comprises 15 separate components, each tied to the relevant
chapter. For example, design is the topic of Chapter 14, so in that chapter the component of
the term project is concerned with software design. By breaking a large project into smaller,
well-defi ned pieces, the instructor can monitor the progress of the class more closely. The
structure of the term project is such that an instructor may freely apply the 15 components
to any other project that he or she chooses.
Because this book has been written for use by graduate students as well as upper-class
undergraduates, the fourth type of problem is based on research papers in the software
engineering literature. In each chapter, an important paper has been chosen; wherever pos-
sible, a paper related to object-oriented software engineering has been selected. The student
is asked to read the paper and answer a question relating to its contents. Of course, the
instructor is free to assign any other research paper; the For Further Reading section at the
end of each chapter includes a wide variety of relevant papers.
The fi fth type of problem relates to the case study. This type of problem was fi rst intro-
duced in the third edition in response to a number of instructors who felt that their students
learn more by modifying an existing product than by developing a new product from scratch.
Many senior software engineers in the industry agree with that viewpoint. Accordingly, each
chapter in which the case study is presented has problems that require the student to modify
the case study in some way. For example, in one chapter the student is asked to redesign the
case study using a different design technique from the one used for the case study. In another
chapter, the student is asked what the effect would have been of performing the steps of the
object-oriented analysis in a different order. To make it easy to modify the source code of the
case study, it is available on the Web at www.mhhe.com/schach.
The website also has material for instructors, including a complete set of PowerPoint
lecture notes and detailed solutions to all the exercises as well as to the term project.
Material on UML
This book makes substantial use of UML (Unifi ed Modeling Language). If the students do not
have previous knowledge of UML, this material may be taught in two ways. I prefer to teach
UML on a just-in-time basis; that is, each UML concept is introduced just before it is needed.
The following table describes where the UML constructs used in this book are introduced.
Section in Which the Corresponding
Construct UML Diagram Is Introduced
Class diagram, note, inheritance (generalization), Section 7.7
aggregation, association, navigation triangle
Use case Section 11.4.3
Use-case diagram, use-case description Section 11.7
Stereotype Section 13.1
Statechart Section 13.6
Interaction diagram (sequence diagram, Section 13.15
communication diagram)
Preface xvii
sch76183_FM-i-xx.indd xviisch76183_FM-i-xx.indd xvii 10/06/10 2:36 PM10/06/10 2:36 PM
Alternatively, Chapter 17 contains an introduction to UML, including material above and
beyond what is needed for this book. Chapter 17 may be taught at any time; it does not depend
on material in the fi rst 16 chapters. The topics covered in Chapter 17 are as follows:
Section in Which the Corresponding
Construct UML Diagram Is Introduced
Class diagram, aggregation, multiplicity, Section 17.2
composition, generalization, association
Note Section 17.3
Use-case diagram Section 17.4
Stereotype Section 17.5
Interaction diagram Section 17.6
Statechart Section 17.7
Activity diagram Section 17.8
Package Section 17.9
Component diagram Section 17.10
Deployment diagram Section 17.11
Online Resources
A website to accompany the text is available at www.mhhe.com/schach. The website
features Java and C++ implementations as well as source code for the MSG case study for
students. For instructors, lecture PowerPoints, detailed solutions to all exercises and the term
project, and an image library are available. For details, contact your sales representative.
Electronic Textbook Options
E-books are an innovative way for students to save money and create a greener environment
at the same time. An e-book can save students about half the cost of a traditional textbook
and offers unique features like a powerful search engine, highlighting, and the ability to
share notes with classmates using e-books.
McGraw-Hill offers this text as an e-book. To talk about the e-book options, contact your
McGraw-Hill sales representative or visit the site www.coursesmart.com to learn more.
Acknowledgments
I greatly appreciate the constructive criticisms and many helpful suggestions of the reviewers
of the seven previous editions. Special thanks go to the reviewers of this edition, including
xviii Preface
Ramzi Bualuan
University of Notre Dame
Ruth Dameron
University of Colorado, Boulder
Werner Krandick
Drexel University
Mike McCracken
Georgia Institute of Technology
Nenad Medvidovic
University of Southern California
Saeed Monemi
California Polytechnic University, Pomona
sch76183_FM-i-xx.indd xviiisch76183_FM-i-xx.indd xviii 10/06/10 2:36 PM10/06/10 2:36 PM
With regard to my publishers, McGraw-Hill, I am most grateful to copyeditor Kevin Camp-
bell and designer Brenda Rolwes. A special word of thanks goes to Melissa Welch of Studio
Montage, who transformed a photograph of Sydney Harbour Bridge at night into the stun-
ning cover.
Special thanks also go to Jean Naudé (Vaal University of Technology, Secunda Campus)
for co-authoring the Instructor’s Solution Manual. In particular, Jean provided a complete
solution for the term project, including implementing it in both Java and C++. In the course
of working on the ISM, Jean made numerous constructive suggestions for improving this
book. I am most grateful to Jean.
Finally, as always, I thank my wife, Sharon, for her continual support and encourage-
ment. As with all my previous books, I did my utmost to ensure that family commitments
took precedence over writing. However, when deadlines loomed, this was not always pos-
sible. At such times, Sharon always understood, and for this I am most grateful.
It is my privilege to dedicate my fi fteenth book to my grandchildren, Jackson and
Mikaela, with love.
Stephen R. Schach
Preface xix
Taehyung Wang
California State University, Northridge
Jie Wei
City University of New York—City College
Xiaojun Qi
Utah State University
sch76183_FM-i-xx.indd xixsch76183_FM-i-xx.indd xix 10/06/10 2:36 PM10/06/10 2:36 PM
剩余687页未读,继续阅读
ramissue
- 粉丝: 354
- 资源: 1487
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- zlib-1.2.12压缩包解析与技术要点
- 微信小程序滑动选项卡源码模版发布
- Unity虚拟人物唇同步插件Oculus Lipsync介绍
- Nginx 1.18.0版本WinSW自动安装与管理指南
- Java Swing和JDBC实现的ATM系统源码解析
- 掌握Spark Streaming与Maven集成的分布式大数据处理
- 深入学习推荐系统:教程、案例与项目实践
- Web开发者必备的取色工具软件介绍
- C语言实现李春葆数据结构实验程序
- 超市管理系统开发:asp+SQL Server 2005实战
- Redis伪集群搭建教程与实践
- 掌握网络活动细节:Wireshark v3.6.3网络嗅探工具详解
- 全面掌握美赛:建模、分析与编程实现教程
- Java图书馆系统完整项目源码及SQL文件解析
- PCtoLCD2002软件:高效图片和字符取模转换
- Java开发的体育赛事在线购票系统源码分析
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功