软件工程第次课_第1页
软件工程第次课_第2页
软件工程第次课_第3页
软件工程第次课_第4页
软件工程第次课_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件工程概述主讲:Email: 1软件工程课程说明考查; 48学时成绩= 平时成绩20%(考勤+课堂表现) +平时实验(作业)50%+报告成 绩30%教学方式: 重实践,轻理论;遵循先实践,后理论,再实践; 随堂讨论,随堂实战演练为主,课后作业为辅,调动学生的学习积极性主要内容:需求获取与分析 系统架构分析与设计 子系统与类的分析与设计 数据库设计 参考书: 1 青润著, 软件工程之全程建模实现M. 北京:机械工业出版社, 2010.8 2 温昱著, 软件架构设计M. 北京: 电子工业出版社, 2007.5 3 程杰. 大话设计模式M北京: 清华大学出版社,2007 4 (美)Roger S.

2、 Pressman著, 郑人杰,马素霞等译. 软件工程实践者的研究方法M. 北京: 机械工业出版社, 2011.4 2揭开软件工程虚伪的面纱笑话1:软件工程很有用,但似乎编程从来没有用过。笑话2:软件工程学了也没用,上课去不去都行,反正都及格。笑话3:3揭开软件工程虚伪的面纱吧谈谈对软件工程的认识? 谈谈如何学好软件工程? 4本节课的主要内容软件与软件产业软件工程:概念及范围软件工程发展回顾软件工程现状及未来5软件概念(1)软件计算机系统中的程序、数据及其文档程序:计算任务的处理对象和处理规则的描述数据:程序能够满意地处理信息的数据结构文档:为了便于了解程序所需的阐明性资料软件的作用作为计算机

3、用户和硬件间的接口界面在计算机系统中起指挥管理作用计算机体系结构设计的重要依据6计算机软件计算机软件是“意外效应法则”的一个最好体现。软件促进了新科技的创新(如基因工程和纳米技术),现代科技的发展(如通信),以及传统技术的根本转变(如印刷业)在大量软件的驱动下,互联网迅速发展,对人们生活诸多方面-图书馆搜索、消费购物、政治演说到年轻人(或者不那么年轻的人)的约会习惯等都引起革命性的变化。软件可嵌入到各种系统中:交通运输、医疗、通信、军事、工业等不胜枚举。.7软件概念(2)软件的分类(1)基础设施类运行支撑类(操作系统、中间件、应用服务器等)系统软件开发支撑类(各类软件工具、可复用软件资源等)支

4、撑软件应用类各种领域、行业的应用软件系统(业务逻辑的体现)应用软件软件的分类(2)一般性软件和嵌入式软件计算机硬件系统软件支撑软件基础软件ERPMIS应用软件CAD OACMCC2001.04.30 20:20 0.0固化式装载式8软件概念(3)软件研究的3个层次软件模型层主要体现为计算模型(程序模型)的研究运行开发层针对具体计算模型,提供运行平台及开发方法、技术和工具应用层根据具体应用需求,基于上述模型、平台和方法开发应用系统软件技术研究主要针对前两个层次,形成两条主线软件系统技术软件的本质、特征与模型,即软件的基本元素、体系结构、交互协议、行为模式、效率机制和质量保障机制等软件开发技术软件

5、开发方法论及相应的工程原则、支撑工具和环境等9软件特征(1)软件是一种逻辑实体,不是具体物理实体,具有抽象性软件的生产与硬件不同,软件没有明显的制造过程软件在使用过程中,没有磨损、老化的问题 磨合调整磨损用坏硬件失效率曲线时间失效率修改点实际曲线理想曲线时间失效率软件失效率曲线10软件特征(2)软件对硬件和环境有着不同程度的依赖性 软件的开发至今尚未完全摆脱手工作坊式 的开发方式,生产效率低 软件是复杂的,而且以后会更加复杂 大多数软件是自定的,而不是通过已有的 构件组装而来的软件工作牵涉到很多社会因素 11软件的成本相当昂贵软件技术的发展落后于需求时间软件复杂性软件需求差距软件技术硬、软件成

