【CUMT】软件工程期末复习

news/2025/2/28 15:39:16/文章来源:https://www.cnblogs.com/W-enzy/p/18658180
  • 1.软件工程概述
    • 1.2 计算机软件概述
    • 1.4 软件生命周期
    • 1.5 软件开发模型
  • 2.项目计划
    • 2.2 可行性研究
  • 3.需求分析
    • 3.2 数据流图DFD
    • 3.3 数据字典DD
    • 3.4 加工逻辑描述工具
  • 4.面向对象方法(OOA)
    • 4.2 统一建模语言UML
    • 4.3 用例模型
  • 5.概要设计
    • 5.1 软件开发流程概念区分
    • 5.2 软件结构设计
    • 5.3 图形工具
    • 5.4 结构化设计方法(Structure Design)
    • 5.5 软件结构设计优化
  • 6.详细设计
    • 6.1 详细设计任务与内容
    • 6.2 详细设计工具
    • 6.3 人机界面设计
  • 7.面向对象方法(OOD)
    • 7.1 面向对象的结构设计OOD
    • 7.2 面向对象的详细设计
    • 7.3 UML双向工程
  • 9.测试

1.软件工程概述

1.2 计算机软件概述

软件分类:

  • 软件规模
  • 工作方式
  • 服务对象

1.4 软件生命周期

  • 问题定义
  • 可行性研究
  • 项目计划
    • 需求分析
    • 概要设计
    • 详细设计
    • 编码
    • 测试
  • 交付与运维

1.5 软件开发模型

  • 边做边改:直接根据功能编码,忽略需求分析
  • 瀑布(线性):先逻辑设计后物理设计的线性顺序,固定起始需求
    • 需求
    • 设计
    • 编码
    • 测试
    • 交付
  • 原型:先给demo
    • 需求
    • 原型
    • 评估
    • 调整
  • 增量(迭代):多重瀑布+快速原型,迭代周期固定,专注功能实现
    • 需求
    • 设计
    • 编码
    • 测试
    • 交付
    • 需求。。。
  • 螺旋:多重瀑布+快速原型,周期长度取决于风险评估
    • 制定计划
    • 风险分析
    • 实现工程
    • 用户评估

2.项目计划

2.2 可行性研究

构造性成本模型--基础COCOMO公式:

  • 需要工作量--E=ab(KLOC)^bb,人/月
  • 开发进度--Tdev=(LOC)/E,行/人/月
  • 开发时间--D=cb*(E)^db,月
  • 需要人数--P=E/D,人

经济可行性--费用估计:

  • 开发成本=开发工作量*开发费用
  • 开发工作量=Aστ
    • A估算工作量经验值
    • σ风险系数:1-1.5
    • τ复用系数:0.25-1
  • 开发费用=(P+Q+R)ST
    • P人头费=B*1.476
    • B平均工资
    • Q办公费=B/3
    • R税收及利润=B/3
    • S管理系数:1-1.2
    • T优质系数:[1.05,1.1,1.15,1.2]

3.需求分析

3.2 数据流图DFD

3.3 数据字典DD

3.4 加工逻辑描述工具

  1. 结构化语言

  2. 判定表:条件+动作

  3. 判定树

  4. IPO图

4.面向对象方法(OOA)

4.2 统一建模语言UML

202501041710434.png

4.3 用例模型

组成: actor(角色)+usecase(动作/功能)

5.概要设计

5.1 软件开发流程概念区分

具体描述
软件开发 需求分析(DFD/数据字典)、概要-详细设计、编码实现
软件开发模型 瀑布、快速原型、增量(迭代)、螺旋
软件设计 概要设计、详细设计
软件设计模式
框架、架构模式 特定软件可复用设计的一组相互协作类

5.2 软件结构设计

  1. 模块化
  2. 软件结构风格:各模块的组织情况,最好独立性高(低耦合、高内聚)
  3. 耦合与内聚
