网络时代的软件工程.ppt

上传人:夺命阿水 文档编号:259979 上传时间:2023-03-31 格式:PPT 页数:59 大小:3.45MB
返回 下载 相关 举报
网络时代的软件工程.ppt_第1页
第1页 / 共59页
网络时代的软件工程.ppt_第2页
第2页 / 共59页
网络时代的软件工程.ppt_第3页
第3页 / 共59页
网络时代的软件工程.ppt_第4页
第4页 / 共59页
网络时代的软件工程.ppt_第5页
第5页 / 共59页
点击查看更多>>
资源描述

《网络时代的软件工程.ppt》由会员分享,可在线阅读,更多相关《网络时代的软件工程.ppt(59页珍藏版)》请在课桌文档上搜索。

1、围绕计算机学院、软件学院和信息学院共同关心的“软件工程”问题进行评论。,学术评论,在宽松自由的气氛下,进行学术交流、商榷、质疑、争鸣、互动,这也许比评估评审结果的排序,更能够促进学术的繁荣和技术的创新。,评论动机:,科学植根于讨论之中,量子力学创始人、诺贝尔物理学奖获得者 海森堡(Werner Heisenberg,1901-1976),网络时代的软件工程,Software Eng.in the Network Age,软件是在系统里工作吗?,质疑:,历史是面镜子:,计算机60年 人工智能50年 软件工程40年,软件工程里程碑,60多年前,计算机科学从电子学中脱颖而出为克服以手工作坊方式为主生

2、产软件带来的软件危机,1968年在原西德召开的北大西洋公约组织会议上,第一次提出了软件工程的概念。软件从硬件中脱颖而出,软件工程从计算机体系结构中脱颖而出,1984年卡内基梅隆大学创立软件工程研究所1985年我国筹建武汉大学软件工程国家重点实验室,9,软件附属于硬件,现在,50年代,60年代,70年代,80年代,90年代,面向过程,面向对象,面向构件,科学家们对软件工程的关注域总是在“与时俱进”网络时代迫使软件工程寻找新的解决办法,面向领域,复杂系统复杂网络,软件作为单独产品,催生软件工程,面向大众,软件工程40年的尴尬,40年软件工程的发展一直以自我为中心:,计算机以为中央处理器为核心软件开

3、发面向机器指令,从编码开始程序规模由里向外,由小到大较少考虑单机工作之外的事情,10,11,程序正确性证明在软件工程中没有彻底解决软件工程师的知识和智能始终无法从编程过程中剥离出来任何编程技巧都没有能够带来程序生产率成数量级的提高,软件工程中没有出现摩尔速度软件全自动化生产没有能够实现,12,网络为人们提供一个均等的、虚拟的、丰富的计算机应用平台、信息服务平台,也是软件资源下载和维护平台,13,用户严重依赖网络资源通过网络聚合,并提供服务软件产品的开发与演化离不开网络 广大用户越来越把软件视作网络环境中的软件,14,软件在网络时代的发展迫使软件工程寻找新的解决办法从集中的软件到分散的软件从单体

4、软件到群体软件的交互与协同从为我所有的软件到为我所用的软件,软件在网络环境下工作!,走向一:,需求是软件生命周期中的一个阶段吗?,质疑:,17,传统的软件工程建模理论与方法,无论是结构化建模、还是面向对象建模,都是针对需求分析模型而言的,用户需求是固定的,数据资源是自我的,系统目标和开发过程是确定的;在网络时代,软件需求是持续的、多目标的、可生长的,网络资源是共享的,系统与系统之间是相互作用的,用户是不确定的,用户与系统的交互方式是多样的,18,软件工程发展动力来自对信息的需求:,无处不在的在线搜索!无处不在的实时交互!时刻发生的即时通讯和协同!对软件和信息,不求我有,只求我用!,软件产业的发

