【中级软件设计师】上午题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 软件维护工具

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


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

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

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

相关文章

Rest微服务案例

Rest 父工程构建microservicecloud-api公共子模块Modulemicroservicecloud-provider-dept-8001部门微服务提供者Modulemicroservicecloud-consumer-dept-80部门微服务消费者Module 以Dept部门模块做一个微服务通用案例 Consumer消费者(Client)通过REST调…

react项目发布后,浏览器源码泄露的解决方案

在使用create-react-app时,打包生产环境npm run build,浏览器打开后仍然是可以看到源码的。源码都没上传,为啥线上能看到源码 。 例:线上与服务器 线上与源码 react-scripts build和npm run build 有什么不同 react-scripts bui…

PID算法学习

PID算法介绍 在过程控制中,按偏差的比例(P)、积分(I)和微分(D)进行控制的PID控制器(亦称PID调节器)是应用最为广泛的一种自动控制器。它具有原理简单,易于实…

嵌入式Linux学习——Ubantu初体验

Ubuntu 和Windows 的最大差别 Windows中的每一个分区都对应着一个盘符,盘符下可以存放目录与文件,而在Ubantu中没有盘符的概念,只有目录结构。实际上不同的目录可能挂载在不同的分区之下,如果想要查看当前目录位于磁盘的哪个分区…

【java数据结构-优先级队列向下调整Topk问题,堆的常用的接口详解】

🌈个人主页:努力学编程’ ⛅个人推荐:基于java提供的ArrayList实现的扑克牌游戏 |C贪吃蛇详解 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 …

递归的层序遍历

最近遇到一个业务需求:一颗依赖树,其实就是一颗递归树,如何一层一层的数据放在一起,可以近似理解为二叉树的层序遍历。 业务理解为递归树的层序遍历 代码示例: public class RecursionErgodic {public static void…

使用Kimi的一些体会

1、https://kimi.cn 这个回答问题还比较专业,感觉比以前chatgpt要好一些 2、Moonshot AI - 开放平台 可以通过注册账号,或微信扫描就可以登录进去 通过postman可以体会一下功能 2.1 POST https://api.moonshot.cn/v1/chat/completions 2.2 授权选择下…

达梦(DM) SQL日期操作及分析函数

达梦DM SQL日期操作及分析函数 日期操作SYSDATEEXTRACT判断一年是否为闰年周的计算确定某月内第一个和最后一个周末某天的日期确定指定年份季度的开始日期和结束日期补充范围内丢失的值按照给定的时间单位查找使用日期的特殊部分比较记录 范围处理分析函数定位连续值的范围查找…

docker部署通义千问-7B-Chat的openai-api环境

服务器环境: 显卡驱动:Driver Version: 530.30.02 CUDA版本:CUDA Version: 12.1 显卡:NVIDIA GeForce RTX 3090共4张 注意:最好把显卡驱动升级到530,CUDA版本之前使用11.7有问题。 一、下载模型文件 …

环境配置——Windows平台配置VScode运行环境为远程服务器或虚拟机

1. 远程机需要先安装SSH服务,命令如下 sudo apt install openssh-server 2. 安装好后需要开启SSH服务: sudo service sshd start 3. 查看SSH服务是否有被开启: sudo systemctl status sshd.service 4. 本地Windows需要生成密钥将公钥放…

茴香豆:搭建你的RAG智能助理-笔记三

本次课程由书生浦语社区贡献者【北辰】老师讲解【茴香豆:搭建你的 RAG 智能助理】课程 课程视频:https://www.bilibili.com/video/BV1QA4m1F7t4/ 课程文档:Tutorial/huixiangdou/readme.md at camp2 InternLM/Tutorial GitHub 该课程&…

贪吃蛇撞墙功能的实现 和自动行走刷新地图 -- 第三十天

1.撞墙 1.1最初的头和尾指针要置为空,不然是野指针 1.2 在增加和删除节点后,判断是否撞墙,撞墙则初始话蛇 1.3在撞墙后初始化蛇,如果头不为空就撞墙,得定义临时指针指向头,释放头节点 2.自动刷新地图 2.1…