6、本比例的变化年份成本%软件1950197019851995硬件软件特征(3)12软件发展的阶段第一阶段:40年代中期到50年代中期,实用高级语言的出现前第二阶段:50年代中期到60年代后期,软件工程出现前第三阶段:60年代后期以来,软件工程出现以后第四阶段:新世纪以来,互联网广泛应用以后13软件技术发展的驱动力(1)追求更具表达能力、更符合人类思维模式、更具可构造性和演化性的计算模型软件的基本模型 = 实体元素连接和交互机器指令顺序和转移 高级语句 三种控制结构 函数和过程 子程序调用 模块 模块互联 对象 消息传递 构件 连接子软件实体软件实体软件实体交互交互交互贯穿特征面向侧面的程序设计1

7、4软件技术发展的驱动力(2)通过虚拟的运行平台追求更高效地发挥下层硬软件资源所提供的计算能力单机操作系统引导程序管理程序多道程序网络操作系统并行操作系统嵌入式操作系统软硬件资源管理高效 可信 统一的 虚拟资源15软件技术发展的驱动力(3)尽可能多地凝练共性,提高软件开发的效率和质量裸机应 用系 统应 用系 统裸机操作系统应 用系 统裸机中间件网络终端用户编程操作系统随需即取 模型驱动开发手工作坊式软件开发软件工业化生产16软件技术发展的驱动力(4)尽可能平滑地桥接异构性,增加互操作性异构是市场行为的自然产物,开放互操作同样是市场行为的产物.NET/COMWeb Services操作系统UNIX

8、WindowsLinux应用系统支撑软件中间件Fortran程序C/C+程序Java程序CORBAJ2EE/EJB软件技术的发展本身就是一个不断桥接异构性的过程17全球软件产业发展(1)全球软件产业规模一直保持快速增长,自2004年起增长率趋于平稳2001-2006年全球软件产业规模及年增长率 从2000年 5960 亿美元 增加到 2006年 8750 亿美元全球软件产业 年增长率 保持在 5%-10% 高于 全球经济年平均增长率的 4%年增长率产业规模全球软件增长率趋于平稳18全球软件产业发展(2)全球软件企业500强营业总额2006年开始回落,中小企业的贡献增强2003-2006年全球软

9、件企业500及占全球软件产值比例 2003-2005年间 全球软件企业500强营业总额 由 2899 亿美元上升至 3833 亿美元 占全球软件产业产值的比例 由 38.78% 上升至 46.52% 2005-2006年间 500强营业总额降到 3808 亿美元 占全球比例 降到 43.50% 同期内 全球软件产业以 6.2% 的速度 平稳增长 营业总额占全球比 例19全球软件产业发展(3)开源软件持续增长,促进全球软件产业多元化发展 形成 全球软件产业新格局 : 开源软件与私有软件的 界限 正被混合架构 打破 两者竞争与合作 将成为 世界软件产业发展 总势趋2006 年微软 在开源软件方面

10、与 Novell 开展 大规模合作 2006 年Oracle 宣布为Red Hat Linux 提供 完整的技术支持 IBM SAP Google 等企业 纷纷加入 开源软件领域推动 产 品整体构架开源构架LAMP同J2EE .Net三足鼎立操作系统市场份额从2004年20%将增至2008年27%中间件2006年Apache在 欧洲 美国 市场份额分别为 84% 66%2005年JBoss 市场份额为 37% 而IBM Websphere 为 37.2%数据库2006年 MySQL 市场份额 25% 仅次于SQLServer 成为 全球第二桌面办公OpenOffice 在北美 德国份额 8%

11、以上 区 域全球全球应用开源软件企业占总数 50% 美国使用开源软件企业比例为 87% 欧洲使用开源软件的企业达 40% 其中45 将开源软件部署为核心业务系统商业 金融 通讯传媒等企业 使用率超过 75拉美使用开源软件的企业超过 60%巴西政务领域采用开源软件率 80中国2004年政府采购额的操作系统中 Linux占 392006年Linux市场收入达 1450万美元 增长 23%促使20全球软件产业发展(4)企业并购重新升温,市场竞争加剧2000-2006年美国软件产业并购发展趋势2004-2006年间 并购活动 重新活跃 2005年美国并购 10176 起 其中软件企业并购 1628 起

