【第三周作业】对于软件工程学的一些理解
软件工程学是研究用工程化的思维来管理软件开发活动的学问。在大部分人的印象中——“软件开发就是编程”,这在上世纪计算机刚刚诞生的年代可能是成立的。但是随着后来软件开发技术的不断发展,软件系统的规模越来越大,整个软件系统中的不稳定因素会随着体量的递增而增多,这也使得原来没有秩序的软件开发活动难以继日,从而催生了软件工程学的诞生。
软件开发可分为软件定义、软件设计、软件实现三大阶段,编程只是软件实现中的一个部分。我们可以把软件开发比喻成建造一栋房子——软件定义阶段解决这个房子是商用办公楼、出租房还是个人住宅的问题,即确定房子的用途;软件设计阶段解决这个房子最后要建成什么样,产生房子的物理设计图;软件实现阶段就是把图纸上的房子建造成现实空间真实存在的实物。将以上三个阶段再细分则依次为问题定义、可行性分析、需求分析、总体设计、详细设计、编码与单元测试、总体测试、软件维护等阶段。
软件工程学对于软件开发的意义在于,它确定了整个软件开发活动的各个步骤,并明确了每个步骤的任务,使得软件开发者有章可循,同时使得软件的可维护性大大提高——因为每个开发阶段所产生的文档可以作为软件测试的参考。
总结就是,用软件工程学的方法和理论用于软件开发活动中,可将本来杂乱无章的软件开发规范化,可使得效率最大化,减少开发成本,增强软件的可用性。