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春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 个人博客作业-软件案例分析 我在这个课程的目标是 ...
随机推荐
- 第09课:GDB 实用调试技巧(下)
本节课的核心内容: 多线程下禁止线程切换 条件断点 使用 GDB 调试多进程程序 多线程下禁止线程切换 假设现在有 5 个线程,除了主线程,工作线程都是下面这样的一个函数: void thread_p ...
- CSS导航菜单(一级菜单)
index.html <div class="nav"> <ul> <li><a href="#">Java&l ...
- 剑指offer计划16( 排序简单)---java
1.1.题目1 剑指 Offer 45. 把数组排成最小的数 1.2.解法 这题看的题解,发现自己思路错了. 这里直接拿大佬的题解来讲吧. 一开始这里就把创一个string的数组来存int数组 Str ...
- Hyper-V + WSL2与 VirtualBox 共存
Hyper-V + WSL2与 VirtualBox 共存 这样的教程网上有很多,我先简单复述一下.真正麻烦的是我遇到的问题--开启 Hyper-V 后我的电脑会多出几个删不掉的虚拟显示器来,会在文章 ...
- C# MVC 实现 ajax 跨域
dataup.js$(function() { $.ajax({ url: "http://localhost:1266/test/t", dat ...
- 【TP3.2.3】根据字段统计条数
// 省份查询 $province = M('hospital') -> field('area as label,count(*) as value') -> group('area') ...
- php--laravel --debug--mac
1>安装debug 一.下载xdebug文件 1.将phpinfo();的信息全部输入网址中的框,得到适配的xdebug版本: 网址:http://xdebug.org/wizard.php 2 ...
- Elasticsearch、XXLJob以及最近的学习记录
Elasticsearch.XXLJob以及最近的学习记录 前言 在这九月的最后一周,来总结一下最近的学习记录,主要是对于Elasticsearch.XXLjob的初步学习,想着还是多记录点,以便后面 ...
- 定要过python二级 选择第3套
1 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. . 13. 14. 15. 16. 17. (1)说明了一个问题 所谓的方向是从左到右还是从右到左 是看的是步长 步长的 ...
- 大前端快闪二:react开发模式 一键启动多个服务
最近全权负责了一个前后端分离的web项目,前端使用create-react-app, 后端使用golang做的api服务. npx create-react-app my-app cd my-app ...