CPU_P4_design
1....
CPU_P3_design
1....
北航 OO 面向对象 第四单元
转眼间,这趟面向对象程序设计的奇幻漂流也迎来了尾声。从第一单元初入茅庐的“表达式解析”,到第二单元扑朔迷离的“多线程电梯风云录”,再到第三单元严谨到令人发指的“JML”,直至本单元的图书馆怪谈“UML”,我历经了风雨的洗礼,变得更强、更稳、更有经验了。这篇博客是对第四单元和整个OO旅程的一次深度复盘与未来展望。 ✨ 我的OO航海日志·珍藏版索引 ✨ 第一站:表达式求导的OO启蒙——递归下降与多项式的爱恨情仇 第二站:多线程电梯与并发设计的狂想曲——锁与调度的极致拉扯 第三站:JML规格与社交网络图的精妙构建——在规格的镣铐中起舞 一、本单元所实践的正向建模与开发第四单元主要是设计UML图,并利用画好的UML图来实现一个图书馆管理系统。其中,我们应当采取正向建模的方式来完成作业。 **正向建模的核心奥义:“先有蓝图,再盖大楼”,在本单元的图书馆建设中体现得淋漓尽致: 解读指导书内容: 首先,要得把图书馆的规则理解透彻:书籍如何分类、学生如何借阅、预约、还书,信用分又是如何计算的,以及图书馆每日开闭馆时那套庄严的仪式(open() 和...
北航 OO 面向对象 第三单元
本单元重点学习了JML规格代码的书写、阅读,以及体验规格化设计实现。本单元学习的内容可谓是金刚钻,也许将来在工作的时候不一定会用到,但是掌握一项高专业化的能力不是一件坏事,况且一旦用到了那我们便能得心应手的应对,因此也是要好好对待JML的! 1. 测试过程1.1 单元测试单元测试指的是,对软件中的函数、方法或类进行正确性验证。通过验证程序的函数是否正确,能够尽早发现代码逻辑错误,隔离缺陷,方便代码重构。单元测试过程自动化程度高,执行速度快,定位问题准确,成本最低。在我的程序中,我使用JUnit来进行单元测试,测试函数行为。 1.2 **功能测试功能测试是指,基于软件需求规格说明书对软件功能进行验证。关注“软件做什么”,而不是“怎么做”。主要以黑盒测试为主,根据需求文档设计测试用例。在自动化测试的同时也包含大量手动测试,需要手搓一些极端样例来保证代码在极端情况下的健壮性。在我的程序中,我手搓了很多极端数据来保证函数功能的正确实现。 1.3 集成测试...
OS shell 挑战性任务
我实现挑战性任务的顺序并不是按照题目顺序,而是根据我认为的合理顺序来实现的,实验报告也将按照我实现指令的顺序来书写。 重写 sh.c 架构指导书中提出, Shell是一种命令解释器,对输入指令进行解析并执行。现有MOS实现的Shell较为简陋,如果在其基础上尝试实现挑战性任务内容可能复杂度较高,可以参考sh,bash等工业界shell实现原理进行重新实现,以下是一个可行的实现方案: 因此,我第一步先按照上述架构把 sh.c...