12、 占16% 位居各行业之首 2006年 Google 以 16.5 亿美元 收购YouTube HP 以 45 亿美元 收购 Mercury Interactive IBM 以 16 亿美元 收购 EMC 以 21 亿美元 收购 RSA Security 全球软件市场竞争趋于加剧并购 是 软件企业 整合产品线 争夺客户资源 拓展市场空间 重要方式 (资料来源:软件产业年鉴2007)21中国软件产业现状(1)产业规模增长十分迅速,但增长率自2006年起明显回落数据来源:中国软件产业年鉴20042007从2003年到2005年 年增长率超过 40%2006年增长率为 23.1%2006年发展速度比

13、2005年回落 17.2个百分点 从2006年下半年起 增速低于硬件产品软件产品增速硬件产品增速下降17.2%产业规模年增长率22中国软件产业现状(2)软件产业产值逐年增加,但产业增加值仍很小数据来源:中国软件产业年鉴(2003-2007)2006年中国软件与信息服务业构成图2006年 软件产值4800亿元 但 产业增加值 仅 1838亿元系统集成 占产业产值的27.6% 所占份额 最多 但 增加值极少 增加值较高的基础软件仍很弱小 如: 2005年国产操作系统 销售额 89亿元 占国内市场份额的 4.9%2005年国产操作系统占国内市场份额国产操作系统所占份额 4.9%嵌入式软件 21.4%

14、系统集成 27.6%软件产品 26.7%软件服务 22.1%IC设计 2.2%23中国软件产业现状(3)企业实力增强,但仍缺乏具有国际竞争力的龙头企业2006年中外软件代表性企业软件销售额对比(单位:亿美元)中国代表性软件 企业 中科红旗达梦用友 0.05 0.75 1.74国外代表性软件 企业 Microsoft Oracle SAP 365 117 9420022006年中国企业销售额分布情况图中国软件企业规模不断扩大,到2006年10亿以上的企业有35家510亿的企业有51家15亿的企业有310家与国外巨头相比 中国软件企业普遍较小 缺乏大型跨国软件企业集团2006年2005年2004年

15、2003年2002年24中国软件产业发展的瓶颈从软件产业分类上看,基础软件是瓶颈从软件产业组织上看,缺乏大企业、软件产业生态环境不完善是瓶颈从软件技术上看,缺乏核心技术是瓶颈从软件产业要素配置上看,高级人才缺乏、融资难是瓶颈注:关于软件产业的描述摘自中国科学院学部咨询评议项目报告25软件危机应用的繁荣带来了软件危机:不断增加的为大系统制造可靠软件的困难度软件系统的规模和复杂性不断增长,对软件的需求增长超过供应(开发、演化和维护)能力。软件开发人员极度短缺、开发效率和软件质量不能满足用户的需求,最终延缓经济和社会的发展1968年NATO会议(Garmisch,Germany)第一次提出了“软件危

16、机”的说法例如,IBM公司1963年至1966年开发的 IBM 360/OS耗资几千万美元,投入5000人年的工作量,近一百万行源程序,拖延了几年才交付使用,交付使用后仍不断发现新的错误每次发行新版本都修改了上一版本的1000个左右的程序错误项目负责人F.D.Brooks曾说:“就像一只逃亡的野兽落入泥潭做垂死挣扎,越是挣扎,陷得越深,最后无法逃脱灭顶之灾。”261963年美国飞往火星的火箭爆炸,造成1000万美元的损失。原因是FORTRAN程序: DO 5 =1,3 误写成:DO 5 =1 . 31967年苏联“联盟一号”载人宇宙飞船在返航时,由于软件忽略一个小数点,在进入大气层时因打不开降

17、落伞而烧毁。软件危机27软件复杂性的增长软件规模越来越大,复杂度越来越高Windows VISTA操作系统开发:3000开发人员,59个开发节点,逾6千万行代码每台汽车系统代码量:10万行(1970s)1亿行(2010s)波音飞机:总代码量超过400万行宇宙飞船:软件代码2000万行航天飞机:软件代码4000万行空间站:软件代码10亿行应用软件系统也越来越复杂,规模快速增长,动辄数百万行代码已是常见现象!28软件现状危机仍然存在对软件的需求远超出现有的生产能力信息技术的爆炸性增长促进了对新软件的空前需求软件系统的规模和复杂性不断增长用来开发这些软件的资源没有与上述需求保持同步人们依赖于脆弱的软

