改编者序
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 Concer
展开