软件工程实践教程-基于开源和群智的方法 课件 实践设计1:实践要求、实施及考评_第1页
软件工程实践教程-基于开源和群智的方法 课件 实践设计1:实践要求、实施及考评_第2页
软件工程实践教程-基于开源和群智的方法 课件 实践设计1:实践要求、实施及考评_第3页
软件工程实践教程-基于开源和群智的方法 课件 实践设计1:实践要求、实施及考评_第4页
软件工程实践教程-基于开源和群智的方法 课件 实践设计1:实践要求、实施及考评_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

“阅读、分析和维护开源软件”课程实践实践要求、实施及考评毛新军国防科技大学计算机学院内容课程实践的设计考虑目的、任务和要求课程实践的任务和实施准备工作、实施步骤及任务、实践输出课程实践的考核方法实践考评对象、评分方法及注意事项高质量开源代码蕴含工程实践经验和开发技能软件设计技能(如软件架构和风格)程序设计技能(如封装、模式)编码规范(如命名)代码质量保证方法(如可维护)代码注释方法(如规范化的注释)高质量代码片段(如重用)开源代码低质量的代码也可以作为学习的反面教材不易于阅读和理解不易于扩展和维护可靠性和健壮性差通过方面的教材也可以学到诸多的教训开源软件资源海量、丰富、多样的开源软件Github上数亿的软件仓库覆盖几乎所有领域和行业在业界广泛使用得到检验可以获得和改造程序代码背后的软件开发贡献者开发者水平参差不齐不乏软件开发高手蕴含他们丰富的开发经验和高水平的技能开源软件可以作为学习的对象开源软件水平参差不齐,高水平的开源软件蕴含有价值的开发技能和方法软件架构设计模块化软件设计信息封装软件重用规范化编码风格高质量代码注释…….课程实践目的动机从具体和高质量代码入手,开展和实施软件开发工程实践通过学以致用,运用所学的方法来完善和维护软件系统学什么、做什么开源代码中蕴含的高水平软件开发方法、技能和经验通过学以致用,运用软件工程方法来开发和维护软件目的掌握高质量软件开发方法,并能学以致用运用软件工程方法来解决软件开发和维护问题积累软件开发技能、经验和工程素质实践实施过程阅读代码标注代码分析代码维护软件文档注释文档文档+代码考评考评考评考评精读泛读总结运用逆向软件工程:学习和总结正向软件工程实践任务及要求理解高质量软件设计及编码风格、高水平编程技巧和方法运用用所学方法、开源软件及代码来维护开源系统用开源社区中的群智知识来解决实践中遇到的问题用软件工程方法及分布式协同手段来进行软件开发分析和评价分析和评价软件的“质量”分析和评价“需求变化”对软件开发及质量带来的影响待学习的开源软件:“MiNote”开发者小米公司MIUI团队开发的一款开源移动APP软件主要功能创建和管理便签、编辑、基于GoogleTask的云同步代码规模6个包、170个文件、41个Java类、471个类方法8800行代码代码质量软件设计和代码质量较高开源社区GitHub开源社区:/MiCode/NotesGithub上的MiNotes/MiCode/Notes实践组织方式结对(2人)读代码、写代码、绘模型、编文档相互协作共同完成课程实践任务群体(班级)集体解决问题、交流经验和分享成果个体模式阅读结对模式群体模式标注分析维护实践支撑软件工具及平台代码阅读和标注工具AndroidStudio阅读代码、标注代码、分享和评价标注代码托管和实践实施平台EduCoder(头歌)实践任务实践项目组织、分布式协同开发、代码版本管理问题讨论和经验分享工具LearnerHub(知士荟)提交技术博客、开展问题解答、进行经验分享EduCode上的实践作业及其描述复制课堂/classrooms/8478/announcement/0EduCode上的实践作业及其描述老师创建课堂、布置作业阅读、标注和分析开源软件的作业EduCode上的实践作业及其描述维护开源软件的作业老师创建课堂、布置作业实践项目仓库示例实践项目对应的项目仓库开展课程实践需要掌握的知识和工具Java和android编程开源软件及代码片段(如SO\CSDN)的重用基于UML的分析和设计基于Git的版本管理自学掌握编程知识灵活运用所学知识自学掌握工具使用开源社区和LearnerHub群智知识的利用代码静态分析如SonarQube实践推进进度的规划代码泛读代码标注创意需求软件设计编码测试实践准备质量分析需求分析1周1-2周2-3周1-2周2-3周1-2周1-2周4-6周实践任务1–下载和运行小米便签(学生)到开源社区下载小米便签的开源代码/MiCode/Notes搭建AndroidStudio环境加载小米便签的开源代码运行小米便签软件借助AndroidStudio环境来编译、安装和运行小米便签软件理解小米便签软件的功能在操作和使用小米便签软件的基础上理解其功能推荐学习资料Androidstudio安装与配置(Java、AndroidStudio)

