软件工程第1篇
关键词:计算机软件;软件工程;开发软件;软件发展
中***分类号:TP311.5
随着软件产业的不断发展,计算机应用逐步渗透到社会的各个角落,使各行各业都发生了很大的变化。传统的计算机学科逐步上升到计算科学。这同时也促使人们对软件的品种、数量、功能和质量等提出了越来越高的要求。软件的规模越大、越复杂,软件开发越显得力不从心。于是,业绩开始重视软件开发过程、方法、工具和环境的研究,软件工程应用而生。20世纪90年代以来,软件重用和软件构件技术成为研究热点,面向对象方法和技术成为软件开发的主流技术。软件工程知识为开发高品质的产品提供了理论和科学支撑,强调采用工程化的方式开发软件。这些知识支持以精确地方式描述软件工程产品,为产品及其相互关系的建模和推理提供了基础,并为可预测的设计过程提供了依据。
1 计算机软件
“软件”这个词汇于20世纪60年代被首次提出。一个完整的计算机系统由软件和硬件组成。它们相互依存,缺一不可。IEEE给软件定义为是计算机程序、规划以及运行计算机系统可能需要的相关文档和数据。其概念是随着计算机的发展而得出进一步完善的,最先人们认为软件就是程序,到了20世纪70年代,人们认为软件不仅包括程序,还包括开发、使用、维护这些程序所需要的文档。到了80年代,较为全面的软件的定义才出现,包括计算机程序、实现程序所使用的方法、规则、相关联的文档、运行所需的数据等都是程序。
计算机的应用和功能的正常使用离不开硬件和软件,只有硬件和软件得到很好的组合,计算机才能正常工作,完成相应的任务。在计算机的资源配置上,既要考虑硬件资源又要考虑软件资源。就软件资源来看,它包括系统软件和应用软件。系统软件的主要目的是实现对计算机的管理、监控和维护,包括自检程序、操作系统等等。而应用软件的主要目的是解决计算机当中的某些具体问题,实现对计算机的管理等功能,包括学习管理软件、人事管理软件等等。从软件功能的角度来看,我们可以认为,软件就是通过利用计算机本身提供的逻辑功能,合理组织计算机的工作,简化或者替代人们在使用计算机过程中的工作环境。因此,对于计算机的各种程序来说,不管是支持计算机工作的程序,还是支持用户使用的程序,它们都是软件,如职场生存攻略提高工作效率的一些必备软件:Photoshop、word、Excel、Dreamweaver等。
软件特点有:(1)复杂性;(2)一致性;(3)可变性;(4)不可见性。软件类型一是通用软件,另一是定制软件,是根据软件服务对象的范围,将其划分为两个类型。软件危机是:(1)软件维护费用急剧上升,直接威胁计算机应用的扩大;(2)软件生产技术进步缓慢,是加剧软件危机的重要原因。软件生存周期是指一个软件从提出需求开始直到该软件报废为止的整个时期,通常包括可行性分析和项目开发计划、需求分析、概要设计、详细设计、编码、测试、维护等活动,它们将以适当地方式分配到不同阶段去完成。
软件开发是一个过程,是指软件工程人员未获得软件产品在软件工具支持下实施的一系列软件工程活动。其开发过程包括获取过程、供应过程、开发过程、操作过程、维护过程、管理过程和支持过程。其开发模型有:(1)瀑布模型;(2)快速原型模型;(3)喷泉模型;(4)增量模型;(5)螺旋模型;(6)形式化方法模型;(7)基于构件的开发模型。其开发方式是一种使用定义好的技术集及符号表示组织软件生产的过程,包括:(1)结构化方式;(2)Jackson方法;(3)维也纳开发方法;(4)面向对象开发方法。其开发工具一般指为了支持软件人员开发和维护活动而使用的软件。有RUP、RequisitepRro、Rose及Robot。
2 软件工程
“软件工程”自1968年首次提出软件工程概念以来,已经40多年了。编程范型已经经历了三次演变,软件工程也从第一展到第三代。其概念提出那个年代就开发大型系统软件用手工方式进行,其生产效率低、出错率高。这种状态不能满足日益增长的软件生产的需要,产生以下四个方面的问题:(1)软件复杂性飞速增长;(2)软件成本高;(3)开发周期长;(4)维护工作量大。即出现了“软件危机”现象。软件工程定义为将系统性的、规范化的、可定量的方法应用于软件得开发、运行和维护,即将工程化应用到软件上。
其有一个相似的概念,出现上个世纪70年代,是开发和维护软件的规范化方法,其指导思想是以处理工程问题的方法处理软件生产的全过程。其发展大致经过三个阶段,包括程序设计时代、软件时代、软件工程时代。而软件开发也大体经过三个阶段,定义、开发、维护三个阶段。随着软件工程的发展,软件工程学出现,它是计算机科学、系统工程学、管理学、经济学等等,既是边缘学科,又是综合性学科。
软件工程目标有:(1)支付较低的开发成本;(2)达到要求的软件功能;(3)取较好的软件性能;(4)开发的软件易于移植;(5)需要较低的维护费用;(6)能按时完成开发任务,及时交付使用;(7)开发的软件可靠性高。其标准主要有三:一是FIPS 135是美国国家标准局的《软件文档管理指针》;二是NSAC--39是美国核子安全分析中心的《安全参数显示系统的验证与确认》;三是ISO 5807是国际标准化组织(现在已经成为中国国家标准)的《信息处理--数据流程***、程序流程***、程序网络***和系统资源***的文件编制符号及约定》。
其标准层次有五个,从顶层到低层依次是国际标准、国家标准、行业标准、企业规范及项目(课题)规范。其标准级别也是五个,即国际标准、国家标准、行业标准、企业(机构)标准和项目(课题)标准。这是根据软件工程,其标准制定的机构和标准适用的范围有所不同分出的级别。软件工程包括软件开发技术和软件工程项目管理两大部分。第三代软件工程:基于构件的软件工程是以软件服用为目标、领域工程为基础,其开发过程一般包括四个阶段,依次是领域分析和测试计划定制、领域设计、建立可复用构件库、按“构件集成模型”查找与集成构件。
今后,计算机软件工程的不断发展,给克服软件危机带来了希望。随着面向对象编程力度的增大,软件工程师技术再不断进步,特别是构件开发的规范化与市场化,已经把软件开发推进到一个新的阶段,出现了“开发伴随软件复用,开发为了软件复用”以及“软件就是服务”等新思想。这些突出的成绩,让我们对计算机软件方向的发展拭目以待。
参考文献:
[1]史济民,顾春华,郑红.软件工程--原理?方法与应用[M].北京:高等教育出版社出版社,2009.
[2]刘冰,赖涵,瞿中,等.软件工程实践教程[M].北京:机械工业出版社,2009.
[3]麦中凡.计算机软件技术基础[M].北京:高等教育出版社,1999.
[4]钱乐秋,赵文耘.软件工程[M].北京:清华大学出版社,2007.
软件工程第2篇
近几年,计算机软件工程的应用领域日益广泛,具体包括各种程序设计语言、数据库技术、软件设计模式、操作和数据指令的标准、应用系统平台和软件开发工具。鉴于传统软件工程存在的诸多缺限,还有功能对象的转变和应用范围的扩大。无论是作为软件研发的开发商还是作为软件直接应用的用户都要进行软件的升级。软件升级需要达到几点要求,包括要有非常高的工作效率,靠的住的安全性,增加软件的应用寿命和能够进行方便的修改重生成特性。
1.1软件要具有高的工作效率
软件升级几乎涵盖了所有软件相关组成结构,要充分审核任何一个重要结构,做必要的改造。升级后软件要明显优于未升级前,对任务的处理时间要有较大的提升。具体来说就是,要对空间、时间等资源进行充分高效的利用,例如对计算机数据库技术一定要充分挖掘数据的可利用价值。同时,始终保持用户至上的理念,不断提高用户操作的便捷性是软件升级最重要的目标。应该在原有的基础上增加修改程序、组装软件和调整指令等必要的新功能。
1.2软件要安全可靠
互联网的广泛应用方便了人们的工作生活,对计算机的广泛应用起到了不可忽视的推动作用。但由于它的开放性也给黑客提供了作案方便。黑客善于利用应用软件对计算机系统实施攻击,通过对软件代码的反编译,植入和修改破坏软件安全性以达到个人的目的,使得用户蒙受巨大的精神或经济损失。所以软件升级改造必须要考虑软件的安全防御功能。
1.3尽量延长软件的使用寿命
软件开发设计前期调查,需求分析,开发,维护等多个阶段,其过程复杂,需要投入大量的人力、物力和财力。所以从成本消耗的调度看,新软件要尽量延长使用寿命,缩短产品更新换代的周期。就拿杀毒软件而言,每年市场上销售的杀毒软件数量巨大,对就的软件增加和完善功能必须要确保其在规定的时间内无需更换。同时,为了创造良好的经济效益,使用周期也应该得到延长。
1.4方便修改重新生成
为了减少软件开发的投入,还可从软件后期维护着手。对于软件后期维护也是软件周期中花费最大的,只要设法减少这一阶段的投入,就会大大减少软件的成本。因此,开发软件时考虑留有修改余地,使得软件便于修改重新生成就显得尤为有意义,另外也会有效的减少设计工程师的操作难度。
2计算机软件工程升级策略考虑
2.1软件工程设计要有科学性
软件开发的第一阶段就是设计,软件工程的升级设计一定要以科学为指导。例如,对于研发程序代码要考虑软件模块化。对外要考虑软件的抽象和信息隐蔽特性,以及软件的局部化、一致性原则和适应性等特征。选择恰当的科学的设计方法,能够为这些特征的实现提供方便,达到科学性设计这一目标,突出升级软件后的优势特征。
2.2要全面兼顾市场需求
软件开发的直接目的就是服务于市场需求,一个脱离市场需求的软件产品是对经济资源的浪费。同样,软件的升级也要有市场需求为支持,在满足市场基本需求的前提下,进行相关的研究和开发,才会使工作有价值,避免由于开发设计不当造成资源浪费。另外,作为计算机组成的两大部分,软件和硬件一直都存在计算机产品开发不可兼得的问题,无时无刻不逼迫使得软件开发单位考虑两者互相的影响与制约的关系,做出权衡。如此一来,面对具有多变性的市场,在采取有效控制之前,必须对市场有全面的掌握和理解,才能开发出更加满足社会需要的软件产品。
2.3把握智多种发展趋势
2.3.1智能化智能化不仅出现在计算机科学领域,它是现代通信与信息技术、行业技术、计算机网络技术和智能化控制技术综合到一起针对某一方面的应用。在人工智能化应用与计算机领域的今天,这个趋势必然会与现代通信技术、计算机网络技术与现场总线的控制技术飞速发展,一起给人们的生产生活带来巨大的变革。
2.3.2服务化随着计算机软件技术的发展和应用软件的广泛普及,计算机软件技术及产品的服务化将成为一种大趋势。未来,软件开发商会以一种服务的形式提供软件,利用网络提供方式,将各种软件放在服务器的主机上,客户可根据选择***安装某种应用软件。当然客户也可以与软件开发商联系,提出自己的要求,订购软件服务。通过网络享受软件和硬件资源,软件维护升级等,使软件真正的服务于人民。
2.3.3融合我国对工业发展策略调整以及传统工业的升级,必然会加快电气化、机械化和自动化这些硬设备向信息化、数字化和网络化等软设备转变。计算机软件技术的融合化是我国信息化和工业化融合的一支重要力量。随着工业化不断推进和传统产业升级加快,工业软件的需求会进一步加大,我国计算机软件软件产业会不断发展壮大,推动计算机软件技术融合,以适应发展需要。
2.3.4开放化随着软件工程的蓬勃发展,早期封闭性强的收费性软件发展模式以慢慢不再适应大的形式。为了给提高计算机软件质量的提高创建机遇,逐步打破软件技术和知识产权的垄断,开发化已变成不可阻挡的趋势。计算机软件源代码的开放,将意味着软件产品逐步标准化,这将有利于我国计算机软件产业的更新换代和全面升级。在这种趋势下,也势必会使我国计算机软件开发效率得到较大提高。
2.4提供工程化支持,强化升级管理
新软件必须大幅增强软件的使用价值,具有很强的软件工程使用多用性,这些就需要软件工程的支持。主要包括软件工具和环境要对软件工程有足够的支持,以及充分保障软件工程项目的质量、技术和开销。这些都由对软件工程所提供的支撑质量和效用所决定。软件工程的管理作为另外一项比较重要的方面直接影响了对可用资源的有效利用,大幅提高软件组织的生产单位产出率,生产出合格的软件产品等问题。在参照市场需求下,提前做好准备,制定软件工程的管理制度,加强新旧产品升级空隙的质量监督和管理是电子产品研发企业必须做好的工作。
3结束语
软件工程第3篇
实际上,测试人员被测试搞得晕头转向,测试管理人员不知所措是常有的事情(相对来讲,一些知名的大型跨国公司做的比较好)。这些主要和测试时间紧迫,测试质量与产品质量的标准很难度量有关——最可怕的不是对手厉害,而是未知的对手。要解决这些问题显而易见要找到这些问题的根本原因,那就要从根本上说起,软件测试是软件工程的组成部分,脱离软件工程框架的软件测试是不可以想象的,软件工程的工程思想和方法作用在软件产品的每个阶段,当然软件测试也不能例外。换句话说,软件工程的思想为软件测试提供了基础的思想和方法,任何的软件测试不论在哪个阶段都不应该脱离软件工程的思想,孤立的去思考,设计,规划,执行,并验证。但实际上是,由于测试工作的繁忙(大多数是由缺少标准和规划而无法控制所致),更多的时候,可能只是就问题论问题了,从而偏离了软件测试的方向,使得测试质量不可控。
抛开具体的软件工程的具体模型,一般的产品周期流程可以如下划分
[***片]
软件工程第4篇
2.信息动态
3.华为的国际化之殇龚昱
4.WindowsPhone7:微软既有商业模式的挑战?孙永杰
5.悄然变化中的智能手机平台市场格局马振贵
6.OS之通天帝国百里
7.未来的决战还在生态链的另外一端王甲佳
8.群雄逐鹿三分天下文瑞
9.打通潜能的任督二脉张锦喜
10.CIO如何备战云计算?吴勇毅
11.百度进***客户端软件与腾讯、360争当PC管家陈永东
12.协同软件中的在场状态探测与识别陈飔
13.杀毒软件江湖烽烟再起贾敬华
14.切客盛行,谁将畅享LBS大餐?软件工程师 石安
15.抓住RFID未来发展趋势,抢占市场先机许丽萍
16."李约瑟之谜"和"钱学森之问"成因之我见李永瑞
17.基于软件程序员课程开发的研究邓蓓,DengBei
18.企业VOIP数据安全解决途径的探讨与实践张俊虎,郭丽敏,ZHANGJunhu,GUOLimin
19.3D***AX中粒子系统的应用研究马国俊,MaGuo-Jun
20.基于自动累加表的查询优化技术黄学文,孔祥波,惠靖,马雪丽
21.新形势下Web数据挖掘技术在电子商务中的应用探析曹虎山
22.AMD主流CPU开核并超频后系统兼容性的测试研究何超,张益玮,HeChao,ZhangYi-wei
1.物联网是中国的一个机会《软件工程师》编辑部
2.信息动态
3.物联网:真相,还是幻觉?龚昱
4.第三方支付市场格局之变阿祥
5.第三方支付行业:新洗牌,新趋势文瑞
6.第三方支付的有效监管百里
7.第三方支付暗潮涌动央行出拳治理马振贵
8.第三方支付必须服从国家利益王甲佳
9.英特尔:"软硬兼施"借道进入移动终端孙永杰
10.Bing收编雅虎:搜索技术与格局之变杨宇良
11.社区软件归入豪门站点之争愈演愈烈贾敬华
12.软件工程师 福兮祸兮:百度进***手机操作系统陈永东
13.寻找中国的IT大三角瞬雨
14.手机操作系统激战终端厂商如何立足?马继华
15.手机版淘宝领跑移动商务秦尘
16.语音识别技术:人机交互方式3.0时代陈飔
17.值得关注的商业智能新趋势吴勇毅
18.李世民:心怀天下善借他力敬畏留名李永瑞
19.融资租赁浅析李晓琳,文瑞
20."零库存"技术在进销存系统中的运用牛相燕
21.使用Lucene技术实现桌面批量文件搜索引擎赵春霞
22.论示范性高职院校优质教育信息资源开发付达杰
23.关于高职IT职业英语课程建设的若干思考钱宇虹
24.基于3G无线网络的移动教育资源体系架构研究胡新和,尹光辉,陈瑛,曾志,HUXin-he,YinGuang-hui,Chen-ying,Zen-zhi
1.向前奔跑的世界《软件工程师》编辑部
2.信息动态
3.Wintel未被遗忘李立杰
4.三网融合,新的商业机会文瑞
5.三网融合究竟有多远?百里
6.三网融合催生跨领域平台王甲佳
7.你是谁,为了谁蔡梓铧
8.解开精英一族的职场生存之惑上海向阳生涯管理咨询有限公司
9.阿里软件败走麦城,SaaS何去何从?吴勇毅
10.协同软件中的工具软件陈飔
11.日本物联网战略:抢占数字技术高地项有建
12.从开源软件是否为国产软件的争议说起贾敬华
13.AT&T自我救赎Verizon如沐春风杨宇良
14.OPhone平台:本土化持续创新更具生命力马继华
15.中国工程机械厂商租赁分析李晓琳,文瑞
16."私有云":鸡肋还是金矿?张书乐
17.RCS究竟能给运营商带来什么?马振贵
18.电子商务稳健增长全网电子商务应运而生瞬雨
19.读管仲,品成功组织变革六要素李永瑞
20.基于游戏的项目教学法在"Java程序设计"课程教学中的应用张学兵
21.《电工电子技术》课程改革的探索与实践张玉凤
22.基于信息系统整合的高校协同电子商务研究陶耘,TaoYun
23.高职计算机专业探究式学习实施策略的研究陈俞强,郭剑岚,胡选子,ChenYuqiang,GuoJianlan,HuXuanzi
24.基于工作研究的信息系统人机交互设计研究王东华,孙扩,白羽,WangDonghua,SunKuo,BaiYu
25.基于SPIN的协议分析验证研究侯奉含,白小翀,HOUFenghan,BAIXiaochong
1.筹码与赌注《软件工程师》编辑部
2.信息动态
3.Web平台垄断软件工程师 龚昱
4.物联网就在眼前文瑞hHTTp://
5.物联网将对产业及社会产生哪些影响?阿祥
6.物联网的行业突破王思宁
7.物联网发展的应与否蔡梓铧
8.物联网的世界到底需要突破哪些边界?王甲佳
9.从世界杯看职场10大生存法则上海向阳生涯管理咨询有限公司
10.Office2010开售:微软成长中的烦恼?孙永杰
11.桌面之争:从PC到手机王斌
12.信息化提升企业执行力陈飕
13.如何实施高效的OA工作流审批?谢岚旭
14.互联网地***市场进入纷争时代马振贵
15.手机支付时代:软件业的新增长点吴勇毅
16.如何抓住移动电子商务发展商机?郭涛
17.三网融合将进入软件与人才拼抢阶段吴纯勇
18.鲁肃:全局思维与组织化推进能力李永瑞
19.网络程序设计课程项目化教学设计的探讨李向东
20.论Java对象的比较技巧钱宇虹
MVC的研究涂刚,李建,***,纪永玲,许子昊,TuGang,LiJian,LiuHuaqing,JiYongling,XuZihao
22.高校计算机专业数据库原理课程教法探讨毛晓菊,刘娜
23.工作过程导向课程开发的实践探索王德永
4.管理软件的"天王"时代孙晶
5.教育,软件产业的价值链在空间上延伸——写在大连东软信息学院成立十周年之际王飞
6.云计算当以绿色能源为支撑阿祥
7."绿色"的云蔡梓铧
8.云的羹是谁给的?王甲佳
9.云计算在ERP市场大有可为文瑞
10.程序员如何"突围"上海向阳生涯管理咨询有限公司
11.电子阅读器的纷扰混战与未来之路刘华
12.餐饮连锁业信息化的瓶颈与突破吴勇毅
13.业务流程重组是成功应用ERP系统的基石郭玉梅,孙鹏,曹剑
14.游戏产业:走向平衡发展的契机已经临近张书乐
15.智能机版权暗战不断:RIM向摩托罗拉低头杨宇良
16.融资租赁风控构建与完善之道李晓琳,文瑞
17.IT部门,成本中心还是利润中心?许丽萍
18.软件工程师 物联网的切入点在哪里?陈永东
19.Web2.0企业级应用趋势探讨陈飔
20.曾国藩缘何成为成功者的精神导师和学习楷模?李永瑞
21.高职院校基于项目驱动的"JavaEE框架"课程教学研究王圆,温立辉,植挺生
22.动力环境监控系统的消息传输协议设计研究高翠群
23.财务管理国际化和网络化的探讨范鑫
软件工程第5篇
英文名称:Software Engineer
主管单位:辽宁省教育厅
主办单位:东北大学;计算机软件国家工程研究中心
出版周期:月刊
出版地址:辽宁省大连市
语
种:中文
开
本:大16开
国际刊号:1008-0775
国内刊号:21-1378/TP
邮发代号:8-198
发行范围:国内外统一发行
创刊时间:1994
期刊收录:
核心期刊:
期刊荣誉:
联系方式
软件工程第6篇
关键词:软件工程;含义;特点;传统;构件
1.软件工程的含义与特点
软件工程 (Software Engineering,简称为SE)是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。它涉及到程序设计语言,数据库,软件开发工具,系统平台,标准,设计模式等方面。
在现代社会中,软件应用于多个方面。典型的软件比如有电子邮件,嵌入式系统,人机界面,办公套件,操作系统,编译器,数据库,游戏等。同时,各个行业几乎都有计算机软件的应用,比如工业,农业,银行,航空,***府部门等。这些应用促进了经济和社会的发展,使得人们的工作更加高效,同时提高了生活质量。软件工程师是对应用软件创造软件的人们的统称,软件工程师按照所处的领域不同可以分为系统分析员,软件设计师,系统架构师,程序员,测试员等等。人们也常常用程序员来泛指各种软件工程师。软件工程没有一个权威的定义, 比较认可的定义为:软件工程是一门交叉学科,它是解决软件问题的工程,是对软件开发、运作、维护的系统化的、有规律的、可定量的研究方法。软件工程有明确的目标。那就是研制开发与生产出具有良好的软件质量和费用合算的产品。软件质量可用六个特性来评价:功能性、可靠性、易使用性、高效率性、可维护性、易移植性。软件工程不同于一般工程, 具体表现在以下几点。
(1) 软件是逻辑产品而不是实物产品,所以费用集中在研制开发上而不在生产上。软件不会用坏、磨损、老化,但有一个过时的问题。(2)由于软件是逻辑产品,使得它的功能只能依赖于硬件和软件的运行环境以及人们对它的操作,才能得以体现。(3)软件产品的功能比一般产品的功能复杂得多。(4)软件设计比一般产品复杂得多。具体表现在:功能的多样性,实现的多样性。推动软件工程发展的原动力是提高软件质量和软件开发的生产效率。
2.传统软件工程
传统软件工程采用面向过程,即结构化程序设计方法, 即有很多成功的例子,例如DOS操作系统,也有很多失败的例子,例如美国阿波罗登月飞行计划的软件错误。因为传统软件工程不能驾驭复杂系统的开发, 曾经一度产生了软件危机。面对越来越复杂的软件系统, 传统软件工程已经不能胜任, 在实践中, 人们呼唤能适应复杂系统开发的软件工程方法学和软件
开发技术的诞生, 面向对象软件工程应运而生。进入20世纪90年代以来,Internet飞速发展, 人们碰到了另一个难题, 快节奏地开发基于Web的大型应用程序,面向对象软件工程及其技术已经不能胜任, 人们尝试利用基于构件的技术来解决, 于是诞生了CORBA、COM及COM+、J2EE及E***等基于构件的技术和软件开发方法。然而, 今天的构件技术离人们追求的目标——软件工厂还相差甚远。面向过程的优点:面向过程的思维方法是符合人类认识规律的, 因为人们解决问题,总是一步一步进行的,其中,有顺序,条件和循环,利用这三大结构,可以解决世界上的任何问题。这些方法是优秀的,被面向对象和面向构件所吸收, 成为类或构件内部实现的有力工具。面向过程的缺点:着眼于细节,不能很好地从宏观上把握系统。
3.面向对象软件工程
面向对象软件工程是运用面向对象方法,符合人类认识规律的一种软件工程。20世纪60年代后期出现了面向对象的编程语言, 2 0 世纪7 0 年代初Xerox公司推出了Smailtalk语言。奠定了面向对象程序设计的基础,1980年出现的Smatltalk-80标志着面向对象程序设计进入了实用阶段。自20世纪80年代中期起,人们注重于面向对象分析和设计的研究,逐步形成了面向对象软件工程方法学。典型的方法有ECoad和E.YourDon的面向对象分析和设计,GBooch的面向对象开发方法,J.Rumbaugh等人提出的对象建模技术(OMT),Jacobson的面向对象软件工程等。20世纪90年代中期,由GBooth,J.Rumbaugh、Jacobson等人发起,在Booch方法、OMT方法、OOSE方法的基础上推出了统一的建模语言(UML),1997年被国际对象组织(OMG)确定为标准的建模语言。面向对象方法的出现受到了计算机软件界的亲睐,并成为20世纪90年代的主流开发方法。面向对象方法的优点如下。
(1)从认知学的角度来看,面向对象方法符合人们对客观世界的认识规律很长一段时间里,我们分析、设计、实现一个软件系统的过程与我们认识一个系统的过程存在着差异。例如结构化方法分析的结果是数据流***,设计的结果是模块结构, 实现的结果是由程序模块组成的源程序。(2)开发的软件系统易于维护,其体系结构易于理解、扩充和修改面向对象方法开发的软件系统由对象类组成,对象的封装性很好地体现了抽象和信息隐蔽的特征。(3)面向对象方法中的继承机制有力支持软件的复用.
4.构件软件工程的概念模型
构件和基于构件的方法是电子商务***的驱动力,它们是Internet时代开发企业级解决方案的方法。在任何行业中,复杂情况通常是通过很多关键概念来解决的。这些概念是通过抽象、分解、选代、细化等方法来表达的。其中的关键是分解技术——把一个较大的问题分解成较小的、可管理的单元,这样每一个单元都是可以单独处理的,这个技术是软件工程的许多方法的核心。这些方法可以称为结构化设计,模块化编程,面向对象程序设计,基于构件的程序设计,它们产生的单元称为模块、包、对象或构件。基于构件软件开发是历史发展的必然,基于构件的软件开发(Component Based Software Development),简称CBD。基于构件的软件工程(Component Based Software Engineering),简称CBSE。CBD追求的目标是软件的“即插即用”。回顾经典的工业化***,不难得出一些有益的启示:功能再复杂的产品都是由大量标准的零件(领域构件)组成,零件在生产线上装配成一个产品,所有零件在产品中共同发挥作用。分工越细致, 专业生产的程度越高,总体生产效率就越高。把这些启示运用于软件开发,那就是:标准的零件就是软件生产的构件, 构件在软件生产线上通过集成得到新开发的软件。
软件工程第7篇
软件工程管理的发展
要了解软件工程管理首先应该清楚什么是软件工程。软件工程这一概念最早是北大西洋公约组织(NATO)成员国的软件工作者在1968年、1969年的软件研讨会上首次提出的。在我国,根据国家标准GB/T11457-1995,其定义是:“软件开发、运行、维护和引退的系统方法。”虽然,已经有了如此权威的定义,但仍然有很多人错误的将软件工程理解为简单的软件编程。其实我们不难看出,软件工程有其严谨的专业性。而软件工程管理的概念,就是从工程学角度出发,对软件工程的项目范围、项目周期、产品质量、知识资源、人力资源、项目成本等六大要素进行管理。
软件工程管理引起业界的广泛注意源于20世纪70年代中期人们对“软件危机”的认识。当时美国***曾立题专门研究软件项目成败的原因,发现70%的项目是因为管理不善而引起,而并不是因为技术实力不够,进而得出一个结论,即管理是影响软件研发项目全局的因素,而技术只影响局部。尽管如此,到了20世纪90年代中期,软件工程管理不善的问题仍然存在。根据世界著名IT系统项目论证与决策权威机构Gartner的报告显示,全球80%-90%的信息化项目没有达到预定目标,80%的项目超出预算,40%的项目失败或最终放弃。而中国的数字比这个还要大的多,只有小于25%的项目达到了需求和技术目标,10%满足了即定的工作目标。这些现象和数字表现出来的软件产品质量不高、生产率过低、资金大量浪费、进度无法保证的局面就是“软件危机”。而软件工程管理的失控就将造成软件危机。对于我国正如火如荼地进行着的信息化建设,“软件危机”就意味着大量国有资产的流失。由此可见,软件工程管理的意义至关重要。
新背景下的再探索
随着中国信息化事业的深入发展,***府主管部门和更多的国内企业已经开始关注如何保证软件建设的质量与可靠性问题,并已初步达成一个统一的认识,那就是走“软件工程化”道路,遵循系统工程的思想,对软件开发全过程通过可定义、可量化的工程实践方法进行控制管理。然而由于软件工程管理和其它工程管理相比有其特殊性,故而在软件工程管理的实施上仍然存在很多困难。例如,软件是知识产品,建设进度和质量都难以度量,生产效率也难以保证;同时,软件系统的复杂程度也是超乎想象的。例如,宇宙飞船的软件系统源程序代码多达2000万行,如果按过去的生产效率一个人一年只能写1万行代码的话,那么需要2000人年的工作量,这是非常惊人的。正因为软件如此复杂和难以度量,软件工程管理的发展还很不成熟。
针对这种状况,国内一些先锋软件企业已经开始深度探索解决软件工程管理问题的途径。其中,北京万维易化系统软件开发有限公司作为国内屈指可数的几家专门从事“软件工程管理”的企业之一,通过多年来在相关领域的深入研究,对软件工程管理的概念进行了全新的阐释并提出了完善的解决方案,为软件工程管理开辟了一条新的途经。
在万维易化认看来,传统的软件工程管理内容过于单一,主要只是聚焦于软件开发过程中的管理。但随着信息化建设事业的深入发展,软件承建方单方面的开发管理已经不能满足信息化建设的全部需要。因此万维易化提出了全新的“软件工程管理(SEM)”概念,将软件工程管理细分为软件开发管理、软件工程监理、软件集成应用等三大组成部分。对于信息化建设项目中通常包括的建设方、监理方和承建方而言,分别需要对软件集成应用、软件工程监理和软件开发过程实现有效的管理,只有这样才能切实保证信息化建设的最终成功。
万维易化认为,实现有效的软件工程管理的关键因素在于客观、有效的管理工具。软件工程属于知识高度密集,开发过程复杂多变,显现度很低。以软件工程监理为例,传统的软件工程监理很大程度上是参考了建筑行业的监理模式,在建筑项目中,监理方在施工现场随时可以对工程的进行、质量进行现场监理,而软件工程建设项目根本就没有什么施工现场可以考察,工程进度、资金使用情况、软件质量、合同执行情况也难以掌控。这就造成软件工程管理在实际操作过程中“可操作性”差、“能见度”低。因此,无论是软件工程监理、还是软件开发、集成应用管理,一个好的管理工具最迫切需要解决的问题就是为软件工程建设过程营造一个“建设现场”,将软件工程建设的过程实现“可视化”。为此,万维易化提出了平台化的解决方案,主张通过搭建一个软件工程管理平台,将软件开发的代码、费用、人员、文档、项目实施进度、资金控制等情况都纳入一个统一的平台,实现建设各方的实时沟通,对软件建设的过程进行可视化、可控制的协调管理。
成功的实践
基于以上这些认识,结合中国软件业目前的现状,万维易化推出了“精研_软件工程管理平台”,并将其细分为了三个解决方案,即针对软件开发企业的“精研_软件开发管理解决方案”、针对信息化项目监理的“精研_软件工程监理解决方案”和针对信息化建设过程中项目管理的“精研_软件集成应用解决方案”,全面推进我国信息化建设进程。2001年,“精研软件工程管理平台”,已经率先在万维易化的公司内部获得了成功的应用。在这套先进的管理平台上,万维易化所承担的软件工程建设项目的开发进度、文档管理、版本信息以及缺陷跟踪等方面都能有据可查,财务、人力、行***审批过程全部按照既定程序执行,切实保证了软件工程建设项目和企业内部工作的高效进行,为万维易化在电子商务和电子***务领域不断取得突出的成绩奠定了坚实基础。