SWSAD homework4

本文围绕用例和用例图展开,介绍了用例的概念、与场景的关系、形式等,阐述了用例图的定义、基本符号、画法及价值。还给出建模练习题,包括绘制类似业务系统用例图,并探讨相似系统用例图相似原因、用用例图突出创新及定位创新思路等问题,最后涉及开发计划编制和成本估算。

1.简答题

1.1 用例的概念

用例(英语:use case),或译使用案例、用况,是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术。每个用例提供了一个或多个场景,该场景说明了系统是如何和最终用户或其它系统互动,也就是谁可以用系统做什么,从而获得一个明确的业务目标。编写用例时要避免使用技术术语,而应该用最终用户或者领域专家的语言。用例一般是由软件开发者和最终用户共同创作的。

1.2 用例和场景的关系?什么是主场景或 happy path?

  • 用例是一些相关的场景的集合,这些场景是用于描述一个actor使用系统去实现一个目标。
  • 主场景或happy path是用例从触发事件开始,一步一步执行,最终满足用例利益的步骤集合
  • 主成功场景应该包括以下信息:
    • 两个执行者之间的交互。如,用户提交了订单。
    • 为保证主成功场景得以继续的确认。如,系统确认用户密码。
    • 主成功场景推进过程中的内部变化。如,系统扣除用户账户余额。

1.3 用例有哪些形式?

  • 摘要:简洁的一段式概要,通常用于主成功场景。在早期需求分析过程中,为快速了解主题和范围,通常花费少量时间快速编写。
  • 非正式形式:非正式的段落格式,用几个段落覆盖不同的场景。
  • 详述:详细编写所有步骤和各种变化,同时具有补充部分,如前置条件和成功保证。确定并以摘要形式编写大量用例后,在第一次需求讨论中,详细地编写其中少量的具有重要架构意义和高价值的用例。

1.4 对于复杂业务,为什么编制完整用例非常难?

复杂业务的场景较多,场景较为复杂。在前期的考虑中,很难不遗漏一些业务条件和需求,且这些需求条件还可能发生变化。所以对于复杂业务,编制完整用例且不遗漏情景、良好地安排每个场景、场景内元素地关系非常困难。

1.5 什么是用例图?

用例图是指由参与者(Actor)、用例(Use Case),边界以及它们之间的关系构成的用于描述系统功能的视图。用例图(User Case)是外部用户(被称为参与者)所能观察到的系统功能的模型图。用例图是系统的蓝图。用例图呈现了一些参与者,一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。

1.6 用例图的基本符号与元素?

  • 参与者(Actor)
    表示的是一个系统用户,也就是与应用程序进行交互的用户、组织或者外部系统。
    Actor

  • 用例(Use Case)
    表示的是对系统提供的功能、服务的一种描述。
    Use case

  • 系统边界
    指系统与系统之间的界限。把系统边界以外的同系统相关联的其他部分称为系统环境。在UML图中用一个矩形表示。
    System

  • 关系

    • 关联:表示参与者和用例之间的交互。为通信途径,任何一方都可发送或可接收消息。箭头指向:指向消息接收方。在UML中用直线表示。
      line

    • 包含:包含关系用来把一个较复杂的用例所表示的功能分解成较小的步骤。包含用例是必须的,如果缺少包含用例,基用例就是不完整的。包含关系最典型的应用就是复用。这种情况类似与在过程设计语言中,将程序的某一段算法封装成一个子过程,然后在从主程序中调用这一子过程。在UML中,包含关系用带箭头的虚线段加《include》表示,箭头指向被包含的用例。
      includes

    • 扩展:扩展关系是指用例功能的延伸。与包含关系不同的是,扩展用例是可选的,如果缺少扩展用例。不会影响到基用例的完整性。在UML中,扩展关系用带箭头的虚线段加《extend》表示,要注意的是箭头指向基用例。
      extends

    • 泛化:用例的泛化指的是一个父用例可以被特化形成多个子用例,用我们熟悉的语言来说就是继承关系。在UML中,泛化关系用空心箭头表示,箭头指向的是父用例。
      line2

1.7 用例图的画法与步骤

  • 确定参与者
    • 主要参与者:谁将使用系统的主要功能、谁将需要系统的支持以完成工作等。
    • 协作参与者:谁将提供对应的系统功能、谁将维护系统,保证系统处于工作状态等。
    • 幕后参与者:谁会对系统产生的结果感兴趣。
  • 识别用例
    从分析系统的参与者开始,考虑每一个参与者是如何使用系统的。
  • 识别用例间的关系
  • 建立 Actor 和 Use Cases 之间的关联

