软考 -- 计算机学习(2)

文章目录

      • 一、安全性知识
        • 1.1 信息安全和信息系统安全
        • 1.2 信息安全技术
        • 1.3 网络安全技术
      • 二、多媒体技术
      • 三、软件工程基础知识
        • 3.1 信息系统生命周期
        • 3.2 软件过程模型
        • 3.3 信息系统开发方法
        • 3.4 系统分析和设计概述
        • 3.5 结构化开发方法
        • 3.6 系统运行与维护
      • 四、项目管理
        • 4.1 进度管理
        • 4.2 质量管理
        • 4.3 风险管理

一、安全性知识

1.1 信息安全和信息系统安全
  1. 信息安全系统的体系结构
    x轴:“安全机制”,为提供某些安全服务,利用各种安全技术和技巧,所形成的一个较为完善的机构体系
    Y轴:“OSI网络参考模型”
    z轴:“安全服务”。就是从网络中的各个层次提供给信息应用系统所需要的安全服务支持
  • “安全空间”的五大属性:认证、权限、完整、加密和不可否认
    在这里插入图片描述
  1. 信息安全含义及属性
    信息安全含义及属性:保护信息的保密性、完整性、可用性,另外也包括其他
    属性,如:真实性、可核查性、不可抵赖性和可靠性。
    • 保密性:信息不被泄漏给未授权的个人、实体和过程或不被其使用的特性。
    • 完整性:信息未经授权不能改变的特性。影响完整性的主要因素有设备故障、
      误码、人为攻击和计算机病毒等。
    • 可用性:需要时,授权实体可以访问和使用的特性。一般用系统正常使用时间.
      和整个工作时间之比来度量。
  • 其他属性:
    真实性:指对信息的来源进行判断,能对伪造来源的信息予以鉴别。
    可核查性:系统实体的行为可以被独一无二的追溯到该实体的特性,这个特性就是要求该实体对其行为负责,为探测和调查安全违规事件提供了可能性。
    不可抵赖性:是指建立有效的责任机制,防止用户否认其行为,这一点在电子商务中是极其重要的。
    可靠性:系统在规定的时间和给定的条件下,无故障地完成规定功能的概率。
  1. 安全需求
    物理线路安全、网络安全、系统安全和应用安全:
    物理线路就是物理设备、物理环境
    网络安全指网络上的攻击、入侵
    系统安全指的是操作系统漏洞、补丁等
    应用安全就是上层的应用软件,包括数据库软件
1.2 信息安全技术
  1. 对称加密技术
    数据的加密和解密的密钥(密码)是相同的,属于不公开密钥加密算法。其缺点是加密强度不高(因为密钥位数少),且密钥分发困难(因为密钥还需要传输给接收方,也要考虑保密性等问题)。优点是加密速度快,适合加密大数据
    • 常见的对称秘钥加密算法:DES、3DES、AES、RC-5、IDEA
  2. 非对称加密技术
    数据的加密和解密的密钥是不同的,分为公钥和私钥。是公开密钥加密算法。其缺点是加密速度慢。优点是安全性高,不容易破解
    非对称技术的原理是:发送者发送数据时,使用接收者的公钥作加密密钥,私钥作解密密钥,这样只有接收者才能解密密文得到明文。安全性更高,因为无需传输密钥。但无法保证完整性。
    • 常见的非对称加密算法如下:
      RSA: 512位(或1024位)密钥,计算机量极大,难破解。Elgamal、ECC (椭圆曲线算法)、背包算法、Rabin、 D-H等。
  3. 数字信封
  • 原理:信是对称加密的密钥,数字信封就是对此密钥进行非对称加密,具体过程:发送方将数据用对称密钥加密传输,而将对称密钥用接收方公钥加密发送给对方。接收方收到数字信封,用自己的私钥解密信封,取出对称密钥解密得原文。
  • 数字信封运用了对称加密技术和非对称加密技术,本质是使用对称密钥加密数据,非对称密钥加密对称密钥,解决了对称密钥的传输问题。
  1. 信息摘要(哈希函数)
    信息摘要,就是一段数据的特征信息,当数据发生了改变,信息摘要也会发生改变,发送方会将数据和信息摘要一起传给接收方, 接收方会根据接收到的数据重新生成一个信息摘要,若此摘要和接收到的摘要相同,则说明数据正确。信息摘要是由哈希函数生成的。
  • 信息摘要的特点:不算数据多长,都会产生固定长度的信息摘要;任何不同的输入数据,都会产生不同的信息摘要;单向性,即只能由数据生成信息摘要,不能由信息摘要还原数据。
  • 信息摘要算法: MD5 (产生128位的输出)、SHA-1 (安全散列算法,产生160位的输出,安全性更高)。
  1. 数字签名:唯一标识一个发送方
    发送者发送数据时,使用发送者的私钥进行加密,接收者收到数据后,只能使用发送者的公钥进行解密,这样就能唯一确定发送方,这也是数字签名的过程。但无法保证机密性。
  2. 公钥基础设施PKI:
    以不对称密钥加密技术为基础,以数据机密性、完整性、身份认证和行为不可抵赖性为安全目的,来实施和提供安全服务的具有普适性的安全基础设施。
    (1) 数字证书:一个数据结构,是一种由一个可信任的权威机构签署的信息集
    公钥证书主要用于确保公钥及其与用户绑定关系的安全。这个公钥就是证书所标识的那个主体的合法的公钥。
    (2) 签证机构CA:负责签发证书、管理和撤销证书。是所有注册用户所信赖的权威机构,CA在给用户签发证书时要加.上自己的数字签名,以保证证书信息的真实性。任何机构可以用CA的公钥来验证该证书的合法性。
