-
内容大纲
本书是软件工程领域的经典著作,自第1版出版至今,近40年来在软件工程界产生了巨大而深远的影响。第9版在继承之前版本风格与优势的基础上,不仅更新了全书内容,而且优化了篇章结构。本书共四个部分,涵盖软件过程、建模、质量与安全、软件项目管理等主题,对概念、原则、方法和工具的介绍细致、清晰且实用。此外,书中还提供了丰富的扩展阅读资源和网络资源。
本版基于原书第9版进行改编,保留基本的软件工程知识体系,删除面向研究生的高级话题、面向专门化的软件开发实践的内容、面向软件行业高级工程人员的参考内容、其他课程中应包含的知识和内容,从而更加适合作为高等院校计算机、软件工程及相关专业本科生的软件工程课程教材。 -
作者介绍
-
目录
改编者序
Preface
Aboout the authors
CHAPTER 1 SOFTWARE AND SOFTWARE ENGINEERING
1.1 The Nature of Software
1.1.1 Defining Software
1.1.2 Software Application Domains
1.1.3 Legacy Software
1.2 Defining the Discipline
1.3 The Software Process
1.3.1 The Process Framework
1.3.2 Umbrella Activities
1.3.3 Process Adaptation
1.4 Software Engineering Practice
1.4.1 The Essence of Practice
1.4.2 General Principles
1.5 How It All Starts
1.6 Summary
PART ONE THE SOFTWARE PROCESS
CHAPTER 2 PROCESS MODELS
2.1 A Generic Process Model
2.2 Defining a Framework Activity
2.3 Identifying a Task Set
2.4 Prescriptive Process Models
2.4.1 The Waterfall Model
2.4.2 Prototyping Process Model
2.4.3 Evolutionary Process Model
2.4.4 Unified Process Model
2.5 Product and Process
2.6 Summary
CHAPTER 3 AGILITY AND PROCESS
3.1 What Is Agility
3.2 Agility and the Cost of Change
3.3 What Is an Agile Process
3.3.1 Agility Principles
3.3.2 The Politics of Agile Development
3.4 Scrum
3.4.1 Scrum Teams and Artifacts
3.4.2 Sprint Planning Meeting
3.4.3 Daily Scrum Meeting
3.4.4 Sprint Review Meeting
3.4.5 Sprint Retrospective
3.5 Other Agile Frameworks
3.5.1 The XP Framework
3.5.2 Kanban
3.5.3 DevOps
3.6 Summary
CHAPTER 4 RECOMMENDED PROCESS MODEL
4.1 Requirements Definition
4.2 Preliminary Architectural Design
4.3 Resource Estimation
4.4 First Prototype Construction
4.5 Prototype Evaluation
4.6 Go, -Go Decision
4.7 Prototype Evolution
4.7.1 New Prototype Scope
4.7.2 Constructing New Prototypes
4.7.3 Testing New Prototypes
4.8 Prototype Release
4.9 Maintain Release Software
4.10 Summary
CHAPTER 5 HUMAN ASPECTS OF SOFTWARE ENGINEERING
5.1 Characteristics of a Software Engineer
5.2 The Psychology of Software Engineering
5.3 The Software Team
5.4 Team Structures
5.5 The Impact of Social Media
5.6 Global Teams
5.7 Summary
PART TWO MODELING
CHAPTER 6 UNDERSTANDING REQUIREMENTS
6.1 Requirements Engineering
6.1.1 Inception
6.1.2 Elicitation
6.1.3 Elaboration
6.1.4 Negotiation
6.1.5 Specification
6.1.6 Validation
6.1.7 Requirements Management
6.2 Establishing the Groundwork
6.2.1 Identifying Stakeholders
6.2.2 Recognizing Multiple Viewpoints
6.2.3 Working Toward Collaboration
6.2.4 Asking the First Questions
6.2.5 nfunctional Requirements
6.2.6 Traceability
CHAPTER 7 REQUIREMENTS MODELING—A RECOMMENDED APPROACH
7.1 Requirements Analysis
7.1.1 Overall Objectives and Philosophy
7.1.2 Analysis Rules of Thumb
7.1.3 Requirements Modeling Principles
7.2 Scenario-Based Modeling
7.2.1 Actors and User Profiles
7.2.2 Creating Use Cases
7.2.3 Documenting Use Cases
7.3 Class-Based Modeling
7.3.1 Identifying Analysis Classes
7.3.2 Defining Attributes and Operations
7.3.3 UML Class Models
7.3.4 Class-Responsibility-Collaborator Modeling
7.4 Functional Modeling
7.4.1 A Procedural View
7.4.2 UML Sequence Diagrams
7.5 Behavioral Modeling
7.5.1 Identifying Events with the Use Case
7.5.2 UML State Diagrams
7.5.3 UML Activity Diagrams
7.6 Summary
HAPTER 8 DESIGN CONCEPTS
8.1 Design Within the Contet of Software Engineering
8.2 The Design Process
8.2.1 Software Quality Guidelines and Attributes
8.2.2 The Evolution of Software Design
8.3 Design Concepts
8.3.1 Abstraction
8.3.2 Architecture
8.3.3 Patterns
8.3.4 Separation of Concerns
8.3.5 Modularity
8.3.6 Information Hiding
8.3.7 Functional Independence
8.3.8 Stepwise Renement
8.3.9 Refactoring
8.3.10 Design Classes
8.4 The Design Model
8.4.1 Design Modeling Principles
8.4.2 Data Design Elements
8.4.3 Architectural Design Elements
8.4.4 Interface Design Elements
8.4.5 Component-Level Design Elements
8.4.6 Deployment-Level Design Elements
8.5 Summary
CHAPTER 9 ARCHITECTURAL DESIGN—A RECOMMENDED APPROACH
9.1 Software Architecture
9.1.1 What Is Architecture
9.1.2 Why Is Architecture Important
9.1.3 Architectural Descriptions
9.1.4 Architectural Decisions
9.2 Agility and Architecture
9.3 Architectural Styles
9.3.1 A Brief Taomy of Architectural Styles
9.3.2 Architectural Patterns
9.3.3 Organization and Refinement
9.4 Architectural Considerations
9.5 Architectural Decisions
9.6 Architectural Design
9.6.1 Representing the System in Contet
9.6.2 Dening Archetypes
9.6.3 Rening the Architecture into Components
9.6.4 Describing Instantiations of the System
9.7 Assessing Alternative Architectural Designs
9.7.1 Architectural Reviews
9.7.2 Pattern-Based Architecture Review
9.7.3 Architecture Conformance Checking
9.8 Summary
CHAPTER 10 COMPONENT-LEVEL DESIGN
10.1 What Is a Component
10.1.1 An Object-Oriented View
10.1.2 The Traditional View
10.1.3 A Process-Related View
10.2 Designing Class-Based Components
10.2.1 Basic Design Principles
10.2.2 Component-Level Design Guidelines
10.2.3 Cohesion
10.2.4 Coupling
10.3 Conducting Component-Level Design
10.4 Specialized Component-Level Design
10.5 Component Refactoring
10.6 Summary
CHAPTER 11 USER EXPERIENCE DESIGN
11.1 User Eperience Design Elements
11.1.1 Information Architecture
11.1.2 User Interaction Design
11.1.3 Usability Engineering
11.1.4 Visual Design
PART THREE QUALITY AND SECURITY
CHAPTER 12 QUALITY CONCEPTS
12.1 What Is Quality
12.2 Software Quality
12.2.1 Quality Factors
12.2.2 Qualitative Quality Assessment
12.2.3 Quantitative Quality Assessment
12.3 The Software Quality Dilemma
12.3.1 “Good Eugh” Software
12.3.2 The Cost of Quality 24912.3.3 Risks
12.3.4 Negligence and Liability
12.3.5 The Impact of Management Actions
12.4 Achieving Software Quality
12.4.1 Software Engineering Methods
12.4.2 Project Management Techniques
12.4.3 Quality Control
12.4.4 Quality Assurance
12.5 Summary
CAPTER 13 REVIEWS—A RECOMMENDED APPROACH
13.1 Cost Impact of Software Defects
13.2 Defect Amplication and Removal
13.3 Review Metrics and Their Use
13.4 Criteria for Types of Reviews
13.5 Informal Reviews
13.6 Formal Technical Reviews
13.6.1 The Review Meeting
13.6.2 Review Reporting and Record Keeping
13.6.3 Review Guidelines
13.7 Postmortem Evaluations
13.8 Agile Reviews
13.9 Summary
CHAPTER 14 SOFTWARE QUALITY ASSURANCE
14.1 Background Issues
14.2 Elements of Software Quality Assurance
14.3 SQA Processes and Product Characteristics
14.4 SQA Tasks, Goals, and Metrics
14.4.1 SQA Tasks
14.4.2 Goals, Attributes, and Metrics
14.5 27914.5.1 A Generic Eample
14.5.2 Si Sigma for Software Engineering
14.6 The ISO 9000 Quality Standards
14.7 The SQA Plan
14.8 Summary
CHAPTER 15 SOFTWARE TESTING—COMPONENT LEVEL
15.1 A Strategic Approach to Software Testing
15.1.1 Verication and Validation
15.1.2 Organizing for Software Testing
15.1.3 The Big Picture
15.1.4 Criteria for “Done”
15.2 Planning and Recordkeeping
15.2.1 Role of Scaolding
15.2.2 Cost-Eective Testing
15.3 Test-Case Design
15.3.1 Requirements and Use Cases
15.3.2 Traceability
15.4 White-Bo Testing
15.4.1 Basis Path Testing
15.4.2 Control Structure Testing
15.5 300Black-Bo Testing
15.5.1 Interface Testing
15.5.2 Equivalence Partitioning
15.5.3 Boundary Value Analysis
15.6 Object-Oriented Testing
15.6.1 Class Testing
15.6.2 Behavioral Testing
15.7 Summary
CHAPTER 16 SOFTWARE TESTING—INTEGRATION LEVEL
16.1 Software Testing Fundamentals
16.1.1 Black-Bo Testing
16.1.2 White-Bo Testing
16.2 Integration Testing
16.2.1 Top-Down Integration
16.2.2 Bottom-Up Integration
16.2.3 Continuous Integration
16.2.4 Integration Test Work Products
16.3 Artificial Intelligence and Regression Testing
16.4 Integration Testing in the OO Contet
16.4.1 Fault-Based Test-Case Design
16.4.2 Scenario-Based Test-Case Design
16.5 Validation Testing
16.6 Summary
CHAPTER 17 SOFTWARE CONFIGURATION MANAGEMENT
17.1 Software Conguration Management
17.1.1 An SCM Scenario
17.1.2 Elements of a Conguration Management System
17.1.3 Baselines
17.1.4 Software Conguration Items
17.1.5 Management of Dependencies and Changes
17.2 The SCM Repository
17.2.1 General Features and Content
17.2.2 SCM Features
17.3 Version Control Systems
17.4 Continuous Integration
17.5 The Change Management Process
17.5.1 Change Control
17.5.2 Impact Management
17.5.3 Conguration Audit
17.5.4 Status Reporting
17.6 Summary
HAPTER 18 SOFTWARE METRICS AND ANALYTICS
18.1 Software Measurement
18.1.1 Measures, Metrics, and Indicators
18.1.2 Attributes of Eective Software Metrics
18.2 Software Analytics
18.3 Product Metrics
18.3.1 Metrics for the Requirements Model
18.3.2 Design Metrics for Conventional Software
18.3.3 Design Metrics for Object-Oriented Software
18.3.4 User Interface Design Metrics
18.3.5 Metrics for Source Code
18.4 Process and Project Metrics
18.5 Software Metrics
18.6 Metrics for Software Quality
18.7 Summary
PART FOUR MANAGING SOFTWARE PROJECTS
CHAPTER 19 PROJECT MANAGEMENT CONCEPTS
19.1 The Management Spectrum
19.1.1 The People
19.1.2 The Product
19.1.3 The Process
19.1.4 The Project
19.2 People
19.2.1 The Stakeholders
19.2.2 Team Leaders
19.2.3 The Software Team
19.2.4 Coordination and Communications Issues
19.3 Product
19.3.1 Software Scope
19.3.2 Problem Decomposition
19.4 Process
19.4.1 Melding the Product and the Process
19.4.2 Process Decomposition
19.5 Project
19.6 The W5HH Principle
19.7 Critical Practices
19.8 Summary
CHAPTER 20 CREATING A VIABLE SOFTWARE PLAN
20.1 Comments on Estimation
20.2 The Project Planning Process
20.3 Software Scope and Feasibility
20.4 Resources
20.4.1 uman Resources
20.4.2 Reusable Software Resources
20.4.3 Environmental Resources
20.5 Project Scheduling
20.5.1 Basic Principles
20.5.2 The Relationship Between People and Eort
20.6 Defining a Project Task Set
20.6.1 A Task Set Eample
20.6.2 efnement of Major Tasks
20.7 Defning a Task Network
20.8 Scheduling
20.8.1 Time-Line Charts
20.8.2 racking the Schedule
20.9 Summary
CHAPTER 21 RISK MANAGEMENT
21.1 Reactive Versus Proactive Risk Strategies
21.2 Software Risks
21.3 Risk Identication
21.3.1 Assessing Overall Project Risk
21.3.2 Risk Components and Drivers
21.4 Risk Projection
21.4.1 Developing a Risk Table
21.4.2 Assessing Risk Impact
21.5 Risk Renement
21.6 Risk Mitigation, Monitoring, and Management
21.7 The RMMM Plan
21.8 Summary
CHAPTER 22 A STRATEGY FOR SOFTWARE SUPPORT
22.1 Software Support
22.2 Software Maintenance
22.3 Proactive Software Support
22.3.1 Use of Software Analytics
22.3.2 Role of Social Media
22.3.3 Cost of Support
22.4 Refactoring
22.4.1 Data Refactoring
22.4.2 Code Refactoring
22.4.3 Architecture Refactoring
22.5 Software Evolution
22.5.1 Inventory Analysis
22.5.2 Document Restructuring
22.5.3 Reverse Engineering
22.5.4 Code Refactoring
22.5.5 Data Refactoring
22.5.6 Forward Engineering
22.6 Summary
Online Resources
APPENDIX 1 An Introduction to UML
REFERENCES
同类热销排行榜
- C语言与程序设计教程(高等学校计算机类十二五规划教材)16
- 电机与拖动基础(教育部高等学校自动化专业教学指导分委员会规划工程应用型自动化专业系列教材)13.48
- 传感器与检测技术(第2版高职高专电子信息类系列教材)13.6
- ASP.NET项目开发实战(高职高专计算机项目任务驱动模式教材)15.2
- Access数据库实用教程(第2版十二五职业教育国家规划教材)14.72
- 信号与系统(第3版下普通高等教育九五国家级重点教材)15.08
- 电气控制与PLC(普通高等教育十二五电气信息类规划教材)17.2
- 数字电子技术基础(第2版)17.36
- VB程序设计及应用(第3版十二五职业教育国家规划教材)14.32
- Java Web从入门到精通(附光盘)/软件开发视频大讲堂27.92
推荐书目
-
孩子你慢慢来/人生三书 华人世界率性犀利的一枝笔,龙应台独家授权《孩子你慢慢来》20周年经典新版。她的《...
-
时间简史(插图版) 相对论、黑洞、弯曲空间……这些词给我们的感觉是艰深、晦涩、难以理解而且与我们的...
-
本质(精) 改革开放40年,恰如一部四部曲的年代大戏。技术突变、产品迭代、产业升级、资本对接...