18、件不可靠、缺乏安全性、性能下降、出错、难以升级73的软件项目被延迟、超资、取消或失败构造可靠、安全软件的技术能力不足过去40年,硬件性能至少跨越了8个重要的阶段开发软件的能力未能与硬件提供的机会保持同步29软件工程的诞生历史角度社会角度个人角度30历史角度发展的必然软件危机六十年代以来,随着计算机应用需求的驱动,系统软件和应用软件有很大的发展,如操作系统,编译系统和大型应用软件等。由于软件生产的 复杂性 和 高成本,使大型软件的生产出现了很大的困难,即出现软件危机。 软件工程正是为克服软件危机而提出的一种概念,并在实践中不断地探索它的原理,技术和方法。在此过程中,人们研究和借鉴了工程学的某些原

19、理和方法,并形成了一门新的学科软件工程学。31历史角度发展的必然软件危机软件行业是一个年轻的行业,建筑业从我们老祖宗挖山洞到盖摩天大楼积累了丰富的工程管理和技术经验。不同时代,人思考解决的问题大不相同,但人的思维模式和方法却是相对稳定的,经验也是渐进积累的。建筑:规划设计、工程施工、工程监理 软件:顾问咨询、方案提供、软件设计、软件工厂、软件工程监理32中国的软件英雄:吴晓军(2.13汉字系统)、史玉柱(巨人汉卡)、鲍岳桥(UCDOS)、周志农(自然码)、朱崇君(CCED)、求伯君(WPS)、刘旭(瑞星)、王江民(KV)、王文京(用友)、张小龙(Foxmail)、丁磊(163邮局)、洪以容(n

20、etants) 越来越少,影响也越来越小。这些英雄如今不是销声匿迹,就是组成了自己的团队。我们需要英雄,但是,如果只有英雄,那么就只有软件、而没有软件业了。能够支撑起民族软件业的只能是靠工程化思想武装起来的团队、还要有几只超级规模的团队! 在个人英雄主义时代,对一般软件从业者来讲,会两句SQL,能写个工资程序、打打报表就能生存,那个时代已经一去不复返了!社会角度团队协作的时代个人英雄主义时代的终结33社会角度团队协作的时代个人英雄主义时代的终结(续)单看编码,我国拥有众多高水平程序员,但软件开发管理水平与发达国家有很大差距,这就是我们不能开发出像Office、操作系统之类软件的原因。我们从单个

21、程序员来说,能够编写出一流的代码,漂亮的界面。但是却不能协调众多程序员去开发一个项目(工程)软件。在这一方面说我们中国程序员一个人是一条龙,十个人是一条虫不为过。 例:首都机场。印度人写的一个模块200多行,我们程序员只用不到50行,但人家的模块同样正确、而且坚固、文档清晰易懂。技术技巧固然重要,但软件开发中最大的问题已不是技术问题,而是管理问题!34个人角度专业人员必备的个人素质1) 基础理论:训练分析解决问题的能力,深层研究的工具。数学分析训练严密的逻辑思维。普通物理和西方哲学史等教会你很多思维方式,比如:假说大胆假设、认真求证。 (算法分析与设计)2) 专业理论:数据库理论、网络基础、编

22、译原理等。3)专业技术:程序设计语言等。 (很多人热衷的)35个人角度专业人员必备的个人素质4) 工程技术:软件工程,本、研教育中唯一涉及工程规范与管理的课程,它象粘合剂,技术经过它的粘合才能形成软件产品! (很多软件设计者忽略了)5) 外语。多门语言多条路。 (外包)6) 表达与交流能力:团队内部、与客户通讯的基本素质。7)法律常识与职业道德:知识产权保护、行业特点的职业道德。36个人角度专业人员必备的个人素质程序员是一个吃青春饭的行当,也是英雄出少年的行当,就象运动员一样。一个程序员,10年以后很少再只写代码。软件工程是你从程序员到软件设计师、系统分析员,或项目经理、部门经理、CTO一步步

