`
心动音符
  • 浏览: 337056 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

进化式需求和用例

阅读更多
需求是什么?需求就是系统必须提供的能力和必须遵从的条件。

用例是什么?用例是文本形式的情节描述,广泛用于需求的发现和记录工作中。用例不是图形,而是文本。用例是文本文档,而非图形;用例建模主要是编写文本的活动,而非制图。用例我们可以理解为更为一层抽象一层的概念,我们可以理解用例就是一组相关的成功和失败的场景集合。场景是什么?就是参与者和系统之间的一系列特定的活动和交互,也称为用例实例。场景就是用例的一条执行路径或者一个特定的情节。所以我们可以把用例看做是这些失败或者成功场景背后的抽象。

@那么为什么使用用例呢?用例的价值在哪呢?用例的价值之一强调了用户的目标和观点,其次用例为我们后续制品的产生提供了必备的输入。

@需求我们认为的可以分为很多种,例如功能性、行为性、可支持性、可靠性。当然这只是认为的这么划分,那么用例是什么呢,用例为我们发现需求提供了一种工具和一种途径,所以用例就是需求,完成用例的同时就是在完成需求的明确和文本描述。

@我们是不是有一些参考准则来发现用例呢,既然用例失败和成功场景(参与者和系统之间一系列的交互活动)的背后的抽象和归类,我们是不是有指导思想来指导我们对这些所有的场景进行归类然后寻找背后共同的抽象呢?当然有

1、准则:以无用户界面的约束的本质风格编写用例

--一本质风格编写用例,摒除用户界面并且关注参与者的意图,言下之意有两点:不要去考虑系统的界面,不要让系统的界面要实现什么功能这种方式来编写用例,这点不应该考虑,我们应高从参与者的意图出发,他的目标是什么?

2、编写简洁的用例?

3、编写黑盒用例?

--人们可以规定系统规定系统必须做什么(行为和功能性需求),而不必决定系统如何去做。实际上“分析”和“设计”的区别就在于“什么”和“如何”的差异,但是中间有个粒度的问题,就是如何权衡的问题,这就是经验范围内的事情了,不再我们讨论范围之内。我们的任何的学习只是提供一种指导思想,这中间中庸的权衡就是经验范围的事情,所以这个决定是仁者见仁、智者见智了,属于经验范围的事情了,就像维特斯根坦,他不也说了他所说的对象属于经验范围的事情。

4、采用参与者和参与者的目标的视点

--用例反映了需求,反映了用户的目标和观点,所以从参与者和用户的角度出发是对的,参与者和用户并不一定是人,记住这点。用例就是一组用例实例,每个用例是系统所执行的一系列活动,以此产生对特定参与者具有价值的可观察结果。用例的名称应该反映了用户的目标。用户的目标一般都具有可量化的结果。

@如何发现用例

选择系统的边界--寻找主要参与者--确定参与者的目标--定义满足用户目标的用例。

有时候系统的边界如果本身并不是很好找的,我们可以通过寻找主要参与者来帮助我们确定系统的边界,不要盲目的写下任何的目标,要知道用例是需求,价值之一是反映用户的观点,所以最先最先最先,我们学会去发现主要的参与者,然后根据参与者来去定目标。那我们怎么去发现主要的参与者呢?我的思路,我们的指导思想呢?我们还是利用那句话,问题驱动的方式,有哪些问题可以帮助我们找到主要的参与者呢?

1、谁来启动和停止系统?

2、谁来完成用户管理和安全管理?

3、谁来完成系统管理?

4、“时间”是参与者吗?因为系统要响应时间事件而完成某些活动。

5、系统失败时是否存在监控进程将系统重新启动?

6、软件升级是如何处理的?是“推”模式还是“拉”模式

7、除了人作为主要参与者外,还有其他外部的软件或者自动机器系统调用该系统的服务吗?

8、谁来考察系统活动或者性能?

9、谁来考察日志?是否可以远程检索?

10、系统发生错误或者故障时应通知谁?

@老板测试(是不是有核心价值)、业务基本过程测试(不能跨越多个会话)、规模测试(不能是单独的一小步)

分享到:
评论

相关推荐

    UML和模式应用(原书第3版)

    作为成功的导师和顾问,Larman拥有丰富的实践经验,能够帮助读者理解进化式需求和用例、领域对象建模、职责驱动设计、OO设计本质、分层架构、GoF设计模式、GRASP、迭代方法、UP的敏捷途径等知识。第3版实用、易懂,...

    遗传算法优化测试用例

    ### 遗传算法优化测试用例 #### 引言 在软件开发过程中,测试是确保软件质量的关键步骤之一。为了有效地进行测试,通常需要定义一个明确的测试目标,并基于此构建测试套件(test suite)。然而,在构建的测试套件...

    UML和模式应用(原书第3版).pdf

    5.2 进化式需求与瀑布式需求 5.3 寻找需求可以采用的方法 5.4 需求的类型和种类 5.5 UP制品如何组织需求 5.6 本书是否包含这些制品的示例 5.7 参考资料 第6章 用例 6.1 示例 6.2 定义:参与者、场景和用例 ...

    UML和模式应用(Applying UML and Patterns)

    第一部分 绪 论 第1章 面向对象分析和...5.2进化式需求与瀑布式需求 5.3寻找需求可以采用的方法 5.4需求的类型和种类 5.5 UP制品如何组织需求 5.6本书是否包含这些制品的示例 5.7参考资料 第6章 用例 6.1示例 ......

    UML和模式应用(架构师必备).part01.rar

    5.2 进化式需求与瀑布式需求 5.3 寻找需求可以采用的方法 5.4 需求的类型和种类 5.5 UP制品如何组织需求 5.6 本书是否包含这些制品的示例 5.7 参考资料 第6章 用例 6.1 示例 6.2 定义:参与者、场景和用例 ...

    UML和模式应用(架构师必备).part07.rar

    5.2 进化式需求与瀑布式需求 5.3 寻找需求可以采用的方法 5.4 需求的类型和种类 5.5 UP制品如何组织需求 5.6 本书是否包含这些制品的示例 5.7 参考资料 第6章 用例 6.1 示例 6.2 定义:参与者、场景和用例 ...

    UML和模式应用(架构师必备).part02.rar

    5.2 进化式需求与瀑布式需求 5.3 寻找需求可以采用的方法 5.4 需求的类型和种类 5.5 UP制品如何组织需求 5.6 本书是否包含这些制品的示例 5.7 参考资料 第6章 用例 6.1 示例 6.2 定义:参与者、场景和用例 ...

    UML和模式应用(架构师必备).part06.rar

    5.2 进化式需求与瀑布式需求 5.3 寻找需求可以采用的方法 5.4 需求的类型和种类 5.5 UP制品如何组织需求 5.6 本书是否包含这些制品的示例 5.7 参考资料 第6章 用例 6.1 示例 6.2 定义:参与者、场景和用例 ...

    UML和模式应用(架构师必备).part03.rar

    5.2 进化式需求与瀑布式需求 5.3 寻找需求可以采用的方法 5.4 需求的类型和种类 5.5 UP制品如何组织需求 5.6 本书是否包含这些制品的示例 5.7 参考资料 第6章 用例 6.1 示例 6.2 定义:参与者、场景和用例 ...

    UML和模式应用(架构师必备).part04.rar

    5.2 进化式需求与瀑布式需求 5.3 寻找需求可以采用的方法 5.4 需求的类型和种类 5.5 UP制品如何组织需求 5.6 本书是否包含这些制品的示例 5.7 参考资料 第6章 用例 6.1 示例 6.2 定义:参与者、场景和用例 ...

    UML和模式应用(架构师必备).part05.rar

    5.2 进化式需求与瀑布式需求 5.3 寻找需求可以采用的方法 5.4 需求的类型和种类 5.5 UP制品如何组织需求 5.6 本书是否包含这些制品的示例 5.7 参考资料 第6章 用例 6.1 示例 6.2 定义:参与者、场景和用例 ...

    UML和模式应用(架构师必备).part08.rar

    5.2 进化式需求与瀑布式需求 5.3 寻找需求可以采用的方法 5.4 需求的类型和种类 5.5 UP制品如何组织需求 5.6 本书是否包含这些制品的示例 5.7 参考资料 第6章 用例 6.1 示例 6.2 定义:参与者、场景和用例 ...

    paradiseo启发式优化框架

    它基于进化算法和元启发式策略,能够灵活地适应各种类型的优化任务,从工程设计到机器学习参数调优,甚至包括组合优化问题。 进化算法是`paradiseo`的核心组成部分,模仿生物进化过程中的自然选择、遗传和突变等...

    UML和模式应用(2)

    第05章“进化式需求”进一步阐述了如何在需求不完全明确的情况下进行开发。这一章可能讨论了敏捷开发方法,如Scrum或XP,以及它们如何适应和管理不断变化的需求。同时,它可能会介绍如何使用原型、迭代开发和用户...

    需求分析师201110(海东版)

    - **需求的滚动式完善模式**:采用迭代的方式逐步完善需求,提高了适应性。 - **复杂系统的需求分解**:对于大型复杂系统,通过分解为较小的部分来管理需求。 - **分层的需求组织方法**:将需求按层次结构组织,便于...

    UML系统建模与分析设计课后习题答案

    UML开发过程强调用例驱动,以体系结构为中心,注重质量和风险管理,采用螺旋上升式的开发方式。 UML的扩展机制,如构造型、标记值和约束,增强了模型的灵活性和定制性。软件项目的开发工作涵盖业务建模、需求分析、...

    统一软件工程开发过程

    为了满足用户日益增长的需求,并缩短产品上市时间,软件开发过程也需要不断地进化和改进。传统的软件开发方法已经不能很好地适应当前的需求,因此需要一种新的、更加高效的方法论来应对挑战。《统一软件开发过程》...

    适合ChatGPT的水母式软件开发模式-陈斌.pdf

    - **持续进化**:鼓励持续集成与部署,确保软件产品能够随着市场需求和技术进步而不断迭代改进。 ##### 3. **水母式软件开发模式的关键步骤** - **需求灵活捕获**:利用ChatGPT等AI工具进行需求收集与整理,确保...

    2005-2006 答案1

    在软件工程领域,题目涉及了多个关键知识点,包括进化式软件过程模型、过程框架活动、结构设计模型、测试方法、验证测试、系统行为模型、用例、对象选择以及设计模式的应用。下面是对这些知识点的详细解释: 1. ...

Global site tag (gtag.js) - Google Analytics