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

目录

一、问题分析

软件开发问题分析

动机

学什么

目的

二、要求

阅读

理解

运用

分析

评估

认知

三、案例选择

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.

结语

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

相关推荐
MYPM_AndyLiu4 小时前
Codes 开源免费研发项目管理平台 2025年第一个大版本3.0.0 版本发布及创新的轻IPD实现
测试用例·开源软件·jira·项目管理工具·项目管理软件·teambition·redmine
开开心心就好12 小时前
娱乐使用,可以生成转账、图片、聊天等对话内容
windows·python·智能手机·软件工程·娱乐·软件需求
IDRSolutions_CN14 小时前
如何在 PDF 文件中嵌入自定义数据
java·经验分享·pdf·软件工程·团队开发
workflower1 天前
Prompt Engineering的重要性
大数据·人工智能·设计模式·prompt·软件工程·需求分析·ai编程
望获linux1 天前
如何在望获实时 Linux & 京博航友善 NanoPC-T6 上部署 Docker
linux·运维·服务器·docker·eureka·开源软件
odoo中国2 天前
Part 3 第十二章 单元测试 Unit Testing
单元测试·软件工程
workflower2 天前
如何对比软件需求做的是否合格?
设计模式·软件工程·需求分析
网易智企3 天前
抖音试水AI分身;腾讯 AI 战略调整架构;百度旗下小度官宣接入DeepSeek...|网易数智日报
大数据·人工智能·ai·云计算·开源软件·业界资讯·通信
架构文摘JGWZ3 天前
Sun-Panel:简洁且美观的导航首页开源项目!!
ui·开源·开源软件·工具
hope_wisdom4 天前
实战设计模式之外观模式
设计模式·架构·软件工程·软件构建·外观模式·架构设计