1.3 网络安全技术
  1. 防火墙
    在内部网络和外部因特网之间增加的一道安全防护措施,分为网络级防火墙和应用级防火墙。
    网络级防火墙层次低,但是效率高,应用级防火墙,层次高,效率低
  2. 入侵检测系统IDS:监控当前系统/用户行为
    防火墙技术主要是分隔来自外网的威胁,却对来自内网的直接攻击无能为力,此时就要用到入侵检测IDS技术,位于防火墙之后的第二道屏障,作为防火墙技术的补充。
    不同于防火墙,IDS入侵检测系统是一个监听设备,没有跨接在任何链路.上,无须网络流量流经它便可以工作。
    因此,对IDS的部署,唯一的要求是: IDS应当.挂接在所有所关注流量都必须流经的链路上。因此,IDS在 交换式网络中的位置一般选择在: (1) 尽可能靠近攻击源(2) 尽可能靠近受保护资源
  3. 入侵防御系统IPS
    IDS和防火墙技术都是在入侵行为已经发生后所做的检测和分析,而IPS是能够提前发现入侵行为,在其还没有进入安全网络之前就防御。在安全网络之前的链路上挂载入侵防御系统IPS,可以实时检测入侵行为,并直接进行阻断,这是与IDS的区别
    ◆ 杀毒软件
    用于检测和解决计算机病毒,与防火墙和IDS要区分,计算机病毒要靠杀毒软件,防火墙是处理网络上的非法攻击。
    ◆ 蜜罐系统
    伪造一个蜜罐网络引诱黑客攻击,蜜罐网络被攻击不影响安全网络,并且可以借此了解黑客攻击的手段和原理,从而对安全系统进行升级和优化。
  4. 网络攻击和威胁
    在这里插入图片描述
  5. 计算机病毒和木马
  • 病毒:编制或者在计算机程序中插入的破坏计算机功能或者破坏数据,影响计算机使用并且能够自我复制的一组计算机指令或者程序代码。
  • 木马:是一种后门程序,常被黑客用作控制远程计算机的工具,隐藏在被控制电脑上的一个小程序监控电脑一切操作并盗取信息。
  • 代表性病毒实例
    蠕虫病毒(感染EXE文件):熊猫烧香,罗密欧与朱丽叶,恶鹰,尼姆达,冲击波,欢乐时光
    木马:QQ消息尾巴木马,特洛伊木马,X卧底
    宏病毒(感染word、excel等文件中 的宏变量):美丽沙,台湾1号
    CIH病毒:史上唯一 破坏硬件的病毒
    红色代码:蠕虫病毒+木马
  1. 网络安全协议
    在这里插入图片描述
  • SSL协议:安全套接字协议,被设计为加强Web安全传输(HTTP/HTTPS/)的协议,安全性高,和HTTP结合之后,形成HTTPS安全协议,端口号为443.
  • SSH协议:安全外壳协议,被设计为加强TeInet/FTP安全的传输协议。
  • SET协议:安全电子交易协议主要应用于B2C模式(电子商务)中保障支付信息的安全性。
  • Kerberos协议:是一种网络身份认证协议,该协议的基础是基于信任第三方,
    它提供了在开放型网络中进行身份认证的方法,认证实体可以是用户也可以是
    用户服务。
  • PGP协议(安全电子邮件技术):使用RSA公钥证书进行身份认证,使用IDEA (128位密钥)进行数据加密,使用MD5进行数据完整性验证。

二、多媒体技术

  1. 媒体可分为下面五类:
    感觉媒体:直接作用于人的感觉器官,使人产生直接感觉的媒体。常见的感觉媒体分为文本、图形、图像、动画、音频和视频。
    表示媒体:指传输感觉媒体的中介媒体,即用于数据交换的编码。如:如文本编码、声音编码和图像编码等。
    表现媒体:进行信息输入和信息输出的媒体。也即输入输出设备,如:键盘、鼠标和麦克风;显示器、打印机和音响等。
    存储媒体:存储表示媒体的物理介质。如磁盘、光盘和内存等。
    传输媒体:传输表示媒体的物理介质。如电缆、光纤、双绞线等。

  2. 声音

    • 声音的带宽来衡量声音的大小,单位是HZ。声音是一种模拟信号,转化为数字信号,转换为数字信号的过程有三个步骤:采样、量化、编码。
    • 人耳能听到的音频信号的频率范围是20Hz~20KHz。声音的采样频率-般为最高频率的两倍,才能保证不失真。
      在这里插入图片描述
    • 声音文件格式: .wav、 .snd、 .au、.aif、 .voc、 .mp3、 .ra、 .mid等
  3. 图像

    • 图像的属性:分辨率(每英寸像素点数dpi)、像素深度(存储每个像素所使用的二进制位
      数)。
      图像文件格式: .bmp、 .gif、 .jpg、 .png、 .tif、 .wmf等 。
      DPI:每英寸像素点数。
      图像深度:图像文件中记录一个像素点所需要的位数。显示深度表示显示缓存中记录屏幕上一个点的位数(bit),也即显示器可以显示的颜色数。
    • 矢量图的基本组成单位是图元,位图的基本组成单位是像素,视频和动画的基本组成单元是帧。

