对软件工程的看法
软件工程是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。从定义中,我很难区分这门课究竟是一门偏理论类型的课程还是偏实战类型的课程,而且软件工程的课本中讲的基本都是理论,在之前的一次课中,我清楚记得老师说过,软件工程这门课,就是要我们团结协作,然后开发出一个可观的项目来,因此我理解为这门是理论与实践的结合课程。
对软件开发本质的认识
软件开发的本质是实现问题域中的概念和处理逻辑到运行平台的概念和处理逻辑的映射。
软件的特点
-
复杂性(Complexity)
软件本身是一个庞大的逻辑系统,不仅由多个文件,多行代码所构成,其模块之间也有显性和隐形的依赖关系。同时软件又是因多样的 会需求而诞生的,而其中影响 会需求的人为因素又是及其多样且多变的,更增加了软件本身的复杂性。软件的复杂性使得软件难以理解、难以生产、难以维护、更难以对其生产过程进行管理。 -
不可见性(Invisibility)
软件与硬件不同,不能轻易看到其内在,因此我们不能在软件上轻易的看到运行在其表面下的真实代码的执行情况。软件的不可见性,使得软件一旦出错很难完整重现程序出现的错误。 -
服从性(Conformity)
软件必须和运行它的硬件保持一致,这是由软件对硬件的依赖所决定的,因为硬件较软件难以更改,因此软件需要服从硬件。软件对运行会受到计算机系统的影响,软件在设计时就需要考虑到软件对于不同系统的应用,因此软件需要符合行业系统要求。同时又因为软件面向用户,它需要服从客户的需求,才能拥有市场。正是软件的服从性才使得软件被人们广泛的运用。 -
易变性(Changeability)
软件在生产过程中,甚至在投入运行之后,都可以再改变。软件可以不断地更新升级,而且相对于硬件,修改软件会比更换硬件更容易。软件的易变性虽然使得软件更容易修改,使得软件可以更为完善,但这种动态的变化难以预测和控制,可能对软件的质量产生负面影响。
软件危机
软件危机(Software Crisis)是指在计算机软件的开发和维护过程中所遇到的一系列严重问题。软件危机是落后的软件生产方式无法满足迅速增长的计算机软件需求, 从而导致软件开发与维 护过程中出现一系列严重问题的现象。 这些严重的问题阻碍着软件生产的规模化、商品化以及生产效率,让软件的开发和生产成为制约软件产业发展的“瓶径”。
原因
计算机硬件技术的不断进步,要求软件能与之相适应,然而,软件技术的进步一直未能满足形势发展提出的要求,致使问题积累起来,形成了日益尖锐的矛盾,最终导致了软件危机。
解决手段
- 开发阶段需求明确,工作人员及时与客户沟通意见
- 做好软件定义时期的工作,降低软件开发成本
- 开发过程要有统一的,公认的方法论和规范指导
- 做好充分的检测工作,提交给客户高质量的软件
软件工程的要素及其作用
- 方法:为软件开发提供了“如何做”的技术手段
- 过程:为了获得高质量的软件所需要完成的一些列任务框架,规定了完成各项任务的工作步骤
- 工具:为软件工程方法提供了自动的活半自动的软件支撑环境
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!