• 【中级软件设计师】上午题12-软件工程(1):软件工程模型、敏捷方法、软件需求、系统设计


    1 软件过程

    1.1 CMM 能力成熟度模型

    (1)初始级(Initial)
    软件过程的特点是杂乱无章,有时甚至很混乱,几乎没有明确定义的步骤,项目的成功完全依赖个人的努力和英雄式核心人物的作用。
    (2)可重复级(Repeatable)
    建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性,有必要的过程准则来重复以前在同类项目中的成功。
    (3)已定义级(Defined)
    管理和工程两方面的软件过程已经文档化、标准化,并综合成整个软件开发组织的标准软件过程。所有项目都采用根据实际情况修改后得到的标准软件过程来开发和维护软件。
    (4)已管理级(Managed)
    制定了软件过程和产品质量的详细度量标准。软件过程的产品质量都被开发组织的成员所理解和控制。
    (5)优化级(optimized)
    加强了定量分析,通过来自过程质量反馈和来自新观念、新技术的反馈使过程能不断持续地改进。

    一级到五级,成熟度不断提高
    在这里插入图片描述

    1.1 CMMI (建议直接看思维导图)

    CMMI的任务是将已有的几个CMM模型结合在一起,使之构成“集成模型”。
    CMIMI提供了两种表示方法:阶段式模型和连续式模型。
    (1)阶段式模型
    初始的:过程不可预测且缺乏控制。
    己管理的:过程为项目服务。
    已定义的:过程为组织服务。
    定量管理的:过程已度量和控制。
    优化的:集中于过程改进。
    (2)连续式模型
    C L 0 \mathop{{CL}}\nolimits_{{0}} CL0(未完成的):过程域未执行或未得到CL,中定义的所有目标。
    C L 1 \mathop{{CL}}\nolimits_{{1}} CL1(已执行的):其共性目标是过程将可标识的输入工作产品转换成可标识的输出工作产品,以实现支持过程域的特定目标。
    C L 2 \mathop{{CL}}\nolimits_{{2}} CL2(已管理的):其共性目标集中于已管理的过程的制度化。根据组织级政策规定过程的运作将使用哪个过程,项目遵循已文档化的计划和过程描述,所有正在工作的人都有权使用足够的资源,所有工作任务和工作产品都被监控、控制和评审。
    C L 3 \mathop{{CL}}\nolimits_{{3}} CL3(已定义级的):其共性目标集中于已定义的过程的制度化。过程是按照组织的剪裁指南从组织的标准过程集中剪裁得到的,还必须收集过程资产和过程的度量,并用于将来对过程的改进。
    C L 4 \mathop{{CL}}\nolimits_{{4}} CL4(定量管理的):其共性目标集中于可定量管理的过程的制度化。使用测量和质量保证来控制和改进过程域,建立和使用关于质量和过程执行的定量目标作为管理准则。
    C L 5 \mathop{{CL}}\nolimits_{{5}} CL5(优化的):使用量化(统计学)手段改变和优化过程域,以满足客户要求的改变和持续改进计划中的过程域的功效。
    在这里插入图片描述

    2 软件过程模型

    2.1 瀑布模型

    在这里插入图片描述

    在这里插入图片描述

    v模型:质量保证活动,进行一系列的测试

    2.2 增量模型

    在这里插入图片描述

    在这里插入图片描述

    2.3 演化模型

    应对竞争或商业压力,适合于软件需求缺乏准确认识的情况

    2.3.1 原型模型

    用户产生新的需求,导致需求的变更
    在这里插入图片描述

    在这里插入图片描述

    2.3.2 螺旋模型

    在这里插入图片描述

    在这里插入图片描述

    2.5 喷泉模型

    在这里插入图片描述

    在这里插入图片描述

    3 统一过程(UP)模型

    统一过程unified process在这里插入图片描述

    4 敏捷方法

    双击图片可以放大
    在这里插入图片描述

    5 软件需求

    荧光的部分为真题考过
    (1)功能需求。考虑系统要做什么,在何时做,在何时以及如何修改或升级。
    (2)性能需求。考虑软件开发的技术性指标。例如,存储容量限制、执行速度、响应时间及吞吐量。
    (3)用户或人的因素。考虑用户的类型。例如,各种用户对使用计算机的熟练程度,需要
    接受的训练,用户理解、使用系统的难度,用户错误操作系统的可能性等。(4)环境需求。考虑未来软件应用的环境,包括硬件和软件。对硬件设备的需求包括机型外设、接口、地点、分布、湿度、磁场干扰等;对软件的需求包括操作系统、网络、数据库等(5)界面需求。考虑来自其他系统的输入,到其他系统的输出,对数据格式的特殊规定,对数据存储介质的规定。
    (6)文档需求。考虑需要哪些文档,文档针对哪些读者。
    (7)数据需求。考虑输入、输出数据的格式,接收、发送数据的频率,数据的准确性和精数据流量,数据需保持的时间。度,
    (8)资源使用需求。考虑软件运行时所需要的数据、其他软件、内存空间等资源;软件开发、维护所需的人力、支撑软件、开发设备等。
    (9)安全保密要求。考虑是否需要对访问系统或系统信息加以控制,隔离用户数据的方法,用户程序如何与其他程序和操作系统隔离以及系统备份要求等。
    (10)可靠性要求。考虑系统的可靠性要求,系统是否必须检测和隔离错误;出错后,重启系统允许的时间等。
    (11)软件成本消耗与开发进度需求。考虑开发是否有规定的时间表,软硬件投资有无限制等。
    (12)其他非功能性要求。如采用某种开发模式,确定质量控制标准、里程碑和评审、验收标准、各种质量要求的优先级等,以及可维护性方面的要求。

    6 系统设计

    在这里插入图片描述

  • 相关阅读:
    论文阅读【ACM_2020】SimSwap: An Efficient Framework For High Fidelity Face Swapping
    优秀前端(基本素质、代码规范和开发技巧)
    C++菱形继承问题
    构建RAG应用-day05: 如何评估 LLM 应用 评估并优化生成部分 评估并优化检索部分
    【C语言】分支和循环语句(上)
    ZCMU--1431: Epic Game(C语言)
    Apipost连接数据库详解
    InnoDB 存储引擎之 Buffer Pool
    微服务探索之路04篇k8s增加子节点,metrics资源监控,ingress-nginx域名配置及https配置
    【配置多个ssh keys】在同一台电脑上,同时配置多个ssh keys (私钥和公钥),以操作不同的Git托管平台仓库
  • 原文地址:https://blog.csdn.net/qq_50771882/article/details/138089133