三、软件工程基础知识

3.1 信息系统生命周期
  • 软件工程的基本要素:方法、工具、过程
  • 信息系统的生命周期:
    1. 系统规划阶段:任务是对组织的环境、目标及现行系统的状况进行初步调查,根据组织目标和发展战略确定信息系统的发展战略,对建设新系统的需求做出分析和预测,同时考虑建设新系统所受的各种约束,研究建设新系统的必要性和可能性。根据需要与可能,给出制建系统的备选方案。
      输出:可行性研究报告、系统设计任务书
    2. 系统分析阶段:任务是根据系统设计任务书所确定的范围,对现行系统进行详细调查,描述现行系统的业务流程,指出现行系统的局限性和不足之处,确定新系统的基本目标和逻辑功能要求,即提出新系统的逻辑模型。系统分析阶段又称为逻辑设计阶段。这个阶段是整个系统建设的关键阶段,也是信息系统建设与一般工程项目的重要区别所在。
      输出:系统说明书
    3. 系统设计阶段:系统分析阶段的任务是回答系统“做什么”的问题,而系统设计阶段要回答的问题是“怎么做”。该阶段的任务是根据系统说明书中规定的功能要求,具体设计实现逻辑模型的技术方案,也就是设计新系统的物理模型。这个阶段又称为物理设计阶段,可分为总体设计(概要设计)和详细设计两个子阶段。输出:系统设计说明书(概要设计、详细设计说明书)。
    4. 系统实施阶段:是将设计的系统付诸实施的阶段。这一阶段的任务包括计算机等设备的购置、安装和调试、程序的编写和调试、人员培训、数据文件转换、系统调试与转换等。这个阶段的特点是几个互相联系、互相制约的任务同时展开,必须精心安排、合理组织。系统实施是按实施计划分阶段完成的,每个阶段应写出实施进展报告。系统测试之后写出系统测试分析报告。
      输出:实施进展报告、系统测试分析报告
    5. 系统运行和维护阶段:系统投入运行后,需要经常进行维护和评价,记录系统运行的情况,根据一定的规则对系统进行必要的修改,评价系统的工作质量和经济效益。
3.2 软件过程模型
  1. 瀑布模型 SDLC
    在这里插入图片描述
    瀑布模型适合需求明确的项目

  2. 螺旋模型
    在这里插入图片描述

    • 在螺旋模型中,软件开发是一系列的增量发布。
    • 开发过程具有周期性重复的螺旋线状。四个象限分别标志每个周期所划分的四阶段:制订计划、风险分析、实施工程和客户评估螺旋模型强调了风险分析,特别适用于庞大而复杂的、高风险的系统。
  3. V模型
    在这里插入图片描述
    口诀:单编、集详、系概、验需

  4. 原型化模型
    适用于需求不明确的情况

  5. 增量模型

    • 首先开发核心模块功能,然后再开发次核心的模块,优先级最高的服务最先交付
    • 增量模型的每一次增量版本都可作为独立可操作的作品
  6. 其他模型

    • 喷泉模型:是一种以用户需求为动力,以对象作为驱动的模型,适合于面向对象的开发方法。使开发过程具有迭代性和无间隙性。
    • 基于构件的开发模型CBSD: 利用预先包装的构件来构造应用系统。特点是增强了复用性,在系统开发过程中,会构建一个构件库,供其他系统复用,节省时间和成本。
    • 形式化方法模型:建立在严格数学基础上的一种软件开发方法,主要活动是生成计算机软件形式化的数学规格说明。