1.8 用例图给利益相关人与开发者的价值有哪些?

  • 对于利益相关人:
    • 可以直观看到系统的结果和用户的功能体验,保证系统按照用户的需求进行设计。
    • 用例能够根据需要对复杂程度和形式化程序进行增减调节,即能够响应用户(利益相关人)提出的需求,而用例图则使得这种调节更加便利,可以通过修改图形间的关系实现。
  • 对于开发者来说:
    • 用例图是设计者设计过程的结论与参考,设计者与开发者之间的交流工具,开发者开发过程的蓝图。
    • 用例图使得开发者能够更明确地获得需求,更好地理解需求。
    • 用例图可以指导开发和测试,同时可以在整个过程中对其他工作流起到指导作用。

2.建模练习题(用例模型)

2.1 选择2-3个你熟悉的类似业务的在线服务系统(或移动 APP),如定旅馆(携程、去哪儿等)、定电影票、背单词APP等,分别绘制它们用例图。并满足以下要求

  • 请使用用户的视角,描述用户目标或系统提供的服务
  • 粒度达到子用例级别,并用 include 和 exclude 关联它们
  • 请用色彩标注出你认为创新(区别于竞争对手的)用例或子用例
  • 尽可能识别外部系统和服务

订酒店
订电影票

2.2 回答下列问题

2.2.1 为什么相似系统的用例图是相似的?

因为相似系统面对的参与者和用例是相似的,用例之间的关系也是相似的,用户预期的功能都是相似的。即使是不同的同类系统也具有一致的基本功能以及带有自己特色的扩展功能。所以体现在用例图上也是相似的。

2.2.2 如果是定旅馆业务,请对比 Asg_RH 用例图,简述如何利用不同时代、不同地区产品的用例图,展现、突出创新业务和技术

针对不同时代,我们可以从技术入手,实现过去时代无法实现的功能,将业务过程和技术结合,创新表现形式,此外,还可以从新技术入手,增加应用场景。比如可以根据用户之前的消费记录,推荐适合用户价位的旅馆。

2.2.3 如何利用用例图定位创新思路(业务创新、或技术创新、或商业模式创新)在系统中的作用

用例图可以呈现系统现有的模块功能,给项目经理对系统直观的认识,当有新技术或新需求时,项目经理(或设计者)可以根据用例图进行拓展和补充。

2.2.4 请使用 SCRUM 方法,选择一个用例图,编制某定旅馆开发的需求(backlog)开发计划表

IDNameImpEstHow to Demo
1筛选酒店108用户根据自己的要求对酒店进行筛选
2预定酒店87筛选好了酒店以后用户可以对该酒店的其他信息进行查看和选择
3提交订单97根据已选情况下订单,订单信息应同步到用户和旅馆双方
4订单管理75允许用户查看并操作自己的订单
5支付订单96使用支付平台进行支付

2.2.5 根据任务4,参考 使用用例点估算软件成本,给出项目用例点的估算

用例事务计算原因UC权重
筛选酒店77一般
预定酒店55简单
提交订单66一般
订单管理66一般
支付订单33简单
内容概要:本文系统探讨了CUDA并行计算优化技巧在计算机竞赛中的实战应用,重点解决暴力枚举在大规模数据下超时的问题。通过将独立的解空间验证任务分配给GPU海量线程并发执行,显著提升计算效率。文章围绕图论(全源最短路径Floyd-Warshall算法)和数值计算(多初始值牛顿迭代求解非线性方程)两大高频竞赛场景,详细剖析了线程索引映射、原子操作、常量内存、流并发等核心优化技术,并提供了串行与并行代码对比及性能分析。结果显示,在A100和RTX 3090等GPU上,加速比可达72至150倍,实现从分钟级到秒级甚至毫秒级的性能突破。此外,文章展望了动态并行、多GPU协同、AI辅助调优等未来趋势,强调CUDA优化对培养软硬件协同思维的重要意义。; 适合人群:具备一定C/C++编程基础和算法竞赛经验,熟悉基本图论与数值计算问题,希望提升高性能计算能力的高校学生或竞赛选手(尤其是参与ACM、ICPC、NOI等赛事的1-3年备赛者); 使用场景及目标:①掌握如何将传统暴力枚举算法转化为GPU并行版本;②深入理解Floyd-Warshall和牛顿迭代等经典算法的并行化限制与优化策略;③学习CUDA内存模型、线程组织与同步机制在实际问题中的应用; 阅读建议:建议结合文中代码案例在支持CUDA的环境上动手实现并调试,重点关注线程映射、内存访问模式与数据依赖处理,同时对比串行与并行版本的运行效率,深化对并行计算本质的理解。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值