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春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件案例分析 我在这个课程的目标是 ...
随机推荐
- Intel® QAT加速卡之编程demo框架
QAT demo流程框架 示例一: 代码路径:qat1.5.l.1.13.0-19\quickassist\lookaside\access_layer\src\sample_code\functio ...
- L2TP协议简介
传送门:L2TP代码实现 1. L2TP 概述 L2TP(Layer 2 Tunneling Protocol,二层隧道协议)是 VPDN(Virtual Private Dial-up Networ ...
- djangoProject default codes
1 === 2 settings.py 3 === 4 """ 5 Django settings for djangoProject project. 6 7 Gene ...
- 【多线程】Android多线程学习笔记——线程池
Java线程池采用了享元设计模式,在系统中维持一定数量的线程,用于处理异步或并发需求,在平时处理异步或并发任务时被广泛使用.这里基于JDK1.8和Android28来整理一些关于线程池的知识点. 一. ...
- ESP8266- AP模式的使用
打算通过该模式,利用手机APP完成配网 • AP,也就是无线接入点,是一个无线网络的创建者,是网络的中心节点.一般家庭或办公室使用的无线路由器就是一个AP. • STA站点,每一个连接到无线网络中的终 ...
- 如何获取PHP命令行参数
使用 PHP 开发的同学多少都会接触过 CLI 命令行.经常会有一些定时任务或者一些脚本直接使用命令行处理会更加的方便,有些时候我们会需要像网页的 GET . POST 一样为这些命令行脚本提供参数. ...
- dede调用文章内第一张原始图片(非缩略图)的实现方法
第一步,修改include/extend.func.php文件,最下面插入函数,查询的是文章附加表,如需查询图片集什么的,改表名即可 //取原图地址 function GetFirstImg($arc ...
- Windows 10 64位操作系统 下安装、启动测试python pycharm
一.下载python3.7.7安装包 1:详细下载安装版本可见官网:https://www.python.org/downloads/release/python-373/ 2:百度盘分享连接:htt ...
- struts2 使用ajax进行图片上传
第一步:引入一个插件 jquery.form.js /*! * jQuery Form Plugin * version: 3.36.0-2013.06.16 * @requires jQuer ...
- ARC106E-Medals【hall定理,高维前缀和】
正题 题目链接:https://atcoder.jp/contests/arc106/tasks/arc106_e 题目大意 \(n\)个员工,第\(i\)个在\([1,A_i]\)工作,\([A_i ...