对软件工程的看法
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。从定义中,我很难区分这门课究竟是一门偏理论类型的课程还是偏实战类型的课程,而且软件工程的课本中讲的基本都是理论,在之前的一次课中,我清楚记得老师说过,软件工程这门课,就是要我们团结协作,然后开发出一个可观的项目来,因此我理解为这门是理论与实践的结合课程。
对软件开发本质的认识
软件开发的本质是实现问题域中的概念和处理逻辑到运行平台的概念和处理逻辑的映射。
软件的特点
-
复杂性(Complexity)
软件本身是一个庞大的逻辑系统,不仅由多个文件,多行代码所构成,其模块之间也有显性和隐形的依赖关系。同时软件又是因多样的社会需求而诞生的,而其中影响社会需求的人为因素又是及其多样且多变的,更增加了软件本身的复杂性。软件的复杂性使得软件难以理解、难以生产、难以维护、更难以对其生产过程进行管理。 -
不可见性(Invisibility)
软件与硬件不同,不能轻易看到其内在,因此我们不能在软件上轻易的看到运行在其表面