Unit Introduction to Software Engineering
软件工程介绍
Learning Objectives
学习目标
1.1 A Brief Introduction to Software Engineering
软件工程简介
1.1.1 The Pioneering Era
开创时期
1.1.2 to 5: The Origins
1945到1965: 发起
1.1.3 5 to 5: The Software Crisis
1965到1985:软件危机
1.1.4 5 to : No Silver Bullet
1985到1989:没有银弹
1.1.5 to 9: Prominence of the Internet
1990到1999:Internet盛行
1.1.6 0 to Present: Lightweight Methodologies
2000年至今:轻量级方法
1.1.7 Current Trends in Software Engineering
软件工程的发展趋势
1.1.8 Software Engineering Today
今天的软件工程
1.2 Software
软件
1.2.1 A Formal Definition of Software
软件的正式定义
1.2.2 Characteristics of Software
软件的特征
1.2.3 The Dual Roles of Software
软件的双重角色
1.2.4 Classification of Software
软件分类
1.2.5 Why does Software Change Very Fast?
为什么软件变化快?
1.3 Why Do We Need Software Engineering?
为什么需要软件工程?
1.3.1 Software Crisis
软件危机
1.3.2 An Economist’s View of Software and Software Engineering
一个经济学家对软件和软件工程的看法
1.3.3 The Formal Definition of Software Engineering
软件工程的正式定义
1.4 Major Concerns and Objectives of Software Engineering
软件工程的目标和担忧
1.5 Seven Principles for Software Engineering
软件工程的七个原则
1.5.1 Manage Using a Phased Lifecycle Plan
使用阶段性的生命周期管理计划
1.5.2 Perform Continuous Validation
进行持续验证
1.5.3 Maintain Disciplined Product Control
维持有效的产品控制
1.5.4 Use Modern Programming/Engineering Practices
运用现代编程/工程实践
1.5.5 Maintain Clear Accountability for Results
维护清晰的问责机制
1.5.6 Use Better and Fewer People
用更好更少的人
1.5.7 Maintain a Commitment to Improve the Process
保持过程改进
1.6 Major Topics in Software Engineering
软件工程中的主要课题
1.7 Relationship to Other Disciplines
其他相关学科
1.8 Some Misunderstandings about Software Engineering
一些对软件工程的错误认识
1.9 Software Engineering Code of Professional and Ethical Responsibility
软件工程的专业和道德责任
Summary
总结
Notes
重点注释
Glossary of this unit
术语
Quiz
习题
References
参考文献
Further Reading
扩展阅读
Unit Process Models
过程模型
Learning Objectives
学习目标
2.1 Introduction
简介
2.2 What is Software Process?
什么是软件过程?
2.3 Maturity Models
成熟度模型
2.4 Software Process Models
软件过程模型
2.4.1 The Waterfall Model
瀑布模型
2.4.2 The Evolutionary Model
演化模型
2.4.3 Component-based Model
基于组件的模型
2.4.4 Incremental Process Models
增量模型
2.4.5 Some New Process 3
一些新模型
2.5 How to Choose Process Models? 3
如何选择过程模型?
2.6 The Relationship between Process and Product 3
过程和产品的关系
Summary
总结
Notes
重点注释
Glossary of this unit
术语
Quiz
习题
References
参考文献
Unit Software Requirements
软件需求
Learning Objectives
学习目标
3.1 Software Requirements Fundamentals
软件需求基础
3.1.1 Definition of a Software Requirement
软件需求定义
3.1.2 Product and Process Requirements
产品和过程需求
3.1.3 Functional and Non-functional Requirements
功能和非功能需求
3.1.4 Quantifiable Requirements
可量化的需求
3.1.5 System and Software Requirements
系统需求和软件需求
3.2 Requirements Process
需求过程
3.2.1 Process Models
过程模型
3.2.2 Process Actors
过程角色
3.3 Requirements Elicitation
需求获取
3.3.1 Requirements Sources
需求来源
3.3.2 Elicitation Techniques
需求获取方法
3.4 Requirements Analysis
需求分析
3.4.1 Requirements Classification
需求分类
3.4.2 Conceptual Modeling
概念建模
3.4.3 Architectural Design and Requirements Allocation
结构设计和需求配置
3.4.4 Requirements Negot