1、Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,.,Software Engineering:A Practitioners Approach,8/e,(McGraw-Hill 2014).Slides copyright 2014 by Roger Pressman.,*,Click to edit Master title style,Click to edit Master text styles,Sec
2、ond level,Third level,Fourth level,Fifth level,.,*,第,1,章,软件的本质,Software Engineering:A Practitioners Approach,8/e,by Roger S.Pressman and Bruce R.Maxim,软件工程:实践者的研究方法,(第,8,版),Roger S.Pressman,,,Bruce R.Maxim,著,1996,2001,2005,2009,2014,by Roger S.Pressman,1,.Software Engineering:A Practitioners Approac
3、h,8/e(McGraw-Hill 2014).Slides copyright 2014 by Roger Pressman.,什么是软件?,软件是:,(1),指令的集合,(,计算机程序,),,通过执行这些指令可以满足预期的特征、功能和性能需求;,(2),数据结构,,使得程序可以合理利用信息;,(3),软件描述信息,,它以硬拷贝和虚拟形式存在,用来描述程序操作和使用。,2,.Software Engineering:A Practitioners Approach,8/e(McGraw-Hill 2014).Slides copyright 2014 by Roger Pressman.,什
4、么是软件?,软件是设计开发的,而不是传统意义上生产制造的。,软件不会“磨损”。,虽然整个工业向着基于构件的构造模式发展,然而大多数软件仍是根据实际的顾客需求制定的。,3,.Software Engineering:A Practitioners Approach,8/e(McGraw-Hill 2014).Slides copyright 2014 by Roger Pressman.,软件失效曲线图,理想曲线,变更,实际曲线,失效率,时间,由于副作用,导致失效率提高,4,.Software Engineering:A Practitioners Approach,8/e(McGraw-Hil
5、l 2014).Slides copyright 2014 by Roger Pressman.,软件应用领域,系统软件,应用软件,工程科学软件,嵌入式软件,产品线软件,Web/,移动应用软件,人工智能软件,(,包括机器人、人工神经网络和博弈等,),5,.Software Engineering:A Practitioners Approach,8/e(McGraw-Hill 2014).Slides copyright 2014 by Roger Pressman.,遗留软件,(Legacy Software),软件需要进行,适应性调整,,从而可以满足新的计算环境或者技术的需求。,软件必须,
6、升级,以实现新的商业需求。,软件必须被,扩展,使之具有与更多新的系统和数据库的互操作能力。,软件架构必须进行,改建,使之能适应不断演化的计算环境。,演化的原因?,6,.Software Engineering:A Practitioners Approach,8/e(McGraw-Hill 2014).Slides copyright 2014 by Roger Pressman.,Web,应用系统,现代,WebApp,远远不止于少量图片的超文本文件。,一些开发工具(例如,XML、Java)扩展了WebAPP的能力,使得Web工程师在向客户提供信息的同时也能提供计算能力。,WebApps不仅可
7、以为最终用户提供独立的功能,而且已经同公司数据库和业务应用系统集成在一起了。,语义Web技术(通常指Web 3.0)已经演化为成熟的企业和消费者应用系统,包括提供新功能的语义数据库,这些新功能需要Web链接、灵活的数据表示以及外部访问APIs。,应用内容的精美程度仍是决定,WebAPP,质量的重要因素。,7,.Software Engineering:A Practitioners Approach,8/e(McGraw-Hill 2014).Slides copyright 2014 by Roger Pressman.,移动应用系统,术语,app,已经演化为在移动平台(例如,,iOS,、,
8、Android,或,Windows Mobile,)上专门设计的软件。,移动应用系统包括,用户接口,用户接口利用移动平台所提供的独特的交互机制,。,基于Web资源的互操作性提供与app相关的大量信息的访问,并具有本地处理能力,。,提供了在平台中的持久存储能力,。,移动Web应用系统,允许移动设备通过针对移动平台的优点和弱点专门设计的浏览器获取基于Web内容的访问。,移动app,可以直接访问设备的硬件特性(例如,加速器或者GPS的位置),然后提供前面所述的本地处理和存储能力,。,随着时间的推移,移动Web应用系统与移动apps之间的区别会变得模糊,。,8,.Software Engineerin
9、g:A Practitioners Approach,8/e(McGraw-Hill 2014).Slides copyright 2014 by Roger Pressman.,云计算,9,.Software Engineering:A Practitioners Approach,8/e(McGraw-Hill 2014).Slides copyright 2014 by Roger Pressman.,云计算,云计算,提供分布式数据存储,和处理功能,,它能使得任何用户无论在任何地点都可以使用计算设备来共享广泛的计算资源,。,计算设备位于云的外部,可以访问云内的各种资源,。,云计算的实现需
10、要开发包含前端和后端服务的体系结构,。,前端包括客户(用户)设备和应用软件(如浏览器)用于访问后端,。,后端包括服务器和相关的计算资源、数据存储系统(如数据库)、服务器驻留应用程序和管理服务器,。,可,以对云体系结构进行分段,提供不同级别的访问,。,10,.Software Engineering:A Practitioners Approach,8/e(McGraw-Hill 2014).Slides copyright 2014 by Roger Pressman.,软件产品线,软件产品线,是,一系列软件密集型系统,可以共享一组公共的可管理的特性,这些特性可以满足特定市场或任务的特定需求,
11、软件产品线都使用相同的底层应用软件和数据体系结构来开发,并使用可在整个产品线中进行复用的一组软件构件来实现。,软件产品线共享一组资源,包括,需求、体系结构、设计模式、可重用构件、测试用例,及其他软件工程工作产品,。,软件产品线在对这些产品进行工程设计时,利用了产品线中所有产品的公共性。,11,.Software Engineering:A Practitioners Approach,8/e(McGraw-Hill 2014).Slides copyright 2014 by Roger Pressman.,WebApp,的特性,数据驱动,(,Data driven,),:许多,WebAp
12、p,的主要功能是使用超媒体向最终用户提供文本、图片、音频及视频内容。,内容敏感性,(Content sensitive),:内容的质量和艺术性仍然在很大程度上决定了,WebApp,的质量。,持续演化,(Continuous evolution),:传统的应用软件是随一系列规划好的时间间隔发布而演化的,而,Web,应用软件则持续地演化。,即时性,(Immediacy),:尽管即时性(也就是将软件尽快推向市场的迫切需要)是很多应用领域的特点,然而将,WebApp,投入市场可能只是几天或几周的事。,安全性,(Security),:由于,WebApp,是通过网络访问来使用的,因此要限制访问的最终用户数量,即使可能也非常困难。,美观性,(Aesthetics),:不可否认,,WebApp,的用户界面外观很有吸引力。,12,.Software Engineering:A Practitioners Approach,8/e(McGraw-Hill 2014).Slides copyright 2014 by Roger Pressman.,






