第5章软件工程
1、软件工程的组成:方法(技术手段)、工具、过程
2、软件需求:业务需求、用户需求、系统需求
3、质量功能部署(QFD):常规需求、期望需求、意外需求
4、需求分析
(1)结构化分析
建立模型的核心是:数据字典
实体关系E-R图:数据模型
数据流图(DFD):功能模型
DFD需求建模方法:过程建模和功能建模,核心是:数据流
DFD组成:数据流、处理/加工、数据存储、外部项
目的:描述系统的功能需求
状态转换图:行为模型(STD)
数据字典:
一种用户可以访问的记录数据库和应用程序元数据的目录
作用:分析阶段的工具,给数据流图上的每个元素加以定义和说明
包括:数据项、数据结构、数据流、数据存储、处理过程
(2)面向对象分析(OOA)
原则:
抽象:抽取共同的、本质性的特征
封装:隐藏内部细节
继承:特殊类的对象拥有其对应的一般类的全部属性与服务
分类:相同属性和服务的对象划分为一类
聚合:把一个复杂事物看作是若干个简单事物的组装
关联:一个事物联想到另一个事物
消息通信:只能通过消息进行通信
粒度控制:注意大的部分,不考虑细节
行为分析:各种行为相互依赖和交织
5、需求规格说明书(SRS)
是需求分析的最终结果,一般通过需求评审和需求测试对需求进行验证
6、需求变更
1)变更控制过程:一旦确定了需求基线,都要走变更控制流程
2)变更控制委员会CCB
成员:用户和实施方的决策人员
CCB是决策机构,不是作业结构
※CCB是通过评审手段来决定项目是否能变更,但是不提出变更方案
7、需求跟踪(需求组织支持)
正向和逆向,合称为双向跟踪
8、软件设计
需求阶段:“做什么”,软件设计阶段:“怎么做”
(1)结构化设计
面向数据流的方法,目的是确定软件结构
概要设计:总体设计,确定软件系统的结构,将系统的功能需求进行模块划分,形成模块结构图,也叫系统结构图
详细设计:为每个功能模块设计实现的细节
1)模块结构:将系统划分为模块,模块是组成系统的基本单元,系统中的模块应设计称黑盒
①模块化:
属性:功能、逻辑、状态
功能是“做什么”,逻辑是“怎么做”,状态是“环境和条件”,先确定模块的外部特征,在确定内部特征
②耦合:模块之间联系的程度
③内聚:模块内部代码成分之间的联系的紧密程度,“高内聚,低耦合”
2)系统结构图:模块结构图、概要设计阶段的工具,反映系统的总体结构
详细设计的主要任务是:设计每个模块的实现算法,所需的局部数据结构
详细设计的目标:算法逻辑上正确,算法描述要简明易懂
如果要改概要设计,必须经过项目经理的同意
详细设计表示的工具:
图形工具:业务流程图、程序流程图、NS流程图、PAD图
表格工具:一张表
语言工具:伪码或PDL(过程设计语言)
(2)面向对象设计(OOD)
抽象、封装、可扩展性(继承、多态)
主要任务:是对类和对象进行设计
9、统一建模语言(UML),不是编程语言
包括:构造块、规则、公共机制
UML中的事物(建模元素):结构事物、行为事物、分组事物、注释事物
UML4种关系:依赖(事物)、关联(对象)、泛化(元素)、实现(类)
UML图:交互图:定时图
UML设计模式:
根据处理范围:类和对象模式
根据目的和用途:创建型(创建对象)、结构型(处理对象和类的组合)、行为型(类和对象交互以及职责的分配)模式三种
10、软件实现
(1)软件配置管理(SCM):是一种标识、组织和控制修改的技术,应用于整个软件工程中
目标:标识变更、控制变更、确保变更正确
核心内容:版本控制和变更控制
11、软件测试
(1)静态测试:不在机器上运行,采用人工检测和计算机辅助静态分析的手段对程序进行检测
包括:文档的静态测试(核查单)和代码的静态测试(代码走查、代码审查、桌前检查)
(2)动态测试:
白盒测试:结构测试,用于单元测试中,白盒测试中最常用的技术是逻辑覆盖
方法:控制流测试、数据流测试、程序变异测试
黑盒测试:功能测试,用于集成测试、确认测试、系统测试
3)面向对象测试
封装、继承、多态
4)软件调试
蛮力法、回溯法、原因排除法
5)交付部署
应用系统的配置是整个部署过程中的主要错误来源
软件交付:提交、集成、构建、部署、测试
持续交付:完全自动化的过程、一键部署
持续部署:
完整的镜像部署包括三个环节:Build-Ship-Run
部署方式:蓝绿部署、金丝雀部署
12、软件质量管理
13、软件过程能力成熟度(CSMM)
4个能力域、20个能力子域、161个能力要求组成
1级:初始级 具有不确定性
2级:规范级 基本可按计划实现
3级:改进级 稳定的实现
4级:量化提升级 量化的管理
5级:创新引领级 创新、持续提升、引领
系统集成项目管理工程师——第5章
张小明
前端开发工程师
基于SpringBoot的汽车配件仓储管理系统设计与实现毕业设计项目源码
项目简介在汽车后市场规模化发展、配件品类繁杂的背景下,传统仓储管理存在 “库存盘点难、出入库效率低、配件溯源差” 的痛点,基于 SpringBoot 构建的汽车配件仓储管理系统,聚焦配件全流程仓储管控,适配 4S 店、汽配经销商、维修…
基于SpringBoot的汽车租赁管理系统毕业设计项目源码
项目简介在汽车租赁行业规模化、场景多元化发展的背景下,传统租赁管理存在 “车态同步慢、订单流程繁琐、费用核算复杂” 的痛点,基于 SpringBoot 构建的汽车租赁管理系统,覆盖个人租车、企业长租、婚庆用车等多场景,实现车辆租赁…
CTF实战精要:SQL注入绕过WAF的10种高阶姿势
CTF实战精要:SQL注入绕过WAF的10种高阶姿势 在近年CTF赛事中,Web方向SQL注入题型占比超35%,而90%的题目部署了多层WAF防护。本文基于DEFCON CTF、强网杯等实战经验,深度解析10种经赛场验证的WAF绕过技术,所有案例均通…
大肠杆菌表达系统
大肠杆菌表达系统是迄今为止最为成熟可靠的蛋白表达系统之一,能快速表达不同种属来源的外源基因。通过对需要表达的外源基因的DNA序列进行密码子优化以及对表达载体、表达菌株、培养条件和诱导时间等各种因素的综合测试,实现外源基因在大肠杆菌内的表达。…
Cell | 长读长宏基因组突破方法:独立于培养的宏泛基因组学揭示与儿童营养不良的关联
研究论文● 期刊:Cell (IF:42.5)● DOI:https://doi.org/10.1016/j.cell.2025.08.020●原文链接: https://www.cell.com/cell/fulltext/S0092-8674(25)00975-4● 第一作者:Jeremiah J. Minich● 通讯作者:Jeremiah J. Minich (je…
32、Linux系统管理与操作全解析
Linux系统管理与操作全解析 1. 本地文档资源 在Linux系统中,有丰富的本地文档资源可帮助用户了解和使用各种工具与功能。 - apropos实用程序 :可用于搜索帮助文档,编号为436。 - howto目录 :包含常见问题的操作指南,编号436。 - info页面 :提供详细的信息,范…