软件工程概要介绍
什么是软件工程
大概总结一下:就是一个研究如何让软件开发的过程变得更加规范,可控,流程化,工厂化的研究体系。
学了这么长时间的软件工程,相信有很多人对这门学科会产生很多的疑问,我在这里谈谈我个人对软件工程的理解和感受,希望对各位有所帮助和借鉴。如果大家有更好的想法也希望能够提出来一起交流。
首先谈谈什么是软件工程。相信大家肯定都听说过桥梁工程、道路工程等等这些名词,我们得理解工程这个词的定义,工程说简单点就是各个行业的工程师或者应用人员通过总结规律或者方法,以最短的时间和人力、物力来做出高效可靠的东西。因此,我们也就能理解桥梁工程,其实就是人们通过经验的总结和各种研究得出来的、用来修建桥梁时所采用的高效的方法,当然这种方法是可套用的。那么我们将这个思想应用到软件上,于是就产生了一门新的学科—软件工程。
以往,人们做软件基本上是没有章法可循,不知道该怎么去设计一个软件,很多时候只能凭一些在软件行业摸爬滚打了很多年的资深人士做出经验上的判断,这样得出来的软件不仅耗费人力物力,而且质量还得不到保证,同时维护起来也是困难重重。于是为了能够实现软件的流水线式生产,在设计和构建软件时能够有一种规范和工程化的方法,人们便提出了软件工程这个概念。
需要强调的是,目前有关软件工程方法真实本质的争论一直都在持续进行着,要真正将软件工程变成一个全成熟的学科,还有大量的工作要做。
软件工程的内容
目前,一个通用的软件工程过程框架通常包括5个活动:沟通-策划-建模-构建-部署。根据不同的过程模型(后文再介绍)这5个框架活动的顺序是不一定的。下面我们来一一介绍这5个框架活动的内容。
沟通:一个软件在设计之前一定要充分了解客户的需求,不然得到的结果很有可能会南辕北辙,有很多软件系统都是在已经实现之后却发现跟客户的需求有很大差异,或者没有达到客户的期望,最后弄得双方都十分尴尬。这种案例就是前期的沟通没有做好,一方面客户的需求可能非常理想化,他们对软件的实现完全不了解,他们想达到的功能很有可能是目前技术还无法实现的,我们在沟通时一定要在他心中建立一个正确的观念。另一方面,客户可能自己都不知道要做一个具有哪些功能的软件,他们只是有一个初步的想法,这个时候就需要开发人员去引导,最好的方式就是提出各种版本方案让客户选择,最后再择优处理。很多人肯定都觉得软件开发大部分时间都花在编码,其实恰恰相反,一个软件的开发周期,其中一大半都是花在需求分析,也就是我们的沟通阶段。有一个例子就使我印象特别深刻。
我的大学数据库老师曾经接了一个医院数据库开发项目,然后他们团队负责需求分析的几个人就集体搬到了医院一个小房间住下来,然后天天"缠在"各个部门的负责人身边,问东问西,做各种数据的分析,例如医院的职位分配是怎么样的制度,每个部门有多少分职,药库是怎样管理的…等等等等。然而,就算是天天住在那里,都面临着各种阻碍。首先是对方不愿意也没有时间来做各种需求的统计(像医院这种地方,每个人都很忙),其次他们自己也不太清楚自己的需求。甚至到了最后居然出现了某个部门的负责人常常不来办公室(躲着他们)的情况。可想而知,项目最后的结果也不太理想。所以,很多时候我们做软件开发的应该多多学习怎么样跟利益相关者打交道,引导他们做出准确的需求分析。说了这么多,足以见得前期的沟通有多么重要。
策划:策划阶段就是要做出我们整个软件系统的“设计地图”,有了地图我们才能将旅程变得简单而且易于掌握。这个地图就是我们的软件项目计划,它包括需要执行的技术任务、可能存在的风险、需要用到的资源、整个项目的工作进度等等。
建模:顾名思义,建模就是建立我们软件设计的模型,最初的草图包括整个项目的体系结构、不同的组件模块之间怎么连接,以及其他的一些特性。最后经过不断的讨论与设计,对草图进行精化,得到每一个功能模块的具体类与接口,这样即使团队中有人离职,不得已让新人进来取代的时候,也能根据设计模型以及各种UML图游刃有余的进行编码,这也就是为什么要有一个图纸的原因之一。
构建:建模完了以后,我们就可以进行编码了,有了设计图纸,编码当然也就不再困难。但是要注意的是编码的时候要不断的进行冒烟测试(频率非常高的一种测试模式),如果离项目的验收期限非常近了,还可以进行敏捷开发(一种团队集中在一起进行高强度、高效率的开发方式)。
部署:软件开发完成后,就可以交付给用户了,将我们的软件部署在用户端系统上,用户对它进行评测并给出反馈意见。
到此为止,我们软件工程的五大过程框架就简单的给大家介绍了一遍,其实研究的最多的也就是这几大活动,但是这几个过程的执行顺序在现实应用中都不会是线性的一步接一步,往往在编码的时候还有可能在做需求分析,也有可能会先开发出系统的主要功能,然后再慢慢往上加其他的拓展功能。这就不得不提软件工程的过程模型。
过程模型
最早提出过程模型就是为了改变软件开发的混乱状况,使软件开发更加有序。这里我就介绍几种常见的过程模型。
瀑布模型:这是一种经典的模型,顾名思义,瀑布就是顺流而下的,瀑布模型也是一种线性的、顺序的软件开发方法,从最开始的沟通,到最后的部署,一步紧接一步线性执行到最后。因此我们也能想象,实际的项目是很少遵守瀑布模型提出的顺序的。因为瀑布模型要求客户具有十分明确的需求,这在现实中是基本不存在的。
增量过程模型:即前面所提到的先开发出系统的核心功能,然后再依据重要性评估交付新添的增量,直到最终产品的产生。
螺旋模型:螺旋模型在瀑布模型的基础上加了风险分析,同时迭代式的开发一系列的演进版本。螺旋最中间的就是项目的起点,螺旋式的进行着五个框架活动,一直进行到螺旋最外圈。螺旋模型是开发大型系统和软件的很实际的方法,像大型的军工软件系统都是使用的螺旋模型进行开发的,而且像这种系统的螺旋终点是没有的,因为军工产品需要不停地进行更新迭代,不然很快就会被时代淘汰。
螺旋模型
相信大家看到现在应该对软件工程已经有了一个大体的了解。
到此这篇关于软件工程概要介绍的文章就介绍到这了,更多相关软件工程内容请搜索脚本之家以前的文章或继续浏览下面的相关文章,希望大家以后多多支持脚本之家!
相关文章
- 求实计量专家软件是一款专为工程项目准备的计算工具,该软件集合了钢筋和工程量为一体,可以为用户们提供多种操作模式,让用户们可以充分利用现在工程计算工具,去计算工程2021-08-17
MathCAD(PTC工程计算软件) v15.0.0.436 中文破解版(附安装教程)
MathCAD是一款PTC工程计算软件,它是一个很好的工程师使用的用于科学计算的工具,有着方便运算人员设计、回顾、共享自己的工作成果、可以将一张工作文件中将公式、文字、图2021-06-24品茗bim模板工程设计软件 v3.3.0.11078 免费安装版
品茗bim模板工程设计软件是一款专业性非常强的工程设计辅助工具。软件支持利用布置的模型架体,一键实现整栋、单层、局部三维模型显示,是方案好帮手,成本大管家。欢迎下2022-12-20化学工程仿真软件Chemstations CHEMCAD Suite 7免费安装及激活教程
CHEMCAD 7如何免费使用?下文中为大家带来了化学工程仿真软件Chemstations CHEMCAD Suite 7免费安装及激活教程,感兴趣的朋友不妨阅读下文内容,参考一下吧2021-05-08Chemstations CHEMCAD Suite v7.1.6.12867 特别安装版 附激活教程
CHEMCAD是一套直观的化学过程模拟软件,适用于化学工程工作流程,可提高工程师的工作效率。欢迎下载体验2021-05-08工程计算软件PTC Mathcad Prime 7.0 中文免费破解版(附补丁+安装教程)
PTC Mathcad Prime7.0是一个非常好用且功能强大的工程计算软件,也是目前一款可以用户轻松执行、分析、记录和共享计算的数学软件,这里提供最新PTC Mathcad Prime 7.0最新2021-03-27工程建筑设计软件 IDEA StatiCa v20.1.5115.1 中文完美激活版
IDEA StatiCa 20是一款全球领先的工程建筑设计分析平台,旨在为广大用户提供最全面、最权威、最专业的工程设计解决方案,可用于各种类型的结构设计,列如连接、横截面、梁2021-02-20品茗iBIM v4.0.1 (全过程造价跟踪审计BIM应用) 免费安装版
品茗iBIM是以BIM三维模型和数据为载体,关联造价过程中的进度、合同、资料,为项目提供数据支撑,实现全过程的跟踪审计,为咨询企业转型BIM提供有力的工具保障,欢迎下载体验2023-09-25
最新评论