导图社区 软件工程
这是一篇关于软件工程的思维导图,主要内容包括:软件工程。从软件开发的方法、模型,到测试、项目管理、需求工程、设计以及相关工具等方面都有详细涵盖,适合用于软件工程知识的学习、复习和总结。
编辑于2026-01-06 18:42:42软件工程
软件工程
软件测试
动态测试
黑盒测试
白盒测试
子主题
静态测试
子主题
静态分析
子主题
性能测试
真实程序、核心程序、小型基准程序和合成基准程序,其评测准确程度依次递减。
性能测试
软件开发方法
结构化方法
子主题
面向对象
原型法
面向服务方法
螺旋模型
螺旋模型是在快速原型的基础上扩展而成的。
软件开发模型
瀑布
原型
需求不确定
增量
RAD
基于构件
子主题
子主题
子主题
V型
喷泉模型
面向对象
敏捷
极限编程
功用驱动开发方法
在FDD中,编程开发人员分成两类:首席程序员和“类”程序员(class owner)。
子主题
RUP
在软件开发的早期就可以对关键的,影响大的风险进行处理
用例驱动
子主题
四个阶段
是初始、细化、构建和移交,
九个核心
括商业建模、需求、分析与设计、实现、测试、部署、配置和变更管理、项目管理和环境。
逆向工程
子主题
实现级
包括程序的抽象语法树、符号表、过程的设计表示。
结构级
包括反映程序分量之间相互依赖关系的信息,例如调用图、结构图、程序和数据结构。
功能级
包括反映程序段功能及程序段之间关系的信息,例如数据和控制流模型。
领域级
包括反映程序分量或程序诸实体与应用领域概念之间对应关系的信息,例如实体关系模型。
子主题
再工程
净室软件工程
软件开发环境 SDE
子主题
子主题
子主题
基于架构的软件开发
子主题
子主题
架构复审
用户代表和领域专家
子主题
项目管理
软件配置管理
草稿、正式发布和正在修改
软件系统的文档
用户文档
系统文档
产品配置
文档、计算机程序、部件及数据
3 点估算法
遗留系统
子主题
软件过程改进
能力成熟度模型
子主题
子主题
子主题
图
1、需求分析阶段:数据流图。
2、概要设计阶段:模块结构图、层次图和HIPO图。
3、详细设计阶段:程序流程图、伪代码、盒图。
需求工程
需求开发
需求获取
子主题
需求分析
结构化分析SA
数据模型
ER图
功能模型
DFD
子主题
子主题
子主题
行为模型
数据字典
面向对象OOA
UML
静态
类图:一组类、接口、协作和它们之间的关系
对象图:一组对象及它们之间的关系
构件图:一个封装的类和它的接口。(或者是构件和构件之间的关系)
部署图:软硬件之间映射
制品图:系统的物理结构
包图:由模型本身分解而成的组织单元,以及它们之间的依赖关系
组合结构图:描述了结构化类的内部结构
动态
用例图
包含/使用
使用通用子集
拓展
可选拓展
泛化
父类关系
顺序图
活动图
并行
子主题
状态图
定义对象的内部行为
4+1视图
逻辑视图
类对象---分析设计人员
实现视图
代码---程序员
进程视图
进程并发---系统集成人员
部署图
软件到硬件的映射--系统和网络工程师
用例图
子主题
面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成;设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。
抽象工厂模式
工厂方法模式
动态创建对象
创建器模式
构造负责对象
原型模式
克隆对象
允许对象在不了解创建对象的确切类以及如何创建细节的情况下创建自定义对象。
面向对象开发原则
依赖倒置原则:要依赖于抽象,而不是具体实现;针对接口编程,不要针对实现编程。
李氏(Liskov)替换原则:子类可以替换父类。
接口隔离原则:使用多个专门的接口比使用单一的总接口要好。
组合重用原则:要尽量使用组合,而不是继承关系达到重用目的。
结构化开发
概要设计将软件需求转化为数据结构和系统结构,而详细设计则通过结构细化得出软件的详细数据结构和算法
需求开发
需求管理
子主题
子主题
子主题
软件系统建模
建模方法
结构化
数据库
面向对象
人机界面设计
用户控制之下
减少记忆
一致性
结构化设计
自顶向下
子主题
子主题
面向对象设计
原则
单一职责原则
开放-封闭原则:对扩展开放,对修改封闭。
子主题
子主题
设计模式
创建
结构模式
行为
子主题
子主题
子主题
子主题
软件系统工具
软件开发工具:需求分析工具、设计工具、编码与排错工具。
软件维护工具
版本控制工具、文档分析工具、开发信息库工具、逆向工程工具、再工程工具。
软件管理和软件支持工具:项目管理工具、配置管理工具、软件评价工具、软件开发工具的评价和选择。
ABSDM
体系结构需求:需求过程主要是获取用户需求,标识系统中所要用到的构件。
体系结构设计:体系结构设计是一个迭代过程,如果要开发的系统能够从已有的系统中导出大部分,则可以使用已有系统的设计过程。
体系结构文档化:绝大多数的体系结构都是抽象的,由一些概念上的构件组成,因此要去实现体系结构,还必须得把体系结构文档化。体系结构文档化过程的主要输出结果是体系结构规格说明和测试体系结构需求的质量设计说明书这2个文档。
体系结构复审:体系结构设计、文档化和复审是一个迭代过程。复审的目的是表示潜在的风险,及早发现体系结构设计中的缺陷和错误,包括体系结构能否满足需求、质量需求是否在设计中得到体现、层次是否清晰、构件划分是否合理、文档表达是否明确、构件设计是否满足功能与性能的要求等。
体系结构实现:所谓“实现”就是要用实体显示出一个软件体系结构,即要符合体系结构描述的结构性设计决策,分割成规定的构件,按规定的方式互相交互。整个实现过程是以复审后的文档化的体系结构说明书为基础的,每个构件必须满足软件体系结构中说明的对其他构件的责任。最后一步是测试,包括单个构件的功能性测试和被组装应用的整体功能和性能测试。
体系结构演化:在构件开发过程中,用户的需求可能还有变动。在软件开发完毕,正常运行后,由一个单位移植到另一个单位,需求也会发生变化。在这两种情况下,就必须相应地修改软件体系结构,以适应新的变化了的软件需求。体系结构演化是使用系统演化步骤去修改应用,以满足新的需求。
基于架构的软件开发
子主题
子主题
架构复审
用户代表和领域专家
子主题
软件维护
排错性维护
改bug
适应性维护
环境发生变化
完善性维护
新功能和性能要求
预防性维护
可能的问题
移植工作
1、计划阶段,在计划阶段,要进行现有系统的调查整理,从移植技术、系统内容(是否进行系统提炼等)、系统运行三个方面,探讨如何转换成新系统,决定移植方法,确立移植工作体制及移植日程。
2、准备阶段,在准备阶段要进行移植方面的研究,准备转换所需的资料。该阶段的作业质量将对以后的生产效率产生很大的影响。
3、转换阶段,这一阶段是将程序设计和数据转换成新机器能根据需要工作的阶段。提高转换工作的精度,减轻下一阶段的测试负担是提高移植工作效率的基本内容。
4、测试阶段,这一阶段是进行程序单元、工作单元测试的阶段。在本阶段要核实程序能否在新系统中准确地工作。所以,当有不能准确工作的程序时,就要回到转换阶段重新工作。
5、验证阶段,这是测试完的程序使新系统工作,最后核实系统,准备正式运行的阶段。
子主题
DSSA
领域专家
知识
领域分析师
模型
领域设计人员
开发出DSSA
领域实现人员
建立DSSA和可重用构件关系
中心主题
软件架构
子主题
架构风格
软件架构风格描述了某一特定领域中系统组织方式的惯用模式,反映了领域中众多系统的共有结构和语义特征。,强调对架构设计的重用。一个体系结构定义了一个词汇表和一组约束。
数据流
管道
批处理
调用返回
主程序/子程序
面向对象
层次结构
仓库风格
黑板
语音识别 信号系统 知识推理等问题复杂、解空间很大、求解过程不确定
数据库风格
超文本
独立构建
进程通信
事件驱动/隐式调用
虚拟机
自定义
解释器
工作流
规则系统
人工智能/dss
子主题
消息驱动
C2体系结构风格
通过连接件绑定在一起按照一组规则运作的并行构件。
过程控制
例子
某公司拟开发了个轿车巡航定速系统,系统需要持续测量车辆当前的实时速度,并根据设定的期望速度启动控制轿车的油门和刹车
反馈
软件评估
可修改性
(1)可维护性(maintainability)。这主要体现在问题的修复上:在错误发生后“修复”软件系统。为可维护性做好准备的软件体系结构往往能做局部性的修改并能使对其他构件的负面影响最小化。
(2)可扩展性(extendibility)。这一点关注的是使用新特性来扩展软件系统,以及使用改进版本来替换构件并删除不需要或不必要的特性和构件。为了实现可扩展性,软件系统需要松散耦合的构件。其目标是实现一种体系结构,它能使开发人员在不影响构件客户的情况下替换构件。支持把新构件集成到现有的体系结构中也是必要的。
(3)结构重组(reassemble)。这一点处理的是重新组织软件系统的构件及构件间的关系,例如通过将构件移动到一个不同的子系统而改变它的位置。为了支持结构重组,软件系统需要精心设计构件之间的关系。理想情况下,它们允许开发人员在不影响实现的主体部分的情况下灵活地配置构件。
(4)可移植性(portability)。可移植性使软件系统适用于多种硬件平台、用户界面、操作系统、编程语言或编译器。为了实现可移植,需要按照硬件无关的方式组织软件系统,其他软件系统和环境被提取出。可移植性是系统能够在不同计算环境下运行的能力。这些环境可能是硬件、软件,也可能是两者的结合。在关于某个特定计算环境的所有假设都集中在一个构件中时,系统是可移植的。 如果移植到新的系统需要做些更改,则可移植性就是一种特殊的可修改性。
性能
计算资源、减少计算开销、引入并发机制、采用资源调度
安全性
入侵检测、用户认证、用户授权、追踪审计
可用性
心跳、Ping/Echo、主动冗余、被动冗余、选举
ATAM
ATAM 被分为四个主要的活动领域(或阶段) ,分别是场景和需求收集、体系结构视图和场景实现、属性模型构造和分析、折中。
SAAM
SAAM 分析评估体系结构的过程包括五个步骤,即场景开发、体系结构描述、单个场景评估、场景交互和总体评估。SAAM 的主要输入问题是问题描述、需求声明和体系结构描述。
概念
以一个特定问题领域为对象,形成由领域参考模型、参考需求、参考架构等组成的开发基础架构,其目标是支持一个特定领域中多个应用的生成。
活动阶段
领域分析
领域模型
领域设计
DAAS
领域实现
开发与组织可复用信息
参与人员
领域专家
需求规约和实现的知
领域分析人员
,维护领域模型。
领域设计人员
DSSA
领域实现人员
架构分析方法
特定领域架构
构件与中间件技术
面向构件的编程
——多态性(可替代性);
——模块封装性(高层次信息的隐藏);
——后期的绑定和装载(部署独立性);
——安全性(类型和模块安全性)。”
不兼容的问题,
主要包括:(1)参数不兼容。接口操作名称相同但参数类型或个数不同。(2)操作不兼容。提供接口和请求接口的操作名不同。(3)操作不完备。一个构件接口是另一个构件接口的子集。
构件组装技术可分为基于功能的、基于数据的和面向对象的三种
WEB SERVICE
UDDI(universal description,discovery,intergration)统一描述、发现和集成:用于Web 服务注册和服务查找;
WSDL(web service description language)web 服务描述语言:用于描述Web 服务的接口和操作功能;
SOAP(simple object access protocol)简单对象访问协议:为建立Web 服务和服务请求之间的通信提供支持;
BPEL(business process execution language) 企业过程执行语言:用来将分散的、功能单一的 web 服务组织成一个复杂的有机应用.
REST(representational state transfer)表述性状态转移:REST 是一种使用HTTP、XML技术进行基于 web 通信的技术,它将网络中所有的事物抽象为资源,每个资源对应唯一的统
信息化
信息化规划方法
第一阶段
电算化
企业系统规划法
关键成功因素法
战略集合转化法
第二阶段
MIS
战略数据规划法(SDP)
信息工程法(IE)
战略栅格法(SG)
第三阶段
价值链分析法(VCA)
战略一致性模型(SAM)
企业信息集成
企业内部的信息集成
技术平台的集成
系统底层的体系结构、软件、硬件以及异构网络的特殊需求首先必须得到集成。这个集成包括信息技术硬件所组成的新型操作平台,如各类大型机、小型机、工作站、微机、通信网络等信息技术设备,还包括置入信息技术或者说经过信息技术改造的机床、车床、自动化工具、流水线设备等新型设施和设备。
数据的集成
为了完成应用集成和业务流程集成,需要解决数据和数据库的集成问题。数据集成的目的是实现不同系统的数据交流与共享,是进行其他更进一步集成的基础。数据集成的特点是简单、低成本,易于实施,但需要对系统内部业务的深入了解。
数据集成是对数据进行标识并编成目录,确定元数据模型。只有在建立统一的模型后,数据才能在数据库系统中分布和共享。数据集成采用的主要数据处理技术有数据复制、数据聚合和接口集成等。
应用系统的集成
现了不同系统之间的互操作,使得不同系统之间能够实现数据和方法的共享
业务过程的集成
实现了不同应用系统之间的连接、协调运作和信息共享。
企业外部的信息集成
1)通过门户网站和互联网实现公众、社会团体、社会和客户的互动,实现企业内外部信息资源的有效交流和集成;
(2)通过与合作伙伴信息系统的对接,建立动态的企业联盟,发展基于竞争合作机制的虚拟企业,重塑企业的战略模式和竞争优势。Internet的发展增加了企业之间的合作与交流,虚拟企业、扩展的供应链管理和协同商务等都是企业之间集成的典型。通过合作,几个企业和公司组成一个相对稳定的合作网络,这种合作网络可以提供单个公司所不能提供的产品和服务,获得单个公司无法完成的定单。为了增加合作的效率,必须实现网络中有合作关系的公司之间活动和过程的集成。另外,企业间的集成并不是使企业内所有的系统都实现集成,而只是集成一些与企业之间的业务过程有关的系统,因此,企业间的集成是一种有选择的集成。企业间集成的一个关键问题是使企业间不同系统实现数据格式的匹配。目前,XML技术作为企业间集成时数据交换的标准已得到广泛的应用。
基本功能
(1)通信服务
它提供分布环境下透明的同步/异步通信服务功能,使用户和应用程序无需关心具体的操作系统和应用程序所处的网络物理位置,而以透明的函数调用或对象服务方式完成它们所需的通信服务要求。
(2)信息集成服务
它为应用提供透明的信息访问服务,通过实现异种数据库系统之间数据的交换、互操作、分布数据管理和共享信息模型定义(或共享信息数据库的建立),使集成平台上运行的应用、服务或用户端能够以一致的语义和接口实现对数据(数据库、数据文件、应用交互信息)的访问与控制。
(3)应用集成服务
它通过高层应用编程接口来实现对相应应用程序的访问,这些高层应用编程接口包含在不同的适配器或代理中,它们被用来连接不同的应用程序。这些接口以函数或对象服务的方式向平台的组件模型提供信息,使用户在无需对原有系统进行修改(不会影响原有系统的功能)的情况下,只要在原有系统的基础上加上相应的访问接口就可以将现有的、用不同的技术实现的系统互联起来、通过为应用提供数据交换和访问操作,使各种不同的系统能够相互协作。
(4)二次开发工具
二次开发工具是集成平台提供的一组帮助用户开发特定应用程序(如实现数据转换的适配器或应用封装服务等)的支持工具,其目的是简化用户在企业集成平台实施过程中(特定应用程序接口)的开发工作。
(5)平台运行管理工具
它是企业集成平台的运行管理和控制模块,负责企业集成平台系统的静态和动态配置、集成平台应用运行管理和维护、事件管理和出错管理等。通过命名服务、目录服务、平台的动态静态配置,以及其中的关键数据的定期备份等功能来维护整个服务平台的系统配置及稳定运行。
能力成熟度模型
CMMI
CMM
企业门户
信息门户
数据结构
知识门户
传播知识
应用门户
提高能力
霍尔三维
时间
时间节点
逻辑
子主题
知识
专业知识
结构、要素、信息和反馈
切克兰德
子主题
(1)认识问题
(2)根底定义
(3)建立概念模型
(4)比较及探寻
(5)选择
(6)设计与实施
(7)评估与反馈
网络
主题
主题
主题
中心主题
主题
主题
主题
中心主题
主题
主题
主题
安全
主题
主题
主题
主题
法律法规与标准化
知识产权
不受保护期
署名权、修改权、保护作品完整权
受保护期
发表权、使用权和获得报酬权
商标法
是软件注册商标
著作权
不论是否发表,都享有著作权。
新技术
主题
主题
主题
案例
系统设计与建模
数据流图
分层细化的数据平衡原则首先要考虑分层数据流图中的数据平衡原则,父类和子类之间的数据流必须保持一致,包括数量和内容上一致,或者上(下)层输出等于上(下)层的输出。
然后要考虑每张数据流图的数据平衡原则。加工的输入数据流和输出数据流要平衡,保证加工的输出数据流都有对应的输入和输出数据流。
避免三种常见错误:黑洞:只进不出。奇迹:只出不进。灰洞:加工不出输出流
UML
静态图
动态图
活动图
并发
系统的行为
序列图
状态图
事件
动作
用例图
软件架构设计
SOA
ESB是传统中间件技术与XML、Web服务等技术结合的产物,主要支持异构系统集成。 ESB基于内容的路由和过滤,具备复杂数据的传输能力,并可以提供一系列的标准接口
(1)服务位置透明性; (2)传输协议转换; (3)消息格式转换; (4)消息路由; (5)消息增强; (6)安全性; (7)监控与管理。
微服务
架构风格
架构评估
SAAM
ATAM
数据库
结构化数据库
非结构化数据库
redis
数据结构
操作
WEB
orm
J2EE
流程图
面向过程
顺序进程
论文
架构设计
架构评估
ATAM
集成
soa
安全
https://blog.csdn.net/topofyou/article/details/78937202
架构风格
分层设计
优点
缺点
微服务
软件设计
基于构建的软件开发
分析建模
4+1视图
结构化
dfd
面向对象
uml
面向对象设计
三种类
设计原则
单一职责
依赖倒置
开闭原则
设计模式
大纲
摘要
背景句
近年来政府单位和企事业单位也越来越重视数据安全。我所在的某公司数据安全产品线也得到了快速扩张,yuan you随着而来的也伴随着一些问题。2024 年初我有幸担任新一代数据库审计系统的技术负责人职位,主要负责系统规划、分析和设计。该系统主要包括探针模块,告警模块,报表模块,审计查询模块,资产配置模块。
一句话介绍项目
担任角色
上线时间,一致好评
第一段
项目背景
项目介绍
400
主体正文
三个论点
论点和实践结合
第三问总结
1500
总结段
夸主题技术和实践结合的很好
经过我和团队的不懈努力,历时半年,最终项目的得以发版上线,得到了客户的一直好评。运行至今,用户反馈良好。通过使用面向对象设计方法,在项目过程中,团队展现了出色的问题解决能力,能够迅速应对挑战,确保项目按时按质完成。这不仅证明了面向对象设计优势,也体现了我们对用户需求的深刻理解和快速响应能力。这次成功的经验为我们团队带来了宝贵的信心和动力,同时也为我们赢得了市场的认可和口碑。
200
缺点
比如性能问题
怎么解决的
200
400