今天发现了一个很好地复习软工的思维导图。
本来想直接收藏拿来用,但鉴于上次计算机网络第二章复习效果不佳。所以想要自己在挨个写一遍。
先来个大框架,今天先复习第一个内容。
![](https://img-blog.csdnimg.cn/d8e520fca9b9431baa861f5659ea19ec.webp)
一、概述![](https://img-blog.csdnimg.cn/8322ff651e654fe585994e3c97cac62a.png)
这是在网上看到的思维导图,感觉非常详细,就拿来用了具体请移步软件工程思维导图。
下面结合上课PPT来进行复习。
一、Introduction to Software Engineering
Part 0. Overview
Chap 0. History of computer technology
1>(计算技术的历史)
1.石头、绳结、算筹
2.Automatic mechanical calculation tool using gears(使用齿轮自动计数)
3.Electromechanical computer(机电计算器)
4.Electronic Computer(电子计算器)(冯·诺依曼计算机问世)
计算机科学界把采用0、1符号编码方法和存储程序方法设计的计算机称为冯·诺依曼计算机。
2>软件的历史
3>History of computer technology
The First generation computer(1946-1958)
Hardware:电子管元件、卡片式输入输出、静
电存储管
速度:几千到几万次每秒
软件: 机器语言(
1938
)汇编语言(
1952
),FORTRAN
语言(
1954
)
应用:科学计算
代表:ENIAC(1946),第一台商业化的计算机
IBM701
The Second generation computer (1959-
1964)
Hardware:晶体管元件、磁芯/磁鼓、磁带/磁盘
运算速度:几十万次每秒
软件: 高级程序设计语言:basic,cobol,Algol等
应用:
科学计算、数据处理和事务处理领域
代表:
IBM公司生产的IBM7094,CDC(Control Data
Corporation,控制数据公司)生产的CDC1640
The third generation computer(1965-1970)
硬件:中小规模集成电路元件、半导体存储、
多样的外设
运算速度:千万次每秒
典型代表:
IBM公司研制成功的360系列计算机
为了满足中小企业与政府机构日益增多的计算机
应用,第三代计算机出现了小型计算机
Software Development(1965
-
1970)
•
开始进行操作系统的研究
•
数据库管理系统DBMS 出现
•
编程趋向结构化
•
“软件危机”出现
•
提出“软件工程”
The fourth generation computer(1971-Now)
Hardware
大规模
/
超大规模集成电路计算机
•
根据
摩尔定律:硬件成本每隔18个月就降低一
半
,例如:存储器每年降低40%、主机硬件的
性价比每十年提高一个数量级
•
互联网出现
机器语言
Machine Language
->
汇编语言
Assembly language
->
编程语言
Programming language
Chap 1. The Nature of Software
1. What is Software?(软件=程序+文档+数据)
programs
documents
data structure
2. The nature of software(软件的属性)
Developed/engineered(开发、工程化)
Deteriorates(会过时)
Custom built(订制)
Complex(复杂)
3. The category of software applications(软件应用的范畴)
System software
Application software
Engineering/Scientific software
Embedded software
Product
-
line software
Web/Mobile applications
AI software (robotics, neural nets, game
playing……)
4. The development of our native software
Chap 2. Concepts of SE
1. Software Crisis(质量、预算、更新、拖期、创新)
How do we ensure the quality of the software that we produce?
How do we meet growing demand and still maintain budget control?
How do we upgrade an aging “software plant”?
How do we avoid disastrous time delays?
How do we successfully institute
new software
technologies
?
2. The Concept of Software Engineering(软件工程概念)
3. Software Process
1)What is a software process?
A process defines who is doing what, when, and how to reach a certain goal?
2)Why we need software processes?
为了确保产品的质量、按时交付、以及满足客户需求需求
3)Software Process Framework
1.框架活动: 从项目管理视角划分过程:项目启动、计划、 监控、结束、客户服务
从项目工程(软件开发生命周期)视角划分过程:概念、需求、设计、实施(实现)、系统集成和测试、系统部署安装、技术支持和系统维护
2.伞活动在整个
软件过程中发生,它们被均匀地应用在整个过程中,分析还包含一系列的工作任务(例如需求收集,制定,协商规范和验证),一个过程框架有一组
伞被应用在整个
软件
过程活动中。
4. 软件生命周期
软件有一个孕育、诞生、成长、成熟、 衰亡的生存过程。这个过程即为计算机 软件的生命周期
Part 1. Software Processes
Chap 3. Software Process Structure
1. A Generic Process Model(通用的过程模型)![](https://img-blog.csdnimg.cn/a497d721dd874b5c8980450c8d5c2eaa.png)
2. Identifying a Task Set
A list of the task to be accomplished
A list of the work products to be produced
A list of the quality assurance filters to be
applied
3. Process Patterns(过程模式)
(1)Process Pattern Types
Stage patterns
—defines a problem associated
with a framework activity for the process.
Task patterns
—defines a problem associated
with a software engineering action or work
task and relevant to successful software
engineering practice
Phase patterns
—define the sequence of
framework activities that occur with the
process, even when the overall flow of
activities is iterative in nature.
(2)CMMI (Capability Maturity Model Integration)(能力成熟度模型)
1.Initial(0)(初始)
2.Managed(7)(管理)
REQM, PPQA, SAM, PMC, PP, CM,MA
3.Defined(11)(明确)
OT , OPD , OPF , IPM , RSKM, RD , TS,
4. Quantitatively Managed(2)(量化管理)
QPM , OPP
5.Optimized(2)(优化)
OID, CAR
Chap 4. Process Model
0. What is a Prescriptive Process Model?(经验模型)
详细可参考
(1条消息) 软件工程——瀑布模型、快速原型模型、增量模型、螺旋模型_快速原型模型和增量模型的区别_「已注销」的博客-CSDN博客
Communication
Application Requirements determination,Software
Requirements specification
Planning
Planning,estimation,scheduling
Modeling
Architectural design,Detailed design
Construction:
Implementation,Integration,Testing
Deployment
各种模型的大致流程及优缺点
1. The Waterfall Model & the V Model(瀑布模型)![](https://img-blog.csdnimg.cn/314a38c7f3d7447caf9b154437ba35bb.png)
瀑布模型进化版:V模型
V模型大体可以划分为以下几个不同的阶段步骤:客户需求分析、软件需求分析、概要设计、详细设计、软件编码、单元测试、集成测试、系统测试、验收测试。
![](https://img-blog.csdnimg.cn/7d871c971a0243e1bc04d919e23a94ee.png)
2. The Incremental Model(增量模型)又称产品改进模型![](https://img-blog.csdnimg.cn/4455c23e919c4a8ba080bf168b4e4ebc.png)
3. Evolutionary Models(进化模型)
Prototyping
原型
4.The Spiral 螺旋模型(对瀑布模型的迭代使用)![](https://img-blog.csdnimg.cn/f1bec00ff8a14ac2b91e49a77129e842.png)
5. Other Process Models
Component based development
Formal methods
AOSD
AOSD
5. The Unified Process (UP)(统一过程模型)
(1条消息) 软件工程过程模型——统一过程模型_代码之狐的博客-CSDN博客
每个阶段都由一个或多个迭代组成。每个迭代都要针对不同的业务用例或系统用例进行细化和实现
Chap 5. (6)Agile Development(敏捷开发)
Chap 6. Human Aspects of Software Engineering
Part 2. Modeling
Part 3. Quality Assurance
Part 4. Software Project Management