网站首页 软件下载 游戏下载 翻译软件 电子书下载 电影下载 电视剧下载 教程攻略
书名 | 软件工程 实践者的研究方法(英文精编版·原书第9版) |
分类 | 教育考试-考试-计算机类 |
作者 | (美)罗杰·S.普莱斯曼,(美)布鲁斯·R.马克西姆 |
出版社 | 机械工业出版社 |
下载 | ![]() |
简介 | 内容推荐 本书是软件工程领域的经典著作,自版出版至今,近40年来在软件工程界产生了巨大而深远的影响。第9版在继承之前版本风格与优势的基础上,不仅更新了全书内容,而且优化了篇章结构。本书共四个部分,涵盖软件过程、建模、质量与安全、软件项目管理等主题,对概念、原则、方法和工具的介绍细致、清晰且实用。此外,书中还提供了丰富的扩展阅读资源和网络资源。本版基于原书第9版进行改编,保留基本的软件工程知识体系,删除面向研究生的不错话题、面向专门化的软件开发实践的内容、面向软件行业不错工程人员的参考内容、其他课程中应包含的知识和内容,从而更加适合作为高等院校计算机、软件工程及相关专业本科生的软件工程课程教材。 目录 Table of Contents Preface xxvii CHAPTER 1 SOFTWARE AND SOFTWARE ENGINEERING 1 1.1 The Nature of Software 4 1.1.1 Defining Software 5 1.1.2 Software Application Domains 7 1.1.3 Legacy Software 8 1.2 Defining the Discipline 8 1.3 The Software Process 9 1.3.1 The Process Framework 10 1.3.2 Umbrella Activities 11 1.3.3 Process Adaptation 11 1.4 Software Engineering Practice 12 1.4.1 The Essence of Practice 12 1.4.2 General Principles 14 1.5 How It All Starts 15 1.6 Summary 17 PART ONE THE SOFTWARE PROCESS 19 CHAPTER 2 PROCESS MODELS 20 2.1 A Generic Process Model 21 2.2 Defining a Framework Activity 23 2.3 Identifying a Task Set 23 2.4 Prescriptive Process Models 25 2.4.1 The Waterfall Model 25 2.4.2 Prototyping Process Model 26 2.4.3 Evolutionary Process Model 29 2.4.4 Unified Process Model 31 2.5 Product and Process 33 2.6 Summary 35 CHAPTER 3 AGILITY AND PROCESS 37 3.1 What Is Agility? 38 3.2 Agility and the Cost of Change 39 3.3 What Is an Agile Process? 40 3.3.1 Agility Principles 40 3.3.2 The Politics of Agile Development 41 3.4 Scrum 42 3.4.1 Scrum Teams and Artifacts 43 3.4.2 Sprint Planning Meeting 44 3.4.3 Daily Scrum Meeting 44 3.4.4 Sprint Review Meeting 45 3.4.5 Sprint Retrospective 45 3.5 Other Agile Frameworks 46 3.5.1 The XP Framework 46 3.5.2 Kanban 48 3.5.3 DevOps 50 3.6 Summary 51 CHAPTER 4 RECOMMENDED PROCESS MODEL 54 4.1 Requirements Definition 57 4.2 Preliminary Architectural Design 59 4.3 Resource Estimation 60 4.4 First Prototype Construction 61 4.5 Prototype Evaluation 64 4.6 Go,No-Go Decision 65 4.7 Prototype Evolution 67 4.7.1 New Prototype Scope 67 4.7.2 Constructing New Prototypes 68 4.7.3 Testing New Prototypes 68 4.8 Prototype Release 68 4.9 Maintain Release Software 69 4.10 Summary 72 CHAPTER 5 HUMAN ASPECTS OF SOFTWARE ENGINEERING 74 5.1 Characteristics of a Software Engineer 75 5.2 The Psychology of Software Engineering 75 5.3 The Software Team 76 5.4 Team Structures 78 5.5 The Impact of So Media 79 5.6 Global Teams 80 5.7 Summary 81 PART TWO MODELING 83 CHAPTER 6 UNDERSTANDING REQUIREMENTS 84 6.1 Requirements Engineering 85 6.1.1 Inception 86 6.1.2 Elicitation 86 6.1.3 Elaboration 86 6.1.4 Negotiation 87 6.1.5 Specification 87 6.1.6 Validation 87 6.1.7 Requirements Management 88 6.2 Establishing the Groundwork 89 6.2.1 Identifying Stakeholders 89 6.2.2 Recognizing Multiple Viewpoints 89 6.2.3 Working Toward Collaboration 90 6.2.4 Asking the First Questions 90 6.2.5 Nonfunctional Requirements 91 6.2.6 Traceability 91 CHAPTER 7 REQUIREMENTS MODELING-A RECOMMENDED APPROACH 108 7.1 Requirements Analysis 109 7.1.1 Overall Objectives and Philosophy 110 7.1.2 Analysis Rules of Thumb 110 7.1.3 Requirements Modeling Principles 111 7.2 Scenario-Based Modeling 112 7.2.1 Actors and User Profiles 113 7.2.2 Creating Use Cases 113 7.2.3 Documenting Use Cases 117 7.3 Class-Based Modeling 119 7.3.1 Identifying Analysis Classes 119 7.3.2 Defining Attributes and Operations 122 7.3.3 UML Class Models 123 7.3.4 Class-Responsibility-Collaborator Modeling 126 7.4 Functional Modeling 128 7.4.1 A Procedural View 128 7.4.2 UML Sequence Diagrams 130 7.5 Behavioral Modeling 131 7.5.1 Identifying Events with the Use Case 131 7.5.2 UML State Diagrams 132 7.5.3 UML Activity Diagrams 133 7.6 Summary 136 HAPTER 8 DESIGN CONCEPTS 138 8.1 Design Within the Context of Software Engineering 139 8.2 The Design Process 141 8.2.1 Software Quality Guidelines and Attributes 142 8.2.2 The Evolution of Software Design 143 8.3 Design Concepts 145 8.3.1 Abstraction 145 8.3.2 Architecture 145 8.3.3 Patterns 146 8.3.4 Separation of Concerns 147 8.3.5 Modularity 147 8.3.6 Information Hiding 148 8.3.7 Functional Independence 149 8.3.8 Stepwise Refinement 149 8.3.9 Refactoring 150 8.3.10 Design Classes 151 8.4 The Design Model 153 8.4.1 Design Modeling Principles 155 8.4.2 Data Design Elements 156 8.4.3 Architectural Design Elements 157 8.4.4 Interface Design Elements 157 8.4.5 Component-Level Design Elements 158 8.4.6 Deployment-Level Design Elements 159 8.5 Summary 160 CHAPTER 9 ARCHITECTURAL DESIGN-A RECOMMENDED APPROACH 163 9.1 Software Architecture 164 9.1.1 What Is Architecture? 164 9.1.2 Why Is Architecture Important? 165 9.1.3 Architectural Descriptions 165 9.1.4 Architectural Decisions 166 9.2 Agility and Architecture 167 9.3 Architectural Styles 168 9.3.1 A Brief Taxonomy of Architectural Styles 169 9.3.2 Architectural Patterns 174 9.3.3 Organization and Refinement 175 9.4 Architectural Considerations 175 9.5 Architectural Decisions 177 9.6 Architectural Design 178 9.6.1 Representing the System in Context 178 9.6.2 Defining Archetypes 179 9.6.3 Refining the Architecture into Components 180 9.6.4 Describing Instantiations of the System 182 9.7 Assessing Alternative Architectural Designs 183 9.7.1 Architectural Reviews 184 9.7.2 Pattern-Based Architecture Review 185 9.7.3 Architecture Conformance Checking 186 9.8 Summary 186 CHAPTER 10 COMPONENT-LEVEL DESIGN 188 10.1 What Is a Component? 189 10.1.1 An Object-Oriented View 189 10.1.2 The Traditional View 191 10.1.3 A Process-Related View 193 10.2 Designing Class-Based Components 194 10.2.1 Basic Design Principles 194 10.2.2 Component-Level Design Guidelines 197 10.2.3 Cohesion 198 10.2.4 Coupling 200 10.3 Conducting Component-Level Design 201 10.4 Speized Component-Level Design 207 10.5 Component Refactoring 211 10.6 Summary 212 CHAPTER 11 USER EXPERIENCE DESIGN 215 11.1 User Experience Design Elements 216 11.1.1 Information Architecture 217 11.1.2 User Interaction Design 218 11.1.3 Usability Engineering 218 11.1.4 Visual Design 219 ART THREE QUALITY AND SECURITY 241 CHAPTER 12 QUALITY CONCEPTS 242 12.1 What Is Quality? 243 12.2 Software Quality 244 12.2.1 Quality Factors 244 12.2.2 Qualitative Quality Assessment 246 12.2.3 Quantitative Quality Assessment 247 12.3 The Software Quality Dilemma 247 12.3.1 “Good Enough” Software 248 12.3.2 The Cost of Quality 24912.3.3 Risks 251 12.3.4 Negligence and Liability 252 12.3.5 The Impact of Management Actions 252 12.4 Achieving Software Quality 253 12.4.1 Software Engineering Methods 253 12.4.2 Project Management Techniques 254 12.4.3 Quality Control 254 12.4.4 Quality Assurance 254 12.5 Summary 254 HAPTER 13 REVIEWS-A RECOMMENDED APPROACH 257 13.1 Cost Impact of Software Defects 258 13.2 Defect Amplification and Removal 259 13.3 Review Metrics and Their Use 259 13.4 Criteria for Types of Reviews 262 13.5 Informal Reviews 263 13.6 Formal Technical Reviews 264 13.6.1 The Review Meeting 264 13.6.2 Review Reporting and Record Keeping 265 13.6.3 Review Guidelines 266 13.7 Postmortem Evaluations 268 13.8 Agile Reviews 268 13.9 Summary 269 CHAPTER 14 SOFTWARE QUALITY ASSURANCE 271 14.1 Background Issues 273 14.2 Elements of Software Quality Assurance 273 14.3 SQA Processes and Product Characteristics 275 14.4 SQA Tasks,Goals,and Metrics 275 14.4.1 SQA Tasks 275 14.4.2 Goals,Attributes,and Metrics 277 14.5 27914.5.1 A Generic Example 279 14.5.2 Six Sigma for Software Engineering 281 14.6 The ISO 9000 Quality Standards 281 14.7 The SQA Plan 282 14.8 Summary 283 CHAPTER 15 SOFTWARE TESTING-COMPONENT LEVEL 284 15.1 A Strategic Approach to Software Testing 285 15.1.1 Verification and Validation 285 15.1.2 Organizing for Software Testing 286 15.1.3 The Big Picture 287 15.1.4 Criteria for “Done” 289 15.2 Planning and Recordkeeping 290 15.2.1 Role of Scaffolding 291 15.2.2 Cost-Effective Testing 291 15.3 Test-Case Design 293 15.3.1 Requirements and Use Cases 294 15.3.2 Traceability 295 15.4 White-Box Testing 295 15.4.1 Basis Path Testing 296 15.4.2 Control Structure Testing 298 15.5 300Black-Box Testing 15.5.1 Interface Testing 300 15.5.2 Equivalence Partitioning 301 15.5.3 Boundary Value Analysis 301 15.6 Object-Oriented Testing 302 15.6.1 Class Testing 302 15.6.2 Behavioral Testing 304 15.7 Summary 305 CHAPTER 16 SOFTWARE TESTING-INTEGRATION LEVEL 307 16.1 Software Testing Fundamentals 308 16.1.1 Black-Box Testing 309 16.1.2 White-Box Testing 309 16.2 Integration Testing 310 16.2.1 Top-Down Integration 310 16.2.2 Bottom-Up Integration 311 16.2.3 Continuous Integration 312 16.2.4 Integration Test Work Products 314 16.3 Artifi Intelligence and Regression Testing 314 16.4 Integration Testing in the OO Context 316 16.4.1 Fault-Based Test-Case Design 317 16.4.2 Scenario-Based Test-Case Design 319 16.5 Validation Testing 319 16.6 Summary 321 CHAPTER 17 SOFTWARE CONFIGURATION MANAGEMENT 323 17.1 Software Configuration Management 324 17.1.1 An SCM Scenario 325 17.1.2 Elements of a Configuration Management System 326 17.1.3 Baselines 327 17.1.4 Software Configuration Items 327 17.1.5 Management of Dependencies and Changes 328 17.2 The SCM Repository 329 17.2.1 General Features and Content 330 17.2.2 SCM Features 330 17.3 Version Control Systems 331 17.4 Continuous Integration 332 17.5 The Change Management Process 333 17.5.1 Change Control 334 17.5.2 Impact Management 337 17.5.3 Configuration Audit 337 17.5.4 Status Reporting 338 17.6 Summary 338 HAPTER 18 SOFTWARE METRICS AND ANALYTICS 340 18.1 Software Measurement 341 18.1.1 Measures,Metrics,and Indicators 341 18.1.2 Attributes of Effective Software Metrics 342 18.2 Software Analytics 342 18.3 Product Metrics 343 18.3.1 Metrics for the Requirements Model 344 18.3.2 Design Metrics for Conventional Software 346 18.3.3 Design Metrics for Object-Oriented Software 348 18.3.4 User Interface Design Metrics 351 18.3.5 Metrics for Source Code 353 18.4 Process and Project Metrics 354 18.5 Software Metrics 357 18.6 Metrics for Software Quality 360 18.7 Summary 363 PART FOUR MANAGING SOFTWARE PROJECTS 365 CHAPTER 19 PROJECT MANAGEMENT CONCEPTS 366 19.1 The Management Spectrum 367 19.1.1 The People 367 19.1.2 The Product 367 19.1.3 The Process 368 19.1.4 The Project 368 19.2 People 369 19.2.1 The Stakeholders 369 19.2.2 Team Leaders 369 19.2.3 The Software Team 370 19.2.4 Coordination and Communications Issues 372 19.3 Product 373 19.3.1 Software Scope 373 19.3.2 Problem Decomposition 373 19.4 Process 374 19.4.1 Melding the Product and the Process 374 19.4.2 Process Decomposition 374 19.5 Project 376 19.6 The W5HH Principle 377 19.7 Critical Practices 378 19.8 Summary 378 CHAPTER 20 CREATING A VIABLE SOFTWARE PLAN 380 20.1 Comments on Estimation 381 20.2 The Project Planning Process 382 20.3 Software Scope and Feasibility 383 20.4 Resources 384 20.4.1 uman Resources 384 20.4.2 Reusable Software Resources 385 20.4.3 Environmental Resources 385 20.5 Project Scheduling 386 20.5.1 Basic Principles 387 20.5.2 The Relationship Between People and Effort 388 20.6 Defining a Project Task Set 389 20.6.1 A Task Set Example 390 20.6.2 efnement of Major Tasks 390 20.7 Defning a Task Network 391 20.8 Scheduling 392 20.8.1 Time-Line Charts 392 20.8.2 racking the Schedule 394 20.9 Summary 396 CHAPTER 21 RISK MANAGEMENT 398 21.1 Reactive Versus Proactive Risk Strategies 399 21.2 Software Risks 400 21.3Risk Identification 401 21.3.1 Assessing Overall Project Risk 402 21.3.2 Risk Components and Drivers 403 21.4 Risk Projection 404 21.4.1 Developing a Risk Table 404 21.4.2 Assessing Risk Impact 406 21.5 Risk Refinement 408 21.6 Risk Mitigation,Monitoring,and Management 409 21.7 The RMMM Plan 412 21.8 Summary 413 CHAPTER 22 A STRATEGY FOR SOFTWARE SUPPORT 415 22.1 Software Support 416 22.2 Software Maintenance 418 22.3 Proactive Software Support 423 22.3.1 Use of Software Analytics 424 22.3.2 Role of So Media 425 22.3.3 Cost of Support 425 22.4 Refactoring 426 22.4.1 Data Refactoring 427 22.4.2 Code Refactoring 427 22.4.3 Architecture Refactoring 427 22.5 Software Evolution 428 22.5.1 Inventory Analysis 429 22.5.2 Document Restructuring 430 22.5.3 Reverse Engineering 430 22.5.4 Code Refactoring 430 22.5.5 Data Refactoring 430 22.5.6 Forward Engineering 431 22.6 Summary 431 APPENDIX 1 REFERENCES Online Resources |
随便看 |
|
霍普软件下载网电子书栏目提供海量电子书在线免费阅读及下载。