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

目录

一、问题分析

软件开发问题分析

动机

学什么

目的

二、要求

阅读

理解

运用

分析

评估

认知

三、案例选择

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.

结语

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

相关推荐
小德乐乐1 天前
【2026最新】Amber26 与 AmberTools26 最新版发布:从分子动力学模拟到自由能计算的全流程升级 本地部署 服务器安装
开源软件·amber
小锋学长生活大爆炸2 天前
【开源软件】这次iPhone也是用上Claw了 | PhoneClaw
ios·开源软件·iphone·claw
张较瘦_2 天前
[论文阅读] AI + 软件工程 | 突破LLM代码生成瓶颈:编程知识图谱(PKG)让检索增强更精准
论文阅读·人工智能·软件工程
肖有米XTKF86462 天前
河北奢源水光商城系统制度开发
人工智能·软件工程·团队开发·csdn开发云
肖有米XTKF86462 天前
二二复制裂变小程序系统制度(双轨制公排模式)
人工智能·小程序·软件工程·团队开发
千桐科技2 天前
献礼劳动节|qData 数据中台开源版 v1.3.0 正式发布:智能问数(ChatBI)来了!
开源软件·text2sql·数据中台·chatbi·问数·qdata·千桐科技
思茂信息3 天前
CST软件如何进行参数化扫描?
运维·开发语言·javascript·windows·ecmascript·软件工程·软件需求
互联网推荐官3 天前
上海物联网应用开发技术路径拆解:从协议选型到平台架构的工程实践
大数据·人工智能·软件工程
许彰午3 天前
CacheSQL:一个面向政务系统的内存缓存数据库中间件
java·数据库·缓存·中间件·面试·开源软件·政务
极创信息3 天前
信创领域五种主流CPU架构(X86 / ARM / RISC-V / MIPS / LoongArch)
java·arm开发·数据库·spring boot·mysql·软件工程·risc-v