快速了解软件工程学概述(5种软件过程模型)

目录

1 、什么是软件?特点有哪些 ?

 2 、 软件危机

定义:

软件危机产生的原因

消除软件危机的方法

3 、软件工程

1.软件工程的介绍

(1)概念

(2)本质特征

(3)软件工程方法学(方法学也叫做范型)

3.传统方法学(生命周期方法学或结构化范型)

4)面向对象方法学(封装,继承、多态)

软件维护

4 、软件过程 

4.1  定义

4.2典型软件过程模型

1.瀑布模型

2.快速原型模型

3. 增量模型

4 .螺旋模型

5.  喷泉模型(面向对象模型)


1 、什么是软件?特点有哪些 

1.软件是程序、数据和文档的完整集合。

2.特点:

软件是一种逻辑实体。

是人类的智力产品

软件需要长期维护

软件开发过程复杂

软件成本昂贵

软件可以复制

 2 、 软件危机

定义

       软件危机是指在计算机软件的开发维护过程中所遇到的一系列严重问题。

软件危机包含下述两方面的问题:

1. 如何开发软件,以满足对软件日益增长的需求。

2. 如何维护数量不断膨胀的已有软件。

软件危机的一些典型表现(超重要)

1. 对软件开发成本进度的估计常常很不准确。

2. 用户对“已完成的”软件系统不满意的现象经常发生

3. 软件产品的质量往往靠不住

4. 软件常常是不可维护

5. 软件通常没有适当的文档资料。

6. 软件成本在计算机系统总成本中所占的比例逐年上升

7. 软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势。

软件危机产生的原因

1 客观原因

1  软件是计算机系统中的逻辑部件而不是物理部件

2  软件规模庞大,而且程序复杂性将随着程序规模的增加而呈指数上升。

2 主观原因

1.    对软件开发维护有不少糊涂观念, 采用了错误的方法技术

2.    用户要求没有完整准确地认识就匆忙着手编写程序

3.    一个软件从定义、开发、使用和维护,直到最终被废弃, 要历一个漫

长的时期

4.    一个软件产品必须由一个完整的配置组成, 主要包括程序、文档和数据

等成分。

5.    在软件开发的不同阶段进行修改需要付出的代价是很不相同的。

6.    轻视维护

消除软件危机的方法

1)应该对计算机软件有一个正确的认识

(2)应该充分认识到软件开发是一种组织良好、管理严密、各类人员协同配合、

共同完成的工程项目。

(3应该推广使用在实践中总结出来的开发软件的成功的技术和方法,并且研 究探索更好更有效的技术和方法,尽快消除在计算机系统早期发展阶段形成的一些错误概念和做法。

4)应该开发和使用更好的软件工具。

3 、软件工程

1.软件工程的介绍

1)概念

       软件工程是从管理和技术两方面研究如何能更好的开发和维护计算机软件的一 门新兴学科。 采用工程的概念、原理、技术和方法来开发与维护软件,把经过时间 考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来, 以经济地开发出高质量的软件并有效地维护它,这就是软件工程。

