南京工业大学计算机系2010级软件工程考点整理.docx
《南京工业大学计算机系2010级软件工程考点整理.docx》由会员分享,可在线阅读,更多相关《南京工业大学计算机系2010级软件工程考点整理.docx(12页珍藏版)》请在三一办公上搜索。
1、软件工程第1章导论1. 软件工程:目前已成为一门知道软件系统开发和维护的新兴工程科学,它运用计算机科学,工程科学, 数学,管理学和社会学等原理和方法指导软件系统的开发过程,以实现高质量,有效的软件系统。2. 软件特性:软件是设计开发的;软件不会磨损;大多数软件是根据客户的要求定制的。(ppt:复杂性, 特一致性,可变性,不可见性)3. 软件的类型:从功能角度分为系统软件和应用软件,从服务对象的角度分为通用软件和定制软件。4. *软件质量:软件质量是软件产品或服务的特性和特征的整体,它取决于软件满足给定需求的能力。软件质量特性:(重点)软件质量定义:软件产品中所能满足用户给定需求的全部特性的总体
2、能力;软件具有所期望的各种属 性组合的程度;用户主观得出的软件是否满足其综合期望的程度;软件的组合特性满足用户预期需求 的程度。软件质量通常采用质量模型来建立软件质量特性间的关系5. 软件危机主要表现在:1)软件开发无计划性;2)软件需求不充分;3)软件开发过程无规范;4)软件 产品无评测手段。6. *IEEE关于软件过程的定义为:软件过程是:1)将系统性的,规范化的,可定量的方法应用于软件的开 发,运行和维护,即将过程化应用到软件上;2)对1)中所述方法的研究。(软件工程三要素:方法, 工具和过程)。7. 目标:提高软件系统的开发效率和质量8. 软件质量特性:(重点)软件质量定义:软件产品中
3、所能满足用户给定需求的全部特性的总体能力;软件具有所期望的各种属性组 合的程度;用户主观得出的软件是否满足其综合期望的程度;软件的组合特性满足用户预期需求的程度。软件质量通常采用质量模型来建立软件质量特性间的关系软件过程:定义:软件过程是软件工作人员为了获得软件产品,在软件工具的支持下实施的一系列的软件工程活动, 软件过程活动也就是软件生命周期内的活动。通用的过程框架可适用于绝大多数的软件项目,一般包含以下框架活动:1)软件定义2)软件设计和实 现3)软件验证4)软件演化。软件过程的抽象称为过程模型,主要包括:瀑布模型,演化式开发,形式开发,基于组件的开发,螺旋模 型,增量模型等。*瀑布模型:
4、将过程活动分为需求分析,设计,编码,测试和维护几个阶段,与软件生存期相吻合,故亦 称软件生存期模型。瀑布模型的阶段划分清晰,每一阶段经过评审方可进入下一阶段,有较高的文档要求, 过程可见性好。*形式化开发:采用数学模型形式定义系统,然后将形式化模型转化为可执行系统。如军事,航天等领域的 系统可采用形式化开发。*螺旋模型将软件工程活动定义为坐标轴上四个象限的活动,分别是计划,风险分析,工程实现和评审,以 螺旋方式迭代。螺旋模型式对瀑布模型的一种改进,螺旋迭代方式可以克服瀑布模型缺乏柔性的缺点。重 要的区别是风险分析活动,风险分析活动降低了阶段活动的风险。I. 软件工程方法:定义:通常把在软件生命
5、周期全过程中使用的一整套技术的集合称为方法。系统,典型的软件工程方 法主要有结构化方法和面向对象的方法。结构化分析方法,主要是利用数据流图来模拟数据处理过程,是一种面向数据流的开发方法,其基本 原则是功能的分解和抽象。(SA)结构化设计的实质是将DFD转变成系统结构模型的过程,软件系统结构是指软件模块间的关系。(SD) 面向对象方法的软件工程方法是面向对象方法在软件工程领域的全面应用,涉及面向对象分析(O OA), 面向对象设计(OOD),面向对象编程(OOP),面向对象测试(OOT)和面向对象维护(OOSM)。II. CASE (计算机辅助软件工程)工具是指用于软件过程活动中支持软件开发,维
6、护,管理的不同类型的程 序。可被分为三类:工具,工作台和集成的软件开发环境,三者区别:工具往往完成软件过程活动中的 单一任务;工作台支持软件过程某个阶段的活动;集成的软件开发环境则是支持所有或核心活动的集成 工具。IV.软件工程知识体系:SWEBOK。将软件工程知识分解成10个知识域:软件需求、软件设计、软件构造、 软件测试、软件维护、软件配置管理、软件工程管理、软件工程过程、软件工程工具与方法、软件质量 McCal l的11个质量要素:运行特性:正确性,可靠性,有效性,完整性,可用性修改特性:可维护性,灵活性,可测试性转换特性:可移植性,可复用性,互操作性第2章 软件过程1. 软件过程:是指
7、软件生存周期所涉及的一系列相关过程,是软件从需求获取,需求分析,设计,实现, 测试,发布到维护的过程。软件过程活动通常有:需求分析和定义,系统设计,程序设计,编码,单元测试,集成测试,系统测试, 系统交付,维护等。软件过程可概括为三类:基本过程类,支持过程类和组织过程类。基本过程类包括需求获取和定义过程,设计过程,实现过程,验证过程和维护过程;支持过程类包括文档 过程,配置管理过程,质量保证过程,联合评审过程,审计过程等;组织过程类包括基础设施过程,改进 过程以及培训过程。2. 软件过程模型是对软件开发过程的抽象。*瀑布模型:当前活动接受上一项活动的工作结果,实施完成所需的工作内容,前后有因果
8、关系。(某公司 计划开发二维CAD软件)适用:在开发的早期阶段软件需求被完整确定;挑战:实际的项目开发很少是线性的过程,客户很难明确地描述软件需求;缺点:各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量;开发过程中很难响应客户的变更要求;早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果;*演化式开发模型:包含着并行的,循环的需求分析,开发和验证等活动。(北京市交通设施设计与漫游系 统)适用:生命周期较短、中小规模的系统。当然在大型系统中,视具体情况部分采用演化式开发也是可行的。 优点:在及时响应用户需求改变方面比瀑布模型更为有效,软件改变的代价较小缺点:系统
9、的结构通常不好;软件过程可见性不好;开发过程通常需要特殊的工具和技术支持;*形式化变换模型:某些安全性,可靠性要求很高的软件系统,可采用形式转化模型来开发。(空中交通控 制系统)适用:特别适合于那些对安全性、可靠性和保密性要求极高的软件系统,这些系统需要在投入运行前进行 验证;优点:由于数学方法具有严密性和准确性,形式化方法开发过程所交付的软件系统具有较少的缺陷和较高 的安全性;缺点:开发人员需要具备一定技能并经过特殊训练;形式化描述和转换是一项费时费力的工作;现实应用的系统大多数是交互性强的软件,但是这些系统难以用形式化方法进行描述;*面向复用的开发:主要建立在已有大量可利用的软件组件和组件
10、的集成框架基础上,可以有效提高开发 效率和质量。(开发学生系统)需求调整系统验证开发和集成组件分析可复用系统设计需求分析图2.5面向复用的开发模式面向复用的软件开发模型中的重要因素:1)基于组件的软件体系结构2)基于组件的开发过程;优点:充分体现软件复用的思想;实现快速交付软件;缺点:商业组件的修改受到限制,影响系统的演化*增量开发模型:主要内容是将系统的需求定义、设计和实现分解成若干增量依次开发和交付,以减少开发 过程中的返工,也可以让用户通过体验先期交付的系统更准确、详细地给出需求。*螺旋模型:它将瀑布模型和快速原型模型结合起来,其过程活动不是按顺序进行而是以螺旋式展开,强调 了其他模型所
11、忽视的风险分析,特别适合于大型复杂的系统。优点:关注软件的重用;关注早期错误的消除;将质量目标放在首位;适合大型软件项目;缺点:1需要风险评估的经验2螺旋模型强调风险分析,但要求许多客户接受和相信这种分析,并做出相关反应是不容易的,毕竟影响 软件的因素复杂。另外风险分析得需要一定的代价,如果软件预算不充裕,较难实行;因此,这种模型往 往适应于内部的大规模软件开发。3如果执行风险分析将大大影响项目的利润,那么进行风险分析毫无意义,因此,螺旋模型只适合于大规 模软件项目。4软件开发人员应该擅长寻找可能的风险,准确地分析风险,否则将会带来更大的风险。3. * Rational 统一过程:RUP是基于
12、UML的一种现代软件开发过程模型。是一种混合过程模型,融合了一些通用过程元素。强调开发和维护模型,UML的使用使其具有语义丰富的软件系统表达。反映了许多人和公司的集体经验。Rational统一过程模型:.:i -11初始2:国化BC置希宝正智迎jni-iwiF迭 代 #2迭 ft 的1代 #n+ii迭ftRational统一过程中的软件生命周期在时间上被分解为四个连续的阶段,分别是:初始阶段,细化阶段, 构造阶段和交付阶段。4. 敏捷开发过程:敏捷开发是由业界专家针对企业现状提出的,让软件开发团队具有快速工作、响应变化 能力的价值观和原则。第3章面向对象系统建模:1. 面向对象模型:面向对象模
13、型更接近于问题域;反复细化高层模型直到可以实现的程度;将模型组织成 对象的集合。2. 面向对象基本概念:对象-是系统中描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和对这组属性进 行操作的一组服务组成。类-是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内 部包括属性和服务两个主要部分。关联:关联是对象属性之间的静态关系,他们通过对象的属性来表现对象之间的依赖关系。关联存在多重性,用于描述一个关联的实例中有多少个相互连接的对象。聚合和组合:聚合是一种特殊形式的关联。聚合表示类之间整体和部分的关系。组合表示的也是类之间的整体和部分的关系,但组合
14、关系中的整体和部分具有同样的生存期,组合是一种 特殊形式的聚合。多态性:是指在父类中定义的属性或服务被子类继承后,可以具有不同的数据类型或表现出不同的行为 封装-是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐藏对象的内部细节。继承-是指子类可以自动拥有父类的全部属性和服务。3. *UML的构成有三类主要元素:基本构造块,语义规则,公共机制。结构事袖、行为零物、公蛆审物、注糠事物关手依赖关系、美映美系/基本构迫点j 八:迁化关系,实现关基用例国、图 ,类阕、时挚维、组件街、分布圈顺序前、协作国、状意图.活劫宙|语5命名2.可虱性、完整性、可执行性说明、移饰v会共机制:通用划I. 扩朕机
15、制基本构造块成分图见课本UML关系:关联,泛化,依赖和实现。关联是一种结构关系,它描述了一组对象之间的连接聚合(Aggregation)是一种特殊形式的关联,它表示类之间的整体与部分的关系。(比如:汽车和轮胎之间 的关系)组合(Composition)是一种特殊形式的聚集,组合关系中的整体与部分具有同样的生存期。(比如:你和 你的心脏之间的关系)泛化是一种特殊/一般的关系。依赖是一种使用关系,它说明一个事物规格说明的变化可能影响到使用它的另一个事物。实现是类元之间的语义关系,其中的一个类元指定了由另一个类元保证执行的契约。UML图1用例图是从系统参与者的角度所理解的系统功能以及参与者与用例间的
16、交互。用于定义阶段的需求建模。 用例图表示了用例、参与者及其它们之间的关系。2类图用于描述系统的静态结构类图表示系统中的类、类与类之间的关系以及类的属性和操作3包图用于较大系统组成块的建模,如子系统构成包的模型元素称为包的内容。包的内容可以是一个类图 也可以是另一个包图。包与包之间不能共用一个相同的模型元素4组件图描述软件组件及组件之间的依赖关系,显示代码的静态结构。5部署图也称实施图,用于建模处理器、硬件设备和软件组件在运行时的架构,它可以用来描述系统中计 算结点的拓扑结构、通信路径与结点上运行的软组件等。(重点6-9)6状态图是由状态机扩展而来的,用来描述对象所经过的对外部事件做出相应的状
17、态序列。 状态图针对单个对象建立模型。侧重于描述某个对象在其生命周期中的动态行为,包括对象在各个不同的 状态间的跳转以及触发这些跳转的外部事件,即从状态到状态的控制流。状态图中定义的状态有:初态:用实心圆表示(必须有一个)终态:用一对同心圆(内圆为实心圆)表示(可以有多个,也可没有)中间状态:用圆角矩形表示;7顺序图顺序图描述了一组交互对象间的交互方式,它表示完成某项行为的对象和这些对象之间传递消息的时间顺例题银行系统的交易验证8协作图用于描述相互协作的对象间的交互关系和链接关系。9活动图用于对系统工作流程建模,即对系统的业务过程建模,也可以对具体的操作建模,以描述计算过程的细节。例如:算法流
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南京 工业大学 计算机系 2010 软件工程 考点 整理
链接地址:https://www.31ppt.com/p-5077117.html