【软件工程】一、基本概念

版权声明:欢迎转载,转载请注明出处:土豆洋芋山药蛋 https://blog.csdn.net/qq_33414271/article/details/85391935

一、概论

1.定义

软件的定义:

计算机科学百科全书:计算机系统中的程序和文档;
软件的特点:
系统维护占大多数时间。

软件的种类:

系统软件:操作系统,编译程序
支撑软件:数据库
应用软件

2.软件工程的起源

1947年冯诺依曼提出“程序设计”的概念,开启了软件设计时代。
1968年第一次提出“软件工程”概念(北大西洋公约组织在德国的软件开发会议),并倡导以工程的原理来开发软件,以此解决软件危机。(标准化)

软件工程定义:以工程化的方法制作软件的工程。(为什么要强调这是一个工程呢?因为在冯诺依曼提出程序设计后,软件诞生,但开发毫无效率,没有标准化,导致了软件危机,所以需要工程化的方法、原则、原理,进而诞生软件工程。)

3.软件工程的本质和基本手段

在这里插入图片描述

本质:
不同抽象层之间术语之间的“映射”
不同逻辑层之间处理逻辑的“映射”
在这里插入图片描述

从问题到软件开发过程中需要建立模型:
模型:对事物抽象本质的概括。
建模:找到解决问题的一般途径。

4.软件工程框架

软件工程可定义为三元组:<目标,原则,活动>

二、软件生存周期

1.软件生存周期过程的概念

Q1:软件开发有哪些活动一即要做哪些映射?
Q2:应如何正确组织开发活动,形成求解软件的逻辑?

整体框架:
在这里插入图片描述

软件生存周期:
软件产品/系统的全周期。形成概念–>开发–>使用–>维护–>淘汰。
软件生存周期过程(软件过程):
软件生存周期中一系列相关过程。
为了表述软件开发需要做“什么活动(映射)”,引入了以下三个概念:过程是活动的集合,活动是任务的集合,任务是把输入转换成输出的操作。
在这里插入图片描述

扫描二维码关注公众号,回复: 4730189 查看本文章

2.过程分类

(1)基本过程(primary processes)
是指那些与软件生产直接相关的活动集。如:开发,维护等。
(2)支持过程(supporting processes)
是有关各方按其目标所从事的一系列支持活动集。如:文档,评审,验证。
(3)组织过程(institutional processes)
是指那些与软件生产组织有关的活动集。如:管理,基础设施,人力资源等。
在这里插入图片描述

3.生存周期模型

常见软件周期模型:

3.1瀑布模型(古老)

一句话:一步一步顺序的开发。

在这里插入图片描述

(1)瀑布模型将软件生存周期的各项活动规定为依固定顺序而连接的若干阶段工作;
(2)瀑布模型规定了每一阶段的输入,以及本阶段的工作成果,作为输出传入下一阶段。
优点:
每阶段进行复审,支持用户参与。
缺点:
客户必须完整、清晰的表达他们的需求。
缺乏灵活性。
项目结束之前不能演示系统能力。

3.2增量模型

该模型有一个假设,即需求可以分段,成为一系列增量产品,每一增量可以分别地开发。
在这里插入图片描述

优点:
第一个可交付版本所需成本和时间少。
可减少用户需求变更。
允许增量投资
缺点:
早期需求不完整,不稳定可能导致重新开发。
增加管理成本。

3.3演化模型

一句话:先开发核心的,剩下的慢慢来。

是一种有弹性的过程模式,由一些小的开发步组成,每一步历经需求分析、设计、实现和验证,产生软件产品的一个增量。通过这些迭代,完成最终软件产品的开发。
在这里插入图片描述

3.4喷泉模型

特征:迭代,无缝
与面向对象技术的关系
在这里插入图片描述

学习笔记来源于中国大学Mooc上北京大学的《软件工程》选修课。

猜你喜欢

转载自blog.csdn.net/qq_33414271/article/details/85391935