阅读、分析和维护高质量开源软件有感——小计一笔

目录

一、问题分析

软件开发问题分析

动机

学什么

目的

二、要求

阅读

理解

运用

分析

评估

认知

三、案例选择

MiNotes"开源软件

方式

实践支撑软件工具

操作流程

应该学到的知识

学习过程

四、任务与输出

1.阅读开源软件

2.标注开源软件

3.分析开源软件

4.维护开源软件

五、书籍推荐

结语


阅读、分析和维护高质量开源软件有感------小计一笔

一、问题分析

软件开发问题分析

缺乏较大规模软件开发的实践和经验 ,单个程序规模不超过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.

结语

接下来到周日进行这个项目的详细解读,加油!!!

相关推荐
ClkLog-开源埋点用户分析11 小时前
ClkLog企业版(CDP)预售开启,更有鸿蒙SDK前来助力
华为·开源·开源软件·harmonyos
rolt1 天前
长得像用例图的类图-《软件方法》8.2.3.4
软件工程·uml·面向对象
工作不忙1 天前
c++多线程QThreadpool调用Python脚本时崩溃报错的解决方案二
开发语言·c++·windows·python·开源软件
阿萨姆.3571 天前
结对编程 --- 软件工程
java·软件工程·结对编程
写代码的橘子n1 天前
软件工程笔记一
笔记·软件工程
工作不忙1 天前
关于SwitchCase中变量定义及使用变量的一些注意事项参数传递参数时不能实现多态动态绑定的问题c++语法
开发语言·c++·windows·开源·开源软件
思茂信息2 天前
CST汽车天线仿真(双向混合求解)
javascript·人工智能·5g·汽车·ar·软件工程
web3探路者2 天前
加密货币行业与2024年美国大选
java·大数据·web3·区块链·团队开发·开源软件
幸运超级加倍~2 天前
软件设计师-上午题-12、13 软件工程(11分)
笔记·软件工程
晓北斗NorSnow2 天前
在软件工程开发中,瀑布式开发和螺旋式开发的优缺点比较
软件工程