【中级软件设计师】上午题12-软件工程(3):项目活动图、软件风险、软件评审、软件项目估算

【中级软件设计师】上午题12-软件工程(3)

  • 1 软件项目估算
    • 1.1 COCOMO估算模型
    • 1.2 COCOMOⅡ模型
  • 2 进度管理
    • 2.1 gantt甘特图
    • 2.2 pert图
    • 2.3 项目活动图
      • 2.3.1 画项目图
  • 3 软件配置管理
  • 4 软件风险
    • 4.1 风险管理
    • 4.2 风险识别
    • 4.3 风险预测
    • 4.4 风险评估
    • 4.5 风险控制
  • 5 ISO IEC 9126 软件质量模型
  • 6 Mc Call 软件质量模型
  • 7 软件评审
    • 7.1 设计质量的评审内容
    • 7.2 程序质量的评审内容
  • 8 软件容错技术
  • 9 软件维护工具
    • 9.1 软件开发工具
    • 9.2 软件维护工具

1 软件项目估算

1.1 COCOMO估算模型

1.基本COCOMO模型
静态单变量模型
2.中级COCOMO模型
静态多变量模型
3.详细COCOMO模型
它将软件系统模型分为系统、子系统和模块3个层次

1.2 COCOMOⅡ模型

(1)应用组装模型。对象点
(2)早期设计阶段模型。功能点
(3)体系结构阶段模型。代码行

2 进度管理

2.1 gantt甘特图

Gantt图能清晰地描述每个任务从何时开始,到何时结束,任务的进展情况以及各个任务之间的并行性。
但是它不能清晰地反映出各任务之间的依赖关系,难以确定整个项目的关键所在也不能反映计划中有潜力的部分。

2.2 pert图

最早时刻表示在此时刻之前从该事件出发的任务不可能开始;
最迟时刻表示从该事件出发的任务必须在此时刻之前开始,否则整个工程就不能如期完成。
每个任务还可以有一个松弛时间(Slack Time),最迟时刻-最早时刻为松弛时刻

最早时刻:选max
最迟时刻:选min
关键路径:松弛时刻为0的路径

2.3 项目活动图

做法和pert图类似,但是松弛时刻为0的路径不一定是关键路径
比如:
在这里插入图片描述
在这里插入图片描述

2.3.1 画项目图

在这里插入图片描述
在这里插入图片描述

3 软件配置管理

软件配置管理其主要目标包括:变更标识、变更控制、版本控制、确保变更正确的实现、变更报告、

软件配置管理其主要内容包括:版本管理、配置支持、变更支持、过程支持、团队支持、变化报告、审计支持。

上下为两个不同的版本

软件配置管理其主要内容包括:软件配置标识、变更管理、版本控制、系统建立、配置审核、配置状态报告。

配置数据库可以分为以下三类:
1.开发库
2.受控库
3.产品库

4 软件风险

4.1 风险管理

一般认为软件风险包含两个特性:不确定性和损失。
不确定性是指风险可能发生也可能不发生;损失是指如果风险发生,就会产生恶性后果。

项目风险威胁到项目计划。

技术风险威胁到要开发软件的质量及交付时间。

商业风险有主要的以下5个:
1.市场风险
2.策略风险
3.销售风险
4.管理风险
5.预算风险

4.2 风险识别

风险识别试图系统化地指出对项目计划(估算、进度、资源分配等)的威胁。
识别出已知风险和可预测风险后,项目管理者首先要做的是在可能时回避这些风险,在必要时控制这些风险。

识别风险的一种方法是建立风险条目检查表。该检查表可用于风险识别,并且主要用来识别下列几种类型中的一些已知风险和可预测风险。

4.3 风险预测

风险预测又称风险估计,它试图从两个方面评估一个风险:风险发生的可能性或概率;如果风险发生了所产生的后果。

如果风险真的发生,有3个因素可能会影响风险所产生的后果,即风险的本质、范围和时间。

整体的风险显露度(Risk Exposure,RE)可由下面的关系确定:
R E = P × C RE=P×C RE=P×C
其中,P是风险发生的概率,C是风险发生时带来的项目成本。

4.4 风险评估

一种对风险评估很有用的技术就是定义风险参照水准。

4.5 风险控制

风险控制的目的是辅助项目组建立处理风险的策略。
应对风险的最好办法是主动地避免风险

这种监测活动有3个主要目的:
1.评估所预测的风险是否真的发生了
2.保证正确地实施了各风险的缓解步骤
3.收集能够用于今后风险缝隙的信息。

5 ISO IEC 9126 软件质量模型

由3个层次组成:第一层是质量特性,第二层是质量子特性,第三层是度量指标。

