项目 | 内容 |
---|---|
课程班级博客链接 | 2020级卓越工程师班 |
这个作业要求链接 | 实验一——软件工程准备 |
我的课程学习目标 | 1. 学会使用博客园进行学习 2. 了解Github工具的基本操作 3. 学习并掌握软件工程的相关知识 4. 阅读《现代软件工程—构建之法》并完成第一篇博客 |
这个作业在哪些方面帮助我实现学习目标 | 1. 使用博客园学习 2.注册Github账号, 了解Github的基本操作 3. 阅读了《现代软件工程—构建之法》,对软件工程有了初步认识 |
任务1:提交课程调查问卷
- 已经在指定网址提交课程调查问卷,填写了基本信息与软件工程的基础掌握情况
任务2:在博客园平台注册个人博客账号和加入班级博客
- 实验课上已经完成博客园账号注册并且顺利加入班级
- 成功通过审核,获得发布博客权限
任务3:注册Github账号
- 此前已有Github账号
- 但缺少Github使用经验,但已通过资料进行了解学习
任务4:各位同学点击以下链接填写博客园账号与github账号的链接
- 已如实填写了自己博客园及Github的账号信息
任务5:构建之法与博客首秀
具体任务:
- 阅读《现代软件工程—构建之法》,参照参考文章的提问模板,尝试拟定3个准备从课程学习中找到答案的问题,并以写博客形式记录下来,博客要求使用Markdown排版。
- 修改博客园博客默认编辑器为Markdown。
- 在博客撰写中练习 MarkDown,优化博客的阅读体验。
- 博客名称:学号-姓名 实验一 软件工程准备—题目自拟
阅读《现代软件工程—构建之法》的阅读笔记,通过以下三个问题:
1. 第一章概论提出,什么是软件工程?
邹欣老师在《现代软件工程—构建之法》对软件工程的定义如下:软件工程是把系统的、有序的、可量化和方法应用到软件的开发、运营和维护上的过程。
软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。
2. 第六章敏捷流程中提到,什么是敏捷流程和敏捷团队?
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
3. 通过第六章总结敏捷开发的优势和不足?
- 优势:
(1)更快交付价值
敏捷是基于价值驱动交付,项目团队要频繁的且尽快的给客户交付可以使用的产品,并尽早的让让产品投入市场可以尽早的验证其商业模式和商业价值,这是敏捷提倡的核心价值之一。
(2)更低的风险
敏捷提倡优先交付高价值、高风险的需求,然后交付高价值、低风险的需求、再交付低价值、高风险、最后低价值、低风险的需求。
(3)拥抱变化
因为市场在变化,用户的期望和要求在变化,客户的需求也会随着这些因素的变化而变化,只有及时响应这些变化,并尽快予以实施,才能帮助客户在瞬息万变的市场中保证竞争力和吸引力。而敏捷能够帮助团队在小步快跑的过程中能够快速的响应变化。
(4)持续改进
敏捷提倡不断调整和优化,并在每个迭代的迭代回顾会议进行分析、讨论、总结敏捷当前迭代开发过程中需要改进或者要提升的地方,进而在下个迭代中改进、调整和优化。这是整个团队成员不断学习,不断提升自己经验、技能的一个很好的机会。
- 不足:
(1)很难进行准确的资源规划
由于敏捷团队不是一开始就知道产品“最终的样子”,而是在过程中探索用户的需求逐渐知道产品真正的终局状态,这样一来就给前期的规划(成本,时间,资源)带来了很大的挑战。
(2)很难准确的定义“轻量的“或必要的文档
敏捷倡导的是用工作的软件即文档(核心是代码即文档)。整个项目用于产品开发的文档不是一开始准备好的(甚至都没有RP原型设计),而是在过程中”及时的准备出来的。
(3)很难把握整体产品的一致性
增量交付可能有助于更快地将产品推向市场,但这也是敏捷方法论的一大缺点。因为当团队在不同的周期内对各个组件进行开发时,整体的输出往往会变得非常零散,而不是一个内部紧密集合的整体。