软件工程基础:课程总结

╄→гoц情女王★ 提交于 2019-12-06 20:52:36

《软件工程基础》:课程总结

这个作业属于哪个课程 <18级软件工程基础>
这个作业的要求在哪里 <团队最后一次作业:总结>
团队名称 Alibaba国际懂事会
这个作业的目标 进行对《软件工程基础》这门课程的自我总结,展望以后的学习规划,让自己专业知识的提升行之有效。
GitHub地址

团队成员列表:

团队成员 学号 团队身份
WHY 3104 队长
SH 1315 队员
TSK 2208 队员
YYT 1401 队员
YJ 1307 队员
TR 1204 队员
ZLP 1403 队员
MXR 1201 队员

项目成果
--项目名称:考勤管理系统

原型设计浏览地址: https://next.modao.cc/app/47dbcb123e3fba437a6af9393e18f33ef1f6be89

回望第一次博客中问题的想法

其实在之前转专业的时候,我曾经问过王杨院长这个问题。当时我对计算机专业也不甚了解,只知道计算机科学与技术,是偏向于硬件开发,属于计算机行业比较底层的领域,而软件工程是很多计算机科学的集成专业,更偏向于应用。但是因为有读研的打算,就选择了计算机科学与技术专业,像盖房子一样,从底层开始做起,一点一点向上爬。第一次作业呢,经过助教和老师悉心的讲解,我对学好这门课有了充足的信心,也希望能从这门课中汲取更多地知识和养分。虽然这门课的作业很多,我有时候也会在心里暗自抱怨这么大的作业量,但是每次我至少都花时间认真学一些新知识,并尽最大能力完成好它。
以下是我在第一次博客中提到的问题以及通过课本和查阅资料得到的问题的解答,大致与我的想法相同。

  Q1.计算机科学和软件工程是什么样的关系?

A1.

软件工程专业是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面,因此要求学生在学习过程中一定要学精学通,不能只了解皮毛。

计算机科学与技术类专业毕业生的职业发展路线基本上有两条路线:一是纯技术路线,二是由技术转型为管理的路线。(课本P10-15)

  Q2.软件的可利用性怎么体现?

A2.

1、上下文梳理

上下文梳理是明确研发系统与哪些外部实体存在关系。在梳理软件的上下文的时候,一般会更加关注与软件系统有直接功能交互关系的实体,有时会忽略软件系统的用户,而明确软件的用户,是易用性提升的起点。

因此,在上下文梳理时需要明确软件的目标用户。例如某个软件的目标用户是外部客户和内部服务工程师,那么在上下文分析的时候,应该明确出来。需要注意的是,在对软件首个版本分析上下文的时候,不能只看软件当前版本范围的需求,而是需要看软件所有的需求,例如当前版本做不面向外部客户的特性,但在上下文分析的时候仍然需要明确出来,否则容易遗漏影响架构的需求。

2、需求场景分析

• 使用场景定义

从易用性分析出发,前面上下文分析明确了用户角色,这里要围绕用户角色来梳理用户的使用场景。使用场景表明了软件被用户用来干什么。

梳理使用场景,即基于对用户对软件业务/功能诉求的理解,进行场景的定义。基于使用场景对软件的各个大大小小相关的需求特性进行归类,便于下一步的需求分析。更重要的是,使用场景是UI设计的重要依据和输入。(课本P139-150)

  Q3.软件需求分析的任务是什么?

A3.

开发软件系统最为困难的部分就是准确说明开发什么。最为困难的概念性工作便是编写出详细技术需求,这包括所有面向用户、面向机器和其它软件系统的接口。同时这也是一旦做错,将最终会给系统带来极大损害的部分,并且以后再对它进行修改也极为困难。
目前,国内产品的庞杂,一家企业可能有几个系统并立运行,它们之间接口是系统开发人员最头痛的问题。
对于商业最终用户应用程序,企业信息系统和软件作为一个大系统的一部分的产品是显而易见的。但是对于我们开发人员来说,并没有编写出客户认可的需求文档,我们如何知道项目于何时结束?而如果我们不知道什么对客户来说是重要的,那我们又如何能使客户感到满意呢?
然而,即便并非出于商业目的的软件需求也是必须的。例如库、组件和工具这些供开发小组内部使用的软件。当然你可能偶尔勿需文档说明就能与其他人意见较为一致,但更常见的是出现重复返工这种不可避免的后果,而重新编制代码的代价远远超过重写一份需求文档的代价,这些血的教训正在国内的软件开发者身上发生。(课本P164-175)

  Q4.软件运营如何实现与研发团队成员进行高效沟通?