/xiadewang/p/7820377.html在最新版的AndroidStudio4.0下构建小米便签/#/spaces/146/resources-docs/6353/#/spaces/146/resources-docs/12898更多的问题及其解答可访问“/#/spaces/146”实践任务2–创建课程实践项目(学生)加入到头歌平台上的课程实践课堂基于老师提供的邀请码加入课堂在头歌平台创建课程分组实践项目基于头歌平台上的实践课堂关联课程实践项目建立起实践项目与课程实践任务之间的关联掌握Git工具的使用熟练开展基于Git的分布式协同开发基于头歌平台的实践开展老师学生发布作业创建项目关联项目到作业协作完成作业跟踪实践完成情况提交分组作业验收作业项目仓库项目仓库中包含二个目录:doc(存放文档)和src(存放代码)推荐学习资料如何安装:【干货】一篇文章让你入门git

/#/spaces/146/resources-docs/6423实践任务3–泛读开源代码(学生)分析和列出小米便签开源代码的组织结构包含哪些包,描述每个包的作用,可用包图来描述(自学)包含哪些类,分析类间的关系,可用UML类图来表示(自学)描述各个类的主要作用用自然语言描述分析软件功能与类之间的对应关系每个功能通过哪些类对象加以实现,用自然语言描述撰写《开源软件泛读、标注和维护报告文档》第二、三章节的内容实践任务4–标注代码(学生)精读部分开源代码(约3000-5000行)理解软件详细设计(类设计),知其然和所以然理解子系统、类、方法和语句的语义对类、方法、语句块、语句四个层次进行代码标注理解软件设计和程序设计的技能和高质量编程的方法输出:代码注释类、方法、语句块、语句层次的代码注释撰写“开源代码阅读、标注和维护文档”中第四章内容代码标注的注意事项注释写些什么代码功能(What)和编写意图(Why),无需解释代码如何做注释书写要求言简意赅,表述清晰准确和正确,不要歧义和二义太少和过多的代码注释均不可取,要防止二个极端确保注释与代码间的一致性标注的对象语句、语句块、方法、类在标注的过程中学习编码风格和软件设计类、变量和方法的命名格式化布局和对齐{}的使用代码的简洁性必要的注释代码的结构化组织模块化设计、信息封装、软件重用…..示例:标注开源软件标注开源代码实践任务5–分析开源软件质量(学生)分析代码质量、总结高质量开发技能和编程方法人工分析:基于代码阅读基础上进行分析自动分析:运用SonarQube等工具,分析代码质量进行总结和提炼,形成文档和报告撰写《开源软件的质量分析报告文档》深入理解高质量的软件设计和程序设计方法如何通过程序包来组织软件系统中不同的类如何确保类和方法的功能独立性(模块化)如何通过类和方法的可见性来实现信息隐藏如何遵循编码规范来编写高质量的代码如何利用类来封装属性和方法如何通过方法来对外提供服务(接口)如何根据功能和服务来抽象操作与方法采用什么样的操作模式来实现特定的功能等等泛读(宏观、类和架构)精读(微观、语句)持续迭代正反二面的分析和总结正面好的实践、经验和方法文档化表述和代码示例独立进行凝练和总结要求在实践中遵守和继承反面Sonarqube分析代码中存在的问题发现代码的缺陷和问题,进行文档化表述和基于代码示例要避免的代码质量分析软件工具安装和使用SonarQube软件在知士荟软件工程学习空间中找到该软件安装的相关技术博客借助SonarQube对小米便签开源软件进行质量分析描述工具的分析结果实践任务6

