Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -284,7 +284,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8](https://docs.oracle.
### 基础

- [RestFul API 简明教程](./docs/system-design/basis/RESTfulAPI.md)
- [软件工程简明教程简明教程](./docs/system-design/basis/software-engineering.md)
- [软件工程简明教程](./docs/system-design/basis/software-engineering.md)
- [代码命名指南](./docs/system-design/basis/naming.md)
- [代码重构指南](./docs/system-design/basis/refactoring.md)
- [单元测试指南](./docs/system-design/basis/unit-test.md)
Expand Down
2 changes: 1 addition & 1 deletion docs/home.md
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,7 @@ JVM 这部分内容主要参考 [JVM 虚拟机规范-Java8](https://docs.oracle.
### 基础

- [RestFul API 简明教程](./system-design/basis/RESTfulAPI.md)
- [软件工程简明教程简明教程](./system-design/basis/software-engineering.md)
- [软件工程简明教程](./system-design/basis/software-engineering.md)
- [代码命名指南](./system-design/basis/naming.md)
- [代码重构指南](./system-design/basis/refactoring.md)
- [单元测试指南](./system-design/basis/unit-test.md)
Expand Down
6 changes: 3 additions & 3 deletions docs/system-design/basis/software-engineering.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ category: 系统设计

简单来说,软件危机描述了当时软件开发的一个痛点:我们很难高效地开发出质量高的软件。

Dijkstra(Dijkstra 算法的作者) 在 1972 年图灵奖获奖感言中也提高过软件危机,他是这样说的:“导致软件危机的主要原因是机器变得功能强大了几个数量级!坦率地说:只要没有机器,编程就完全没有问题。当我们有一些弱小的计算机时,编程成为一个温和的问题,而现在我们有了庞大的计算机,编程也同样成为一个巨大的问题”。
Dijkstra(Dijkstra 算法的作者) 在 1972 年图灵奖获奖感言中也提到过软件危机,他是这样说的:“导致软件危机的主要原因是机器变得功能强大了几个数量级!坦率地说:只要没有机器,编程就完全没有问题。当我们有一些弱小的计算机时,编程成为一个温和的问题,而现在我们有了庞大的计算机,编程也同样成为一个巨大的问题”。

**说了这么多,到底什么是软件工程呢?**

Expand All @@ -38,15 +38,15 @@ Dijkstra(Dijkstra 算法的作者) 在 1972 年图灵奖获奖感言中也
- 交付:将做好的软件交付给客户。
- 维护:对软件进行维护比如解决 bug,完善功能。

软件开发过程只是比较笼统的层面上,一定义了一个软件开发可能涉及到的一些流程
软件开发过程只是比较笼统的层面上,定义了一个软件开发可能涉及到的一些流程

软件开发模型更具体地定义了软件开发过程,对开发过程提供了强有力的理论支持。

## 软件开发模型

软件开发模型有很多种,比如瀑布模型(Waterfall Model)、快速原型模型(Rapid Prototype Model)、V 模型(V-model)、W 模型(W-model)、敏捷开发模型。其中最具有代表性的还是 **瀑布模型** 和 **敏捷开发** 。

**瀑布模型** 定义了一套完成的软件开发周期,完整地展示了一个软件的的生命周期
**瀑布模型** 定义了一套完整的软件开发周期,完整地展示了一个软件的生命周期

![](https://oss.javaguide.cn/github/javaguide/system-design/schedule-task/up-264f2750a3d30366e36c375ec3a30ec2775.png)

Expand Down