5、展走势,20,需求获取是软件工程的瓶颈,资源,需求牵引,柔性生产?,21,挑 战,需求的复杂性导致系统资源交互、建模和应用的复杂性,需求主导的软件工程频繁变化的不确定性需求软件系统随需演变动态开放的网络环境软件结构和行为的自适应能力异构自主的软件资源满足用户需求的即时组合大范围交互的复杂系统变尺度、在线与优化,60-70年代,80年代,90年代,本世纪初,面向过程,面向对象,面向构件,面向网络服务,OOD,OMT,UML,CORBA,DCOM,J2EE,XML,SOAP,HTTP,OWL,UDDI,WSDL,关注域,SASD,40年发展历程中软件工程关注域转向需求,23,23,软件工程的重点向

6、需求转移,传统的软件工程,需求分析仅仅是其中的一个环节,强调软件本身的顶层结构设计网络环境下的软件工程系统复杂,规模巨大,相互作用,演化生长需求的分量越来越重,需求的变化越来越快,资源的聚合越来越强个性化和多元化的需求趋势,导致软件生产方式更强调规模化定制,提供灵活、可信和即时的服务,软件工程向需求工程倾斜!,走向二:,软件自身是层次型的体系结构吗?,质疑:,软件工程教科书中分层的软件体系结构,26,软件设计方法学,面向过程的软件设计方法 面向对象的软件设计方法,面向过程的软件设计方法 以C语言为典型代表,偏重在编码层面上,将一个复杂的程序分解为函数或过程;强调计算流程中的顺序、循环和条件3个

7、基本要素;关注程序开发过程和执行过程,考虑需求分析、结构设计、编码到软件测试整个流程;产生了“软件生命周期”的概念,形成一整套的软件开发工具。,28,面向对象的软件设计方法 以JAVA语言为典型代表,以“类”为基本程序单元,对象是“类”的实例化,对象之间以消息传递为基本手段;软件的设计、编码统统以类及类的对象之间的关系为核心,封装、继承和多态成为三个重要特征;,29,寻求比“类”的粒度更大、易于复用的“构件”期望实现软件的再工程(Re-Engineering),30,面向构件的软件设计方法 以XML语言为典型代表,31,需求工程15年,需求活动以“工程化”的方法被提出,与用户广泛地交流,确定应

8、用系统的目标,鼓励用户以积极的方式参与需求分析活动,在软件的演化过程中强调用户参与和领域专家的指导。需求是一个不断反复的形式化、理解和演化的过程。,软件是由各个软件单元以及软件单元之间的相互作用组成的每个软件单元可称为智能体(Intelligent Agent)或者主体(Active Agent)其大小由粒度来度量,如对象、类、构件、子系统和系统等,粒度逐步增大。,32,网络时代的软件工程,网络时代的软件工程,把功能强大的可编程的软件单元放入互相连接的通讯网络中的一个个节点上,节点主要完成各种各样的计算与处理功能,连接主要完成通信功能网络通过软件促进了用户之间的资源聚合、信息共享和协同工作,3

9、3,34,把软件作为一个独立的系统 采用自顶向下、逐步求精、分而治之的软件开发策略,更倾向于把软件单元看作软件拓扑中的一个节点,节点间相互作用 把软件的结构看作是复杂网络的一个案例,软件工程观的转变,早先的软件工程观,网络时代的软件工程观,软件在实际的运行过程中,相互之间的数据交换常常超出了所谓的层次结构层次表述方法阻碍了对网络环境下软件单元之间相互作用的深入研究用网络拓扑表示软件单元之间的关系,并没有否定传统的层次结构的存在,如果它们之间确实存在的话。,35,36,软件的网络化性质比软件单元的性质更强烈地影响着软件的整体行为和特性,甚至出现涌现,如计算机病毒的突然泛滥等,37,Linux局部

10、内核函数网络图,38,Linux全局内核函数网络图,Linux内核有630个函数,存在1814个函数调用。图中将函数表示为节点,调用关系表示为边。,软件结构可以用网络拓扑表示!,走向三:,问题的形式化是强结构好还是弱结构好?,质疑:,本体描述举例:USB协议,本体描述是屏蔽差异性、覆盖个性化、多样化需求的抽象表示,本体模型:USB协议,本体模型,业务过程复杂,服务资源丰富,需求四要素,要素自身的本体模型,基于语义、情境的“角色目标”关系本体模型,基于业务规则的“目标过程”关系本体模型,基于领域的“过程服务”关系本体模型,用户角色繁多,需求目标多变,本体模型描述框架,要素间关系的本体模型,过程P