其中,各质量特性和质量子特性的含义如下:
(1)功能性(Fumctionality)。与一组功能及其指定的性质的存在有关的一组属性,功能是指满足规定或隐含需求的那些功能。
(2)可靠性(Reliability)。与在规定的一段时间内和规定的条件下软件维持在其性能水平有关的能力。
(3)易使用性(Usability)。与为使用所需的努力和由一组规定或隐含的用户对这样使用所做的个别评价有关的一组属性。
(4)效率(Efciency)。在规定条件下,与软件的性能水平与所用资源量之间的关系有关的软件属性。
(5)可维护性(Maintainability)。与进行规定的修改所需要的努力有关的一组属性。
在这里插入图片描述

6 Mc Call 软件质量模型

McCall 软件质量模型从软件产品的运行、修正和转移3个方面确定了 11个质量特性(如图 5-16 所示)。Mc Ca! 也给出了一个三层模型框架,第一层是质量特性,第二层是评价准则,第三层是度量指标。
在这里插入图片描述

7 软件评审

7.1 设计质量的评审内容

通常从以下几个方面进行评审:
(1)评价软件的规格说明是否合乎用户的要求
(2)评审可靠性,
(3)评审保密措施实现情况,
(4)评审操作特性实施情况,
(5)评审性能实现情况,
(6)评审软件是否具有可修改性、可扩充性、可互换性和可移植性。
(7)评审软件是否具有可测试性
(8)评审软件是否具有复用性

7.2 程序质量的评审内容

(4)模块结构。
控制流结构、数据流结构、模块结构与功能结构之间的对应关系。

进行正式的技术评审:其唯一的目的是揭露质量问题。在多数情况下,评审能像测试一样有效地揭露软件中的缺陷。

8 软件容错技术

实现容错的主要手段是冗余。冗余是指对于实现系统规定功能是多余的那部分资源,包括硬件、软件、信息和时间。由于加入了这些资源,有可能使系统的可靠性得到较大的提高。通常,冗余技术分为4类。

(1)结构冗余。结构冗余是通常采用的冗余技术,按其工作方法可以分为静态、动态和混合几余 3种。
(2)信息冗余。
(3)时间冗余。
(4)冗余附加技术。

在屏蔽硬件错误的容错技术中,冗余附加技术包括:
1.关键程序和数据的几余存储及调用。
2.检测、表决、切换、重构、纠错和复算的实现。在屏蔽软件错误的容错系统中,冗余附加技术的构成包括:
①冗余备份程序的存储及调用。
②实现错误检测和错误恢复的程序。
③实现容错软件所需的固化程序

9 软件维护工具

9.1 软件开发工具

软件开发工具通常有需求分析工具、设计工具、编码与排错工具、测试工具等。

9.2 软件维护工具

软件维护工具主要有版本控制工具、文档分析工具、开发信息库工具、逆向工程工具和再工程工具。


已完结,但是还需后续补充,星期天补充~软考真是一场酣畅淋漓的记忆考试

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

二叉树遍历递归法迭代法实现

一.递归法实现二叉树遍历 前序遍历 创建一个节点类 属性是val,左节点&#xff0c;右节点 public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val x; } } 前序遍历 class Solution {public List<Integer> preorderTraversa…

微服务启动慢,看我如何消灭这些憨憨怪!

Hello&#xff0c;我是大都督周瑜&#xff0c;最近在公司做微服务启动速度的优化&#xff0c;我们有些微服务启动要花5-6分钟&#xff08;就问你夸不夸张&#xff09;&#xff0c;直接导致打工人们有了更多的划水时间&#xff0c;领导表示不开心&#xff0c;要求我将微服务的启…

python监听html click教程

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 Python实现监听HTML点击事件 在Web开发中&#xff0c;经常需要在用户与页面交互时执行一些…

乐观锁悲观锁

视频&#xff1a;什么是乐观锁&#xff1f;什么是悲观锁&#xff1f;_哔哩哔哩_bilibili

如何在电脑桌面上显示每天的待办事项?

对于上班族来说&#xff0c;每天面临的任务繁杂&#xff0c;很容易遗漏或忘记某些重要事项。因此&#xff0c;在电脑桌面上直接显示每天的待办事项显得尤为重要。例如&#xff0c;当你忙于处理邮件或编写报告时&#xff0c;桌面的待办事项提醒能够让你一目了然地掌握接下来的工…

C语言进阶|链表经典OJ题

✈移除链表元素 给你一个链表的头节点 head 和一个整数 val &#xff0c;请你删除链表中所有满足 Node.val val 的节点&#xff0c;并返回 新的头节点 。 方法一&#xff1a; 遍历链表找到所有等于val的节点&#xff0c;再执行删除操作删除这些节点。 方法二&#xff1a; …

Flask 数据库前后端交互案例-1

