软件工程

什么是软件工程

软件工程是一门研究用工程化方式构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。

在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,政府部门等。这些应用促进了经济和社会的进展,使得人们的工作更加高效,同时提高了生活质量。

软件工程师是对应用软件创造软件的人们的统称,软件工程师按照所处的领域区别可以分为系统解析员,软件设计师,系统架构师,程序员,测试员等等。人们也常常用程序员来泛指各种软件工程师。

软件工程的框架

软件工程的框架可概括为:目标、历程和原则。

1、软件工程目标

出产具备正确性、可用性以及开销合宜的产品。正确性指软件产品达到预期功能的程度。可用性指软件基本结构、实现及文档为用户可用的程度。开销合宜是指软件开发、运行的整个开销满足用户要求的程度。这些目标的实现不论在理论上还是在实践中均存在很多待解决的问题,它们形成了对历程、历程模型及工程方式选取的约束。

软件工程行为是“出产一个最终满足需求且达到工程目标的软件产品所需要的步骤”。紧要包含需求、设计、实现、确认以及支持等行为。需求行为包含问题解析和需求解析。问题解析获取需求定义,又称软件需求规约。需求解析生成功能规约。设计行为一般包含概要设计和详细设计。概要设计建立整个软件体系结构,包含子系统、模块以及相关层次的说明、每一模块接口定义。详细设计产生程序员可用的模块说明,包含每一模块中数据结构说明及加工描述。实现行为把设计结果转换为可执行的程序代码。确认行为贯穿于整个开发历程,实现完成后的确认,保证最终产品满足用户的要求。支持行为包含修改和完善。伴随以上行为,还有经营管理历程、支持历程、培训历程等。

2、软件工程历程

出产一个最终能满足需求且达到工程目标的软件产品所需要的步骤。软件工程历程紧要包含开发历程、运作历程、维护历程。它们覆盖了需求、设计、实现、确认以及维护等行为。需求行为包含问题解析和需求解析。问题解析获取需求定义,又称软件需求规约。需求解析生成功能规约。设计行为一般包含概要设计和详细设计。概要设计建立整个软件系统结构,包含子系统、模块以及相关层次的说明、每一模块的接口定义。详细设计产生程序员可用的模块说明,包含每一模块中数据结构说明及加工描述。实现行为把设计结果转换为可执行的程序代码。确认行为贯穿于整个开发历程,实现完成后的确认,保证最终产品满足用户的要求。维护行为包含使用历程中的扩充、修改与完善。伴随以上历程,还有经营管理历程、支持历程、培训历程等。

3、软件工程的原则

软件工程的原则是指围绕工程设计、工程支持以及工程经营管理在软件开发历程中必须遵循的原则。软件工程的原则有以下四项基本原则:

1)选取适宜开发范型。该原则与系统设计有关。在系统设计中,软件需求、硬件需求以及其他因素之间是相互制约、相互影响的,经常需要权衡。因此,必须认识需求定义的易变性,采用适宜的开发范型予以控制,以保证软件产品满足用户的要求。

2)采用合适的设计方式。在软件设计中,通常要考虑软件的模块化、抽象与信息隐蔽、局部化、一致性以及适应性等特征。合适的设计方式有助于这些特征的实现,以达到软件工程的目标。

3)提给高质量的工程支持。“工欲善其事,必先利其器”。在软件工程中,软件工具与环境对软件历程的支持颇为重要。软件工程项目的质量与开销直接取决于对软件工程所提给的支撑质量和效用。

4)重视开发历程的经营管理。软件工程的经营管理,直接影响可用资源的有效利用,出产满足目标的软件产品,提高软件组织的出产能力等问题。因此,仅当软件历程得以有效经营管理时,才能实现有效的软件工程。

这一软件工程框架告诉我们,软件工程的目标是可用性、正确性和合算性;实施一个软件工程要选取适宜的开发范型,要采用合适的设计方式,要提给高质量的工程支撑,要实行开发历程的有效经营管理;软件工程行为紧要包含需求、设计、实现、确认和支持等行为,每一行为可根据特定的软件工程,采用合适的开发范型、设计方式、支持历程以及历程经营管理。根据软件工程这一框架,软件工程学科的研究内容紧要包含:软件开发范型、软件开发方式、软件历程、软件工具、软件开发环境、计算机辅助软件工程(CASE) 及软件经济学等。

软件工程的基本原理

