最近不少朋友向我抱怨说:软件工程教程知识点太杂,即使学了也很难记得住,我便花了一天时间看了下这本教程,发现这本书的脉络还是很清晰的。
全书以软件危机为引,详尽论述了软件定义、开发、应用、维护到最后消亡的生命过程。
软件工程和实际生活是密不可分的。一个设计师如果想要设计一辆车,首先他要明确我要设计什么车?电动车还是燃油车,汽车还是火车……它有什么性能?这便是问题的定义——要做什么。明确了这些设计师还需考虑到:我设计的车以现有技术水平是否能完成?是否迎合客户的需求?一旦上市,是否能收回成本?怎样才能节约成本?这便是可行性研究所面临的问题。而需求分析实则是设计师将构思分析、汇总、最终绘制汽车图纸的过程。
要制造一辆车,光有灵感往往是不够的。还需要具体的构思。制造车所需要的轮胎、螺母、发动机、方向盘……都来自哪里以及每一部件的具体特性如何都是设计师所考虑的。
零件一旦制作成功,质检部门检查合格后才可投入市场。至于对成型车辆的检测自然也是不容忽视的。
车子制造出来后不可能用上五年、十年,甚至更多。难免会出现这样或那样的故障,维修工作自然是不可避免的。不过无论多么好的车子,最终的归宿都是被淘汰。
以上便是形式化的软件工程的生命周期。只不过是实现问题的方法不一样罢了,比如在软件定义中的可行性研究需用到数据流图、数据字典等。需求分析用到状态转换图、IPO图等。在软件开发中需明确开发原理、开发原则等。而软件维护主要是指修正错误、提升性能、迎合客户新的需求。
那为什么会出现上述那种情况呢?我做了如下分析。
首先软件工程是软件的综合学科,它强调的是对软件的理解以及一些行之有效的安排开发,跟踪进度,保证质量的工程方法。本科的软件工程注重的是学习理论, 没有一定的实践基础确实很难理解。
其次大学可想而知是最安逸的一个学习场所,步入大学的那一刻就意味着你可以自由支配你所有的时间。不少大学生的自律性差,课上打游戏、刷微信、逛朋友圈,课下更是参加各种活动。总之做什么都有时间,唯独挤不出时间来学习。
让我们来看下怎样才能快速高效的学习软件工程呢?
(一)状态调整篇
状态决定一切,既然想学好软件工程这门学科,就应该有打持久战的准备。拥有三分钟热血的人连皮毛都学不到,更别谈精通了。至于那些连三分钟热度都没有的大学生和你应该转变态度开启学习模式。总之进入状态对提高学习效率是至关重要的。
(二)方法变换篇
一个好的学习方法可以让你的学习事半功倍。个人认为:对于计算机知识的学习应注重理论与实践结合。自己或团队可以通过开发一个小型系统来强化对软件工程内容的理解。
以上仅是我这个行外人事的一些看法,如有不妥之处还望见谅。