用例图包含关系、扩展关系、泛化关系解析(最全总结,非常详细)

一、用例图中的各种关系

a)参与者与用例间的关联关系:参与者与用例之间的通信,也成为关联或通信关系。

b)用例与用例之间的关系:包含关系(include)、扩展关系(extend)、泛化关系。

1.包含关系

(1)包含:当可以从两个或两个以上的用例中提取公共行为时,应该使用包含的关系来表示它们。其中这个提取出来的公共用例成为抽象用例,而把原始用例成为基本用例或基础用例。其中“<<include>>”是包含关系的构造型,箭头指向抽象用例。

例如,在机房收费系统中“注册学生信息”和“充值”两个用例都需要操作员或者管理员登陆,为此,可以定义一个抽象用例“用户登陆”。用例“注册学生信息”和“充值”与用例“用户登陆”之间的关系就是包含关系。

如图               

(2)一个用例的功能太多时,可以使用包含关系建立若干个更小的用例。

在这里插入图片描述
说明:一般用户有很多功能,其中包括各种信息的查看,这时可以建立一个查询信息这一个用例,然后下面在包含查看余额、查看上机记录、查看充值记录这三个小用例。

2.扩展关系

如果一个用例明显地混合了两种或者两种以上的不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例,这样可能会使描述更加清晰。扩展用例为基用例添加新的行为。扩展用例可以访问基用例的属性,因此他能根据基用例中扩展点的当前状态来决定是否执行自己。而扩展用例对基用例不可见。如机房收费系统中“维护学生信息”操作时如果发现信息有误或者更新则需要使用“修改学生信息”用例完成更新,所以用例“查询上机记录”和“导出EXCEL”之间的关系就是扩展关系。“<<extend>>”是扩展关系的构造型,箭头指向基本用例。

说明:罚款与还书用例之间属于扩展关系,你还书不一定要罚款,如果你超时还书可能要罚款;但是如果你按时还书,就不需要罚款了。即两个用例只在特定条件下才会执行。

3.泛化关系

 当多个用例共同拥有一种类似的结构和行为时,可以将他们的共性抽象成为父用例,其他的用例作为泛化关系的子用例。在用例的泛化关系中,子用例是父用例的一种特殊形式,它继承了父用例的所有结构、行为、关系。其中三角箭头指向父用例。注意,这里是三角箭头

  • 13
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
React包含关系指的是组件之间的嵌套关系,即一个组件可以包含另一个组件。在React中,通过在JSX语法中嵌套组件来实现包含关系。例如: ```jsx function App() { return ( <div> <Header /> <Content /> <Footer /> </div> ); } function Header() { return <h1>Welcome to my website</h1>; } function Content() { return ( <div> <p>Here is some content.</p> <Button /> </div> ); } function Footer() { return <p>© 2021 My Website</p>; } function Button() { return <button>Click me</button>; } ``` 在上面的例子中,`App`组件包含`Header`、`Content`和`Footer`组件,`Content`组件又包含`Button`组件。 特例关系指的是组件之间的特殊关系,例如父子关系、兄弟关系等。在React中,特例关系通常指props和state的传递关系。父组件可以通过props将数据传递给子组件,子组件可以通过props接收数据;子组件可以通过props将事件传递给父组件,父组件可以通过props接收事件。兄弟组件之间可以通过共享父组件的state来实现数据的传递。 ```jsx function Parent() { const [count, setCount] = useState(0); const handleClick = () => { setCount(count + 1); }; return ( <div> <Child1 count={count} /> <Child2 handleClick={handleClick} /> </div> ); } function Child1(props) { return <p>Count: {props.count}</p>; } function Child2(props) { return <button onClick={props.handleClick}>Click me</button>; } ``` 在上面的例子中,`Parent`组件通过state管理一个计数器,将计数器的值通过props传递给`Child1`组件,将`handleClick`事件通过props传递给`Child2`组件。`Child1`组件接收`count`数据,`Child2`组件接收`handleClick`事件。`Child2`组件中的按钮被点击时,会触发`handleClick`事件,从而修改`Parent`组件中的计数器值,再通过props将新的计数器值传递给`Child1`组件,实现了兄弟组件之间的数据传递。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值