作者:19373132-周子颖

项目 内容
这个作业属于哪个课程 北航 2022 春季敏捷软件工程
这个作业的要求在哪里 作业说明链接
我在这个课程的目标是 锻炼软件工程思维,增强团队合作,学习软件开发方法
这个作业在哪个具体方面帮助我实现目标 了解现代软件工程开发的思维,团队协作的方法

阅读提问

1. 在《代码大全》的《软件隐喻》章节中,作者先列举了伽利略的钟摆隐喻、bachman的日心说隐喻等,来证明他提出的隐喻重要性。但我觉得这并不能很好的证明隐喻的重要性。我认为作者提出的例子只能说明隐喻有助于进行软件开发,可以提供一些思路,但并没有作者提出的“隐喻在帮助人们更好地理解软件开发问题方面所做的贡献,与它帮助人们更好地理解科学问题所做的贡献一样大”。我认为应该再加上一些软件中没有使用隐喻而失败的例子,这样能更好地说服读者。

2. 在《邹欣老师的博客园讲义》的《结对编程和两人合作》中,作者提出了

(1)驾驶员:写设计文档,进行编码和单元测试等XP开发流程。(2)领航员:审阅驾驶员的文档、驾驶员对编码等开发流程的执行;考虑单元测试的覆盖程度;是否需要和如何重构;帮助驾驶员解决具体的技术问题。

这样驾驶员和领航员的结对编程结构,但我觉得这样的结对方式可能会让两个人更注重自己的任务,而错失了对另一个角色的学习。从我以往的二人编程经验来看,可以让两个人分别承担驾驶员负责人和领航员负责人,两人同时都是驾驶员和领航员,但各方面的进度和内容等还是由此方面负责人总体把控,这样可能会更好的让两个人学习到两种角色。

3.  在《邹欣老师的博客园讲义》的《软件工程 软件工程师的誓言》章节的最后,作者提出了软件工程师应遵循的八个原则,

原则1:公众

软件工程师的行为应与公众利益一致。特别地,软件工程师应恰当地做到:

1.01 对自己分内工作负有全部责任

1.02 综合考虑软件工程师,雇主,客户,用户与公众的利益

1.03 软件是安全的,符合规范的,通过适当的测试,不降低生活的质量,不侵犯隐私,不对环境造成伤害;只有当以上条件都能够有充分确认,才认可这个软件。软件的终极效用应该是公益的。

1.04 把任何对用户、公众及与软件和相关文档有联系的外界人员可能造成的危害,告知相关人员或者专家。

1.05 努力合作来解决由软件及其安装、维护、支持和文档 所带来的公众关注的重要问题。

1.06 在所有关系到软件或者相关文件、方法和工具的的声明,尤其是在那些公开声明中,要做到公正并避免欺诈。

1.07 要考虑到由物理缺陷、资源分配、经济劣势和其他一些会降低软件收益的因素所带来的结果。

1.08 鼓励自愿将专业技能用于公益事业,促进公共学科教育的发展。

原则2:客户与雇主

................

但以我个人的实践来看,这些原则往往会有些冲突,而当这些原则发生冲突时,我们应该怎么做呢,我们需要以怎样的原则顺序去关心呢?

4.  在《邹欣老师的博客园讲义》的《创新的时机》章节中,作者在论述群体对马前卒的反作用时,提出了以下观点

但是一个群体如果没有这些马前卒,  它平均值不会向前移动,群体如果没有提供一定的宽容,  那也没有这些马前卒生存的空间。

这一点我感觉很奇怪,为啥群体如果没有提供一定的宽容,  那也没有这些马前卒生存的空间。我认为当这些马前卒的项目做的足够好就有很大的可能吸引群众的注意,从而自主的打开群众的市场,以求生存乃至发展。

5.    在《邹欣老师的博客园讲义》的《用户调研》章节中,作者提到了人种学研究法

