(个人复习用)软件建模与设计(待补充)

本文探讨了控制软件复杂性的一些基本方法,如分解、抽象、模块化和信息隐蔽。进一步,介绍了面向对象的概念、UML的视图分类、类模型和状态模型。在分析阶段,文章详细讨论了领域分析、应用分析,包括用例模型、交互模型和状态模型。此外,还涉及软件系统设计的各个层面,如估算系统性能、分配子系统、设计策略和选择架构风格。
摘要由CSDN通过智能技术生成

复杂系统

具有层次形式
对于基本组件的选择在很大程度上依赖于系统观察者的判断
组件内部之间的联系比组件之间的联系更强
通常由几个不同种类的子系统通过各种排列组合而成
能够从简单系统演化而来

控制软件复杂性的基本方法

分解(把大问题化解成小问题)

通用策略(大问题化小)
面向对象策略(拆分为各个组成部分)

抽象(抽取基本特性,忽略其他)

类型抽象
服务激活抽象(函数调用、、时间处理、信息传递、订阅)
进程控制抽象(单程序执行、多任务、顺序执行、多线程)
关系抽象(关联、聚合)
行为(静态行为、动态行为)
规则(控制规则、业务规则、异常处理规则、竞争规则、触发器)

模块化(高内聚、低耦合)

信息隐蔽(封装,只需要知道模块功能而不需要了解内部细节)

面向对象

面向对象=对象+类+继承通信
适应性、可靠性

特性

标识、分类、继承、多态

开发模式

瀑布模型(不推荐)
迭代模式

UML

视图分类(4+1)

用例视图、逻辑视图、实现视图、进程视图、部署试图

类模型(描述内部对象及其关系)

对象(拥有唯一标识)

类(拥有相同属性、行为、关系的一组对象)

类是对“对象”的抽象

类图

命名(要唯一):英文首字母要大写、中文也可。

值和属性

在这里插入图片描述

属性可见性

public(+)
private(-)
protected(#)
package(~)

在这里插入图片描述

操作&方法

在这里插入图片描述

链接(对象之间的连接,关联的实例)

在这里插入图片描述

关联(类之间的联系)

在这里插入图片描述
关联可以是一对一、一对多、可能是多对多
具体描述:
1:1个
0…1:0个或1个
0…*:0个或多个

自关联(与自身关联,但关联两端的角色不同)

在这里插入图片描述

限定关联(带有限定符,降低多重性关联)

在这里插入图片描述

N元关联(无法用编程语言和建模工具表示,需要提升为类)
聚合(强类型,由多个部件构成)

具有传递性(A是B一部分,B是C一部分,则A是C一部分)
在这里插入图片描述

组合(整体与部分有相同生存期)

在这里插入图片描述
在这里插入图片描述

泛化(is-a-kind-of,父类与子类之间的关系)

子类的对象可以被用在父类的对象可能出现的任何地方,反之则不然
支持多态、可结构化描述、支持代码复用

继承
里氏代换原则(判断继承存在)

任何基类出现的地方都可以被其子类替换
如果父类所有行为都可以替换,那继承关系成立,反之则不能。

多重继承(允许多个父类、尽量避免)

java不允许多重继承,但可以通过接口实现类似功能

继承最重要的类、委派其他的类
只保留最重要的继承关系,把其余的继承关系变为组合关系
在这里插入图片描述
在这里插入图片描述

枚举(有限取值的集合)

属性的枚举即其多重性

抽象类

斜体字标识抽象类与抽象方法

状态模型(随时间发生变化)

包含多个状态图,每个类对应一个状态图

状态

所有对象都有状态
状态时对象执行了一系列活动的结果
某事件发生后,对象的状态将发生变化

迁移(从一个状态到另一个状态的瞬时变化)

迁移的源和目标可以是相同的,也可以是不同的。
可以通过事件触发,或是内部活动自动触发

组成部分

源状态
事件触发器
警戒条件迁移条件的布尔表达式,用**[]括起来)
效应(迁移激活时
执行的行为**)
目标状态

描述格式

事件特征标记[警戒条件]/动作
e g : t a r g e t A t ( p ) [ i s T h r e a t ] / t . a d d T a r g e t ( p ) eg:targetAt(p)[isThreat]/t.addTarget(p) eg:targetAt(p)[isThreat]/t.addTarget(p)

事件

外部事件(系统与其参与者之间传送的事件)

eg:操作者按下开关按钮

内部事件(在系统内部对象之间传送的事件)

eg:缓冲区溢出

调用事件(对操作调用,类似函数)

事件名(事件参数表,用逗号隔开)

信号事件(发送或接受信号的事件)
信号(一个对象到另一个对象的单向信息流动)

是对象之间的消息
由一个对象异步发送,并由另一个对象接收的已命名对象

版型(用<<>>表示,是UML基础元素的扩展)

用例版型:如“业务用例”,“业务用例实现”
类版型:如“信号类”,“接口”

信号类表示(类名上方加 < < << <<signal > > >>
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值