『软件工程1』详解软件是什么

软件基本概念

    • 一、什么是产品
    • 二、软件的双重角色
    • 三、软件的涵义及特征
    • 四、软件应用
    • 五、软件危机
    • 六、软件神话

一、什么是产品

1、从用户的角度
产品实际上就是信息,以某种方式使得用户世界更加美好
2、从软件工程师的角度
产品实际上就是软件

二、软件的双重角色

1、产品
软件是一个信息变换器,用来获取、显示及管理信息等
2、产品交付使用的载体
软件是①操作系统的基础;②通信网络的基础;③其他软件工具和环境的基础

三、软件的涵义及特征

1、软件的涵义
软件Software = 程序Program + 数据Data + 文档Document,这些项的每一个均包含一个配置
2、软件的特征
1)软件是被开发或设计的,而不是传统意义上被制造的
2)软件不会“磨损”,但是会退化
注:需了解两种曲线:硬件故障率曲线(浴缸曲线);软件故障率曲线;具体形式图如下:
在这里插入图片描述
在这里插入图片描述
(3)虽然软件产业正在向基于构件的组装前进,大多数软件仍然是定制的
->构件:是可复用的组成部分,可被用于构造其他软件,比如一些被封装的对象类、功能模块及软件框架等

四、软件应用

1、系统软件
2、应用软件
3、工程/科学软件
4、Web应用软件
5、人工智能软件
6、……

五、软件危机

1、软件危机的表现
(1)对软件开发成本进度的估计常常不准确(开发成本超出预算,实际进度比预定计划一再拖延的现象并不罕见)
(2)用户对“已完成”系统不满意的现象经常发生
(3)软件产品的质量往往靠不住,bug一大堆
(4)软件的可维护程度非常之低
(5)软件通常没有适当的文档资料
(6)软件的成本不断提高
(7)软件开发生产率的提高赶不上硬件的发展和人们需求的增长
2、软件危机引发的思考
1)How do we ensure the quality of the software that we produce?
我们如何确保我们所产生软件的质量?
2)How do we meet growing demand and still maintain budget control?
我们如何满足日益增长的需求,同时又保持预算控制?
3)How do we upgrade an ageing “software plan”?
我们如何升级老化的“软件计划”?
4)How do we avoid disastrous time delays?
我们如何避免灾难性的时间延误?
(5)How do we successfully institute new software technologies?
我们如何成功的研究新的软件技术?
3、减轻软件危机的途径
1)对计算机软件有一个正确的认识(软件≠程序)。
2)必须充分认识到软件开发不是某种个体劳动的神秘技巧,而应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目
3)推广使用在实践中总结出来的开发软件的成功技术和方法
4)开发和使用更好的软件工具

六、软件神话

1、三大软件神话
(1)管理者的神话
已有了关于开发软件的标准和规程的书籍,可提供所有的信息。
已有了很多很好的软件开发工具和最新的计算机。
如果已落后于计划,可以增加更多的程序员来赶上进度。
如果决定“外包”,就可以放松让承包公司去建造。
(2)客户神话
有了对目标的一般性描述,就可以开始写程序。
项目需求可以不断变更,因为软件是灵活的。
But…变更的代价是:
在这里插入图片描述

(3)实践者的神话
一旦写出程序并正常运行,工作就结束了。
在程序真正开始运行之前无法评估其质量。
一个成功的项目唯一应该提交的就是运行程序。
软件工程将使我们创建大量的、不必要的文档,并总是延缓进度。
2、软件开发过程中各单位分配比例
1)工作量分配比例
在这里插入图片描述

2)费用分配比例
在这里插入图片描述
如果这篇文章对你有帮助,记得留下star哦~

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

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

相关文章

200. 岛屿数量025(BFS详解)

二:思路 1.这里我们使用的是BFS(广度优先搜索遍历) 2.当我们遇到一个岛屿(‘1’)的时候,我们就对其的左右四边进行广度遍历 并且标记已经访问过的结点。 3.那么我们每次遇到一个1开始广度遍历那就证明我们发现了一个岛 三:上码 …