23、迈进必备的知识,积累起来的经验也是你超越年轻人坐在更高职位的资本。 (有志向者自己创业)软件行业分工越来越细、一个团队内也有各种角色。软件工程的知识可以使你结合自己的特点准确定位自己的发展方向。37软件工程的诞生1968年10月北大西洋公约组织(NATO)的科学委员会在德国加尔密斯(Garmisch)开会讨论软件可靠性及软件危机的问题,产生了关于“软件工程”的加尔密斯报告,简称G-报告。在这次会议上,首次提出了“软件工程”概念。1969年10月NATO的委员会在意大利罗马开会讨论软件开发技术问题,产生了关于“软件工程技术”的罗马报告,简称R-报告。软件工程试图以工程的原理、原则和方法进行软件开

24、发,以解决软件危机将软件作为产品,借鉴传统工程途径,实现软件的工程化开发和工业化生产38如何理解“软件工程”? 软件工程(Software Engineering,SE): 是一门研究用工程化方法构建和维护有效的、实用的和高质量的软件的学科。软件工程概念39软件工程采用系统工程学和管理学相结合的原理、方法和技术来指导、管理和实施软件的各种活动,包括软件开发、运行、维护和服务等。思 想 基 础传统工业,如道路桥梁工程、民用建筑工程和化学工程等40软件工程概念软件工程应用计算机科学、数学及管理科学等原理,开发软件的工程。借鉴传统工程的原则、方法,以提高质量、降低成本为目的。其中,计算机科学和数学用

25、于构造模型和算法,工程科学用于制定规范、设计范型、评估成本和确定权衡,管理科学用于计划、资源、质量、成本等管理是一门交叉学科41软件工程与一般工程的差异软件是逻辑产品而不是实物产品软件的功能依赖于硬件和软件的运行环境以及人们对它的操作软件设计的复杂性软件特征:功能的多样性 实现的多样性 能见度低 软件结构合理性差智力密集及知识产权保护42软件工程的主要研究内容软件开发技术:软件开发方法学 软件开发过程 软件工具和软件工程环境 软件工程管理:软件管理学 软件经济学 软件心理软件工程所包含的内容不是一成不变的,随着人们对软件系统的研制开发和生产的理解。应用发展的眼光看待它。43软件工程知识结构 软

26、件需求 软件设计 软件构造 软件测试 软件维护 软件配置管理 软件工程管理 软件工程过程 软件工程工具和方法 软件质量44软件工程范围理论与方法工程管理技术质量开发效率评价软件过程软件开发范型CASE工具、环境做得好?支持支持支持做什么?怎么做?研究寻找控制途径目标45软件工程框架可用性性性确正合算选取适宜的开发模型采用合适的设计方法提供高质量的工程支持重视软件工程的管理基本过程原则 目标 过 程支持过程组织过程46软件工程的本质特性软件工程关注大型程序的构造;软件工程的中心课题是控制复杂性;软件经常变化;开发软件的效率非常重要;和谐地合作是开发软件的关键;软件必须有效地支持它的用户;软件工程

27、中由一种文化背景的人替另一种文化背景的人创造产品。47软件工程的基本原理用分阶段的生命周期计划严格管理坚持进行阶段评审实行严格的产品控制采用现代程序设计技术结果应能清楚地审查开发小组的人员应该少而精承认不断改进软件工程实践的必要性48软件技术与软件工程系统软件技术的发展是软件工程发展的主要推动力程序语言、操作系统、数据库、中间件程序设计语言是软件开发的基础操作系统等系统软件是软件及其理论与技术的综合载体模型开发运行质量程序理论、范型和模型程序设计语言系统软件:OSDBMS中间件软件工程:方法技术工具49 工程是对技术(或社会)实体的分析、设计、建造、验证和管理。因此工程须回答下列问题:要解决的

