目录
阅读、分析和维护高质量开源软件有感------小计一笔
一、问题分析
软件开发问题分析
缺乏较大规模软件开发的实践和经验 ,单个程序规模不超过500 LOC
缺乏工程思想和方法来指导软件开发 ,关注于计算思维,忽视软件工程思想
确保质量意识来指导软件系统的开发 ,没有见过高质量的代码,不知道差距在哪里
动机
从具体的代码入手,学习和实施高质量的软件开发实践
学什么
高质量的开源软件代码 ,高水平软件开发技能和经验,包括软件设计、编码实现等 ,深刻领会软件工程的理念、思想和方法
目的
切身理解软件工程的思想和原则,深入掌握高质量开发方法及技术,积累软件开发技能、经验和工程素质
二、要求
阅读
足够数量的高质量代码
理解
高质量软件设计及编码风格,高水平编程技巧和方法
运用
用所学方法,开源软件及代码片段来维护开源系统,用开源社区中的群智知识来解决实践中遇到的问题,用分布式协同手段来进行软件开发
分析
软件系统的架构、质量等
评估
软件设计及代码的质量水平及其原因
认知
理解代码"质量"(可扩展、可维护性等)重要性,理解"变化"对软件开发及质量带来的影响
三、案例选择
功能易于理解,用应际实向面,领域知识简单
代码质量高 ,值得学习,如高质量软件设计、良好编程风格
代码规模适中 ,不能太小、也不能太大,5000-20000 LOC
编程言语熟知 ,立马上手,不用学习编程语言
跃活社区开源 ,促进交流、问答和问题解决
MiNotes"开源软件
□开发者一资深团队 √ 小米公司MIUI 团队开发的一款开源移动APP软件
□主要功能一易于理解 √创建和管理便签、编辑、基于Google Task的云同步
□代码规模一适 中 √ 6个包、170个文件、41个Java类、471个类方法 √ 8800行代码
□代码质量一高质量 √软件设计和代码质量较高
方式
口个体 ( 1 人 ) √ 阅读、标注、分析和维护
口结对 (2人) √ 阅读、标注、分析和维护
口群体 √解决问题、重用代码
实践支撑软件工具
口代码阅读和标注工具 √ 阅读代码及结构、代码标注、分享和评价标注 √ Codepedia (codepedia.trustie.net) √ 或Android Studio或 Eclipse
口代码维护和管理工具 √分布式系统开发、代码版本管理 √EduCoder 实践任务
口问题讨论和经验分享工具 √技术博客、问题讨论、经验分享 √LearnerHub(www.learnerhub.net)
操作流程
口从GitHub 中查询和克隆开源代码
口在Android-Studio 中编译开源代码
口将代码部署在手机或Android-Studio中运行
口将代码上传到实践项目的仓库之中
应该学到的知识
Java和android编程,基于Git的版本管理,基于UML 分析和设计,开源软件的重用
学习过程
四、任务与输出
1.阅读开源软件
口任务:阅读和理解开源代码 √泛读开源软件的所有代码(如8800多行) √理解开源软件的整体功能和架构,绘制体系结构图 √描述软件功能与实现模块间的对应关系
口输出 √开源软件的功能描述(文档) √开源软件的架构图(包图和类图) √软件功能和代码间的实现对应图(文档)
2.标注开源软件
口任务:精读部分代码(约2000- 3000 行 ) √理解软件详细设计(类设计) √理解子系统、类、方法和语句的语义 √掌握代码编写风格和规范、代码的实现方法和技巧 √对类、方法、语句三个层次进行代码标注
口输出 √代码注释(类、方法、语句块、语句层次)
□标注内容 √ 功能 (What) 和意图 (Why) , 无需解释代码如何做
□标注要求 √言简意赅,表述清晰 √准确和正确,不要歧义和二义 √太少和过多的代码注释均不可取,要防止二个极端 √确保注释与代码间的一致性
□对代码的标注要分层次来进行,要在语句、语句块、方法 和 类等多个不同层次进行标注
3.分析开源软件
口 任务:分析代码编写风格、发现代码缺陷等 √ 运用SonarQube 等工具,分析代码质量 √学习优秀的代码编写风格和编程实践 √基于代码分析结果自动生成相应问题,学生通过回答问题加深对代码的理解和认识
口输出 √ 开源软件代码质量分析报告(文档),包括:代码编写规范、好的软件设计、好的编程风格、代码缺陷和问题
4.维护开源软件
口维护工作 √完善功能,让学生去构想和创意,老师负责引导和建议 √纠正缺陷,根据质量分析情况,修改相关代码 √实现方法,利用开源软件,遵循代码风格,确保质量要求
口输出 √维护后的高质量开源软件 √可运行和可演示软件系统
五、书籍推荐
□毛新军等,软件工程:理论与实践,高等教育出版社,ISBN: 978-7-04-061010-9,2024年1月.教育部101计划核心教材.
□毛新军等,软件工程实践教程:基于开源和群智的方法,高等教育 出版社,2019.8,ISBN 978-7-04-052423-9.
结语
接下来到周日进行这个项目的详细解读,加油!!!