3.3 信息系统开发方法
  1. 结构化方法
    结构化方法也称为生命周期法,是一种传统的信息系统开发方法,由结构化分析(Structured Analysis,SA)、结构化设计(Structured Design,SD)和结构化程序设计(Structured Programming,SP)三部分有机组合而成,其精髓是自顶向下、逐步求精和模块化设计。

    • 特点:
      (1)开发目标清晰化。结构化方法的系统开发遵循“用户第一”的原则。
      (2)开发工作阶段化。每个阶段工作完成后,要根据阶段工作目标和要求进行审查,这使各阶段工作有条不紊地进行,便于项目管理与控制。
      (3)开发文档规范化。结构化方法每个阶段工作完成后,要按照要求完成相应的文档,以保证各个工作阶段的衔接与系统维护工作的遍历。
      (4)设计方法结构化。在系统分析与 设计 时,从整体和全局考虑,自顶向下地分解;在系统 实现 时,根据设计的要求,先编写各个具体的功能模块,然后自底向上逐步实现整个系统。
    • 常用工具
      结构化方法一般利用图形表达用户需求,常用工具有数据流图、数据字典、结构化语言、判定表以及判定树等。
  2. 面向对象方法
    任何事物都是对象,每一个对象都有自己的运动规律和内部状态,都属于某个对象类,是该对象类的一个元素。

    • 特点:
      (1)使用00方法构造的系统具有更好的复用性,其关键在于建立一个全面、合理、统一的模型(用例模型和分析模型)
      (2)00万法也划分阶段,但其中的系统分析、系统设计和系统买现二个阶段之间已经没有“缝隙”。也就是说,这三个阶段的界限变得不明确
      (3)面向对象方法可以普遍适用于各类信息系统的开发。
  3. 原型化方法
    在这里插入图片描述

  • 原型化方法也称为快速原型法,或者简称为原型法。它是一种根据用户初步需求,利用系统开发工具,快速地建立一个系统模型展示给用户,在此基础上与用户交流,最终实现用户需求的信息系统快速开发的方法。
    是否实现功能分类:分为水平原型(行为原型,功能的导航)、垂直原型(结构化原型,实现了部分功能)。
    最终结果分类:分为抛弃式原型、演化式原型。
  • 特点
    原型法可以使系统开发的周期缩短、成本和风险降低、速度加快,获得较高的综合开发效益。(以用户为中心来开发系统的)
  • 不足之处
    开发的环境要求高。管理水平要求高。
    原型法适用于那些需求不明确的系统开发,从严格意义上来说,目前的原型法不是一种独立的系统开发方法,而只是一种开发思想,它只支持在系统开发早期阶段快速生成系统的原型,没有规定在原型构建过程中必须使用哪种方法。因此,它不是完整意义上的方法论体系。这就注定了原型法必须与其他信息系统开发方法结合使用
  1. 敏捷开发
  • 敏捷开发是一种以人为核心、迭代、循序渐进的开发方法

    • 敏捷软件开发宣言:
      个体和交互胜过过程和工具
      可以工作的软件胜过面面俱到的文档
      客户合作胜过合同谈判
      响应变化胜过遵循计划
  • 结对编程:一个程序员开发,另一个程序在一旁观察审查代码,能够有效的提高代码质量,在开发同时对代码进行初步审查,共同对代码负责。

  • 自适应开发:强调开发方法的适应性(Adaptive)。不象其他方法那样有很多具体的实践做法,它更侧重为软件的重要性提供最根本的基础,并从更高的组织和管理层次来阐述开发方法为什么要具备适应性。

  • 水晶方法:每一个不同的项目都需要一套不同的策略、约定和方法论。

  • 特性驱动开发:是一套针对中小型软件开发项目的开发模式。是一个模型驱动的快速迭代开发过程,它强调的是简化、实用、易于被开发团队接受,适用于需求经常变动的项目。

  • 极限编程xP:核心是沟通、简明、反馈和勇气。因为知道计划永远赶不上变化,XP无需开发人员在软件开始初期做出很多的文档。XP提倡测试先行,为了将以后出现bug的几率降到最低。

  • 并列争球法SCRUM:是一种迭代的增量化过程,把每段时间(30天)一次的迭代称为一个“冲刺”,并按需求的优先级别来实现产品,多个自组织和自治的小组并行地递增实现产品。

  1. 统一过程 RUP
    提供了在开发组织中分派任务和责任的纪律化方法。它的目标是在可预见的日程和预算前提下,确保满足最终用户需求的高质量产品。
  • 3个显著特点:用例驱动、以架构为中心、迭代和增量。
  • 4个流程: 初始阶段、细化阶段、构建阶段和交付阶段。每个阶段结束时都要安排一次技术评审,以确定这个阶段的目标是否已经达到。
3.4 系统分析和设计概述
  1. 软件需求
    软件需求氛围需求开发和需求管理两大过程
    在这里插入图片描述
  2. 系统设计
  • 系统设计方法:结构化设计方法,面向对象设计方法。
  • 系统设计的主要内容:概要设计、详细设计
    • 概要设计基本任务:又称为系统总体结构设计,是将系统的功能需求分配给软件模块,确定每个模块的功能和调用关系,形成软件的模块结构图,即系统结构图。
    • 详细设计的基本任务:模块内详细算法设计、模块内数据结构设计、数据库的物理设计、其他设计(代码、输入/输出格式、用户界面)、编写详细设计说明书、评审。
  • 基本原理
    抽象、模块化、信息隐蔽、模块独立。
  • 衡量模块独立程度的标准有两个: 耦合性和内聚性。
  • 内聚程度从低到高
    在这里插入图片描述
  • 耦合程度从低到高
    在这里插入图片描述
