1理论学习
1.1 慕课第十章学习
1.2 软件工程讲义设计和开发 章节的学习
本周进行了软件工程讲义设计和开发 章节的学习,相关学习总结如下:
(1)基本的分析和设计方法:分析和设计有许多方法有多种,例如以文字为主的文档, 如Word、PowerPoint 文档。正如我们在需求分析和场景设计中看到的那样。用图形为主构造的模型, 如 Mind Map (思维导图),ERD, DFD, UML 的各种图,甚至包括Flow Chart 流程图用数学语言的描述,如 Vienna Development Method用类自然语言+代码构造的描述,如 Literate Programming
源代码加注释也能描述。形式化的方法 (Formal Method)、文学化编程 (Literate Programming)。
(2)开发阶段的日常管理:闭门造车(leave me alone),我们要让团队中做事不仔细的人慢下来,这样能减少他们的危害。将欲取之,必先予之。在项目早期,如果大家觉得要做一个设计变更,可以用告知模式(Tell-mode)的形式,就是说,修改方必须通告所有关系人:“我在这里修改了某某界面。”但是修改方不必取得其他关系人(或者模块)的事先同意,就是说可以先行设计并编码。当然,如果其他关系人不同意,修改还是不能签入。当项目进行到稳定阶段,Tell-mode 要改为请求模式(Ask-mode),这时,修改方必须先问“我是否可以在这里修改某某界面?”(当然还要有更详尽和充分的理由)得到肯定的答复后,才能进行修改。这时的默认回答是“不”。
(3)用户界面,用户体验的设计:计算机软件的用户界面 (User Interface) 和用户体验 (User eXperience) 是一个巨大的领域 (学者们, 顶级会议, 个人电脑GUI的演变)。1. 从用户的角度考虑;2. 从头到尾都要记住用户的选择;3. 短期刺激和长期的好处/坏处;4. 不让用户犯简单的错误;5. 用户体验和质量。评估用户界面:01 可视性原则;02系统界面符合现实惯例;03用户有自由控制权;04一致性和标准化;05预防用户出错;06减少记忆负担;07使用效率和灵活性;08易读性;09 帮助用户识别,诊断并修复错误;10提示和帮助文档。
(4)源代码管理:软件 = 程序 + 软件工程,软件的质量 = 程序的质量 + 软件工程的质量。软件工程中,也有类似脚手架,塔吊这样的工程系统,工具和流程。 软件的源代码管理工具(source code control system),加上构建系统 (build system), 能保证一个复杂软件能在多个角色,多个团队的合作下,按时以合适的质量发布。每个团队写一个博客,回答下列问题:1. 你的团队的源代码控制在哪里?用的是什么系统?如何处理文件的锁定问题?2. 如何看到这个文件和之前版本的差异?如何看到代码修改和工作项 (work item),缺陷修复 (bug fix) 的关系。3. 如果某个文件在你签出之后已经被别人修改,并且签入了,那么你在签入你的修改的时候,如何合并不同的修改(merge)?你用了什么工具来帮助你?4. 你的PC 上有关于三个功能的修改, 但是都没有完成,有很多文件处于半完工的状态,这时你要紧急修改一个新的 bug,如何把本地修改放一边,保证在干净的环境中修改这个 bug, 并成功地签入你的修改。5. 如何给你的源代码建立分支?6. 你的项目的源代码和测试这些代码的单元测试,以及其他测试脚本都是放在一起的么? 修改源代码会确保相应的测试也更新么?你的团队是否能部署自动构建的任务?
2 实践学习
经过课程在线第十章继续学习,对UML工具有了更加细致的了解,基本学习了UML顺序图、状态图的简单应用,并通过线上UML工具——ProcessOn线上UML工具进行了相应实践协作。尝试了对诗词游戏的顺序图及状态图进行了编绘,基本了解了该工具基本的操作流程及工具使用方法。以上实践行为如下面截图所示。
UML顺序图学习:根据课堂在线10-1节、10-2节及10-3节学习并进行诗词游戏实践,如下图所示:
UML状态图学习:根据课堂在线10-4节及10-5节学习并进行诗词游戏实践,如下图所示:
通过对Python工具中的tkinter工具进一步学习,丰富了诗词游戏的相关界面,但仍存在界面交互异步以及游戏界面简单的问题。下一步将继续对诗词游戏界面及交互程序完善,相关的码云地址为:https://gitee.com/softwarelearning/software_engineering_learning。本组通过tkinter将诗词游戏程序得到简单的人机交互界面,相关操作及游戏实现效果截图如下:
3 学习时间安排
2020.03.30:学堂在线8-1节、8-2节及8-3节课堂视频学习,UML工具学习,诗词游戏编程实践。
2020.03.31:学堂在线8-4节视频学习,以及学堂在线第八章课后测试题及讨论题完成,UML工具学习,诗词游戏编程实践。
2020.04.01:学堂在线9-1节、9-2节、9-3节及9-4课堂视频学习,以及学堂在线第9章课后测试题完成,UML工具学习,诗词游戏编程实践。
2020.04.02:UML工具的学习及Python基础编程电子书阅读与实践学习,诗词游戏编程实践。
2020.04.03:Python课程小组讨论学习实践,UML工具学习,诗词游戏编程实践。
2020.04.04:Python编程电子书学习,python编程的讲解视频学习,UML工具学习,诗词游戏编程实践。
2020.04.05:诗词游戏编程实践,作业题编程练习的完成,完成各项任务汇总并上传作业。