BUAA2020软工作业——提问回顾与个人总结
| 项目 | 内容 |
|---|---|
| 这个作业属于哪个课程 | 2020春季计算机学院软件工程(罗杰 任健) |
| 这个作业的要求在哪里 | 提问回顾与个人总结 |
| 我在这个课程的目标是 | 进一步提高自己的编码能力,工程能力 |
| 这个作业在哪个具体方面帮助我实现目标 | 反思我这一学期的工作并做出总结 |
| 其他参考文献 | 《构建之法——现代软件工程》第二版 |
一、以前提出的问题
二、对问题的解答
1. 关于创新
在书的16.1.2节中,作者给出了“创新者甚至恨创新”的支持例子,就是假设发明电报的人被发明电话的人上门推销,发明电报的人会感到不安,因为电话这个创新将会颠覆目前的电报产业,导致辛辛苦苦建立起来的电报公司失去市场。
之前我给出的解答是“在我看来恰恰相反,一个颠覆性的产品必将会带来很大的商业价值,只要抓住机会加以利用,就会取得成功”,课程结束后,我依然认为我的解答是正确的。在如今产品种类极大丰富的时代,拥有一个好的创新是很难的,一旦某个领域有了一个创新点,这个点就会被很多公司去模仿,为自己创造生机。就比如这些年很火的吃鸡游戏,刚出的时候大批玩家进入让整个游戏市场为之震惊,随后很多公司也都出了吃鸡的手游,再到后来王者荣耀甚至也加了吃鸡模式。我敢说这些游戏开发者没有一个会恨吃鸡这款游戏,而是把它当成新的商机去利用。
2. 关于用户需求
对于软件教程的编写是我一直以来很关注的一件事,很多大厂设计了有很高操作难度的软件,比如PS,可是自己没有相应的电子版或者纸质版教程,这就给广大用户使用软件造成了不便。
在我们做团队项目的时候,我们使用了Flutter这个安卓app框架,我发现flutter在用户使用体验方面做的就很好,他们有一个官方教程网站,可以解决Flutter使用中的绝大部分问题,在我开发过程中也可以参考上面的例子,感觉非常方便。所以我感觉很多软件公司应该自己有一个写教程的团队,而不是让用户去写。
3. 关于代码规范
一个好的团队项目都要有高质量的代码,而高质量的代码都需要有严格的代码规范来把控。
比如我们在团队项目中,后端和爬虫使用Python,使用pylint和pylint-django第三方包对代码进行静态检查,并配置了适合于我们项目的.pylintrc配置文件。代码风格检查在GitHub平台上使用Action功能进行了自动化部署,每个commit都需要通过代码风格检查。
前端遵循Dart语言的一般代码规范。我们主要靠AS自带的Reformat功能对缩进换行等进行限制,而变量名、程序结构等其他风格由组员自行维护。
这样在我们组员阅读别人的代码的时候,都会觉得非常的方便美观。
4. 关于用户体验
在之前的博客中我提到了一个iPhone的静音按钮要不要同时关闭闹钟铃声的问题,我们在设计产品时,面对复杂的用户需求,怎么做合理的取舍才能让软件被大多数人所接受呢?
首先要从自身出发,做好充分的调研,其次,要根据用户的使用反馈去跟进项目,做好迭代和维护,这样才可以让产品被更多用户所接受。
三、新的问题
我们普遍感觉软件刚开发出来的时候推广起来非常困难,我们团队做的北航教务助手app应该说是最贴近学生们的生活的了,但是到最后才只有350多人使用。而其他组做的实用性不高的软件就更加难以推广了。所以不知道在软件推广方面有没有什么更有效的方法呢?
四、软件工程的知识点
1. 需求
需求分析要列出所有要做的功能,以及每个功能面向的用户,以及预计用户量等等。
2. 设计
设计阶段需要把各个功能的预期页面效果,前后端交互方案设计出来,但是设计细节不用定的太死,可以在开发过程中灵活调整。
3. 实现
前后端要多进行沟通交流,我们在实现前端的过程中经常遇到前端要做的功能后端没有相应的数据,或者后端的数据格式不太方便解析和处理。这时就要跟后端提出要求让他们修改。
4. 测试
测试阶段要尽可能地对软件的每个地方每种情况进行测试。后端可以使用单元测试和测试驱动的开发,前端在软件做完后,全组一起帮忙使用测试,人多力量大,可以测出很多隐蔽的bug。
5. 发布
对于我们在校生而言,发布渠道也仅限朋友圈以及各种群,可以针对每个功能面向的用户群体进行发布,也可以广撒网,尽可能多的去宣传。同时软件内部应该设有用户反馈功能,方便收集各种bug以及建议。
6. 维护
在维护期需要做的是根据发布后的用户反馈来对软件做出调整,或者是根据不同时期的不同需求来增加一些小功能,并实时发布最新版本软件。
五、谈谈个人心得
1. 个人项目
通过个人作业我入门了c++的面向对象机制,为结对作业打下了基础。
2. 结对项目
我是第一次做结对项目,之前都是感觉一个人写代码更好,因为所有代码自己都看得懂,感觉处理起来比较方便。结对项目还需要阅读和理解队友的代码,比较麻烦。但是经历结对编程后我发现其实结对编程比想象中的方便的多,我们只需要做好分工然后完成自己的部分就好,不需要读太多队友的代码。其实到项目开发测试全部完成以后,程序中队友的代码我还有些地方没有读到,但这都没有关系,我们的项目是完整的而且经过测试的。所以说我现在感觉结对编程非常方便。
3. 团队项目
在软工课的团队项目中,我第一次体会到了在一个大公司工作的感觉,几个人分成一个小组,每个人都各司其职完成自己的任务,每天开组会讨论问题和汇报进度,定期更新功能和推广软件。我第一次了解了真正的软件开发团队是怎么运作的,也体会到了自己的团队从零开发、测试、维护一款软件是什么感觉,也收获了很多团队工作经验。总之,本学期的软件工程课让我收获颇丰。
BUAA2020软工作业——提问回顾与个人总结的更多相关文章
- 【BUAA软工】提问回顾与个人总结
链接到以前提问题的博客 在之前的博客我曾经提问过以下几个问题 为什么单元测试必须由写程序的人完成? 过早优化,过早泛华:何时为过早? 为何使用goto语句? 用户需求分析:分而治之,如何分? 兼容性测 ...
- BUAA2020软工作业(五)——软件案例分析
项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 软件案例分析作业 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方面 ...
- BUAA2020软工作业(四)——结对项目
项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 结对项目作业 我在这个课程的目标是 进一步提高自己的编码能力,工程能力,团队协作能力 这个作业在哪 ...
- BUAA2020软工作业(三)——个人项目
项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人项目作业 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方面帮助 ...
- BUAA2020软工作业(二)——对软件工程的初步理解
项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方面帮助 ...
- BUAA2020软工作业(一)——谈谈我和计算机的缘分
项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 第一次作业-热身! 我在这个课程的目标是 进一步提高自己的编码能力,工程能力 这个作业在哪个具体方 ...
- BUAA2020软工团队beta得分总表
BUAA2020软工团队beta得分总表 [TOC] 零.团队博客目录及beta阶段各部分博客地址 团队博客 计划与设计博客 测试报告博客 发布声明博客 事后分析博客 敏 杰 开 发♂ https:/ ...
- 软工作业-----Alpha版本第一周小结
软工作业-----Alpha版本第一周小结 Part1.第一周周计划记录 姓名 学号 周前计划安排 每周工作记录 自我打分 yrz(队长) 1417 1.进行任务分析 2.任务分配 ...
- [软工作业]-软件案例分析-CSDN
[软工作业]-软件案例分析-CSDN(app) 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件案例分析 我在这个课程的目标是 ...
随机推荐
- VUE带Token访问Abp Vnext Api
上篇登录保存token用了3种方式,都可以在header带上Token访问,本次使用第四种保存方式Vuex中保存状态 stroe中配置好需要保存的字段及方法 import Vue from 'vue' ...
- Spring Boot 入门系列(二十八) JPA 的实体映射关系,一对一,一对多,多对多关系映射!
前面讲了Spring Boot 使用 JPA,实现JPA 的增.删.改.查的功能,同时也介绍了JPA的一些查询,自定义SQL查询等使用.JPA使用非常简单,功能非常强大的ORM框架,无需任何数据访问层 ...
- linq 集合按照多列进行distinct
List<TaskBatch> sourceList = (from c in BatchCollecion ...
- TP6生成url
和TP5生成url方式有区别, 在控制器里 需要加上 ->build(), 如 url('index/arc/list')->build(); 如果是多域名还需要指定域名,如不想加域名可以 ...
- windows 创建cmd alias
windows cmd bat alias 命令 别名 1. 创建文件 C:\cmd-alias.bat @doskey sayhello=echo Hello $* @doskey cattxt=t ...
- [模板]多项式全家桶小记(求逆,开根,ln,exp)
前言 这里的全家桶目前只包括了\(ln,exp,sqrt\).还有一些类似于带余数模,快速幂之类用的比较少的有时间再更,\(NTT\)这种前置知识这里不多说. 还有一些基本的导数和微积分内容要了解,建 ...
- CentOS7 Docker容器无法ping通宿主机ip问题解决记录
Docker服务部署启动容器发现docker容器内访问宿主机IP不通,于是进入容器内ping宿主机IP,发现无法ping通,容器IP为172.17.0.2,于是继续ping172.17.0.1也不通, ...
- 阿里:MySQL数据库规范
阿里:MySQL数据库规范 简介:基于阿里数据库设计规范扩展而来 设计规范 1.[推荐]字段允许适当冗余,以提高查询性能,但必须考虑数据一致.冗余字段应遵循: 不是频繁修改的字段. 不是 varcha ...
- 域名系统-DNS
域名系统DNS 域名系统DNS(Domain Name System)是互联网使用的命名系统,用来把便于人们使用的机器名转化为IP地址,域名系统就是名字系统. 很多应用层的软件经常直接使用DNS.DN ...
- C++ostringstream用法
ostringstream用法 1.类型转换 要求包含头文件; 字符串和int之间的互相转换: int num = 100; string str = ""; std::ostri ...