面向对象

简介: 面向对象方法改进了在生存期各个阶段之间的接口,因为在生存期各个阶段所开发出来的”部件”都是类,在面向对象生存期的各个阶段对各个类的信息进行细化,类成为分析、设计和实现的基本单元。

 目录

论域分析:

应用分析:

类的定义:

类的实现:

类的测试:

求精和维护:

对象模型:

动态模型:

状态图:

事件:

状态图与事件追踪图的关系:

功能模型:

基于三个模型的分析过程:


 

 面向对象方法改进了在生存期各个阶段之间的接口,因为在生存期各个阶段所开发出来的”部件”都是类,在面向对象生存期的各个阶段对各个类的信息进行细化,类成为分析、设计和实现的基本单元。

论域分析:

   论域分析开发问题论域的模型、考察问题论域的一个较宽的范围,分析覆盖的范围应直接要解决的问题更多、建立大致的系统实现环境

应用分析:

    应用分析则根据特定应用的需求进行论域分析

    应用(或系统)分析细化在论域分析阶段所开发出来的信息,把注意力集中于当前要解决的问题

image.gif编辑

类的定义:

   一旦标识了一个类,就给出了它的规则说明,其中包括类的实例可执行的操作和它们的数据表示、对每一个,无论是在哪一个阶段标识都是如此、类的规格说明定了施加于对象的数据存储上的一组操作。

类的实现:

   通过变量的声明、操作界面的实现及支持界面操作的函数的实现,可实现一个类的预期行为和状态、实现是与语言有关的,一个好的面向对象语言应当分共有界面与其内部实现

类的测试:

   如果类的定义提供的界面比较狭窄,那么穷举测试就有可能实现、类的测试在最抽象的层次开始,沿继承关系继续向下进行、已经测试过的部分不需要从新测试

求精和维护:

   这是一个在软件生存期中最花费时间的部分、传统的维护活动是针对应用的,而求精过程是针对类,针对把类集成在一起的结构、我们可以标识抽象的抽象,使得继承结构通过一般化增加新得层次,即在既存得根类之上增加新得层次

对象模型:

   是三个模型中最关键的模型,它的作用是描述系统的静态结构,包括构成系统的类和对象,它们的属性和操作,及它们之间的关系、在OMT中,类于类之间的关系叫做关联

聚合-代表整体于部分的关系,这是一种特殊形式的关联

限定-用以对关联的含义做某种约束

角色-用来说明关联的一端,由于多数关联具有两端点,因而涉及到两个角色

image.gif编辑

image.gif编辑

动态模型:

  动态模型着重于系统的控制逻辑,包括两种图,状态图、事件追踪图

状态图:

   状态图是一个状态事件和时间的网络,侧重于描述每一类的动态行为,在状态图中,状态是对某一时刻中属性特征的概括,而状态迁移表示这一类对象在何时对系统内外发生的那些事件做出任何种反应

image.gif编辑

操作时一个伴随状态迁移的瞬间发生的行为,与触发事件一起表示在有关的状态迁移之上动态模型有过个状态图组成、各个状态图并发地执行,并可以独立地改变状态

事件:

   一个事件发生在某一时刻、每个事情都是单独发生的、我们建立事件类,并给每个事件一个名字,以指明共同结构和行为、事件从一个对象向另一个对象传送信息

事件追踪图:

事件追踪图侧重于发生于系统执行过程中的一个特定”场景”

场景也叫做脚本,是完成系统某个功能的一个事件序列

打电话者拿起电话受话器

电话忙音开始

打电话者拨数字(8)

电话忙音结束

打电话者拨数字(2)....

打电话者拨数字(3)

接电话者的电话开始振铃

铃声在打电话者的电话上传出

接电话者回答

接电话者的电话停止振铃

铃声在打电话者的电话中消失

通电话......

image.gif编辑

状态图与事件追踪图的关系:

   在状态图叙述一个对象的个体行为,事件追踪图侧给出多个对象所表现出来的集体行为,例如,一个事件追踪图指出某一对象在接受一个事件之后发出另一事件,同一行为在此对象的状态图中也应当有所表示

功能模型:

   功能模型表明,通过计算,从输入数据能得到是什么样的输出数据,不考虑参加计算的数据按说明时许执行、功能模型由多个数据流图组成,它们指明从外部输入,通过操作和内部存储,直到外部输出,这整个的数据流情况

1.功能模型中所有的数据流图往往形成一个层次结构

2.在这个层次结构中,一个数据流图中的过程可以由下一层的数据流图做进一步的说明

3.数据流图中允许加入控制流,但这样做将与动态模型重复,不提倡夹带控制流

image.gif编辑

基于三个模型的分析过程:

功模型照重于系统内部数据的传送和处理

功能模型定义”做什么”

动态模型定义”何时做”

对象模型定义”对谁做”

目录
相关文章
|
机器学习/深度学习 前端开发 Oracle
程序员的那些事
本文章介绍了程序员是做什么的要学什么
1288 0
程序员的那些事
|
人工智能 C++ iOS开发
ollama + qwen2.5-coder + VS Code + Continue 实现本地AI 辅助写代码
本文介绍在Apple M4 MacOS环境下搭建Ollama和qwen2.5-coder模型的过程。首先通过官网或Brew安装Ollama,然后下载qwen2.5-coder模型,可通过终端命令`ollama run qwen2.5-coder`启动模型进行测试。最后,在VS Code中安装Continue插件,并配置qwen2.5-coder模型用于代码开发辅助。
20572 71
|
存储 算法 测试技术
【软件工程】软件工程复习题库2023
【软件工程】软件工程复习题库2023
487 0
|
消息中间件 监控 Kafka
【Kafka】分区副本中的 Leader 如果宕机但 ISR 却为空该如何处理
【4月更文挑战第12天】【Kafka】分区副本中的 Leader 如果宕机但 ISR 却为空该如何处理
|
存储 算法 程序员
25【软件基础】面向对象分析与设计思想总结
`面向对象的本质`:通过对象之间的协作完成功能。
1057 0
|
监控 Linux 应用服务中间件
Linux 系统中查看系统日志方法
Linux 系统中查看系统日志方法
533 0
|
编解码 缓存 搜索推荐
使用Dreambooth LoRA微调SDXL 0.9
本文将介绍如何通过LoRA对Stable Diffusion XL 0.9进行Dreambooth微调。DreamBooth是一种仅使用几张图像(大约3-5张)来个性化文本到图像模型的方法。
936 1
|
5G 定位技术
UWB定位系统的定位维度及功能介绍
室内定位系统方案中,UWB室内定位技术目前应用较多,得益于UWB室内定位10-30厘米的超高定位精度。 UWB全称是超宽带技术,它是一种无线载波通信技术。 UWB不采用载波,而是利用纳秒至微微秒级的非正弦波窄脉冲传输数据。
603 0
UWB定位系统的定位维度及功能介绍
|
监控
宣传技能培训1——《新闻摄影技巧》光影魔法:理解不同光线、角度、构图的摄影效果,以及相机实战操作 + 新闻摄影实例讲解
宣传技能培训1——《新闻摄影技巧》光影魔法:理解不同光线、角度、构图的摄影效果,以及相机实战操作 + 新闻摄影实例讲解
1580 0
|
算法
插值与拟合的区别以及如何选取
插值与拟合的区别以及如何选取
790 0