OO 第四单元博客作业

yplqing 学生 2024-06-15 20:35:57

OO 第四单元博客作业

本单元所实践的正向建模与开发

实际过程,构思出这是一个两层的模型,上层管理下层的信息交换,然后根据上层需要的功能,下放到下层协作实现。抽象来说,就是整体到细化的过程,UML正是一个有力的工具。上层需要实现查询、借书等7种功能,也就需要有7棵职能分配的“树”,可以在UML中建模,再在代码中实现。

 

本单元作业的架构设计

 

类图如上,省略了下层之间的各种关系,因为在正向建模时不需要过于细化。则最终的代码设计一定是包含UML模型的设计要求而更加细化的,就像JML规格一样,实现方法和过程不一定在建模中体现。

 

在四个单元中架构设计思维的演进

第一单元

此单元针对一般问题场景,即根据问题的特征,设计相应的架构。表达式拥有递归包含的特点,则采取递归下降的架构设计。

第二单元

此单元针对多线程场景,需要基于线程同步与互斥的基本知识,进行架构设计。这里基本知识指的是防止死锁、避免死锁等问题的解决方法,否则无法顺利进行正确的架构设计。

第三单元

此单元针对有限制的架构设计场景。具体来说,要在宏观上保持与规格一致的情况下,尽可能保证实际代码的良好实现,如高性能、低复杂度等。

第四单元

此单元针对正向建模指导代码实现场景。对于复杂的系统性问题,提前正向建模有利于代码实现。

 

在四个单元中测试思维的演进

第一单元

此单元过程复杂,代码复杂,故不采用白箱测试。主要采用黑箱测试(测试各种元素的组合的计算和化简)和小部分压力测试(测试计算过程的性能是否足够)。

第二单元

此单元多线程场景,代码更加复杂,需要使用黑箱测试。

第三单元

此单元有明确的规格要求,适合单元测试;由于有性能要求,也需要压力测试;JML中有些容易忽略的规格,据此可以进行小部分白箱测试。

第四单元

此单元适合黑箱测试,也适合单元测试,因为每个操作其实有不少限制和要求。

 

课程收获

学会了针对具体问题特征来进行相应的架构设计;学会了基于度量来分析自己的程序,从而发现自己没有意识到的某些看似简单的函数复杂度却很高的问题;更加深刻理解了层次化设计的理念,当某个类掌管的数据和方法过多,使用 synchronized 很容易互锁时,代表着这个类跨越层次了,功能冗杂,此时应该将这个类的一部分数据和方法抽象出来,成为新的类;在实现JML要求的规格时,学会了一些琐碎而必要的优化性能的方法;懂得了如何使用UML来正向建模指导代码实现。

...全文
84 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 全国计算机等级考试二级教程《Python语言程序设计》(2018年版)被视为针对Python入门者和备考人员的核心学习材料。该资料汇总了教材内的所有编程练习答案,这些答案在Python 3.5.3环境中经过实际执行测试,从而保障了代码的准确性和应用价值。备考人员借助这些答案,能够评估自身的学习进度,并深入理解和熟练掌握Python编程的基础原理与方法。 1. Python基础理论:Python作为一门高级编程语言,因其简明扼要的语法结构和卓越的功能表现而备受推崇。基础内容涵盖了变量、数据种类(例如整型、浮点型、字符串、布尔型、列表、元组、字典、集合)、逻辑控制(比如条件判断if-else,循环控制for、while)、函数的声明及使用、模块的引入等。 2. Python高级应用:Python的进阶内容涉及异常管理(try-except-finally结构),类与实例(面向对象编程的基础,包含类的构造、对象的生成、属性与方法的运用、继承机制、多态表现),装饰器(用于调整函数或类的功能特性),上下文管理器(借助with语句实现资源管理)等。 3. 数据文件处理:Python配备了全面的文件操作功能,涉及文件的开启、数据读写、关闭操作,以及多种操作模式(例如r模式用于读取,w模式用于写入,a模式用于追加内容等)。此外,还包括文本文件与二进制文件的转换处理,以及文件的位置调整、复制和删除等操作。 4. 标准库的运用:Python的标准库资源极为丰富,比如os模块提供操作系统接口,sys模块用于获取系统参数,random模块可用于生成随机数值,datetime模块负责处...

301

社区成员

发帖
与我相关
我的任务
社区描述
2023年北航面向对象设计与构造
学习 高校
社区管理员
  • YannaZhang
  • CajZella
  • C_ecelia
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