欢迎来到天天文库
浏览记录
ID:58752344
大小:967.50 KB
页数:89页
时间:2020-10-03
《河北工业大学软件工程_要点串讲ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第一讲概述1.1软件工程的研究内容软件工程要考虑专业软件开发所需要的理论、方法和工具----工程技术问题软件工程要考虑如何有效的在软件开发中利用有限的成本资源----工程管理的问题1.2什么是软件?软件包括:---软件的内涵①能够提供客户所需功能与性能的计算机程序;②使程序能够适当的操作信息的数据结构;③用以描述程序开发过程及使用的文档。软件产品可以为一个特定的用户设计开发,也可以为某一类通用的市场设计开发。软件产品可以分成:通用软件(GenericSoftware)定制软件(BespokeSoftware)一个新的软件并不一定是全新开发,可以由现
2、有软件或可复用软件成分配置形成。1.2什么是软件?模糊1.3什么是软件工程?软件工程是涉及软件生产各个方面的一门工程学科软件工程涉及软件生命周期的各个方面,从软件需求的确定到软件退役。软件工程:(1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件;(2)研究(1)中的方法.——IEEE[IEE93]1.3什么是软件工程?1.4什么是成功的软件项目一个成功软件项目的三个要素包括:按时交付不超预算满足用户要求。1.5软件过程与软件生命周期的相关概念软件过程是指开发或制作软件产品的一系列活动及其成果.所有的软件
3、过程中都包括四个基本活动:1.描述(Specification)-系统应该提供的功能及其开发约束;2.开发(Development)-软件产品的生产过程;3.有效性验证(Validation)-检验软件产品是否满足了客户的需要;4.进化(Evolution)-按照用户的变更要求不断的改进软件。软件生命周期是软件过程的另一种形象描述,通常包括需求定义、分析与描述、软件设计、实现、测试、维护与退役等活动。1.6什么是优良软件的属性?优良的软件应能交付相应的功能与性能,而且应具有良好的可维护性、可依赖性、有效性和可用性:可维护性(Maintainabil
4、ity)Softwaremustevolvetomeetchangingneeds;可依赖性(Dependability)Softwaremustbetrustworthy;有效性(Efficiency)Softwareshouldnotmakewastefuluseofsystemresources;可接受性(Acceptability)Softwaremustbeacceptedbytheusersforwhichitwasdesigned.Thismeansitmustbeunderstandable,usableandcompatiblew
5、ithothersystems.第二讲软件过程2.1瀑布模型(顺序模型)2.1瀑布模型(顺序模型)A.k.a.:ClassicLifeCycle瀑布模型的缺点和适用情况这种模型生硬的把一个软件过程划分成几个界限清晰的阶段,而且这些阶段前后有严格的顺序,这导致它很难对用户的需求变更做出及时的调整;因此,瀑布模型只适合需求非常清楚和需求变更被严格限制的情况下。2.2进化式开发模型基本思想:通过开发系统原型和用户反复交互,以明确需求,使系统在不断调整与修改中得以进化成熟。又叫做原型式开发方法。两种基本类型:探索式开发;抛弃式原型法.问题缺乏过程可见性;系
6、统结构通常会很差;需要一些特别的技术(如原型快速开发技术),通常与主流技术不兼容.适用情况适合中小规模的交互系统;可用于大型系统的局部开发(如系统界面),可以和瀑布模型混合使用;生命周期较短的系统。2.2进化式开发模型2.3基于过程反复的过程模型对于大型项目而言,系统需求的变更是无法避免的,因此开发过程的反复是软件开发的必要手段;过程反复可以和任何一种一般过程模型结合使用。两种支持过程反复的过程模型:增量式开发;螺旋式开发。2.3增量式开发增量式开发的特点在这种开发方式中,系统不是作为一个整体交付,而是被分解成若干个增量,每个增量交付系统的部分功能
7、。用户的需求按优先级排队,优先级最高的需求被放入最早交付的增量中。这样,优先级最高的系统功能就得到最多的测试,系统的可靠性较高。2.4基于构件的软件工程软件复用是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素(通常称为可复用构件、组件或软部件)的过程。软构件是标准的、可以互换的、经过装配可随时使用的软件模块。在UML中,软构件被定义为系统中某一定型化的、可配置的和可替换的部件,该部件封装了实现并暴露一系列的接口。软件复用的意义软件复用的出发点是使软件系统的开发不再“一切从零开始”,能够充分利用已有的知识和经验。软件复用能够在软件开发中
8、避免重复劳动,充分利用已有的开发成果,,提高开发效率,降低开发成本。软件复用还可以避免全新开发可能引入的错误,从而提高软件
此文档下载收益归作者所有