element tree不刷新视图_想成为高级程序猿,面向对象建模和UML你不应该知道?

一、面向对象

1、基本概念

软件对象,是一种将状态和行为有机集合起来形成软件构造模型

对象和类

对象是状态和行为构成的

类是相同属性和操作的一组对象的组合

消息和事件

消息是指描述事件发生的信息,是对象间相互联系和作用的方式

事件是指一种由系统预先定义而由用户或系统发出的动作

2、基本特征

抽象

封装

通过公共访问控制器来限制对象的私有属性的好处:

避免对封装数据的未授权访问

帮助保护数据的完整性

当类的私有方法必须修改时,限制了在整个应用程序内的影响

继承

继承的目的:

使派生类能够比不使用继承直接进行描述的类更加简洁

能够重用和扩展现有类库资源

使软件易于维护和修改

多态

3、方法论

获取问题域陈述

建立系统的对象模型

标实和确定类

准备数据字典

确定关联

确定属性

使用继承来细化类

完善对象模型

建立对象的动态模型

准备脚本

确定事件

准备事件跟踪表

构造状态图

建立系统的功能模型

4、面向对象的设计准则

模块化

抽象

信息隐藏—对象的封装

低耦合-有助于类的维护

高内聚-一个对象类中应尽量多地汇聚逻辑上相关的计算资源

5、面向对象的实用规则

设计的结果应该清晰易懂

避免模糊的定义

一般到具体结构的深度应适当

尽量设计小而简单的类

使用简单的消息协议

使用简单的函数或方法

把设计变动减至最小

6、系统设计

子系统分解

确定并发性

处理器及任务分配

数据存储管理

全局资源的处理

选择软件控制机制

人机交互接口设计

二、面向对象建模

1、Unified Modeling Language

统一建模语言UML

2、开发模式

瀑布模型

项目计划->需求分析->软件设计->软件实现->软件测试->软件运行和维护

缺点:

开发模式呈线性,开发成果尚未经过测试时,用户无法看到软件效果,增加项目的风险(数据概览)

瀑布模型强制固定的完成日期和里程碑进行项目跟踪,项目开发过程中缺乏足够的灵活性

软件需求分析阶段,要完全确定系统用户所需要的所有需求是一件比较困难的事情

喷泉模型

分析->设计->实现->维护->演化

缺点:

大量开发,不利于管理

严格的文档管理,审核难度加大

基于构件的开发模式

软件计划->需求分析和定义->软件的快速原型->原型评审->软件设计和实现

缺点:

自定义的组装结构标准,引入了较大的风险

可重用性和软件高效性不易协调

过分依赖构件

XP方法

核心思想:

交流、简单、反馈、进取

Communication、Simplicity、FeedbackAggressiveness

优点:

采用简单计划策略,不需要长期计划和复杂模型,开发周期短

全过程采用迭代增量的开发,反馈修正和反复测试的方法,软件质量有保证

能够适应用户经常变化的需求,提供用户满意的高质量软件

三、Unified Modeling Language概述

1、视图

静态视图

关联

泛化

依赖->使用、实现

用例视图

交互视图

状态机视图

活动视图

物理视图

模型管理视图

2、图

用例图

帮助开发团队以一种可视化的方式理解系统的功能需求,包括基于流程的”角色"关系以及系统用例之间的关系

表达系统或者系统范畴的高级功能

2f7373bc60ee38e418f074108e7e8442.png

类图

显示了系统的静态结构,表示不同的实体是如何彼此相关联的

6b6e5bb3483addc40edb1e3560082be3.png

序列图

显示一个具体用例或者用例一部分的详细流程

6aa98da28e93e86919aaf3551043a8dc.png

状态图

某个类所处的不同状态以及该类在这些状态中的转换过程

初始状态:使用一个实心圆来绘制

状态之间转换:开箭头的线段

状态:圆角矩形

判断点:空心圆

一个或多个终止点:内部包含实心圆来绘制

d01bd7accf8fea21d1ab937bbee87d9d.png

活动图

表示二个或者更多的对象之间在处理某个活动时的过程控制流程

构件图

指出某些功能实际存在于那些地方

部署图

该软件系统如何部署到硬件环境中的

3、模型元素

事物

结构事物

分组事物

注释事物

关联

依赖

关联

泛化

实现

4、UML的通用机制

规格说明

修饰

f79e93087a7a47042526687ded9f4fae.png

这里表示class2对class是1对多的关系

通用划分

5、UML的扩展机制

构造型

比如:

<><><>

标记值

约束

84f93e7836296d1482b301ccdcade90f.png

四、总结

主要讲了面向对象的一些基本概念和设计的方法论(获取限定上下文,建立对象模型,动态模型,功能模型)和原则,包括设计准则(低耦合高内聚、抽象、模块化和封装)和实用原则,介绍了软件开发的四种模式(瀑布、喷泉、构件、XP),最后简单介绍了一下UML,包括了UML的视图、图、模型元素三个方面,后面还有一部分UML的公共机制,包含了通用机制和扩展机制。

谈谈自己的一些感悟吧,在平时的工作中,用到比较多的是用例图、类图、时序图、状态越迁图,类图现在其实用到的也不多了,现在有个很概念叫做领域驱动设计(DDD),类图画的越来越少,工作上都在用领域图。以前都是野路子画法,2019年的第一个月,我准备把UML系统的学习一遍。还是发现之前画的图还是很不规范的,比如说类的约束和修饰,之前的详细设计中都没有体现,至于构件图、活动图、部署图,之前也有画过,不过画成了四不像,后期主要会针对这些没有涉及过的UML模型进行学习。

最后分享一下本章的思维导图

66d4f65a06e3c3a2d130e52b2e8b1d24.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值