本周主要阅读了《构建之法》,里面深入剖析了何为软件工程。较之以往我对软工的粗浅认识,本书使我对软件工程这个专业,现代软件工程这门课有了全新的认识,也改变了我学习这门课的态度。
高考填报志愿时,对软件工程的认识就是较高收费,偏实践,就像外面的IT培训班,面向就业出来就能工作。而来到科大,得知软件学院在苏州,不在本部,更是印证了我之前的想法。
大二上学期时,学院说要给英才班开设《现代软件工程》这门课,我十分高兴,因为之前我只上过一门C语言一门数据结构,写过少得可怜的代码,很想获得做工程这方面的锻炼。当时邹欣来座谈,只记住了好好学这门课就可以在美国买大house。
这门课上了两周,我们的工作也就没停过,从开始头脑风暴痛点,到后来的调研,确定题目,邀请相关人员分析细节,到现在我们一无所知道听途说的情况下定了技术架构与路线。我们的想法是东西难道不是我来这上课学的吗?
是的,我还是把现代软件工程当成了一门课,老师教东西,同学们完成作业的课。
这显然是不对的,软件工程总的来说是把系统的、有序的、可量化的方法应用到软件的开发、运营和维护上的过程。所以他就包含了以下要求:软件需求分析、软件设计、软件构建、软件测试、软件维护。这些早就不单单是码代码,跑结果那么简单了。
书中提到的要求,回头看来,在我们这两周的工作中都得到了体现。
确定题目时,团队的共识即是“解决痛点”,我们都希望我们做出来的东西,能够切实解决一些实际中的问题。这不就是软件需求分析吗?
有了初步的题目后,大家讨论如何解决这个痛点,什么是基础功能,能否加入一些附加功能,用户友好度如何等等……这不就是软件设计吗?
题目确定后,我们讨论了是做APP还是网页,前端用什么,后端用什么,这不就是软件构建吗?
工程还没做好,客服——足球协会便提出了问题,这个东西你们做一学期,那之后谁来维护呢?这个问题也确实问住了我们。不过这就是软件维护的要求吗?
说完了软件工程的要求,再来看看软件工程的目标——创造“足够好”的软件。
何谓“好”:用户满意度高;可靠性好;软件流程质量好;可维护性好。
何谓“足够好”:在时间、成本等多种约束条件制约下及时发布“好”的产品。
期待我们“足够好”的产品!