耦合 具体描述 内聚 具体描述
非直接耦合 没有信息传递 功能内聚 各成分结合在一起完成单一功能
数据耦合 传递简单参数 顺序内聚 该成分的输出是下一成分的输入
特征耦合 传递复合参数(数据结构) 通信内聚 成分的输入/输出相同
控制耦合 传递flag(控制信息) 过程内聚 成分有先后次序
外部耦合 访问同一全局变量 时间内聚 成分在同一时刻执行
公共耦合 访问同一全局数据 逻辑内聚 成分逻辑功能相似/相同(avg/max),可能有flag控制选择
内容耦合 两模块之间代码有交互 偶然内聚 模块内成分在功能上无关

5.3 图形工具

  1. 层次图(H图)

  2. HIPO图:带编号的H图+描绘模块处理过程的IPO图

  3. 结构图(Structure chart,SC):有数据的传入传出

20250103111910

5.4 结构化设计方法(Structure Design)

  1. 概念与步骤

基于数据流的系统分析、设计方法:SA、SD(系统逻辑模型DFD->软件结构图HIPO/SC)

  1. 变换型DFD--变换映射(P69)

变换控制模块--数据随时间的推移而流动:

  • 输入边界
  • 变换中心:计算
  • 输出边界

20250102222655

20250103145153

  1. 事务型DFD--事务映射

事务控制模块--以事务中心为核心:

  • 输入
  • 事务中心:扇出不同动作
  • 调度通路
    • 事务层
    • 操作层
    • 细节层

20250103112907

20250103112644

5.5 软件结构设计优化

  1. 改进结构,提倡模块独立:翁>塔>饼,观察耦合与内聚
  2. 模块规模适中
  3. 扇出(3-4)、扇入(the more the better)
  4. 控制域(自身+扇出的闭包)、作用域
  5. 接口简单化

6.详细设计

6.1 详细设计任务与内容

根据概要设计划分出的模块编码,给出明确的算法描述

6.2 详细设计工具

有图形、表格、语言三种工具,详细介绍三种图形工具

  1. 程序流程图

20250103154027

  1. N-S图(盒图)

20250103154137

  1. PAD图(问题分析图)

20250103154527

6.3 人机界面设计

7.面向对象方法(OOD)

7.1 面向对象的结构设计OOD

  1. 类图

找完系统的对象类之后,确定对象之间的关系:

  • 关联关系(没有箭头则为双向访问,否则单向)
  • 聚合/组合关系(类图中表示为空心/实心菱形)
  • 依赖关系(表示“使用”语义,弱关系)
  • 泛化关系 (表示父子类,是继承)

对象与接口之间的关系:

  • 实现关系
  1. 静态结构模型

主题和子系统

  1. 面向对象的架构设计

架构模式种类:

  • MVC(model/view/controller)--Spring
  • MVP(presenter)
  • MTV(template)
  • ORM(object/relational/mapping)
  • CBD(core/behavior/driver)

设计模式:

  • 构建型
  • 结构型
  • 行为型
  1. 构件图

20250104171345

  1. 部署图

7.2 面向对象的详细设计

  1. 顺序图
  2. 协作图
  3. 状态图
  4. 活动图

7.3 UML双向工程

  1. 从UML模型生成代码的正向工程
  2. 从代码生成UML模型的逆向工程

9.测试

  1. 概述

软件测试对象:需求分析报告、概要设计报告、详细设计报告、源程序清单

  1. 测试方法
  • 静态测试:代码复审
  • 动态测试(机器测试):白盒(覆盖)、黑盒(等价有效类)
  1. 测试用例设计(12.10)
逻辑覆盖法(程序流程图) 路径测试法(程序图) 测试规则
语句覆盖 点覆盖 每个语句(点)至少一次
判定覆盖 边覆盖 每个分支(边)至少一次,关注判断语句的复合条件
条件覆盖 关注判断语句每个单独条件
判定/条件覆盖
条件组合覆盖
路径覆盖 每种通路都走(2*2)

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

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

相关文章

【vulnhub靶场】日志投毒与文件包含漏洞 Solstice