(2本质特征

1.软件工程关注于大型程序的构造

2.软件工程的中心课题是控制复杂性

3.软件经常变化

4.开发软件的效率非常重要

5.和谐的合作是开发软件的关键

6.软件必须有效的支持它的用户

7.在软件工程领域中通常由具有一种文化背景的人替具有另一种文化背景的人创造产品。

2.  软件工程的 7 条基本原理

用分阶段的声明周期计划严格管理

坚持进行阶段评审

进行严格的产品控制

采用现代程序设计技术

结果应能清楚地审查

开发小组的人员应该小而精

承认不断改进软件工程时间的必要性

(3)软件工程方法学(方法学也叫做范型)

1.主要包括传统方法学面向对象方法学

2.软件工程方法学三要素

方法: 完成软件开发的各项任务的技术方法, 回答“怎样做”的问题

工具: 运用方法而提供的自动的或半自动的软件工程支撑环境

过程:    为了获得高质量的软件所需要完成的一系列任务的,它规定了完成各项任务的工作步骤。

3.传统方法学(生命周期方法学或结构化范型

优点:把软件生命周期划分成若干个阶段,每个阶段的任务相对独立,而且比较简单, 便于不同人员分工协作, 从而降低了整个软件开发工程的困难程度;在软件生命周期的每个阶段都采用科学的管理技术和良好的技术方法,而 且在每个阶段结束之前都从技术和管理两个角度进行严格的审查, 合格之后才 开始下一阶段的工作,这就使软件开发工程的全过程以一种有条不紊的方式进行,保证了软件的质量,特别是提高了软件的可维护性采用生命周期方法学可以大大提高软件开发的成功率和生产率。

4)面向对象方法学(封装,继承、多态)

优点:

降低了软件产品的复杂性

提高了软件的可理解性

简化了软件的开发维护工作

提高了软件的可重用性

       软件生命周期(三个时期,八个阶段)软件生命周期由软件定义、软件开发和运行维护 (软件维护) 3   个时期组成.

软件维护

通常有四类维护活动

[1]    改正性维护,即诊断和改正正在使用过程中发现的软件错误;

[2]    适应性维护,即修改软件以适应环境的变化

[3]    完善性维护,即根据用户的要求改进或扩充软件使它更完善

[4]    预防性维护,即修改软件,为将来的维护活动预先做准备

4 、软件过程 

4.1  定义

        软件过程是为了获得高质量软件所需要完成的一系列任务的框架,它规定了完成各

项任务的工作步骤。

4.2典型软件过程模型

1.瀑布模型

1 瀑布模型是软件工程中应用得最广泛的过程模型。传统软件工程方法学的软件过程+

本上可以用瀑布模型来描述。

特点:

1 阶段间具有顺序性和依赖性

 须等前一阶段的工作完成之后,才能开始后一阶段的工作;

②前一阶段的输 出文档就是后一阶段的输入文档,因此, 只有前一阶段的输出文档正确,后一阶段的工作才能获得正确的结果。

瀑布模型的优点

第一,可强迫开发人员采用规范的方法(例如,结构化技术);

第二, 严格地规定了每个阶段必须提交的文档;

第三, 要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证。

第四, 对文档的约束,使软件维护变得容易一些, 且能降低软件预算

瀑布模型的缺点

2.快速原型模型

定义: 快速建立起来的可以在计算机上运行的程序, 它所能完成的功能往往是最终产品能完成的功能的一个子集。

优点: 减少由于软件需求不明确带来的开发风险。这种模型适合预先不能确切定义需求的软件系统的开发。

3. 增量模型

定义: 使用增量模型时,把软件产品作为一系列的增量构件来设计、编码、集成和测试, 适应需求的变更。

增量模型的优点:第一, 能在较短时间内向用户提交可完成部分工作的产品第二, 逐步增加产品功能可以使用户有较充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。

缺点: 增量之间可能有不能集成的风险。

4 .螺旋模型

        螺旋模型是快速原型法以进化的开发方式为中心,在每个项目阶段使用瀑布模型法。这种模型的每一个周期都包括需求定义、风险分析、工程实现和评审4个阶段,由这4个阶段进行迭代。螺旋模型即是一种引入了风险分析与规避机制的过程模型,是瀑布模型、快速原型方法和风险分析方法的有机结合。螺旋模型最大的特点在于引入了其他模型不具备的风险分析,使软件在无法排除重大风险时有机会停止,以减小损失


 

5.  喷泉模型(面向对象模型)

          喷泉模型是一种以用户需求为动力,以对象为驱动的模型,主要用于描述面向对象的软件开发过程。该模型认为软件开发过程自下而上周期的各阶段是相互重叠和多次反复的,就像水喷上去又可以落下来,类似一个喷泉。各个开发阶段没有特定的次序要求,并且可以交互进行,可以在某个开发阶段中随时补充其他任何开发阶段中的遗漏。


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/173672.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

十八数字文化受邀参加版博会“区块链+版权”创新应用试点研讨会

2023年11月23日至25日,以“版权新时代 赋能新发展”为主题的第九届中国国际版权博览会在成都市中国西部国际博览城和天府国际会议中心举办。版博会是我国版权领域唯一的综合性、国际性、国家级版权专业博览会,本届版博会由国家版权局主办,四川…

宏工科技通过CMMI三级认证,软件研发能力获国际权威认可

近日,宏工科技子公司湖南宏工软件成功通过CMMI三级认证并正式获得资质证书,斩获全球软件领域最权威的认证之一,标志着宏工科技在软件技术开发、研发管理、项目管理等多方面获得国际权威认证。 CMMI全称是Capability Maturity Model Integrati…

ESXi 6.7 升级 7.0

方式一:esxcli方式 1.登陆exsi web界面。 启用控制台shell 2.存储-datastore-数据存储浏览器,上载 ESXI-7.0.0-depot.zip升级文件。记住此datastore的位置 ssh连接ESXI主机 vmware -vl 查看当前版本 查看升级包中对应的版本信息: es…

3D模型材质编辑器

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 材质贴图(Texture Mapping):是在物体着色方面最引人注目、…

使用 yum 出现 Loaded plugins: fastestmirro

📑前言 本文主要是使用 yum 出现 Loaded plugins: fastestmirro,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日…

注意力机制(Q,K,V)基本概念

文章目录 一、注意力提示1.1概念1.2生活中的注意力提示1.3注意力机制基本框架小结 二、注意力汇聚2.1概念2.2非参注意力汇聚2.2.1平均汇聚2.2.2Nadaraya-Waston核回归 2.3通用注意力汇聚公式2.4带参数注意力汇聚小结 三、注意力评分函数3.1概念3.2例子 四、遮蔽softmax三四小结…

【触想智能】无风扇工控电脑一体机使用优势分析

无风扇工控电脑一体机是属于工控一体机分类中的其中一种,看名字,很明显就是没有散热风扇的工控电脑一体机,而平常我们使用的电脑主机是带有电源风扇、CPU散热风扇的。 无风扇工控电脑一体机的配置组成和商用电脑主机的配置基本一样&#xff0…

C#常见的设计模式-结构型模式

引言 设计模式是软件工程中用于解决常见问题的可复用解决方案。在C#编程中,常见的设计模式具有广泛的应用。本篇博客将重点介绍C#中常见的结构型设计模式,包括适配器模式、装饰器模式、代理模式、组合模式和享元模式。 目录 引言1. 适配器模式(Adapter …

Selenium/webdriver原理解析

最近在看一些底层的东西。driver翻译过来是驱动,司机的意思。如果将webdriver比做成司机,竟然非常恰当。 我们可以把WebDriver驱动浏览器类比成出租车司机开出租车。在开出租车时有三个角色: 乘客:他/她告诉出租车司机去哪里&…

Python语言创建爬虫代理IP池详细步骤和代码示例

目录 一、引言 二、代理IP的选择 三、使用代理IP的代码示例 四、创建代理IP池的代码示例 五、总结 一、引言 在爬虫程序中,代理IP的使用是避免IP被封禁、提高爬取效率的重要手段。本文将详细介绍如何使用Python语言创建一个爬虫代理IP池,包括代理I…

中科驭数受邀出席2023 ODCC冬季全会,共谋开放数据中心创新发展

近日,2023年开放数据中心委员会(简称“ODCC”)冬季全会在宁夏银川成功召开,中科驭数作为ODCC的新成员单位,受邀出席本次重要会议。 ▲ 中科驭数正式加入ODCC开放数据中心委员会 开放数据中心委员会是在中国通信标准化…

排序篇(六)----排序小结(不用三连,混流量券)

排序篇(六)----排序小结 排序算法复杂度及稳定性分析 直接插入排序的算法复杂度: 最好情况下,当数组已经有序时,直接插入排序的时间复杂度为O(n),其中n是数组的大小。最坏情况下,当数组逆序排列时,直接插…

Lazada测评怎么做?

国内电商行业的发展日趋激烈,卖家想要脱颖而出非常困难,许多卖家选择入驻跨境电商平台开店, 跨境电商平台吸引了许多卖家入驻,而最近有很多朋友在私信问我关于Lazada测评的一些事情 Lazada产品测评流程步骤 怎么测评 这个怎么测…

pc数据通过插槽来设置启用未启用

使用三元表达式 <el-table-column prop"state" label"启用" width"180"><template v-slot"{ row }"><span>{{row.state 1 ? "已启用" : row.state 0 ? "未启用" : "无"}}</sp…

基于AC6969的蓝牙控制RGB彩灯

程序的实现思路&#xff1a;单片机与手机app之间通过蓝牙实现通讯&#xff0c;通过点击屏幕上的对应色块然后app会把对应的RGB值发送到单片机。然后单片机会对数据进行解析然后把数字量转换为模拟量&#xff0c;然后通过PWM控制IO口输出不同的电压以此来达到控制RGB灯 RGB彩灯原…

死磕Nacos系列:Nacos是如何更新服务信息的?

前言 说到服务信息&#xff0c;我们还是得回到NamingService&#xff0c;因为这是和NacosServer进行服务注册的核心组件&#xff0c;内部提供了注册、获取Nacos实例的能力。至于其他组件&#xff0c;如Ribbon&#xff0c;在调用时需要所有实例信息来进行负载&#xff0c;那肯定…

【古诗生成AI实战】之四——模型包装器与模型的训练

在上一篇博客中&#xff0c;我们已经利用任务加载器task成功地从数据集文件中加载了文本数据&#xff0c;并通过预处理器processor构建了词典和编码器。在这一过程中&#xff0c;我们还完成了词向量的提取。 接下来的步骤涉及到定义模型、加载数据&#xff0c;并开始训练过程。…

如何快速检测硬盘健康程度?

当我们使用Windows11/10/8/7计算机时&#xff0c;可能会遇到各种各样的问题&#xff0c;比如蓝屏报错、系统崩溃或其他运行不正常的状况。很多时候都是因为硬盘错误或故障导致的。那么&#xff0c;我们该如何快速检测硬盘健康程度呢&#xff1f; 在驱动器属性中执行硬盘查错 硬…

【Cisco Packet Tracer】电子邮箱仿真搭建

本文使用Cisco Packet Tracer&#xff0c;搭建电子邮箱仿真系统&#xff0c;使得zhangsancisco.com可以和lisicisco.com可以互相发送邮件。 电子邮箱账号&#xff08;为了简单起见&#xff0c;账号密码设置一致&#xff09;&#xff1a;zhangsan/lisi 域名&#xff1a;cisco.…

office tool plus工具破解word、visio等软件步骤

第一步&#xff1a;下载工具 破解需要用到office tool plus软件 office tool plus软件下载地址&#xff1a;Office Tool Plus 官方网站 - 一键部署 Office 选择其中一个下载到本地&#xff08;本人选择的是第一个的云图小镇下载方式&#xff09; 第二步&#xff1a;启动工具 …