28、问题是什么?要用于解决该问题的实体具有什么特点?如何实现该实体(解决方案)?如何建造该实体?采用什么方法去发现该实体设计和建造过程中产生的错误?当该实体的用户要求修改、适应和增强时,如何支持这些活动?软件工程的一般视图50与一般软件工程相关的三个阶段:定义阶段集中于“做什么”:涉及所要处理的信息、所需完成的功能和性能、所拟具有的系统行为、所想建造的界面、设计约束以及系统的评价标准等。包括三个主要任务:系统或信息工程;软件项目计划;需求分析。开发阶段集中于“如何做”:涉及数据如何结构化、功能如何转换为软件体系结构、过程细节如何实现、界面如何表示、设计如何转换成程序设计语言(或非过程语言)、测试如

29、何执行。包括三个主要任务:软件设计;代码生成;软件测试。软件工程的一般视图51与一般软件工程相关的三个阶段:维护阶段集中于“改变”:涉及纠正原有错误、为新环境而做的适应性修改和用户需求变化的增强性修改。包括四类修改:纠错、适应、增强和预防。软件项目追踪和控制;正式的技术复审;软件质量保证;软件配置管理;文档的准备和产生;可复用管理测试风险管理软件工程的一般视图所涉及的保护性活动:软件工程的一般视图52软件工程的目标低成本满足功能满足性能易于移植维护费用低及时交付使用简而言之,提高软件质量,降低软件 开发和维护成本53软件工程研究热点(1)基于构件的软件开发(CBSD)CBSD提供了一种自底向上

30、的、基于预先定制包装好的类属元素(构件)来构造应用系统的途径典型的产品复用模式构件复用的三个基本过程可复用构件的生产可复用构件库的管理基于可复用构件的应用开发(组装)CBSD和中间件发展密不可分CCM/CORBA、JavaBeans/J2EE、DCOM/.Net面临的问题需要系统化的CBSD方法学,需要足够的可复用构件Web Service和SOA的出现,需要CBSD的相应调整和发展54软件工程研究热点(2)面向服务的体系结构(SOA)某种意义上,可视为CBSD面向“软件作为服务”思想的进一步发展SOA支持在更高抽象级别上的复用,将软件开发的关注点从低层的实现转到高层的业务流程组合SOA过程涉

31、及3种角色:application builders, service developers, and service brokers;支持松耦合的服务间组装SOA的灵活性和易扩展性适合于产业级系统和大型分布式应用 SOA远未成熟可用服务的数量规模服务的动态和按需组合服务的可信性复合服务的确认和评估55软件工程研究热点(3)软件过程主要涉及用于评估、支持和改善软件开发活动的方法和技术主要研究包括:过程模型和过程建模过程评估和过程改善过程和技术是相辅相成的两方面关于过程的代表性工作ISO 9001 (欧洲TickIT)CMM/CMMI(CMU SEI)Bootstrap(欧洲ESPRIT计划对C

32、MM模型的扩展)面向团队和个人的TSP和PSP56软件工程研究热点(4)需求工程软件开发的早期活动,需求分析活动的系统化发展主要考虑将要开发的软件系统的现实世界目标、功能和约束需求工程是以人为中心的过程,需要多学科技能的综合,包括:计算机科学、逻辑学、认知心理学、人类学、社会学、语言学等基本活动:需求诱导、确认和验证、规约和文档化、可变性和演化管理常见RE技术:ERD、DFD、state transition diagram、state machine, state chart and Petri-Net等OO建模技术:覆盖了需求的结构、行为和过程方面特征建模和产品线技术:领域需求建模挑战性问

33、题更好地对问题域建模非功能需求建模需求模型的复用57软件工程研究热点(5)模型驱动的体系结构(MDA)一种从系统设计层次出发的、解决中间件间互操作性的新的技术途径关注集成和互操作问题,覆盖了从建模、设计,到构件的构造、组装、集成、部署、管理和演化的软件生命周期的全过程。其一个关键目标就是促进良定义的建模标准和中间件标准的使用MDA中,模型成为一阶实体;主要生命期阶段:业务需求建模:CIM不考虑任何与实现平台相关的技术细节,根据需求规约建立和业务逻辑相关的模型:PIM通过适当的映射机制和工具支持,将平台独立的模型映射到平台特定的模型:PSM;并对PSM进行精化和完善 通过工具支持从PSM自动产生