11、rocess,服务Service,目标Goal,角色Role,用户主导、面向领域的需求建模 偏好依附生长的模型演化机理 多粒度的需求验证与优化 软件间交互与协同行为 网络环境下基于语义的软件资源聚合,服务大众的网络化软件的本体描述,基本方法 本体元建模,Relational Model,XML,DB Schema,XML Schema,ER Model,RDF,UML,OWL,SORL,Description Logic,元数据:类型,元模型:概念,本体模型:情境,语义,信息使用价值,软件服务能力,需求描述能力,数据层互操作,语法层互操作,语义层互操作,数据,查询,知识发现,智能查询,按需回答

12、,Controlled Vocabulary,情境感知的交互与协同,Service-Oriented Requirement Language,问题的形式化向着本体描述发展!,走向四:,成熟的软件是测出来还是用出来的?,质疑:,“很多人都认为微软是一家软件开发公司,而事实上,我们是一家软件测试公司”比尔盖茨,注:微软公司 陈宏刚:软件开发的科学与艺术第9章 261页 电子工业出版社,微软产品的团队人员结构举例,国内某公司2006年软件失效统计,50,软件工程40年,人们不断地发现软件有这样那样的漏洞,但难以证明软件没有漏洞和错误。,通过补丁弥补操作系统、支撑系统 的漏洞何时了?,Photosh

13、op软件的演化,90年,93年,95年,96年,99年,00年,02年,03年,05年,路径,调色板、标签矢量编辑,多次撤销色彩管理,历史概念吸取矢量图像,溶解滤镜图层控制+矢量编辑+,RAW2.*阴影、高光颜色匹配镜头模糊滤镜实时柱状图,RAW3.*图像扭曲点恢复笔刷红眼工具镜头校正滤镜智能锐化,Windows 3.1,Windows 95,Windows XP/2000,Windows 2000/98,V3,V4,V5,V6,V2,V1,V7,V CS1,V CS2,图层、色彩平衡饱和度调节,system7,数码相机的应用与发展牵引着图像处理软件的演化,52,演化过程中对支撑系统要求越来越

14、高,Photoshop1.*,Photoshop2.*,Photoshop3.*,Photoshop6.*,Photoshop7.*,Photoshop Creative Suite,软件规模 800K,4M RAM,16为变为32位程序,Pentium III or 4 processor,Pentium class processor,192 MB RAM,280 MBavailable,16-bit coloror greater,1,024x768 or greater,64 MB RAM,125 MB,8-bit,800 x600 or greater,Pentium III or

15、4,128 MB RAM,280 MB,256-color display with 800 x 600,16-bit,2MB RAM,软件是逐渐生长起来的!,Windows3.1,Windows98/2000,Windows98,Windows 2000/XP,Windows2000/XP,53,Windows的功能演化,MS-DOS,Vista,Windows 1.0,Windows 2.0,Windows 3.*,Windows 95,Windows 98,Windows 2000,Windows XP,软件是不断生长、演化的。软件的正确性、可靠性、安全性、时效性、可信性、生存性等是在使用中竞争出来的,不是在工厂中一次性生产和测试出来的。,54,55,软件工程既要考虑单个软件单元的正确性、时效性、可靠性、可维护性、安全性,也要考虑软件单元之间的相互作用考虑复杂软件自身演化过程中的生长性,在生长过程中的偏好依附性,以及网络化软件的小世界特性、无标度特性和软件单元之间的聚积性,软件在演化中生长完善!,走向五:,五点带风险的评论:,软件在网络环境下工作 软件工程向需求工程倾斜软件结构用网络拓扑表示 问题的形式化向本体描述发展软件在演化中生长完善,敬请大家批评指正!,新旧软件工程观,59,Thanks,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号