个人作业 I.3 结课总结

21371190-谢卓然 2024-06-30 19:34:21
项目内容
这个作业属于哪个课程2024年北航敏捷软件工程社区-CSDN社区云
这个作业的要求在哪里[I.3] 个人作业:结课总结
我在这个课程的目标是了解熟悉敏捷开发的方法论,学习团队合作,并通过实际开发产品来实践
这个作业在哪个具体方面帮助我实现目标总结课程实践中的经验与教训,更好地掌握敏捷软件工程能力

个人作业 I.1 阅读和提问

一、以前提出的问题

1. 单元测试

有时很难确定应该在什么样的粒度上进行单元测试。如果粒度太小,那么测试往往起不到效果;如果粒度太大,要编写测试逻辑又会变得十分复杂。要怎样确定单元测试的粒度呢?

单元测试的重要性并非是在于对粒度的确定。在敏捷开发方法中,单元测试通过集成测试(CI)进行回归测试,防范新推送的代码破坏之前的功能,是一种在开发过程中非常重要的辅助检验的方法。除此之外,敏捷开发讲究最小可用快速交付,在每一个完成的模块上加入单元测试,也是一种保证最小功能集可用、设计有效的良好方法。

2. 为“未来”而做的架构设计

经常陷入可拓展的方向最终并没有用到,需要拓展的功能又没法很方便地集成到原有代码中的问题,等于可拓展的设计就白白浪费了。如何更有效地考虑“场景”呢?

依然没有想得特别明白,只能说架构设计从来都是一种trade-off,谁赢谁输,看天赏脸。我们只能尽自己所能设计出符合当下需求的架构,并作限制在一定程度内的扩展支持。在这一方面,或许经验更有话语权。

3. 分工与合作

我想,对于这样的软件可运行与否的检查,应该是团队共同的职责。然而,如果项目过大,不可能让每个人都把所有的功能都用一遍,这种时候又该如何分工呢?

测试人员这一职位的设置,在我们的项目开发中起到了很重要的作用。即使可以要求团队成员都具有一定的责任心和热情,对项目产生的问题十分关注,也仍需要安排专门的测试人员进行测试。这一安排通过某种激励,微妙地改变了项目成员之间的关系,有助于实现项目交付质量的稳定。

4. 结对编程

如果两个人完成同一项工作,甚至轮流进行设计,那么不会导致设计很乱、没有一个一以贯之的思想吗?这不会加大维护难度吗?要如何解决这一问题呢?

在深度体验了结对编程后,我认识到结对编程解决这一问题的办法是频繁的沟通,特别是设计(编码前)和编码中的沟通。编码前的沟通有助于令对方了解你的设计思想,并从另一角度思考你的设计的合理性与必要性;编码中的沟通有助于交流编码技巧,探索更加合适的实现方式,并时刻检查可能出现的编码错误。这样一来,二人形同一人,二人的开发思路是经过沟通而保持一致,或至少是能够相互理解的。这样,便能发挥结对编程的优势了。

5. 何时重构

什么时候该重构?

什么时候该重构?

二、实践中学到的知识点

1. 需求阶段

确定需求不是一件容易的事。要考虑清楚产品的目标群体是谁,以及目标群体可能的需求。这些需求要进一步划分为核心需求和附加需求,应当先着重研究核心需求,快速生产最小可用产品,等待反馈并进一步迭代。

2. 设计阶段

设计要着眼当前阶段的核心需求。不符合需求的奇怪设计,就是用户的非预期行为,就是bug。

3. 实现阶段

实现要着眼当前阶段的核心需求,尽快产出可用产品。不仅能尽快发现问题,还能快速提振团队信心,助力项目平稳发展。

4. 测试阶段

测试非常重要,可以帮助发现开发过程中没有发现的问题,还可以避免回归bug。

5. 发布阶段

发布阶段要做好数据防护,开发和上线隔离,保护数据安全。

6. 维护阶段

持续收集用户意见,并整理,从中选出有价值的部分作为下一阶段开发的参考。此外,还要收集这个版本中出现过的问题,并修复bug。

三、心得