进击吧! Blazor 第一期

Blazor 是一个 Web UI 框架,可通过 WebAssembly 在任意浏览器中运行 .Net 。Blazor 旨在简化快速的单页面 .Net 浏览器应用的构建过程,它虽然使用了诸如 CSS 和 HTML 之类的 Web 技术,但它使用 C#语言和 Razor 语法代替 JavaScrip…

『软件工程2』详解软件工程和软件过程模型

文章目录一、软件工程的定义1、Fritz Bauer在NATO上给出的定义2、Barry Boehm3、IEEE在软件工程术语汇编中的定义二、软件工程的层次1、软件工程三个要素2、软件工程的层次——图解3、软件工程的层次——逐一分析三、软件过程的三个阶段1、定义阶段——“做什么”2、开发阶段—…

利用vector实现一对一(pair<int,int>)

一&#xff1a;前言 我们知道有一对一的STL容器有map容器&#xff0c;但是map容器中的按键值排序和不允许由重复的元素&#xff0c;现在&#xff0c;我们可以利用 vector<pair<int,int> >来实现一对一&#xff0c;但其没有排序可以允许有重复的元素 二&#xff1…

没有docker,谈什么微服务架构?

新的互联网技术时代已经来临了&#xff0c;容器、Kubernetes、DevOps、微服务、云原生代表着技术前进的方向&#xff0c;.NET Core微服务Docker&#xff0c;亦是当下最优解决方案(低调点&#xff0c;几乎没有之一)&#xff01;有点自夸&#xff1f;作为专注于.NET领域十多年的老…

『软件工程3』你应该知道的三种原型实现模型:抛弃式、演化式、增量式

三种原型实现模型一、抛弃式原型开发二、演化式原型开发三、增量式原型开发一、抛弃式原型开发 1、定义&#xff1a;验证和澄清系统的需求描述&#xff0c;重新构造系统。 2、流程图 3、典型例子 开发者与客户进行沟通交流&#xff0c;之后获取到客户的需求&#xff0c;于是…

『软件工程4』一文了解软件项目管理中的4P

软件项目管理中的4P一、项目管理的重要性和定义1、重要性&#xff08;两个阶段&#xff09;2、软件项目管理的定义二、管理四要素4P1、管理的四要素(4P)2、软件项目中影响最终结果的要素3、项目管理关心的问题三、项目参与者类型(people)四、项目小组结构(people)1、项目的三种…

8-1 回溯法实验报告 (15 分)(思路+详解)

一&#xff1a;题目 给定k个正整数&#xff0c;用算术运算符&#xff0c;-&#xff0c;&#xff0c;/ 将这k个正整数连接起来&#xff0c;是最终的得数恰为m。 如果有多组满足要求的表达式&#xff0c;只要输出一组&#xff0c;每一步算式用分号隔开。 如果无法得到m&#xff…

TypeScript 4.0 发布

喜欢就关注我们吧&#xff01;整体看来&#xff0c;此版本在兼容性方面没有特别大的变化。因为 TypeScript 团队表示新版本继续使用与过去版本相似的版本控制模型&#xff0c;可将 4.0 视作 3.9 的延续升级版本。而且他们也一直在追求不牺牲主要灵活性的情况下&#xff0c;提供…

『软件工程5』详解软件项目管理之软件的度量

软件项目管理——软件的度量一、度量的目的1、引例2、度量的目的3、度量的作用二、测量、度量和指标区别1、引例2、测量、度量和指标的区别3、思考题三、过程度量和项目度量1、过程2、项目四、度量的方式1、物理世界中的测量2、软件测量五、面向规模的度量1、定义2、有用度量的…

7-2 旅行售货员 (10 分)(TSP问题思路加详解)

一题目 某售货员要到若干城市去推销商品&#xff0c;已知各城市之间的路程(或旅费)。他要选定一条从驻地出发&#xff0c;经过每个城市一遍&#xff0c;最后回到驻地的路线&#xff0c;使总的路程&#xff08;或总旅费&#xff09;最小。 输入格式: 第一行为城市数n 下面n行…