Flask 数据库前后端交互案例 目录结构templates目录base.htmlheader.htmlleft.html首页职员管理页面添加员工界面员工编辑页面员工详情界面 后台main.pyapp.pymodels.pyviews.py 数据库数据position.sqlperson.sqlpermission.sqldepartment.sql 目录结构 静态文件链接&#xff…

Linux工具篇 之 vim概念 操作 及基础指令讲解

学校不大 创造神话 讲桌两旁 陨落的王 临时抱佛脚 佛踹我一脚 书山有路勤为径 游戏玩的很起劲 想要计算机学的好&#xff0c;我的博客列表是个宝 –❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀–❀-正文开始-❀–❀–❀–❀–❀–❀–❀–❀…

OceanBase开发者大会实录-杨传辉:携手开发者打造一体化数据库

本文来自2024 OceanBase开发者大会&#xff0c;OceanBase CTO 杨传辉的演讲实录—《携手开发者打造一体化数据库》。完整视频回看&#xff0c;请点击这里&#xff1e;> 各位 OceanBase 的开发者&#xff0c;大家上午好&#xff01;今天非常高兴能够在上海与大家再次相聚&…

Springboot+Vue项目-基于Java+MySQL的校园外卖服务系统(附源码+演示视频+LW)

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…

自动驾驶中的深度学习和计算机视觉

书籍&#xff1a;Applied Deep Learning and Computer Vision for Self-Driving Cars: Build autonomous vehicles using deep neural networks and behavior-cloning techniques 作者&#xff1a;Sumit Ranjan&#xff0c;Dr. S. Senthamilarasu 出版&#xff1a;Packt 书籍…

【GitHub】如何在github上提交PR(Pull Request) + 多个pr同时提交、互不干扰

【GitHub】如何在github上提交PR(Pull Request 写在最前面1. 准备工作1.1 注册 GitHub 账号1.2 了解 Git 基础1.3 找到一个项目 2. 创建你的 PR2.1 Fork 和克隆仓库2.2 创建一个新的分支2.3 进行更改2.4 推送更改到 GitHub2.5 创建 Pull Request 3. 优化你的 PR3.1 保持提交清晰…

Nacos 安全零信任实践

作者&#xff1a;柳遵飞 Nacos 作为配置中心经常存储一些敏感信息&#xff0c;但是由于误用导致安全风险&#xff0c;最常见的主要是以下两个问题&#xff1a; 1&#xff09;Nacos 暴露公网可以吗&#xff1f;不可以&#xff0c;因为 Nacos 定位是注册配置中心&#xff0c;是…

谷歌验证码识别/谷歌识别/Google/本地库识别/图像识别

谷歌识别 做这个有两种方式&#xff0c;一种是图像分类的方式&#xff0c;标注量大&#xff0c;识别率有局限性。 另外一种是通过上面的图和下面的小图做一个相似度匹配&#xff0c;做孪生网络。 谷歌验证方式比较丰富&#xff0c;有时候上面的小图没有&#xff0c;我们可以做…

力扣37题:回溯算法之解数独

编写一个程序&#xff0c;通过填充空格来解决数独问题。 数独的解法需 遵循如下规则&#xff1a; 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。&#xff08;请参考示例图&#xff09; 数独部分空…

java-动态代理

为什么需要代理&#xff1f; 如何创建代理 注意&#xff1a;实现类和代理需要实现同一个接口 接口 public interface Star {String sing(String song);void dance(); }实现类 public class BigStar implements Star {private String name;public BigStar(String name) {this.…

开源博客项目Blog .NET Core源码学习(20:App.Hosting项目结构分析-8)

本文学习并分析App.Hosting项目中后台管理页面的个人资料页面、修改密码页面。 个人资料页面 个人资料页面用于显示和编辑个人信息&#xff0c;支持从本地上传个人头像。整个页面使用了layui中的表单、日期与时间选择、上传等样式或模块&#xff0c;通过layui.css文件设置样式…

精彩回顾|从 AI 到银幕:顶尖对话揭秘 AI 如何塑造影视新格局

4月17日&#xff0c;由万合天宜、三次元影业、NOVATECH、微软中国极客天团、微软 Reactor 共同推出的「从 AI 到银幕」顶尖对话在上海微软紫竹园区举办。中国内地著名导演、编剧、监制黄建新&#xff0c;微软&#xff08;中国&#xff09;有限公司首席技术官韦青&#xff0c;与…

基于SpringBoot+Vue高校实习管理系统的设计与实现

项目介绍&#xff1a; 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统高校实习管理系统信息管理难度大&#xf…

atlas 500容器(ubuntu20.04)搭建

1.docker 及环境搭建略 2.宿主机驱动安装略 3.宿主机中能正确使用npu-smi 4.docker 拉取略 5.docker 容器启动 docker run -itd --device/dev/davinci0 --device/dev/davinci_manager --device/dev/devmm_svm --device/dev/hisi_hdc -v /run/board_cfg.ini:/run/b…