这个听起来非常学术的方法其实可以解释为 - 和目标用户同吃同住同劳动。  例如,与其坐在办公室里想象如何给老年人设计手机, 不如去和老年人生活几天,从生活中得到数据和体会。  这是一个论文例子。

人类学的用户调查听起来很高深, 其实未必 - 也许你一直生活在目标人群中, 只不过你对这些需求不够敏感罢了。 在《the social network》 这部电影中, Mark 的一个同学问他, 你知道某某女生是不是有男朋友?  Mark 沉思一会, 不理会这个同学,径直跑回宿舍,在 “thefacebook.com” 这个网站上实现 “你有朋友了么”这一功能。

我认为这个研究法的实用性并不高,首先与目标用户同吃同住同劳动这个本身就有很大的限制,很难实际操作起来,其次大多数人的生活习惯并不相同,如果是为某个人定制量身的软件,此方法可能会有很大的作用,但如果是面向大众开发的软件,个人的习惯并不能决定大众,相反可能会对软件的定义产生负面影响。

调研源代码版本管理软件

目前被广泛使用的基于源代码版本管理软件Git的项目管理工具为github和gitlab。github和gitlab都是基于git实现的在线代码仓库软件,都提供了分享开源项目的平台。但两者也有一定的区别。github是目前最火的开源项目托管系统,有公共仓库和私有仓库,但是私有仓库是需要付费的。而gitlab弥补了这个问题,它提供了私人的免费仓库,另外有更多的代码仓库控制权限。因此,个人认为,对于开源项目,github是首选;对于私有项目,gitlab是首选。

调研持续集成/部署工具

解决方案一:使用GithubActions自动部署Vue-Demo

项目库链接:https://github.com/github1coder/GithubActions-Vue-demo

解决方案二:使用Gitlab-CI在Push时执行Action

项目库链接:https://github.com/github1coder/GithubActions-Vue-demo

.yml代码

name: GitHub Actions Vue Demo
on:push:branches:- master
jobs:main:runs-on: ubuntu-lateststeps:- name: Checkoutuses: actions/checkout@v2with:persist-credentials: false- name: Install and Buildrun: |npm installnpm run build- name: Deployuses: JamesIves/github-pages-deploy-action@releases/v3with:ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}BRANCH: gh-pagesFOLDER: dist- name: Run On Pushrun: |echo "Run On Push"

对所使用CI/CD工具的特点、特性描述

我所使用的githubActions所对应的yml语法较为简单,只需增加对应的配置文件(.yml文件)即可完成CI/CD的配置,功能强大并且使用简单

CI/CD进一步分析

实用简单的CI/CD工具能使得开发效率进一步的提高。从技术方面来看,简单的操作使得学习难度大大降低,更易上手和使用。从产品方面来看,强大实用的CI/CD工具能保证产品更加高效长期的运行。

各工具的对比

github的actions功能十分简单并且强大,只需简单的配置即可使用,actions库也很丰富,但是github对消除代码更新错误和冲突比gitlab稍差点,我认为,github的CI/CD更适用于个人开发

gitlab的CI功能对项目的私密性保护更加友好,但是所需的操作较为复杂,需要配置gitlab runner,因此我认为,github的CI/CD更适合于公司开发。