从零开始内建你的安全测试流程

一、 安全测试的意义安全问题&#xff0c;没发生的时候我们可以侥幸&#xff0c;一旦发生生产安全问题&#xff0c;对很多公司来说可能就是黑天鹅事件了。平台的安全&#xff0c;是我们测试中不可舍弃的一环&#xff0c;而且需要长期持续的关注。二、 从哪里入手很多公司没有专…

『软件测试1』你需要了解的软件测试基础知识

软件测试基础一、 软件缺陷的概述1、什么是软件缺陷2、软件缺陷的类型3、软件缺陷的案例4、软件缺陷的产生原因5、软件缺陷的分类6、软件缺陷的处理流程7、多学一招&#xff1a;缺陷报告&#xff08;由测试人员完成&#xff09;8、常见软件缺陷管理工具9、修复软件缺陷的成本二…

直连路由和静态路由(实验)

一:概念 1:直连路由概念 根据 路由 器学习路由信息、生成并维护 路由表 的方法包括直连路由(Direct)、 静态路由 (Static)和 动态路由 (Dynamic)。直连路由&#xff1a;路由器接口所连接的子网的路由方式称为直连路由&#xff1b; 非直连路由&#xff1a;通过路由协议从别的路…

使用 GB28181.Solution + ZLMediaKit + MediaServerUI 进行摄像头推流和播放

使用 GB28181.Solution ZLMediaKit MediaServerUI 进行摄像头推流和播放独立观察员 2020 年 8 月 25 日一、摄像机 GB28181 配置打开 国标 28181 配置页面&#xff0c;勾上 “接入使能”&#xff1a;打钩的是重要的配置信息&#xff0c;主要就是 SIP 服务器的信息和摄像头自己…

将 .NET Framework 项目转换为 .NET Standard 项目

将 .NET Framework 项目转换为 .NET Standard 项目独立观察员 2020 年 8 月 20 日如今 .NET Core 是未来发展的主流&#xff08;至少在 .NET 5 发布之前&#xff09;&#xff0c;而我们如果要改造一个项目为 .NET Core 项目&#xff0c;则它引用的项目应当先改造为 .NET Standa…

7-3 最短路径 (20 分)(分支限界+思路+详解)

一&#xff1a;题目 给定一个有N个顶点和E条边的无向图&#xff0c;顶点从0到N−1编号。请判断给定的两个顶点之间是否有路径存在。如果存在&#xff0c;给出最短路径长度。 这里定义顶点到自身的最短路径长度为0。 进行搜索时&#xff0c;假设我们总是从编号最小的顶点出发&a…

一份【软件工程】的学习指南已到达,请注意查收!!

软件工程——起始篇一、引言二、学习【软件工程】的原因1、软件设计师证书2、相关领域人员必备技能三、【软件工程】的学习方法1、不要盲目为了学习而学习2、规划学习路线四、结束语【软件工程】应该是大学计算机专业必修的一门课&#xff0c;对于开发者来说&#xff0c;可能有…

『软件工程6』详解软件项目管理之软件范围与估算

软件项目管理——软件范围与估算一、软件项目计划1、目标2、步骤二、软件范围1、软件范围定义2、软件范围——引例三、影响估算的因素四、软件项目资源1、软件项目资源构成2、分析图3、人力资源4、硬件资源5、软件工具6、可复用构件五、软件工作量与成本的估算1、基于LOC估算工…

【翻译】.NET 5 Preview8发布

今天&#xff0c;.NET 5预览8发布了&#xff0c;对于.NET5.0的功能开发已经完成了&#xff0c;这必须要排除待处理的bug&#xff0c;预览8是最后一次预览版本。预计11月正式的.NET5.0版本发布之前还将发布两个正式之前的候选版本&#xff0c;这篇文章描述了.NET5.0版本中的一系…