被分入软件工程方向已经半个学期了,虽然还没开始正式进行软件方向的学习,但我已经有所准备,心向往之。最近,听从老师的建议买了邹欣老师的“构建之法 现代软件工程”来学习。看完了第一章概论,对软件工程的基本概念也有了一定初步的了解。
“软件=程序+软件工程”,邹老师用一个“阿超为儿子编数学作业”生动的故事阐述了这句话的意义,顺便解释了一些软件工程的专业名词,比如:用户,需求,软件服务,源程序,构建,数据……软件构建的不仅仅是cc和link指令,一个复杂的软件不但要有合理的软件架构,软件设计与实现,还要有各种文件和数据来描述各个程序文件之间的依赖关系,编译参数,链接参数,等等。
我还了解到了,软件工作人员除了编写源代码,还要进行其他的工作,比如:源代码(配置)管理,质量保障(软件测试),软件设计前要进行软件需求分析,等等。一个软件的生命周期有长有短,所以程序理解,软件维护(服务运营),软件管理,这些基本能力也是软件开发人员也是必备的。所以,一个扩展的推论是“软件企业=软件+商业模式”。
邹老师还把软件开发的不同阶段和航空业进行对比,分为4个阶段:玩具阶段、业余爱好者阶段、探索阶段和成熟的产业阶段。从这4个阶段的小例子中,我看到了过去我学习的身影和接下去的方向道路,一个成熟的软件工作人员不仅仅要学会编程语言,算法,各种软件开发技巧,还要学会为用户考虑,从多方面考虑,做好一些预防工作,使软件更加人性化。
软件工程中软件开发过程中也会遇到难题,基本是五点:复杂性,不可见性,易变性,服从性,非连续性。软件工程的目标是——创造“足够好”的软件。就是,减少软件中出现的bug。然后,bug的多少可以直接衡量一个软件的开发效率,用户满意度,可靠度和可维护性。没有最好,只有更好。这是我们作为未来软件开发人员需要为用户做到的。
“哲学家的宗旨是:我思,故我在。
科学家的宗旨是:我发现,故我在。
工程师的宗旨是:我构建,故我在。”
这是我阅读完这一章内容后,最喜欢的一句句子。人类要生存,人类文明要向前发展,离不开思考、发现、构建。让我们构建出自己的那一片天空。