个人阅读作业-阅读和调研相关推荐

  1. 软件工程个人阅读作业——阅读和调研

    目录 软件工程个人阅读作业--阅读和调研 1 阅读提问 1.1 单元测试问题 1.2 效能分析问题 1.3 杀手功能问题 1.4 典型用户问题 1.5 创业团队问题 2 调研源代码版本管理软件 2.1 ...

  2. [2019BUAA软件工程]第1次阅读作业

    [2019BUAA软件工程]第1次阅读作业 Tips Link 作业连接 [2019BUAA软件工程]第1次阅读作业 读<构建之法>的疑惑 个人开发流程(Personal Software ...

  3. 软件工程阅读作业感想

    软件工程老师给我们留了阅读作业,刚开始觉得老师留的作业阅读量太大,而且时间太短,对此感到不是很理解,但是当我开始阅读<移山之道>这本书的时候,感觉这本书真的写的很通俗易懂,利用移山软件公司 ...

  4. [Week17] 个人阅读作业

    个人阅读作业Week17 reading buaa software 解决的问题 这是提出问题的博客链接:http://www.cnblogs.com/SivilTaram/p/4830893.htm ...

  5. 软件工程网络15个人阅读作业1 201521123038 游舒婷

    软件工程网络15个人阅读作业1 201521123038 游舒婷 1.博客园地址 sakurai3104 2.码云地址 sakurai3104 3.阅读与思考 (1)回想一下你初入大学时对网络工程专业 ...

  6. final个人阅读作业

    一.软件工程M1/M2总结 1.M1阶段总结: 我们团队的软件工程开发是按照前后端来分别开发的,我是负责后端的.我们的项目是做一个北航的社团平台,是一个网站.在后端我们使用的是ruby on rail ...

  7. 软件工程网络15个人阅读作业1(201521123029 郑佳明)

    软件工程网络15个人阅读作业1 Task1:博客园地址 茗想 Task2:码云地址 ming Task3:完成博客-阅读与思考 阅读参考材料,并回答下面几个问题: (1)回想一下你初入大学时对网络工程 ...

  8. 软件工程网络15个人阅读作业1 (201521123107)

    #软件工程网络15个人阅读作业1 Task1:注册个人博客账号 我的博客:Bonnenult Task2:注册码云账号 我的码云:Bonnenult Task3:完成博客-阅读与思考 阅读参考材料,并 ...

  9. 【软件工程】第一次阅读作业

    项目 内容 这个作业属于哪个课程 软件工程(罗杰) 这个作业的要求在哪里 第一次阅读作业 本次作业要完成的目标 阅读<构建之法>,快速了解软件工程的相关知识和过程并提出疑问 读完<构 ...

最新文章

  1. R语言dist函数距离计算实战(欧几里得距离、曼哈顿距离)
  2. R 回归 虚拟变量na_工具amp;方法 | R语言机器学习包大全(共45个包)
  3. 随堂小测app(nabcd)
  4. JAVA_OA(八):springMVC对JDBC的操作小项目b
  5. idea的2020.2版本
  6. 关于java嵌入式数据库的选择,强烈建议H2 嵌入式数据库
  7. java 8 删选集合 和取集合中的字段重组成集合的使用
  8. 应用层的信令控制协议 SIP
  9. shell实战训练营Day14
  10. Python清理微信被好友删除的人
  11. js题集25--编程训练
  12. 【MySQL】RPM包安装
  13. 关于Platinum库的MediaRender具体C++代码实现探讨
  14. 微信小程序中使用iconfont作为图标库
  15. 大数据爬虫前奏之Html和Css学习
  16. 角度换算数字在线计算机,角度换算成数字(计算器数字转角度换算)
  17. 一种NET软件加壳技术的设计与实现
  18. STM32实战(1):搭建模板工程
  19. 什么是session
  20. android sim卡工具,手机sim卡工具包老是弹出来怎么办?sim卡工具包不断弹出删除方法...

热门文章

  1. iOS之Xcode断点调试
  2. 个人房屋抵押贷款的利率一般是多少?
  3. 本地远程连接不上宝塔面板里的数据库的解决方案
  4. window正版验证的秘密
  5. Dian团队项目宣讲会场次和时间安排
  6. Roofline Model Toolkit: A Practical Tool for Architectural and Program Analysis
  7. 微博缩短网址是如何实现的
  8. 我眼中的:中国最美的情诗词
  9. Java 删除文件和目录代码
  10. 计算机三级网络技术——第二章:中小型网络系统总体规划与设计