需求工程中需求管理的核心活动 #card #incremental
变更控制、
版本控制、
需求跟踪、
需求状态跟踪
不同阶段的具体任务
- 需求描述 :<-> 对需求进行文字化、结构化的表达
- 需求跟踪 :<-> 包括编制每个需求与系统元素之间的联系文档,这些元素包括其它需求、体系结构、设计部件、源代码模块、测试、帮助文件和文档等
- [[需求获取]] :<-> 通过访谈、问卷、观察等方式收集用户需求
- 需求分析 :<-> 用于分析和澄清需求,确定需求的优先级和可行性
需求工程中需求管理的核心活动 #card #incremental
变更控制、
版本控制、
需求跟踪、
需求状态跟踪
不同阶段的具体任务
运行期质量属性 #card
开发时期质量属性 #card
可用性 :-> 衡量系统在多长时间内能够正常运行
易用性 :-> 关注用户交互的便捷性
性能 :-> 响应时间相关
论文框架

occlusion:: eyIuLi9hc3NldHMvaW1hZ2VfMTc2MDk3MzQzNTA0MF8wLnBuZyI6eyJjb25maWciOnt9LCJlbGVtZW50cyI6W3sibGVmdCI6ODQ5LjIzNDg3NjEyOTAwODYsInRvcCI6MjcwLjY4NTY1NzE3NTQ5MDg2LCJ3aWR0aCI6MTA1Mi44NzE4ODI3MjEzMzY1LCJoZWlnaHQiOjI0Mi4xMDE3Nzk2MTU3ODIyMiwiYW5nbGUiOjAsImNJZCI6MX0seyJsZWZ0Ijo4MzkuNjA1NDgzNDIwODQ5NiwidG9wIjo1MjQuMTkwNjkzOTA2OTIyNSwid2lkdGgiOjEwMjUuNTA0MjU2OTgwMTkzLCJoZWlnaHQiOjIxNC45NzA4MjQ1OTg1NjAyOCwiYW5nbGUiOjAsImNJZCI6Mn0seyJsZWZ0Ijo4MzkuNDMxNjI4MjcwMzk2NiwidG9wIjo3MzcuNjc5MzYxMjYxMjAxNCwid2lkdGgiOjEwMjUuODUxOTY3MjgxMDk5MiwiaGVpZ2h0IjoxNDcuOTAyODI4NzI0MjMzMjUsImFuZ2xlIjowLCJjSWQiOjN9LHsibGVmdCI6ODMyLjg0NzAxNjQ3NjA4LCJ0b3AiOjkxNy44NzMzNDUwMjQ5MjY3LCJ3aWR0aCI6MTAzOS4wMjExOTA4Njk3MzI0LCJoZWlnaHQiOjE0MC43NTkyMTIyNzQ4MjQzNCwiYW5nbGUiOjAsImNJZCI6NH0seyJsZWZ0Ijo4MzUuMDQyNDM3MDc3ODkyOCwidG9wIjoxMTEzLjUwODc0OTA3MDY3NDQsIndpZHRoIjoxMDI3Ljk2OTQzMzc4NjQ2OSwiaGVpZ2h0IjoyNDIuNjk3NDk4MTQxMzQ5MTIsImFuZ2xlIjowLCJjSWQiOjV9XX19
【摘要】
1交代项目背景、项目大致情况,在项目中自己是做什么的(一般是架构师)#card
我在这个项目里面,用到了哪些与题目相关的技术 #card
项目很成功,客户很开心,老板很开心,我也很开心 #card
一、为什么要 xxx #card
我现在在哪里工作,职位是XX(100字左右,注意数据脱敏,不要透露完全真实的项目名称和个人、公司信息,用某某代替)
1 大势所趋
2 好处
3 不这么做的坏处
二、项目背景及现状
大趋势#card
我有幸参与了该项目的开发,并担任架构师职务,主要负责架构设计及主程序开发的工作。
我做了什么项目,业务背景和产品设计是怎么样的(300字左右,同样注意数据脱敏)
结合上述背景,该项目有以下难点:#card
1、______。
2、______。
3、______。
三、XXX 详细描述
基于上述存在的问题及现状,我们认为,平台的架构必须:#card
1、___;
2、___
3、___
说说题目里面的技术或概念是什么(作为论点,300字左右)
为了实现上述目的,经过研究和实践,我们采用了___架构,包含:、、、。#card
1 ___
2 ___
3 ___
4 ___
项目中是怎么体现题目中的技术的(作为论据,也是整片论文的主体部分,1000字左右,举2到4个例子)
四、优劣势分析及后续展望
该架构还有以下几个特点:#card
1、___;
2、___;
3、___;
项目取得了怎么样的结果,有哪些细小的可以改进的点(结论,400字左右)
不足:#card
1、___
2、___
五、结果#card
进程通信风格的构件 #card
连接件:是实现进程间通信的机制,即“消息传递(Message Passing)”。 #card
它支持进程之间通过发送和接收消息来实现数据交换与协同工作。
消息传递方式可以是同步或异步、点对点或广播,也可以是本地或远程的。
双生命周期模型指的是软件开发中复用技术所支持的两个开发生命周期 #card
浏览器访问 Web 页面时, #card #incremental
会先进行域名解析(查询本机缓存或向 DNS 服务器请求),
接着在本地网络中可能会通过 ARP 获取网关 MAC 地址,
然后建立 TCP 连接,
最后才会发出 HTTP 请求报文。
SoC(System on Chip)是一种 面向特定应用 的集成电路,
[[SAAM]] 关注于可修改性,使用 场景技术 ,但不使用效用树。
C选项CBAM:#card
D选项SAEM:#card
在架构评估中,基于度量的方法强调通过客观的量化数据对系统进行评价。其核心步骤包括: #card #incremental #depth-1
建立映射关系 #card
提取度量信息 #card
推导质量属性水平 #card
**系统总线 ** 是 **连接计算机内部各个部件(如CPU、内存、I/O设备等) ** 的传输通道
**存储器 ** 是用来存储数据和程序的部件
**通道 ** 是一种 **用于管理输入/输出(I/O)操作的控制器 **
**实体完整性 ** 是指数据库中的每个实体(即表的每一行)必须是唯一的,通常涉及主键的设置,确保每条记录的唯一性。
**参照完整性 ** 是指一个表中的外键值必须对应另一个表的主键值。它用于保持表与表之间的数据一致性。
**用户定义完整性 ** 是指数据库中可以由用户根据实际业务需求定义的特定规则或约束。
Kernel-based Virtual Machine,是 :-> 基于Linux内核的虚拟化技术,支持完全虚拟化
Xen :-> 开源的虚拟机监控器,支持半虚拟化和完全虚拟化,是早期云计算平台常用的虚拟化技术。
Hyper-V :-> 微软开发的虚拟化平台,是Windows Server中的重要组成部分,用于支持虚拟机的创建和管理。
Linux Virtual Server :-> 一种负载均衡技术,用于实现集群系统中请求的调度与转发
共享内存 #card
Socket:#card
消息传递属于一种更高级的通信方式,通常 依赖消息队列或邮箱 等机制,有明确的消息边界
信号量是用于 任务同步与互斥 的机制,不直接用于传递数据
战略目标集转化法将信息系统规划看作是一个 “信息集合” 的构建过程,
它从组织的整体战略目标出发,逐级分解并转化为 信息系统的战略目标 ,以保证信息系统建设与组织战略的一致性。
企业系统规划法(BSP)由IBM提出,是一种结构化的信息系统规划方法。
它通过自上而下识别 企业的战略目标和业务过程 ,再通过自下而上的 数据分析设计信息系统 ,是一种综合性强的方法。
常见的业务流程建模方法包括:
(1)流程图(Flowchart)
(2)角色活动图与角色交互图
(3)IDEF0 与 IDEF3
(4)高级 Petri 网(High-level Petri Net)
(5)UML 活动图(Activity Diagram)
(6)业务流程建模标注(BPMN) :-> 业务流程建模标注,专门用于业务过程建模
事件驱动架构(EDA)是一种典型的 **异步 ** 通信架构风格,通过事件触发机制实现系统内各模块之间的解耦与异步交互。
[[用例图]] :-> 用于描述系统与外部用户之间的交互关系
[[活动图]] :-> 用于描述业务流程或操作逻辑,清晰展现流程控制结构
通信图、协作图
时序图、顺序图
[[类图]] :-> 用于表示静态结构和业务对象模型,
构件图 :-> 用于表示系统在实现阶段的物理结构,展示各个软件构件(如类、模块、库)之间的依赖关系。
[[uml序列图]] 和 [[uml协作图]] 对比
[[UML序列图]] 强调的是 对象交互的时间次序 。通信图强调的是 对象之间的组织结构。
当你需要清晰地展示消息的时间顺序,以及对象之间交互的时序关系时,选择 序列图 。
序列图强调的是时间顺序,它像电影胶片一样,按时间顺序展示了每个对象发送和接收消息的时刻。适用于描述复杂交互流程,特别是涉及多个对象之间消息传递顺序至关重要的场景,例如 异步操作、并发行为 等。
当你需要清晰地展示对象之间的静态关系,以及它们之间如何通过消息进行协作时,选择 协作图 。
通信图强调的是对象之间的连接关系,它像地图一样,展示了对象之间的链接路径以及消息如何在这些路径上传递。适用于描述 系统结构,以及对象之间协作关系 ,特别是需要清晰地展现对象之间静态连接关系的场景。
[[UML序列图]](顺序图)是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。#card
顺序 图可以用来展示对象之间是如何进行交互的。
顺序图将显示的重点放在消息序列上,即强调消息是 如何在对象之间被发送和接收的。
协作图,和序列图相似,显示对象间的动态合作关系。#card
序列图和协作图合称为交互图
如果强调时间和顺序,则使用 :-> 序列图
如果强调上下级关系或对象间组织结构,则选择 :-> 协作图
[[UML2.0]] 将整个 UML 规范划分为 :-> 基础结构和上层结构
基础结构是 uml 的 **元模型 ** ,它定义 :-> 了构造 UML模型的各种基本元素:
上层结构则定义了 :-> 面向建模用户的各种 UML 模型的语法、语义和表示。
UML 建模在面向对象分析与设计阶段的应用
面向对象的[[分析模型]]主要由 **顶层架构图 ** 、 用例与用例图 、 领域概念模型 构成
设计模型则包含以包图表示的软件体系结构图、以交互图表示的 用例实现图 、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的 活动图 等。
SOAP 描述了在消息传递过程中如何使用 **XML 数据 ** 进行编码,并通过 **HTTP 或 SMTP ** 等协议进行传输。
SOAP 消息由 **一个信封、头部(Header)和主体(Body) ** 组成
ATAM(Architecture Tradeoff Analysis Method,架构折中分析法)是由SEI提出的一种系统架构评估方法
重点关注的四个属性 #card
核心特征之一就是使用“[[质量属性效用树]]”,它用于:#card #incremental
对多个质量属性进行分类与排序;
将高层次质量目标逐层细化为具体的场景;
结合重要性与实现难度,辅助分析架构设计的取舍点(即“折中分析”)。
通过利益相关者头脑风暴方式识别关键场景,这些场景用于评估系统架构在满足质量属性需求(如性能、可用性、可维护性等)方面的能力。典型的三类场景包括
用例场景(Use Case Scenario) :<-> 源自最终用户的真实操作,用于验证系统是否满足其核心业务功能。
增长情景(Growth Scenario) :<-> 用来模拟系统未来可能发生的变化,例如扩展、升级等,体现架构的可扩展性与可演化性。
探索性场景(Exploratory Scenario) :<-> 用于挑战架构极限,例如极端负载或极端故障情形,测试系统鲁棒性与适应能力。
活动阶段 #card #incremental
需求收集
架构视图描述
属性模型构造和分析
架构决策与折中
Kruchten在1995年提出了一个”4+1”的视图模型。
“4+1”视图模型从5 个不同的视角来描述 软件架构
每个视图只关心 系统的一个侧面
5 个视图结合在一起才能反映 软件架构的全部内容
“4+1”的视图模型组成 #incremental #card #depth-1
过程视图 :<-> 用于捕捉设计的并发和同步特征
逻辑视图 :<-> 主要描述系统的功能需求和实现,即类、对象等设计元素的组织结构
开发视图 :<-> 关注代码的组织方式,如模块、包等,属于静态组织结构
物理视图、部署视图 :<-> 描述软件组件在硬件上的映射
系统软件单元如何映射到硬件资源上,包括节点之间的连接、部署架构、物理拓扑结构等。
它体现了系统在物理硬件层面的分布式部署,是“软件→硬件”的直接映射。
场景视图、用例视图 :<-> 用于描述系统如何满足用户需求