3.5 结构化开发方法
  1. 结构化分析与设计方法是一种面向数据流的传统软件开发方法
    结构化方法的分析结果由以下几部分组成: 一套分层的数据流图、一本数据词典、一组小说明(也称加工逻辑说明)、补充材料。
  • 数据流图DFD
    基本图形元素:外部实体、加工、数据存储、数据流。
    在这里插入图片描述
    1)数据流:由一组固定成分的数据组成,表示数据的流向。在DFD中,数据流的流向必须经过加工
    2)加工:描述了输入数据流到输出数据流之间的变换,数据流图中常见的三种错误如图所示:
    加工3.1.2有输入但是没有输出,称之为“黑洞
    加工3.1.3有输出但没有输入。称之为“奇迹”
    加工3.1.1中输入不足以产生输出,我们称之为“灰洞”。
    3)数据存储:用来存储数据。
    4)外部实体(外部主体):是指存在于软件系统之外的人员或组织,它指出系统所需数据的发源地(源和系统所产生的数据的归宿地(宿)。

在这里插入图片描述

  • 数据字典DD
    数据流图描述了系统的分解,但没有对图中各成分进行说明。数据字典就是为数据流图中的每个数据流、文件、加工,以及组成数据流或文件的数据项做出说明。
    数据字典有以下4类条目:数据流、数据项、数据存储和基本加工。
  • 加工逻辑也称为“小说明”。常用的加工逻辑描述方法有结构化语言、判定表和判定树3种。
3.6 系统运行与维护
  1. 遗留系统
    指任何基本上不能进行修改和演化以满足新的变化了的业务需求的信息系统
  • 特点:
    (1)系统虽然完成企业中许多重要的业务管理工作,但仍然不能完全满足要求。一般实现业务处理电子化及部分企业管理功能,很少涉及经营决策。
    (2)系统在性能上已经落后,采用的技术已经过时。例如,多采用主机/终端形式或小型机系统,软件使用汇编语言或第三代程序设计语言的早期版本开发,使用文件系统而不是数据库。
    (3)通常是大型的软件系统,已经融入企业的业务运作和决策管理机制之中,维护工作十分困难
    (4)没有使用现代信息系统建设方法进行管理和开发,现在基本上已经没有文档,很难理解
    在这里插入图片描述
  1. 系统转换
    系统转换是指新系统开发完毕,投入运行,取代现有系统的过程,需要考虑多方面的问题,以实现与老系统的交接
    • 直接转换:现有系统被新系统直接取代了,风险很大,适用于新系统不复杂,或者现有系统已经不能使用的情况。优点是节省成本。
    • 并行转换:新系统和老系统并行工作一段时间,新系统经过试运行后再取代,若新系统在试运行过程中有问题,也不影响现有系统的运行,风险极小,在试运行过程中还可以比较新老系统的性能,适用于大型系统。缺点是耗费人力和时间资源,难以控制两个系统间的数据转换。
    • 分段转换:分期分批逐步转换,是直接和并行转换的集合,将大型系统分为多个子系统,依次试运行每个子系统,成熟一个子系统,就转换一个子系统。同样适用于大型项目,只是更耗时,而且现有系统和新系统间混合使用,需要协调好接口等问题。
    • 数据转换与迁移:将数据从旧数据库迁移到新数据库中。
      有三种方法:系统切换前通过工具迁移、系统切换前采用手工录入、系统切换后通过新系统生成。
  2. 系统维护
  • 系统的可维护性可以定义为维护人员理解、改正、改动和改进这个软件的难易程度,其评价指标如下:
    (1)易分析性。软件产品诊断软件中的缺陷或失效原因或识别待修改部分的能力。
    (2)易改变性。软件产品使指定的修改可以被实现的能力,实现包括编码、设计和文档的更改。
    (3)稳定性。软件产品避免由于软件修改而造成意外结果的能力。
    (4)易测试性。软件产品使已修改软件能被确认的能力。
    (5)维护性的依从性。软件产品遵循与维护性相关的标准或约定的能力。

  • 系统维护包括硬件维护、软件维护和数据维护,其中软件维护类型如下:
    正确性维护:发现了bug而进行的修改。
    适应性维护:由于外部环境发生了改变,被动进行的对软件的修改和升级。
    完善性维护:基于用户主动对软件提出更多的需求,修改软件,增加更多的功能,使其比之前的软件功能、性能更高,更加完善。
    预防性维护:对未来可能发生的bug进行预防性的修改。

四、项目管理

4.1 进度管理
  1. 进度管理:采用科学的方法,确定进度目标,编制进度计划和资源供应计划,进行进度控制,在与质量、成本目标协调的基础上,实现工期目标。
  • 包括以下过程:
    (1)活动定义:确定完成项目各项可交付成果而需要开展的具体活动。
    (2)活动排序:识别和记录各项活动之间的先后关系和逻辑关系。
    (3)活动资源估算:估算完成各项活动所需要的资源类型和效益。
    (4)活动历时估算:估算完成各项活动所需要的具体时间。
    (5)进度计划编制:分析活动顺序、活动持续时间、资源要求和进度制约因素,制订项目进度计划。
    (6)进度控制:根据进度计划开展项目活动,如果发现偏差,则分析原因或进行调整。

  • 进行活动资源估算的方法主要有专家判断法、替换方案的确定、公开的估算数据、估算软件和自下而上的估算。

  • COCOMO模型:常见的软件规模估算方法。
    常用的代码行分析方法作为其中一种度量估计单位,以代码行数估算出每个程序员工作量,累加得软件成本。
    模型按其详细程度可以分为三级:
    (1)基本COCOMO模型是一个静态单变量模型,它用一个以已估算出来的原代码行数(LOC)为自变量的经验函数计算软件开发工作量。
    (2)中间COCOMO模型在基本COCOMO模型的基础上,再用涉及产品、硬件、人员、项目等方面的影响因素调整工作量的估算。
    (3)详细COCOMO模型包括中间COCOMO模型的所有特性,将软件系统模型分为系统、子系统和模块3个层次,更进一步考虑了软件工程中每一步骤(如分析、设计)的影响。

  • COCOMOⅡ模型:COCOMO的升级,也是以软件规模作为成本的主要因素,考虑多个成本驱动因子。该方法包括三个阶段性模型,即应用组装模型早期设计阶段模型体系结构阶段模型。包含三种不同规模估算选择:对象点、功能点和代码行。

  1. 进度安排的常用图形描述方法有Gantt 图(甘特图)和项目计划评审技术图(PERT图)
  • 甘特图:反映任务间的并行关系
    在这里插入图片描述
  • PERT图:不反映并行关系,但是反映任务间的依赖关系
    在这里插入图片描述
  1. 工具和技术 – 关键路径法
    关键路径:是项目的最短工期,但却是从开始到结束时间最长的路径
    关键活动:关键路径上的活动,最早开始时间=最晚开始时间
  • 每个节点的活动会有如下几个时间:
    (1)最早开始时间(ES),某项活动能够开始的最早时间。
    (2)最早结束时间(EF),某项活动能够完成的最早时间。EF=ES+工期
    (3)最迟结束时间(LF)。为了使项目按时完成,某项活动必须完成的最迟时间。
    (4)最迟开始时间(LS)。为了使项目按时完成,某项活动必须开始的最迟时间。LS=LF-工期
    • 顺推:
      最早开始ES=所有前置活动最早完成EF的最大值;
      最早完成EF=最早开始ES+持续时间。
    • 逆推:
      最晚完成LF=所有后续活动最晚开始LS的最小值;
      最晚开始LS=最晚完成LF-持续事件。

在这里插入图片描述

  • 总浮动时间:在不延误项目完工时间且不违反进度制约因素的前提下,活动可以从最早开始时间推迟或拖延的时间量,就是该活动的进度灵活性。正常情况下,关键活动的总浮动时间为零。
    • 总浮动时间=最迟开始LS-最早开始ES或最迟完成LF-最早完成EF或关键路径-非关键路径时长
  • 自由浮动时间:是指在不延误任何紧后活动的最早开始时间且不违反进度制约因素的前提下,活动可以从最早开始时间推迟或拖延的时间量。
    • 自由浮动时间=紧后活动最早开始时间的最小值-本活动的最早完成时间。
4.2 质量管理
  • 质量管理的三个过程:
    (1)质量规划: 识别项目及其产品的质量要求和标准,并书面描述项目将如何达到这些要求和标准的过程。
    (2)质量保证: 一般是每隔一定时间(例如,每个阶段末)进行的,主要通过系统的质量审计(软件评审)和过程分析来保证项目的质量。
    (3)质量控制: 实时监控项目的具体结果,以判断它们是否符合相关质量标准,制订有效方案,以消除产生质量问题的原因。
  • 质量六大特性
    在这里插入图片描述
    在这里插入图片描述
  • 软件评审
    • 质量两个必要条件:
      设计的规格说明书符合用户标准,称为设计质量。
      程序按照设计规格说明书所规定的情况正确执行,称为程序质量。
  • 软件容错技术:容错就是软件遇到错误的处理能力,实现容错的手段主要是冗余,包括下面四种冗余技术:
    • 结构冗余: 分为静态、动态、混合冗余三种,当错误发生时对错误进行备份处理。
    • 信息冗余: 为检错和纠错在数据中加上一段额外的信息,例如校验码原理。
    • 时间冗余: 遇到错误时重复执行,例如回滚,重复执行还有错,则转入错误处理逻辑。
    • 冗余附加技术: 是指为实现结构、信息和时间冗余技术所需的资源和技术,包括程序、指令、数据、存放和调动它们的空间和通道等。在屏蔽硬件错误的容错技术中,
4.3 风险管理
  • 风险管理就是要对项目风险进行认真的分析和科学的管理,争取避免风险的发生和尽量减小风险发生后的影响。但是,完全避开或消除风险,或者只享受权益而不承担风险是不可能的

  • 风险管理计划编制: 如何安排与实施项目的风险管理,制定下列各步的计划。

  • 风险识别: 识别出项目中已知和可预测的风险,确定风险的来源、产生的条件、描述风险的特征以及哪些项目可以产生风险,形成一个风险列表。

  • 风险定性分析: 对已经识别的风应进仃排,期儿/AP世 HLM风险优先级、确定风险类型。

  • 风险定量分析: 进一步了解风险发生的可能性具体由多大,后果具体由多严重。包括灵敏度分析、期望货币价值分析、决策树分析、蒙特卡罗模拟。

  • 风险应对计划编制: 对每一个识别出来的风险来分别制定应对措施,这些措施组成的文档称为风险应对计划。包括消极风险(避免策略、转移策略、减轻策略);积极风险(开拓、分享、强大)。

  • 风险监控: 监控风险计划的执行,检测残余风险,识别新的风险,保证风险计划的执行,并评价这些计划对减少风险的有效性。

  • 项目风险:作用于项目上的不确定的事件或条件,既可能产生威胁,也可能带来机会

    • 通过积极和合理的规划,超过90%的风险都可以进行提前应对和管理。
    • 风险应该尽早识别出来,高层次风险应记录在章程里。
    • 应由对风险最有控制力的一方承担相应的风险。
    • 承担风险程度与所得回报相匹配原则,承担的风险要有上限。
  • 风险的属性:
    (1)随机性: 风险事件发生及其后果都具有偶然性(双重偶然),遵循一定的统计规律。
    (2)相对性: 风险是相对项目活动主体而言的。承受力不同,影响不同。风险承受力影响因素:收益大小(收益越大,越愿意承担风险);投入大小(投入越大,承受能力越小);主体的地位和资源(级别高的人能承担较大的风险)。
    (3)风险的可变性: 条件变化,会引起风险变化。包括性质、后果的变化,以及出现新风险。

  • 在信息系统项目中,从宏观上来看,风险可以分为项目风险、技术风险和商业风险。

    • 项目风险是指潜在的预算、进度、个人(包括人员和组织)、资源、用户和需求方面的问题,以及它们对项目的影响。项目复杂性、规模和结构的不确定性也构成项目的(估算)风险因素。项目风险威胁到项目计划,一旦项目风险成为现实,可能会拖延项目进度,增加项目的成本。
    • 技术风险是指潜在的设计、实现、接口、测试和维护方面的问题。此外,规格说明的多义性、技术上的不确定性、技术陈旧、最新技术(不成熟)也是风险因素。技术风险威胁到待开发系统的质量和预定的交付时间。如果技术风险成为现实,开发工作可能会变得很困难或根本不可能。
    • 商业风险威胁到待开发系统的生存能力,主要有以下5种不同的商业风险:
      (1)市场风险。开发的系统虽然很优秀但不是市场真正所想要的。
      (2) 策略风险。开发的系统不再符合企业的信息系统战略。
      (3)销售风险。开发了销售部门不清楚如何推销的系统。
      (4) 管理风险。由于重点转移或人员变动而失去上级管理部门的支持。
      (5)预算风险。开发过程没有得到预算或人员的保证。

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

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

相关文章

说说hashCode() 和 equals() 之间的关系?

每天一道面试题,陪你突击金九银十! 上一篇关于介绍Object类下的几种方法时面试题时,提到equals()和hashCode()方法可能引出关于“hashCode() 和 equals() 之间的关系?”的面试题,本篇来解析一下这道基础面试题。 先祭一…

ESP-IDF学习——1.环境安装与hello-world

ESP-IDF学习——1.环境安装与hello-world 0.前言一、环境搭建1.官方IDE工具2.vscode图形化配置 二、示例工程三、自定义工程四、点灯五、总结 0.前言 最近在学习freertos,但由于买的书还没到,所以先捣鼓捣鼓ESP-IDF,因为这个比Arduino更接近底…

『贪吃蛇』AI 算法简易实现(中秋特别版)

前言 一年一度的中秋节就快到了,平台也有各种各样的中秋发文活动,正在翻阅时偶然间我看到了这篇文章:《兔饼大作战》:吃月饼、见月亮,还能咬自己?| 欢庆中秋特制版 - 掘金 (juejin.cn) 大家肯定比较熟悉了…

python处理CSV文件

CSV库还有其他处理CSV的方法,这里只是介绍几个常用的,后面如果用到别的会进行更新 目录 1 生成一个新的csv文件,并向其中写一点东西 2 单纯往里面写几行 3 读取csv文件 1 生成一个新的csv文件,并向其中写一点东西 import…

Mybatis学习笔记11 缓存相关

Mybatis学习笔记10 高级映射及延迟加载_biubiubiu0706的博客-CSDN博客 缓存:cache 缓存的作用:通过减少IO的方式,来提高程序的执行效率 Mybatis的缓存:将select语句的查询结果放到缓存(内存)当中,下一次还是这条select语句的话,直接从缓存中取,不再查数据库.一方面是减少了I…

vision transformer

一、网络构建 import torch from torch import nn from functools import partial# --------------------------------------- # # (1)patch embeddingimg_size224 : 输入图像的宽高 patch_size16 : 每个patch的宽高,也是卷积核的…

zabbix监控nginx

目录 一、实验准备 二、监控nginx 一、实验准备 zabbix-sever(192.168.115.4) zabbix-agent(192.168.115.5) 添加监控对象 二、监控nginx 安装NGINX在192.168.115.5上安装NGINX,开启status模块 yum -y install ep…

uniapp:OCR识别身份证上传原图失败,问题解决

1、上传普通图片成功 2、上传>4M | >5M图片失败检查&#xff1a;1、uni.uploadFile自身没有文件大小限制。然而&#xff0c;这仍然取决于你的应用程序所在的平台和存储空间容量。 2、上传照片后不在fail&#xff0c;在sucess 提交照片-3 {"data": "<h…

yolov5自动训练/预测-小白教程

文章目录 引言一、配置参数设置1、数据参数配置2、模型训练参数配置3、模型预测参数配置 二、一键训练/预测的sh介绍1、训练sh文件(train.sh)介绍2、预测sh文件(detect.sh)介绍 三、本文训练main代码解读1、训练main函数解读2、数据加工与参数替换 四、本文预测main代码解读1、…

单片机内存管理

源码说明 源码包含memory.h 和 memory.c 两个文件&#xff08;嵌入式C/C代码的“标配”&#xff09;&#xff0c;其源码中包含重要的注释。 memory.h文件包含结构体等定义&#xff0c;函数API申明等&#xff1b; memory.c文件是实现内存管理相关API函数的原型。 memory.h …

相机HAL

相机HAL 1、概览实现 HAL2、相机 HAL2.1 AIDL 相机 HAL2.2 相机 HAL3 功能2.3 Camera HAL1 概览 相机 HAL 相机 实现 HAL android12-release 1、概览实现 HAL HAL 位于 相机驱动程序 和 更高级别的 Android 框架 之间&#xff0c;它定义您必须实现的接口&#xff0c;以便应用…

城市管网污水监测方案,科技助力污水排放管理!

根据《国务院办公厅关于加强入河入海排污口监督管理工作的实施意见》各地要明确“水污染&#xff0c;谁治理”和政府兜底的原则&#xff0c;明确排污主体责任。根据排污口类型集中整治&#xff0c;划分主体。加大私设暗管借道排污的监察力度溯源主体责任。加强科技研发&#xf…

Java实现添加文字水印、图片水印功能实战

Java实现添加文字水印、图片水印功能实战 本文介绍java实现在图片上加文字水印的方法&#xff0c;水印可以是图片或者文字&#xff0c;操作方便。 java实现给图片添加水印实现步骤&#xff1a; 获取原图片对象信息&#xff08;本地图片或网络图片&#xff09;添加水印&#…

9月20日作业

时钟代码&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QPainter> #include <QPaintEvent> #include <QTime> #include <QTimer> #include <QDebug>QT_BEGIN_NAMESPACE namespace Ui { class W…

初识canvas

对于一个前端人员来说&#xff0c;canvas是必须掌握的技能之一。如果你想像画画一样在浏览器上作画&#xff0c;那么canvas就可以做你的画布。 接下啦我们就以画画的标准来初步认识下canvas 1.画布 画画的第一步你得有一张画纸或者画布&#xff0c;canvas标签就是我们的画布…

中华崛起,科技强国!这三款充满科技风的科技模板,一起来探索吧

最近是不是都被华为mate60和苹果15刷屏了啊 &#xff0c;在我们的生活中&#xff0c;科技有着千变万化的面貌。它让我们的世界变得越来越小&#xff0c;让我们的生活越来越便捷。它使我们的梦想成为现实&#xff0c;使我们的思想得以落地。它打开了新的视野&#xff0c;为我们提…

grafana对指标进行组合计算

在使用Grafana配置图表看板时&#xff0c;我们可能需要对多个查询条件筛选出来的结果进行计算&#xff0c;把计算结果生成最终的图表。此时需要用到transform功能【add field from calculation】&#xff1a;

keytool工具生成JKS证书

生成证书 使用jdk keytool生成证书 自建证书不受CA信任&#xff0c;仅适合学习使用&#xff0c;如果需要用到服务中&#xff0c;建议使用由CA颁发的可信证书。如果仅是内部使用&#xff0c;也可以安装自己生成的证书到本机。 生成证书 keytool -genkey -alias jwt -keyalg RS…

【linux基础(七)】Linux中的开发工具(下)--make/makefile和git

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到开通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; Linux中的开发工具 1. 前言2.…

重装系统(配置环境)

这里写目录标题 0.重装系统1.python1.1 anaconda1.2 pycharm1.3 深度学习环境配置 2.java2.1.安装JDK2.2.配置JDK环境变量2.3IDEA2.4 Maven 3.大数据3.1 虚拟机3.2 Hadoop平台3.3 存储3.4 采集3.5 计算3.6 查询3.7 可视化 0.重装系统 // An highlighted block var foo bar;1.…