自从1968年提出“软件工程”这一术语以来,研究软件工程的专家学者们陆续提出了100多条关于软件工程的准则或信条。美国著名的软件工程专家巴利·玻姆(Barry Boehm)综合这些专家的意见,并总结了美国天合企业(TRW)多年的开发软件的经验,于1983年提出了软件工程的七条基本原理。

玻姆认为,这七条原理是确保软件产品质量和开发效率的原理的最小集合。它们是相互独立的,是缺一不可的最小集合;同时,它们又是相当完备的。

人们当然不能用数学方式严格证明它们是一个完备的集合,但是可以证明,在此之前已经提出的100多条软件工程准则都可以有这七条原理的任意组合蕴含或派生。下面简要介绍软件工程的七条原理:

1、用分阶段的生命周期计划严格经营管理

这一条是吸取前人的教训而提出来的。统计表明,50%以上的失败项目是由于计划不周而造成的。在软件开发与维护的漫长生命周期中,需要完成许多性质各异的工作。这条原理意味着,应该把软件生命周期分成若干阶段,并相应制定出切实可行的计划,然后严格按照计划对软件的开发和维护实行经营管理。 玻姆认为,在整个软件生命周期中应指定并严格执行6类计划:项目概要计划、里程碑计划、项目控制计划、产品控制计划、验证计划、运行维护计划。

2、坚持实行阶段评审

统计结果显示: 大部分错误是在编码之前造成的,大约占63%错误发现的越晚,改正它要付出的代价就越大,要差2到3个数量级。 因此,软件的质量保证工作不能等到编码结束之后再实行,应坚持实行严格的阶段评审,以便尽早发现错误。

3、实行严格的产品控制

开发人员最痛恨的事情之一就是改动需求。但是实践告诉我们,需求的改动往往是不可避免的。这就要求我们要采用科学的产品控制技术来顺应这种要求。也就是要采用变动控制,又叫基准配置经营管理。当需求变动时,其它各个阶段的文档或代码随之相应变动,以保证软件的一致性。

4、采纳现代程序设计技术

从六、七时年代的结构化软件开发技术,到最近的面向对象技术,从第一、第二代语言,到第四代语言,人们已经充分认识到:方式大似气力。采用先进的技术即可以提高软件开发的效率,又可以减少软件维护的成本。

5、结果应能清楚地审查

软件是一种看不见、摸不着的逻辑产品。软件开发小组的工作进展状况可见性差,难于评价和经营管理。为更好地实行经营管理,应根据软件开发的总目标及完成期限, 尽量明确地规范开发小组的责任和产品标准,从而使所得到的标准能清楚地审查。

6、开发小组的人员应少而精

开发人员的素质和数量是影响软件质量和开发效率的重要因素,应该少而精。 这一条基于两点原因:高素质开发人员的效率比低素质开发人员的效率要高几倍到几十倍,开发工作中犯的错误也要少的多; 当开发小组为N人时,可能的通讯信道为N(N-1)/2, 可见随着人数N的增大,通讯开销将急剧增大。

7、承认不断改进软件工程实践的必要性

遵从上述六条基本原理,就能够较好地实现软件的工程化出产。但是,它们只是对现有的经验的总结和归纳,并不能保证赶上技术不断前进进展的步伐。因此,玻姆提出应把承认不断改进软件工程实践的必要性作为软件工程的第七条原理。根据这条原理,不仅要积极采纳新的软件开发技术,还要注意不断总结经验,收集进度和消耗等数据,实行出错类型和问题报告统计。这些数据既可以用来评估新的 软件技术的效果,也可以用来指明必须着重注意的问题和应该优先实行研究的工具和技术。

郑重声明:东方财富网发布此信息的目的在于传播更多信息,与本站立场无关。东方财富网不保证该信息(包含但不限于文字、数据及图表)全部或者部分内容的准确性、真实性、完整性、有效性、及时性、原创性等。相关信息并未经过本网站证实,不对您构成任何投资建议,据此操作,风险自担。

扫一扫下载APP

扫一扫下载APP
信息网络传播视听节目许可证:0908328号 经营证券期货业务许可证编号:913101046312860336 违法和不良信息举报:021-61278686 举报邮箱:jubao@eastmoney.com
沪ICP证:沪B2-20070217 网站备案号:沪ICP备05006054号-11 沪公网安备 31010402000120号 版权所有:东方财富网 意见与建议:4000300059/952500