一、侦查1.1 收集目标网络信息:IP地址1.2 主动扫描:扫描IP地址段 二、初始访问2.1 利用面向公众的应用 三、权限提升3.1 利用漏洞提权:高权限运行的程序一、侦查 1.1 收集目标网络信息:IP地址 靶机启动后,没有提供IP地址。由于Kali和靶机在同一个C段,可以扫描ARP协议获取…

城市生命线安全管理:数据要素整合与场景应用实践

城市生命线工程是确保城市正常运行和居民安全生活的关键基础设施,涉及供水、排水、燃气、电力等多个方面。随着信息技术的发展,特别是大数据、物联网、人工智能等技术的应用,城市生命线数据要素与场景应用的深度融合成为提升城市治理能力的重要途径。数据要素的重要性城市生…

SqlSugar入门教程:连接,增、删、改、查

原文链接:https://blog.csdn.net/zls365365/article/details/131199132 第一步,自然是新建一个项目,控制台什么都可以。因为我还没想好怎么做一个完整的项目,那暂且用一个控制台举例吧。 下面自然是从NuGet安装sqlsugar了。注意鉴别需要安装的版本,我这里是安装sqlsugarc…

env(safe-area-inset-bottom) 兼容写法

先看下兼容性:可以看到 @supports 兼容性很好,所以使用 @supports 做兼容是个不错的选择。 例:@supports (padding-bottom: env(safe-area-inset-bottom)) or(padding-bottom: constant(safe-area-inset-bottom)) {.your-dom {padding-bottom: constant(safe-area-inset-bot…

工业采集系统-天然气计量仪表费用二次计算

1、在“驱动管理->中间件驱动”中添加NaturalGasCalculation.drive。2、在设备配置中,添加采集设备,假设采集到的天然气费用因子为D1.F1,充值金额因子为D1.F2,要求计算的天然气使用体积因子为D1.F3。3、在“系统功能->中间件”中添加一个天然气费用计算中间件,配置内…

SQL优化有绝招,使用DAS提升工作效率!完成任务可领取保暖手套!

​「使用DAS实现数据库SQL优化」活动上线了! 数据库自治服务(Database Autonomy Service,简称DAS)是一种基于机器学习和专家经验实现数据库自感知、自修复、自优化、自运维及自安全的云服务。数据库自治服务DAS支持自动SQL优化,相比传统的优化方式,能够自动识别问题SQL,…

类关系图

本文描述了面向对象设计中类与类之间的五种关系,并对这五种关系从耦合程度、语义和方向上进行了比较。类关系图

特种作业操作(低压电工)实操考试资料整理

为啥去考 在B站关注城阳电工电路等赛博电工师傅们已经有一段时间了,我很喜欢看这些师傅们解决生活中的、生产上的各种电气问题,2023年春天就想去报名学,但是那时候学业很繁忙,而初证又需要去线下学习一段时间。到2024年11月发现自己这段时间突然有空,就尽快找了一家机构报…

AutoGen入门-让两个AI自行聊天完成任务

AutoGen介绍 AutoGen 是一个开源编程框架,用于构建 AI 代理并促进多个代理之间的合作以解决问题。AutoGen 旨在提供一个易于使用和灵活的框架,以加速代理型 AI 的开发和研究,就像 PyTorch 之于深度学习。它提供了诸如代理之间可以对话、LLM 和工具使用支持、自主和人机协作工…

Centos7 安装redis教程

步骤一:安装gcc依赖检查gcc是否已经安装,命令:gcc -v,出现下图说明已经安装由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装yum install -y gcc步骤二:下载redis安装包 https://download.redis.io/relea…

【编码】如何实现一套自定义网络协议?

前言 下文介绍的自定义协议仅作为学习示例,纯粹是玩具项目,没有实际可用性。无需过度关注和讨论其合理性 进行通信的双方是谁? 常见的模型 客户端-服务器,例如HTTP协议,浏览器<=>Web服务器。 中转站模型,如MQTT协议,应用服务<=>中转站<=>硬件客户端 对…