软件工程是这学期新开的一门课程,作为非计算机专业的学生,在上这门课前,并不是很了解它的内容。最开始,我以为软件工程和以前学习C或C++的课程一样,是以如何编写计算机程序为主要内容的。但是通过这两个星期的学习,我发现软件工程学科并不是那么简单易懂。
首先,我从来没有去思考过我们平时所完成的所谓程序和软件有什么不同,对于这两者的概念是混淆的。我认为这两者无非都是利用各种各样的计算机语言,来实现你所需要的某些功能。现在我才了解到,对于程序,它其实只是一组指示计算机或其他具有信息处理能力装置每一步动作的指令,通常用某种计算机语言编写,运行于某种目标体系结构上;而软件则像是个封装了一个或多个程序的黑箱,这些程序之间是有联系的且它们不是直接暴露在使用者面前的,它必须包含能使使用者与计算机进行交流的接口,即便使用者不了解程序本身,也能让计算机实现其功能。
软件工程,属于一种工程学科,所描述的概念非常抽象。它并不是在告诉你如何写好一个程序,而是在教你如何是你能创造出一个好的软件。包括:1、定义要使用的软件开发过程;2、管理项目的开发活动;3、表述想要的软件产品;4、设计产品;4、产品实现,即编程;5、测试产品的单独模块;6、产品集成并做整体测试;7、产品维护。而我们平时所说的编程,大概只是包含了设计产品和产品实现的两个部分。想要完成一个好的软件,只会写代码是不够的。