–维护开源软件(学生)维护工作:解决问题和增强功能纠正缺陷,根据质量分析情况,修改相关代码完善功能,让学生去构想和创意,老师负责引导和建议实现方法需求构思、需求分析、软件设计、程序设计、软件测试利用开源软件,遵循代码风格,确保质量要求输出:维护后的高质量开源软件代码、注释、文档和可运行软件系统撰写《开源软件泛读、标注和维护报告文档》第五、六章要求学以致用,将所学的开发技能和方法应用于代码维护,确保软件质量维护软件的过程构思新需求发现存在缺陷需求分析软件设计编码实现测试演示运用所学的方法和技能维护软件的开发活动需求构思和缺陷发现构思软件新功能,描述发现的软件缺陷,用自然语言和用例描述对新增的软件需求进行分析、建模和描述,用顺序图和类图架构设计和详细设计调整软件的体系结构,进行必要扩展和改进,以满足新增的功能进行必要的类设计和数据设计,以实现新增的功能编码实现和软件测试基于设计来编写和修改代码,实现新增功能,并进行软件测试软件演示演示软件以展示新增的功能示例:维护开源软件新增软件需求调整软件设计编写程序代码示例:新增软件功能组别功能名字第8组昼夜模式添加菜单键语言切换第9组表达式计算器效果音隐藏便签第10组开机欢迎动画一键截图日历第11组开机密码语音输入滑动菜单组别功能名字第1组九宫格密码摇一摇更换背景下拉目录回弹第2组手势创建便签文本密码欢迎界面第3组欢迎音频手势输入插入系统时间第5组功能导引右滑返回组别功能名字第4组欢迎界面手势操作重力感应第6组九宫格锁查看日历导航页第7组背景图片音乐按键音随机背景示例:维护开源软件引导界面欢迎界面夜间模式便签日历手势创建摇晃换景隐藏便签手势密码手势输入插入时间维护后的可演示系统新增的小米便签功能实践的附加要求技术博客每人每周一篇技术博客,总结实践的心得、体会、经验和成果问题解答遇到问题在LearnerHub讨论区进行提问、讨论、交流和解答/#/spaces/146/resources持续讲评和改进要求学生阶段性地汇报实践成果文档、注释、代码、模型等对学生实践成果进行持续的讲评发现问题、讲评问题、提出建议、要求改进要求学生基于讲评持续改进实践再次提交课程实践的成果对实践成果的质量高标准严要求模型、代码、文档、博客、报告课程实践的验收和考评每个小组汇报和演示10分钟提供汇报的PPT模版成果汇报二份文档报告内容维护所添加的功能注释的代码及样例编写代码行数样例软件系统架构设计等功能演示运行维护后的软件,演示新增的功能实践评分要求《开源软件的质量分析报告文档》20%《开源代码阅读、标注和维护文档》30%软件维护的功能构思、代码量及质量40%每周的技术博客、知士荟上的交流和分享10%实践问题的交流和解答访问知士荟的软件工程学习社区,查询和发布实践中遇到的困难和问题,寻求获得问题的解答/#/spaces/146软件工程主教材毛新军等,软件工程:理论与实践,高等教育出版社,2024年1月,ISBN:978-7-04-061010-9.

101计划核心教材内容先进引入新技术新方法新实践连接专业教育与产业实践融合工程范式与群智范式组织科学从程序及其质量保证入手重新组织知识章节和内容由易到难、由具体到抽象诠释深入利用身边软件和思政案例完整深入人机物融合案例模板、模型、文档、代码强化实践设计二类综合性课程实践明确综合实践任务和要求综合性实践具有可操作性101计划核心教材软件工程实践教材毛新军等,软件工程实践教程:基于开源和群智的方法,高等教育出版社,ISBN978-7-04-052423-9.2024年9月,101计划核心实践教材明确实践要求规模性、系统性、综合性、创意性、高质量二类实践任务阅读、分析和维护开源软件开发有创意、上规模和高质量软件系统完整实践案例小米便签开源软件、空巢老人看护软件新颖实践方法学开源、用开源、利用群智有效考评方法考为辅、评为主、以评促改、持续改进1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论