A4.

1、沟通排期
在设计师水平有保证的情况下。作为需求方,在提交需求前要与被需求方的设计主管提前进行沟通,沟通需求具体下达到哪位设计师手上,因为设计还分网页设计和平面设计两种。在不了解情况前提下,贸然给某一位设计师提需求是不专业的表现,会引起设计的不满。
2、明确需求
好的网页可以进行适当参考,要理解别家为什么这么设计功能和布局,是不是真的适合我们,同时也要针对做功能的取舍,而不是照抄。
落地到需求文档后,要和设计师进行沟通,设计也会有一些不错的建议帮助把需求案子改的更好,也能帮助运营发现隐藏的设计问题。
3、平行沟通
需求方要避免没有主见不清楚自己想要什么但还是非常固执相信自己眼光的人。
需求方对自己想要的结果要有一个认识,即使有改稿需求也要知道每次往哪个方向改,而不是“试试这个”“试试那个”“试了七八遍还是换回第一稿吧”。
4、转换角色
当然,设计师的沟通方式也影响沟通结果。
比如需求方是新人,不太知道自己想要啥的时候。这个时候角色可以做一下转换,设计此时可以引导对方对设计对需求进行具象化描述。(课本P94-105)

  Q5.中国IT产业的自主创新有多难?

A5.
分享自己的一点浅见。

改革开放以后,渴望核心技术的中国掀起了“以市场换技术”的热潮,典型的如汽车、制造、手机、日化、IT等领域。结果,市场拱手相让,技术却没学来多少。如国产汽车,至今在发动机、变速箱、底盘“三大件儿”上和国际水平扔相去甚远。
但凡事无绝对,中国以市场换技术也取得了不少的成功,譬如中国高铁,以较低的代价获得国外技术,之后快速消化、吸收、再创新,如今中国高铁已经达到国际一流水平,并被誉为中国“新四大发明”之一。
2000年之后,随着中国加入WTO,“以市场换技术”受到越来越多的挑战,这条政策开始逐渐从国家具有全局意义的指导性政策中淡出。面对全球化的市场竞争,中国开始大力倡导自主创新,并成为之后中国技术发展的主旋律。
正如高尔基所说,如果学习只在模仿,那么我们就不会有科学,也不会有技术。
为摆脱受制于人的局面,中国IT产业的自主创新已经耗费了几代人的心血,如今在HPC、国产CPU、操作系统、数据库、AI等方面已经取得一定进展。但2013年的“棱镜门”和今年的“中兴”事件,相继为中国IT产业敲响了警钟,想要实现真正的自主可控,中国还有很长的路要走。

  Q6.绩效管理如何优化和改进?

A6.

1、公司要做好绩效管理体系建设,注重细节,考虑到公司发展可能遇到的特殊情况下的应对措施,与公司的风险管控机制结合起来,未雨绸缪。
2、组织机构基本稳定后,要全面审视并重新修改原绩效考核管理办法,配套考核管理体系建设,以期在下一轮考核工作中有法可依。
3、绩效考核工作能够做好,全体员工的参与和支持是基础,而一支确保原则性、执行力强、效率高的考核执行团队则是关键。
4、要保证考核有效推进,设立代表权威性的考核委员会或考核薪酬委员会是必要的。不但可以保障考核的组织机构、执行人员无论怎样变化,基本职能都具备;而且可以监督考核是否公平、公正、公开,杜绝暗箱操作。
5、考核工作要坚持原则性与灵活性的统一,确保信息的沟通交流顺畅。比如,由于考核者本身会根据组织变化发生调整变化,但必须坚持考核者对被考核组织、个人的绩效表现有直接了解这一原则。

回望第二次博客中问题的想法

这次作业让我深刻体验到了作为程序员,要很好地掌握一个工具的使用的重要性。之前在团队有很多大佬就在自己的GitHub上上传了自己的源代码和文件,懵懂无知的我甚至不知道怎么进入一个纯英文的环境来阅读大佬们的代码。这次作业使用了GitHub,让我眼前一亮。通过工具的使用,既锻炼了我的C++编程能力,还让我熟悉了GitHub的使用方法。