这次团队项目中我们合作得非常愉快,大家各尽所能,充分交流,利用研讨室集中开发,进行快速交流。我们还全程坚持了 git 规范,遵守 checkout -- commit -- rebase -- merge 的流程,使仓库的主分支呈现瑰丽的直线。团队成员的新奇想法也往往能得到其他队友的支持,大家合力实现。结对编程也是一次难忘的体验,使我感受到了同伴Push下的高强度开发。总得来说本学期的软件工程课充满意义与价值,我也很高兴。

...全文
172 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
书名:《Android编程入门很简单》(清华大学出版社.王勇)。 压缩打包成2部分,这是第2部分。 本书是一本与众不同的Android学习读物,是一本化繁为简,把抽象问题具体化,把复杂问题简单化的书。本书避免出现云山雾罩、晦涩难懂的讲解,代之以轻松活泼、由浅入深的剖析。这必将使得阅读本书的读者少走弯路,快速上手,从而建立学习Android开发的信心。本书配带1张光盘,收录了重点内容的教学视频(8.7小时多媒体教学视频)和本书涉及的所有源代码。 目录: 第1篇入门必备 第1章初识Android 1.1手机发展简史 1.1.1手机发展的里程碑 1.1.2Android的各个版本 1.2开放手机联盟 1.2.1开放手机联盟的目的 1.2.2分工合作 1.3Android中的个人英雄主义 1.3.1第一届挑战赛冠军介绍 1.3.2第二届挑战赛冠军介绍 1.3.3Androidmarket 1.4Android平台 1.4.1Android体系结构 1.4.2熟悉的开发工具 1.4.3合理的学习曲线 1.5小结 第2章搭建你的开发环境 2.1配置前的准备工作 2.1.1 Android支持的操作系统 2.1.2准备“四大法宝” 2.2安装并配置JDK 2.2.1 安装JDK 2.2.2配置JDK 2.3安装并配置Eclipse 2.3.1 运行Eclipse 2.3.2 了解Eclipse 2.4安装并配置Android SDK 2.4.1 下载Android SDK 2.4.2配置SDK 2.5下载ADT 2.5.1 下载ADT 2.5.2 为Eclipse设置SDK路径 2.6新建模拟器 2.6.1 新建AVD 2.6.2运行模拟器 2.7真机测试 2.7.1安装手机驱动 2.7.2设置手机 2.8 小结 第3章创建第一个程序——helloworld 3.1新建第一个程序 3.1.1新建工程 3.1.2运行程序 3.2认识HelloWodd 3.2.1 首识Android工程 3.2.2认识布局文件 3.2.3认识值文件 3.2.4认识R文件 3.2.5认识注册文件 3.3调试程序 3.3.1 增加断点 3.3.2开始调试 3.3.3单步调试 3.4更多示例程序 3.4.1 导入Samples 3.4.2经典范例 3.5 小结 第4章使用Android工具 4.1使用DDMS 4.1.1 认识DDMS 4.1.2使用进程 4.1.3使用文件浏览器 4.1.4使用模拟器控制 4.1.5 使用日志 4.1.6使用Screen Capture捕捉设备屏幕 4.2 使用Android调试桥 4.2.1使用ADB 4.2.2显示连接到计算机的设备 4.2.3针对特定设备操作 4.2.4启动和停止ADB 4.2.5使用ADB操作文件和apk 4.2.6使用ADB shell 4.3 使用AAPT 4.3.1使用ADT导出签名程序 4.3.2使用命令行生成签名apk文件 4.4小结 第2篇界面开发 第5章探索界面ui元素 5.1认识Android视图、Widget以及布局 5.2必须了解的Widget组件 5.2.1 使用可滚动的文本控件——TextView 5.2.2 TextView中的一些功能 5.2.3 使用可滚动的视图——ScrollView 5.2.4文字的编辑 5.2.5 使用按钮——Button 5.2.6实例——计算器 5.2.7 使用图片按钮——ImageButton 5.2.8 使用复选框——CheckBox 5.2.9实例——请同意本协议 5.2.10 使用单选框——RadioGroup 5.2.11 实例——请选择性别 5.2.12使用下拉列表框——Spinner 5.2.13实例——请选择工作年限 5.2.14实例——动态修改Spinner项 5.2.15 使用进度条——ProgressBar 5.2.16实例——动态修改进度条 5.2.17使用拖动条——SeekBar 5.2.1 8实例——简单使用SeekBar 5.2.19使用图片视图——ImageView 5.2.20实例——ImageView的重叠效果 5.2.21 使用网格视图——GridView 5.2.22实例——通过宫格视图展示相应的应用 5.2.23 使用消息提醒——Toast 5.2.24实例——Toast的4种实现 5.3使用列表视图(ListView&ExpandableListView) 5.3.1 使用列表——ListView 5.3.2通过实例学习列表 5.3.3 使用可扩展列表——EXpalldableListView 5.3.4实例——简单使用ExpandableListView 5.3.5实例——深入使用可扩展列表 5.4使用菜单——Menu 5.4.1 Menu的使用 5.4.2通过实例学习使用Menu 5.5小结 第6章使用程序资源 6.1资源的意义 6.1.1什么是资源 6.1.2怎样存储资源 6.I.3怎样添加资源 6.1.4资源的种类 6.1.5怎样访问资源 6.2使用资源 6.2.1 使用资源管理器 6.2.2使用String资源 6.2.3实例——彩虹和太极 6.2.4使用String数组资源 6.2.5使用Color资源 6.2.6使用Dimension资源 6.2.7使用Drawble资源 6.2.8使用样式 6.2.9使用主题 6.3 小结 第7章设计界面布局 7.1创建界面 7.1.1 使用xml资源创建布局 7.1.2使用代码创建布局 7.2使用布局类 7.2.1使用绝对布局 7.2.2使用线性布局 7.2.3使用框架布局 7.2.4使用表格布局 7.2.5使用关系布局 7.3使用其他布局容器 7.3.1 使用TabActivity 7.3.2 自定义TabHost 7.3.3 使用对话框 7.3.4使用滑动抽屉 7.4 小结 第3篇功能实现 第8章Android应用程序组成 8.1深入理解Activity 8.1.1使用Intent连接Activity 8.1.2 Activity的生命周期 …… 第9章Android中的数据存储 第10章绚丽的多媒体技术 第11章Android网上冲浪 第12章Android地图服务 第4篇项目案例开发 第13章联系人助手 第14章个人轨迹跟踪器
书名:《Android编程入门很简单》(清华大学出版社.王勇)。 压缩打包成2部分,这是第1部分。 本书是一本与众不同的Android学习读物,是一本化繁为简,把抽象问题具体化,把复杂问题简单化的书。本书避免出现云山雾罩、晦涩难懂的讲解,代之以轻松活泼、由浅入深的剖析。这必将使得阅读本书的读者少走弯路,快速上手,从而建立学习Android开发的信心。本书配带1张光盘,收录了重点内容的教学视频(8.7小时多媒体教学视频)和本书涉及的所有源代码。 目录: 第1篇入门必备 第1章初识Android 1.1手机发展简史 1.1.1手机发展的里程碑 1.1.2Android的各个版本 1.2开放手机联盟 1.2.1开放手机联盟的目的 1.2.2分工合作 1.3Android中的个人英雄主义 1.3.1第一届挑战赛冠军介绍 1.3.2第二届挑战赛冠军介绍 1.3.3Androidmarket 1.4Android平台 1.4.1Android体系结构 1.4.2熟悉的开发工具 1.4.3合理的学习曲线 1.5小结 第2章搭建你的开发环境 2.1配置前的准备工作 2.1.1 Android支持的操作系统 2.1.2准备“四大法宝” 2.2安装并配置JDK 2.2.1 安装JDK 2.2.2配置JDK 2.3安装并配置Eclipse 2.3.1 运行Eclipse 2.3.2 了解Eclipse 2.4安装并配置Android SDK 2.4.1 下载Android SDK 2.4.2配置SDK 2.5下载ADT 2.5.1 下载ADT 2.5.2 为Eclipse设置SDK路径 2.6新建模拟器 2.6.1 新建AVD 2.6.2运行模拟器 2.7真机测试 2.7.1安装手机驱动 2.7.2设置手机 2.8 小结 第3章创建第一个程序——helloworld 3.1新建第一个程序 3.1.1新建工程 3.1.2运行程序 3.2认识HelloWodd 3.2.1 首识Android工程 3.2.2认识布局文件 3.2.3认识值文件 3.2.4认识R文件 3.2.5认识注册文件 3.3调试程序 3.3.1 增加断点 3.3.2开始调试 3.3.3单步调试 3.4更多示例程序 3.4.1 导入Samples 3.4.2经典范例 3.5 小结 第4章使用Android工具 4.1使用DDMS 4.1.1 认识DDMS 4.1.2使用进程 4.1.3使用文件浏览器 4.1.4使用模拟器控制 4.1.5 使用日志 4.1.6使用Screen Capture捕捉设备屏幕 4.2 使用Android调试桥 4.2.1使用ADB 4.2.2显示连接到计算机的设备 4.2.3针对特定设备操作 4.2.4启动和停止ADB 4.2.5使用ADB操作文件和apk 4.2.6使用ADB shell 4.3 使用AAPT 4.3.1使用ADT导出签名程序 4.3.2使用命令行生成签名apk文件 4.4小结 第2篇界面开发 第5章探索界面ui元素 5.1认识Android视图、Widget以及布局 5.2必须了解的Widget组件 5.2.1 使用可滚动的文本控件——TextView 5.2.2 TextView中的一些功能 5.2.3 使用可滚动的视图——ScrollView 5.2.4文字的编辑 5.2.5 使用按钮——Button 5.2.6实例——计算器 5.2.7 使用图片按钮——ImageButton 5.2.8 使用复选框——CheckBox 5.2.9实例——请同意本协议 5.2.10 使用单选框——RadioGroup 5.2.11 实例——请选择性别 5.2.12使用下拉列表框——Spinner 5.2.13实例——请选择工作年限 5.2.14实例——动态修改Spinner项 5.2.15 使用进度条——ProgressBar 5.2.16实例——动态修改进度条 5.2.17使用拖动条——SeekBar 5.2.1 8实例——简单使用SeekBar 5.2.19使用图片视图——ImageView 5.2.20实例——ImageView的重叠效果 5.2.21 使用网格视图——GridView 5.2.22实例——通过宫格视图展示相应的应用 5.2.23 使用消息提醒——Toast 5.2.24实例——Toast的4种实现 5.3使用列表视图(ListView&ExpandableListView) 5.3.1 使用列表——ListView 5.3.2通过实例学习列表 5.3.3 使用可扩展列表——EXpalldableListView 5.3.4实例——简单使用ExpandableListView 5.3.5实例——深入使用可扩展列表 5.4使用菜单——Menu 5.4.1 Menu的使用 5.4.2通过实例学习使用Menu 5.5小结 第6章使用程序资源 6.1资源的意义 6.1.1什么是资源 6.1.2怎样存储资源 6.I.3怎样添加资源 6.1.4资源的种类 6.1.5怎样访问资源 6.2使用资源 6.2.1 使用资源管理器 6.2.2使用String资源 6.2.3实例——彩虹和太极 6.2.4使用String数组资源 6.2.5使用Color资源 6.2.6使用Dimension资源 6.2.7使用Drawble资源 6.2.8使用样式 6.2.9使用主题 6.3 小结 第7章设计界面布局 7.1创建界面 7.1.1 使用xml资源创建布局 7.1.2使用代码创建布局 7.2使用布局类 7.2.1使用绝对布局 7.2.2使用线性布局 7.2.3使用框架布局 7.2.4使用表格布局 7.2.5使用关系布局 7.3使用其他布局容器 7.3.1 使用TabActivity 7.3.2 自定义TabHost 7.3.3 使用对话框 7.3.4使用滑动抽屉 7.4 小结 第3篇功能实现 第8章Android应用程序组成 8.1深入理解Activity 8.1.1使用Intent连接Activity 8.1.2 Activity的生命周期 …… 第9章Android中的数据存储 第10章绚丽的多媒体技术 第11章Android网上冲浪 第12章Android地图服务 第4篇项目案例开发 第13章联系人助手 第14章个人轨迹跟踪器

73

社区成员

发帖
与我相关
我的任务
社区描述
2024年北航敏捷软件工程
软件工程团队开发结对编程 高校 北京·海淀区
社区管理员
  • clotho67
  • Yeyanhan
  • HJin_Gwok
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