34、实现代码在特定环境部署系统挑战问题如何描述模型?模型规约的形式化程度如何自动转换?自动转换工具的研发58软件工程研究热点(6)面向方面的软件开发(AOSD)将复杂系统中的多种关注点分离,然后分而治之,经验证明是解决问题的一种有效方法AOP将传统方法中分散处理的贯穿特性实现为系统的一阶元素Aspect,并将它们从类结构中独立出来,成为单独的模块,从而使设计和代码更加模块化和更具结构性AOP正在向AOSD发展挑战问题:面向大型应用的实用性59软件工程研究热点(7)面向Agent的软件工程一种新的软件范型,试图建立基于Agent的软件开发的方法学和工具软件有一组自治Agent构成,通过灵活的高层交互

35、来求解问题。直觉上,这符合复杂系统的自然描述方式 自治Agent的引入使得面向Agent的软件成为Internet环境下软件形态的一种可行技术途径挑战问题:Agent的实现形式面向Agent的编程语言和已有编程模型的结合60软件工程研究热点(8)开源软件开发很多因素,技术的和非技术的,经济的和政治的,使得开源运动日益繁荣开源项目的数量继增,如, 在上 就有上百万个; 很多开源应用已达到甚至超越其传统形态竞争者,成功例子如:GNU/Linux和FreeBSD操作系统PostgreSQL和MySQL数据库GNU 编译器GCC集成开发环境Eclipse等传统的软件开发过程和工具将难以有效或高效支持异

36、地的开源开发,需要新的方法、过程和工具61软件工程研究热点(9)可信软件技术软件可信性是软件质量的一种特殊的表现形式,它所关注的是使用层面的综合化的质量属性及其保障形式,涉及多个质量属性的集合,涉及这些属性的综合和平衡正确性、可靠性、安全性、保安性、可用性、可维护性、可预测性、“可信性”凸显了人们对开放环境下质量属性的新关注点!人们只需关心质量属性的局部,如正确性、可靠性等人们必须关心更多的质量属性及其综合,如生存性、安全性等传统封闭环境Internet开放环境以系统质量为核心兼顾使用质量以系统质量为基础以使用质量为核心主观角度可信度客观角度服务质量62其他热点研究领域程序分析软件测试形式化方

37、法敏捷软件开发过程63Internet带来的挑战Internet平台的特征开放性多变性动态性无统一控制的“真”分布性节点的高度自治性和不可预测性节点链接的开放性和动态性人、设备和软件的多重异构性使用方式的个性化和灵活性 网络连接环境的多样性64面向Internet的新兴研究普适计算网 格Internet环境及其应用从“人机交互”的角度研究未来网络系统的应用模式从资源共享与管理的角度探讨未来网络系统的应用模式从“软件即服务”的理念出发,提出了一种新型的软件形态并着重探讨软件的协同性和动态性服务计算以特定于领域的代码自动生成为基础,探讨基于中间件的软件系统的开发方法与技术模型驱动语义网自治计算对等

38、计算随需即取前沿研究十分活跃往往从某种侧面或层次对信息技术提出一种新型模式或理念软件技术驱动力依然存在随着计算平台从单机、机群、局域网到Internet的转移,软件技术的发展正进入一个变革性阶段 65普适计算人机交互资源共享网 格软件形态网 构Internet环境及其应用:基础平台的开放性、动态性和多变性共享资源的多样性(信息、计算、服务)产业模式的服务化 Internet平台和环境的出现, 对软件形态 技术发展 理论研究 提供了 新的契机 提出了新的问题66未来软件面临的挑战传统软件传统软件结构系统目标的确定性实体单元的被动性协同方式的单一性系统演变的静态性基于实体的结构分解经验驱动的软件手工开发模式未来软件新型软件结构多重不确定性主动自主性灵活多面性系统演化的动态性基于协同的实体聚合知识驱动的软件自动生成模式67软件运行平台站点元素站点元素站点元素站点元素站点元素传统软件形态分解确定目标、有序控制服务服务无序有序服务无序有序动态目标、渐趋稳态新的软件形态自顶向下 逐步分解自底向上 动态组合挑战举例:开发方式的变化68挑战举例:开发关注点的变化传统软件形态基于实体驱动需求标识实体结构分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论