回望第三次博客中问题的想法

这次作业可谓是非常之关键了,因为这是我们团队项目的硬核基础。通过这一次作业,收获了很多东西,也是我第一次听说原型设计工具,然后花了几个小时时间把三个工具都试了一下,最后选择了墨刀,实在好用。首先学到了需求分析的重要性,如果我不做需求分析的话,后面的原型设计根本没法做,需求分析需要多方面考虑,但是考虑得太多又容易把自己绕进去。在后面的团队作业中我们也对原型设计的大体方向做了讨论,也对原型设计工具的使用有了更好的掌握,也真正让我体会到了没有代码就能实现设计要求的乐趣所在。同时我得出了一个结论:一个团队想要做一个界面交互良好、又能精准的实现各项功能的项目,必须要设计一个理想的原型,而后朝着实现这个原型的方向再不断努力,这样做好,做精一个项目,就不难了。

我的课程总结

其实刚开始选这门课,不是因为对这门课深感兴趣,因为开设的三门专业选修课里,《软件工程基础》、《计算机图形学》和《汇编语言程序设计》中,后两门课听起来不那么“基础”,我就选择了《软件工程基础》。
在陈老师第一节课给我们讲述这门课的意义的时候,我对这门课产生了浓厚的兴趣,一心想通过这门专业选修课来提高自己的能力,学到很多在其他课程中学不到的东西。
“好景不长”啊,第一周的课程结束的周末,就迎来了第一次博客作业,而且经过助教的讲解,我还了解到这是一个连锁的作业,可能我们结课了还在做,而且这门课理论学时和实验学时都有,我有点觉得难顶。布置作业以后我一看,这不内容也没多少,但是真正静下心来做起来,我隐约记得我第一次博客做了整整一天时间。我有点小小的强迫症,我要做一件事就必须做好,所以我对待每次作业都带着很认真的态度来完成。
后来几次作业,难度逐渐加大,我就又受了不小的打击。没想到啊没想到,这门课真的有点东西。如果真的静下心来学,是真的能接触到很多新领域的东西的。后来结对编程,我和室友一起搞小项目,我(领航员)负责编码工作,真的是一周的时间都用来搞这个了,弄的那周我好几门其他课的作业都没写完,熬夜抄完了才交的。但是我不后悔,因为真的让我学到了一些处理异常情况的方法。
再后来的团队作业,我自告奋勇当了队长,建立了“Alibaba国际懂事会”这支队伍,我深知自己身上的担子很重,因为我一个人的工作可能影响到的是整个团队的成绩。而且这次组队,包含了我们计科专业四个班的同学,在组队之前我们互相都不认识,但是在第一次团队作业————选题之际,我组织了一次小会,我们互相认识了对方,也明白了各自擅长的领域,同时我在组内还分了三个组:原型组、宣传组和文案组,让我们的分工更加明确。第一次作业我们就完成的非常不错,拿到了全班最高的分数,让我对我们这次团队作业的分数更有信心。我也一直在鼓励我的小组成员,同时不断鞭策自己完成应该完成的工作。虽然这次考勤系统是我之前没有接触过的新东西,但是我们经常在小群讨论,也让我了解了其他成员对于这个项目的想法,让我的精神世界也得到了一定的升华。
在后来几次的团队作业布置以后,我经常会在我们的小群里说,我们就尽自己最大努力完成就好了,不一定要拿小黄衫的。但是,我的队员们每次完成的任务都很出乎我的意料,这也让我对我们一直处于团队总分第一的情况一点也不惊讶。直到现在我还一直坚信我的队员都是很认真负责自己分内的工作,这让我非常开心和感动。
转眼间,这门课迎来了最后一次作业,这篇博客也算是我为了这门课,为了团队成员交的一份答卷了,虽然我不知道结果如何,但我问心无愧。我从这门课中,学会了自己查阅资料,自己解决问题,同时它也让我知道了团队协作的力量是有多么强大震撼。虽然过程中技术性的东西没有学到特别多,但是我了解并学会使用了很多新工具,我想这是其他课程所不能带给我的。对我来说,这就足够了。我也希望以后还会有这种性质的课,不仅让我学会使用工具,还能更好的提高技术,为我成为一名“技艺高超”的程序员的路上添砖加瓦。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!