软件工程_期末复习笔记
软件工程期末复习资料非常全

1、下列哪一模型是软件的基础模型A.瀑布模型B.快速原型C.增量模型D.螺旋模型2、划分软件生存周期的阶段时所应遵循的基本原则是A.各阶段的任务尽可能相对独立B.各阶段的任务在时间上连续C.各阶段的任务尽可能相关性D.各阶段的任务在时间上相对独立3、下列哪个办法不属于解决软件危机的途径之一A.采用软件工程的解决途径B.研制新一代智能计算机C.采用面向对象的软件设计方法D.大力扶持软件企业4、下列哪个不属于软件工程的内涵之一A.扶持培养软件高手的学院B.开发既可靠又能有效运行的软件C.应用完善的科学与工程原理D.经济地开发软件5.造成大型软件开发困难的根本原因在于A.开发人员缺乏足够的开发经验B.项目开发进度不合理C.软件系统的复杂性D.对软件开发的资金投入不足6.软件会逐渐退化而不会磨损,其原因在于A.软件备件很难订购B.不断的变更使组件接口之间引起错误C.软件错误在经常使用之后会逐渐增加D.软件通常暴露在恶劣的环境下7.下面说法正确的是A.大多数软件系统是不容易修改的,除非它们在设计时考虑了变化B.由于软件是产品,因此可以应用其他工程制品所用的技术进行生产C.一般来说,软件只有在其行为与开发者的目标一致的情况下才能成功D.购买大多数计算机系统所需的硬件比软件更昂贵8.Ariane 5火箭发射失败的事例告诉我们A.(2)软件后备系统可以通过复制生成B.(3)软件重用必须重新进行系统论证和系统测试C. 选项(1)和(3)D.(1)系统环境的变化可能影响软件采集数据的精度、范围和对系统的控制9.软件危机的主要原因是A.软件本身的特点及开发方法。
B.软件工具落后。
C.软件生产能力不足。
D.对软件的认识不够。
10.下面的描述正确的是A.软件质量是在开发过程中逐渐构建起来的。
B.软件质量是由产品的功能、性能、易用性等外在特性决定的。
C.运行正确的软件就是高质量的软件。
D.软件产品质量越高越好,最理想的情况是达到“零缺陷”。
软件工程期末复习重点

1.软件危机的介绍在计算机软件的开发和维护过程中所遇到的一系列严重问题。
2.产生软件危机的原因与软件本身特点有关:软件开发与维护的方法不正确有关:3.消除软件危机的途径4.软件生命周期由软件定义、软件开发和运行维护3个时期组成,每个时期又进一步划分成若干个阶段。
5.软件定义时期的任务是:确定软件开发工程必须完成的总目标;确定工程的可行性;导出实现工程目标应该采用的策略及系统必须完成的功能;估计完成该项工程需要的资源和成本,并且制定工程进度表。
这个时期的工作通常又称为系统分析,由系统分析员负责完成。
软件定义时期通常进一步划分成3个阶段,即问题定义、可行性研究和需求分析。
6.开发时期具体设计和实现在前一个时期定义的软件,它通常由下述4个阶段组成:总体设计,详细设计,编码和单元测试,综合测试。
其中前两个阶段又称为系统设计,后两个阶段又称为系统实现。
7.维护时期的主要任务是使软件持久地满足用户的需要。
8.软件生命周期每个阶段的基本任务:问题定义、可行性研究,需求分析,总体设计,详细设计,编码和单元测试,综合测试。
9.常用软件模型区别原理:(1)瀑布模型:按照传统的瀑布模型开发软件,有下述的几个特点。
a)阶段间具有顺序性和依赖性:两重含义:段的输出文档正确,后一阶段的工作才能获得正确的结果。
①必须等前一阶段的工作完成之后,才能开始后一阶段的工作;②前一阶段的输出文档就是后一阶段的输入文档,因此,只有前一阶b) 推迟实现的观点瀑布模型在编码之前设置了系统分析与系统设计的各个阶段,分析与设计阶段的基本任务规定,在这两个阶段主要考虑目标系统的逻辑模型,不涉及软件的物理实现。
c)质量保证的观点:软件工程的基本目标是优质、高产。
为了保证所开发的软件的质量,在瀑布模型的每个阶段都应坚持两个重要做法。
每个阶段都必须完成规定的文档,没有交出合格的文档就是没有完成该阶段的任务。
每个阶段结束前都要对所完成的文档进行评审,以便尽早发现问题,改正错误。
软件工程期末复习资料 华南农业大学版

第二章 系统工程
1.基于计算机的系统是指:通过处理信息来完成某些预定义目标而组织在一起的元素的集合或排列。 组成基于计算机系统的元素主要有:软件、硬件、人员、数据库、文档和规程 2.系统工程的任务: (1)识别用户的要求(2)系统建模和模拟:包括硬件系统模型、软件系统模型、 人机接口模型、数据模型; (3)成本估算及进度安排(4)可行性分析(5)生成系统规格说明 3.可行性分析考虑:成本、效益、货币的时间价值、投资回收期析
第四章 设计工程
1.软件设计开始于软件需求的分析和规约之后,位于软件工程过程中的技术核心位置,是把需求转化 为软件系统的最重要环节 2.软件设计是把软件需求变换成软件表示的过程,它主要包含两个阶段:软件体系结构设计阶段和部 件级设计,前者也被称为概要设计,后者被称为详细设计。软件体系结构设计将软件需求转化为数据结构 和软件的系统结构。部件级设计将软件体系结构性元素转化为软件部件的过程性描述,得到软件详细的数 据结构和算法。 3.软件设计原则:抽象、逐步求精、模块化、信息隐藏 4.模块的独立性可以由两项指标来衡量:内聚度与耦合度。内聚度衡量一个模块内部各个元素彼此结 合的紧密程度,耦合度衡量不同模块之间相互依赖的紧密程度 5.内聚:是一个模块内部各个元素彼此结合的紧密程度的度量。内聚可以分为以下 7 中类型: 1)巧合内聚(偶然内聚) :将几个模块中没有明确表现出独立功能的相同程序代码段独立出来建立的 模块称为巧合内聚模块 2)逻辑内聚 :指完成一组逻辑相关任务的模块,调用该模块时,由传送给模块的控制型参数来确定 该模块应执行哪一种功能 3)时间内聚:指一个模块中的所有任务必须在同一时间段内执行。例如初始化模块和终止模块 4)过程内聚 :指一个模块完成多个任务,这些任务必须按指定的过程(procedural)执行 5)通信内聚 :指一个模块内所有处理元素都集中在某个数据结构的一块区域中 6)顺序内聚:指一个模块完成多个功能,这些功能又必须顺序执行 7)功能内聚 :指一个模块中各个部分都是为完成一项具体功能而协同工作,紧密联系,不可分割的 6.耦合:是模块之间的相对独立性的度量。耦合取决于各个模块之间接口的复杂程度、调用模块的方 式以及通过接口的信息类型。耦合方式有其中类型: 1)内容耦合 :如果一个模块直接访问另一个模块的内部数据;或者一个模块不通过正常入口转到另
软件工程40个记忆知识点

1.软件是计算机系统内中与硬件相互依存的另一部分,是包含程序、数据及其相关文档的完整集合,即软件=程序+数据+相关文档。
2.软件按照功能可划分为:系统软件、支持软件、应用软件。
按照规模划分:微型软件、小型软件、中型软件、大型软件和超级软件。
3.软件危机:对软件开发成本的估计不准确,造成开发成本超出预算;开发进度不能保证,交付时间一再拖延;“已完成”的软件不能满足用户需求;软件产品质量没有保证,运算结果出错、操作死机等现象屡屡发生;软件没有适当的文档资料,或文档与最终交付的软件产品不相符,软件的可维护程度非常低;软件开发生产率赶不上硬件的发展和人们需求的增长。
4.软件工程的层次化结构:工具层,方法层,过程、技术层,质量保证层。
5.软件工程是用工程、科学和数学的原则与方法研制、维护计算机软件的有关技术和管理方法。
6.实现软件开发工程化、系统化的方法是软件生命周期法,主要划分为软件项目的准备阶段、开发阶段和运行维护阶段。
软件项目的准备阶段的主要任务是调查和分析:调查用户需求,分析软件系统项目的主要目标和开发该系统的可行性。
开发阶段:①需求分析②软件设计(概要设计、详细设计)③编码④测试运行维护阶段:改正性维护、适应性维护、完善性维护、预防性维护。
7.软件项目的开发模型:瀑布模型、原型模型、螺旋模型。
8.面向对象(对象:是现实世界中个体或者事物的抽象表示,是它的属性和相关操作的统一封装实体。
类、继承、消息)面向对象=对象+类+继承+消息9.需求分析的任务是将用户的需求转变为软件的功能和性能的描述。
软件从外部可以看作黑盒子(功能)计算机所处理的数据域描述为数据内容(数据项)、数据结构(数据线的组织形势)和数据流(数据通过系统的变化方式)。
10.软件的物理模型要给出处理功能和数据结构的实际表示形式,逻辑模型是设备类型和数据结构的存储方式。
11.需求分析步骤:调查研究,获取需求、分析建模,提炼需求、编写需求说明,描述需求、分析评审,验证需求。
软件工程期末考知识点归纳(自制)

需求分析工具,任务,内容需求分析也称为需求工程,是一个非常重要而有很复杂的,需要交替进行,反复迭代的过程。
需求分析过程通过执行初步沟通、需求导出、分析与精化、可行性研究、协商和沟通、规格说明、验证和变更管理八个不同的活动来完成。
非形式技术主要包括会谈、调查表和场景技术,用于获取用户需求和系统需求。
排错调试(debug)又称排错或纠错调试的任务就是根据测试时所发现的错误,找出原因和具体的位置,进行改正调试工作:对错误进行定位并分析原因,即诊断;对于错误部分重新编码以改正错误;重新测试软件项目管理计划的重要方面项目是指一系列独特的、复杂的并相互关联的活动。
项目参数包括项目范围、质量、成本、时间、资源。
项目三维管理:时间维:即把整个项目的生命周期划分为若干个阶段,从而进行阶段管理。
知识维:即针对项目生命周期的各个不同阶段,采用和研究不同的管理技术方法。
保障维:即对项目人力、财力、物力、信息等后勤保障管理。
特点项目管理是一项比较复杂的工作项目管理具有创造性项目管理的对象是项目或被当作项目来处理的作业项目负责人(或项目经理)在项目管理中起着非常重要的作用项目管理需要集权领导和建立专门的项目组织项目管理的方法、工具和手段具有先进性、开放性五个阶段启动阶段:用户提出需求,开发人员进行需求分析,确定可行性,编写项目实施计划。
计划阶段:创建项目范围文档和项目计划,项目范围详细描述项目范围。
实施阶段:实施阶段意味着项目正在进一步设计、编码、测试,小组成员正在创造项目需要的可交付产品。
控制阶段:项目经理开始监督小组成员的工作,将项目的进度、任务和预算控制在正常的范围内。
收尾阶段:项目负责人和用户批准和签署项目,交付产品。
项目的收尾阶段标志着项目的正式结束。
测试目标,执行过程没找到Sa(结构化分析)结果结构化分析方法是一种自顶向下,逐步分解的面向数据和数据流的建模方法。
结构化分析(SA,Structured Analysis)方法是20世纪70年代,由E.Yourdon等人倡导的一种适用于大型数据处理系统的、面向数据流的需求分析方法。
软件工程期末复习必备知识点

一、概念解释1.软件:是程序,数据结构和文档的集合,用于实现系统所需要的逻辑方法、过程和控制。
2.软件危机:是软件开发和维护过程中所遇到的一系列严重的问题。
3.软件周期:是从软件从定义,开发,运行维护到废弃时经历的一个漫长的时期。
4.需求分析:是发现,求精,建模,规格说明和复审的过程。
5,概要设计:通过仔细分析需求规格说明,确定完成系统的模块以及各模块之间的关系,设计出完成预定功能的模块(软件结构),并建立借口。
详细设计:设计完成系统的模块内的算法和数据结构。
6.模块化:将软件划分成可以独立命名的且可以独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能来满足用户的需求。
信息隐藏:一个模块内包含的信息对于一个不需要这些的模块来说是不可访问的。
7.耦合:是一个软件结构内的每个模块互连程度的度量。
内聚:一个模块间各个元素之间的紧密的程度。
8.类:是对有相同数据和相同操作的一组相似对象的抽象描述。
对象:是客观世界中事物的抽象表示,其属性(状态、数据)和相关操作(行为、方法或服务)的封装体;对象之间靠消息传递相互作用。
9.消息:是对象之间相互通信的机制,是某个对象执行其操作的规格说明。
消息传递:一个对象向另一个对象发送消息时,接收消息的对象经过解释、给予响应,这种对象之间进行通信的机制成为消息传递。
10.继承:继承是子类(新类)自动的共享父类(已有类)中定义的数据的操作的机制。
子类可以继承父类的属性和操作;同时子类可以定义自己独有的属性和操作。
子类复用父类的定义,而不修改父类。
继承具有传递性。
多态性:在一个类层次中,不同对象对相同消息做出不同的响应。
11.软件重用:是指同一事物不做修改或者稍加修改就可多次重复使用,软件重用是降低软件开发成本,提高软件开发生产率和质量的有效途径。
12.软件测试:根据软件开发的规格说明和程序的内部结构而设计的一个测试用例,利用这些测试用例去运行程序以发现设计和程序错误的过程。
软件工程复习知识点

1.软件危机的概念,内容,原因及消除的途径;软件危机的概念:软件危机是指在计算机软件的开发和维护过程中遇到的一系列严重问题。
概括地说,软件危机包含两方面问题:如何开发软件,以满足对软件日益增长的需求;如何维护数量不断膨胀的已有软件。
软件危机产生的原因:软件本身的复杂性、难衡量的特点;2.软件开发与维护的方法不正确。
消除软件危机的途径:(1)对计算机软件应当有一个正确的认识;(2)应当有组织、有计划、通过严格的管理手段进行软件的开发;(3)及时总结软件开发的成功技术和方法并加以推广;(4)开发和使用更好的软件工具;总之,为了解决软件危机,既要有技术措施,又要有必要的组织管理措施。
2.软件工程的定义,基本原理;定义:软件工程是指导计算机软件开发和维护的一门工程学科。
基本原理:软件工程的7条基本原理:(1)用分阶段的生命周期计划严格管理(2)坚持进行阶段评审(3)实行严格的产品控制(4)采用现代程序设计技术(5)结果应能清楚地审查(6)开发小组的人员应该少而精(7)承认不断改进软件工程实践的必要性3.软件工程方法学的基本概念、内容;基本概念:把在软件生命周期全过程中使用的一整套开发和管理技术方法的集合成为软件工程方法学,也称为范型。
软件工程方法学包含3个要素:方法、工具和过程。
内容:目前使用得最广泛地软件工程方法学,分别是传统方法学和面向对象方法学。
传统方法学也称为生命周期方法学或结构化范型。
4.软件生命周期的具体内容,每一个阶段的任务是什么?结合具体的工程例子来理解做软件项目主要分那几个个阶段。
①问题定义:确定要求解决的问题是什么②可行性研究:决定该问题是否存在一个可行的解决办法③需求分析:深入了解用户的要求,在要开发的目标系统必须做什么问题和用户取得完全一致的看法。
④概要设计:概括回答怎样实现目标系统。
概要设计又叫逻辑设计、总体设计、高层设计。
⑤详细设计:把解法具体化,设计出程序的详细规格说明。
详细设计也叫模块设计、底层设计。
软件工程期末复习资料(2)

软件工程复习资料一、选择题,请从四个可选项中选择正确答案。
1.软件工程学科出现的主要原因是()。
A.计算机的发展B.其他工程科学的影响C.软件危机的出现D.程序设计方法学的影响2、()是职业软件工程师的必要条件。
A.自律、善于沟通、具有一定的软件技能B.编程速度快C.熟悉众多的软件环境D.语言天赋3.在E-R模型中,包含以下基本成分()。
A.数据、对象、实体B.控制、联系、对象C.实体、属性、联系D.实体、数据、联系4.软件需求分析产生一个重要文档是()。
A.软件维护说明书B.需求规格说明书C.可行性报告D.初步用户手册5.内聚程度较低的是()。
A.通信内聚B.过程内聚C.顺序内聚D.时间内聚6.概要设计是软件系统结构的总体设计,以下选项中不属于概要设计的是()A.把软件划分成模块B确定模块之间的调用关系C.确定各个模块的功能D.设计每个模块的伪代码7、程序流程图与数据流程图的关系()。
A.不确定B.数据流程图可以转换成程序流程图C.数据调用关系D.程序流程图可以转换成数据流程图8.对象实现了数据和操作的结合,使数据和操作()于对象的统一体中。
A.结合B.隐藏C.封装D.抽象9.类有3种类型,即()。
A.边界类、实体类、控制类B.实体类、控制类、界面类C.控制类、实体类、虚类D.界面类、控制类、公共类10.()是一般化类与特殊化类之间的一种关联形式,设计时应该适当使用这种耦合。
A.消息连接B.参数传递C.方法重写D.继承11、软件工程的研究内容具有层次化结构,最底层是质量保证层,中间层是(),最上层是工具层。
A.过程层B.方法层C.过程层和方法层D.系统层12、可行性研究的四大要素是()。
A.经济、技术、法律和社会环境B.经济、技术、开发组织能力和领导者水平C.经济、技术、计算机硬件环境和网络带宽D.经济、技术、软件开发工具和人员的稳定性13、针对需求不确定的软件开发,比较好的模型是()。
A.快速原型化模型B.瀑布模型C.软件成熟度模型D.系统化模型14.下面的哪个选项不是软件工程的宗旨()。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程期末复习笔记一.基本概念1.什么是软件工程?答:见作业2.什么是参与者,角色?答:所有参与到软件项目中的人员称为参与者。
把项目或系统的一组职责称为角色。
一个角色与一组任务联系在一起,且被派给一个参与者。
一个参与者能充当多个角色。
3.系统和模型。
系统指内部关联部分的集合。
模型指系统的任何抽象。
4.软件工程开发活动:开发活动通过构造和验证应用域模型或系统模型处理复杂性问题,开发活动包括:需求获取、分析、系统设计、对象设计、实现、测试。
二.基本概念(2)1.系统开发的主要内容集中在系统的3个不同模型上:功能模型,在MUL中,使用用例图表示功能模型,以从用户观点描述系统功能。
对象模型,在MUL中,使用类图表示对象模型,使用对象、属性、关联和操作来描述系统的结构。
动态模型,在UML中,使用交互图、状态图和活动图表示动态模型,以描述系统的内部行为。
2.用例模型(功能模型)2.1用例模型=用例文档+用例图2.2用例间的关系:用例之间的关系关联(association )、包含(include)、扩展(extend)和泛化(generalization)这几种关系。
关系关联(association ):通信1.表示参与者用例之间进行通信。
2.不同的参与者可以访问相同的用例。
包含(include):把它所包含的用例行为作为自身行为的一部分。
扩展(extend):扩展用例被定义为基础用例的增量扩展。
基础用例提供扩展点以添加新的行为。
扩展用例提供插入片段以插入到基础用例的扩展点上泛化(generalization):继承2.3 用例文档包括的内容:1.用例名。
2.范围。
3.级别。
4.主要参与者。
5.涉众及其关注点。
6.前臵条件7.后臵条件8.主事件流9.备用事件流。
3.类图(对象模型)3.1类是面向对象系统组织结构的核心。
对一组具有相同属性、操作、关系和语义的对象的抽象。
包括名称部分(Name)、属性部分(Attribute)和操作部分(Operation)。
3.2类之间的关系 1.依赖关系2.泛化关系3.关联关系4.实现关系1.依赖关系表示两个或多个模型元素之间语义上的关系。
例如:客户以某种形式依赖于提供者。
关联、实现和泛化都是依赖关系。
2.泛化关系描述了一种“is a kind of”的关系。
3.关联关系包括:名称(Name)角色(Role)多重性(Multiplicity)一对一,一对多,多对多。
聚合关系(Aggregation)(一个类由多个类组成,has a关系)组合关系(Composition)聚合关系中的一种特殊情况,是更强形式的聚合,又称强聚合。
成员对象的生命周期取决于聚合的生命周期。
聚合不仅控制着成员对象的行为,而且控制着成员对象的创建和解构导航性(Navigation)4.实现关系4.时序图(同一个用例中的变迁)表示单一用例间的一组对象之间的交互强调消息时间顺序的交互图。
时序图描述了对象之间传送消息的时间顺序,用来表示用例中的行为顺序。
5.状态图状态图表示了单一对象(或者是一组连接非常紧密的对象)的行为。
,是一个对象的状态的变迁。
三.项目组织和沟通1.一个项目的沟通涉及计划内沟通和计划外沟通,其中计划内沟通包括:1问题检查。
2现状通报会议。
3通报情况会议。
4客户和项目检查。
5发布。
计划外沟通包括:1澄清需求(需求澄清是指澄清有关任何使得系统看上去存在二义性的内容)2变化需求。
(需求变化指参与者报告问题或者是提出解决方案。
)3问题解决。
(提出问题,找到问题解决方案评审并上报后,选择一个解决方案,并进行必要的沟通和实现。
)四.需求获取1.需求工程的目标是定义所构造系统的需求。
需求工程包括两个主要活动:第一,需求获取,导出用户可理解的系统规格说明;第二,分析,其结论是给出开发者无二义理解的模型2.需求获取需求获取包括以下活动:●标识参与者标识出未来系统将支持的不同用户类型。
(自然人,软/硬件实体)●标识场景对未来系统的典型功能用一组带有细节的场景来描述。
(使用某一功能的具体过程)●标识用例从场景中抽象出用例。
●求精用例细化每一个用例和描述面临错误和异常条件时系统行为。
●标识用例之间关系标识出用例之间的依赖关系。
●标识初始分析对象建立用例的术语表●标识非功能性需求如:性能上约束、文档、资源、安全性、质量等。
3.绿地工程没有现存系统存在,开发过程从草稿开始,需求从用户和客户出提取。
再工程对一个现存系统的再设计和再实现。
界面工程对一个现存系统的用户界面的再设计。
五.分析(建模)1.分析关注系统模型的产生,这一模型称为分析模型,该模型必须正确、完全、一致和可确认。
分析模型由三个独立模型构成:●通过用例和场景表示的功能模型。
●通过类和对象图表示的分析对象模型。
●通过状态图和顺序图表示的动态模型。
2.实体对象表示系统将跟踪的持久性信息。
边界对象表示参与者与系统之间的交互。
控制对象负责用例实现。
3.分析活动3.1标识实体对象3.2 标识边界对象3.3 标识控制对象3.4 使用顺序图将用例映射成对象3.5 使用CRC卡建模的对象之间的交互3.6 标识关联(类与类之间的关系)3.7 标识聚集(表示整体—部分的关系,用钻石符号,实心钻石符号表示组合聚集,部分的存在依赖于整体,空心钻石表示共享聚集,部分和整体可以独立的存在)3.8 标识属性3.9 建模单一对象状态相关的行为(方法)3.10 建模对象之间的继承关系(用空心箭头指向父类)六.系统设计:分解系统1.系统设计是将系统分析模型变换到系统设计模型。
系统设计后,得到的是一个包括子系统分解和每个策略的清晰描述模型。
2.系统设计包括活动:●标识系统目标。
开发者标识并区分应进行优化的各种系统属性的优先次序。
(可靠性。
容错性。
安全性。
可修改性)●设计初始子系统分解。
根据用例和分析模型,开发者将系统分解成一些小的部分。
●分解求精子系统以对应设计目标。
初始的分解大多不能满足所有的设计目标。
开发者必须不断分解求精,直到所有的设计目标都被满足为止。
3.耦合用于度量子系统之间的依赖程度。
内聚用于度量子系统中类之间的依赖程度。
(耦合度越小越好,内聚越大越好)。
分层将系统看成是由多个子系统按一定层次组织起来的,每一层通过使用低层子系统服务,为上一层的子系统提供服务(层是有序的)。
划分是将多个子系统组合成多个对等的实体,这些对等实体相互提供服务。
4.体系结构七.系统设计(选择设计目标)1 将子系统映射到处理器和构件,选择硬件配臵与平台2 标识并存储持久性数据2.1标识持久性数据,我们可以通过检查所有在系统关闭之后必须保存的类,来标识持久性对象。
长期储存的2.2选择存储管理策略,有三种选择来进行存储管理:●平面文件。
这种文件是由操作系统提供的存储对象。
●关系数据库。
数据按照预先定义好的模式类型存储在表中。
表中的每一列代表一个属性。
每一行代表一个属性元组值的数据项。
个别对象的属性,则用不同表中的元组来展示。
●面向对象数据库。
以对象和关联的方式来存储数据。
出了提供一个上层抽象外,面向对象数据库为开发者提供了继承和抽象类型。
3 提供访问控制,访问权限4 设计全局控制流有3种可能的控制流机制:●过程驱动的控制。
例如,一个操作需要从一个参数那里获得数据,该操作不得不等待这些数据的输入。
●事件驱动的控制。
一个主循环等待一个外部事件。
●线程。
线程是过程驱动控制的并发单元。
5 标识边界条件5.1边界条件标识决定系统如何启动,如何初始化和如何关闭,同时还需要定义在数据发生故障和网路断开等情况下,如何处理失败。
我们把负责处理这些条件的用例称为边界用例。
边界用例有哪些:●配臵。
对每一个持久性对象,我们应该检查持久性对象在哪个用例中被创建、撤销(存档)。
●启动与关闭。
对每一个构件,我们增加3个用例来启动、关闭和配臵构件。
●异常处理。
对于每一个类型的构件失败,系统如何进行反应,由开发者决定。
通过使用异常用例,对这些决定进行文档化,这些异常用例是通过对在需求过程中标识的一般用例进行扩展而得到。
5.2一般来说,一个异常是在系统执行过程中发生的一个事件或者错误。
导致异常的不同原因主要有三个:●硬件失败。
硬件老化和失败。
●操作环境改变。
如果超出了发射器范围,无线移动系统就会失去连接。
●软件失败。
异常处理是系统对异常所做出的反应机制。
八.对象设计:复用模式解决办法1.对象设计包括:●重用(Reuse),标识商业外购构件和设计模式以利用已有的解决方法。
(复用别人的额,和把自己的做好的东西为他人复用而做准备)(第八章)●服务规格说明(Server Specification),在这个过程中,精确地描述每一个类接口。
(第九章)●对象模型重构(Object Model Restructuring),改进对象设计模型,提高该模型的可读性和扩展性。
●对象模型优化(Object Model Optimization),改进对象设计模型来标识性能标准,例如系统的响应时间和存储空间利用率等。
2.说明继承,即接口继承,只继承签名,没有继承任何实现代码。
3.实现继承,子类继承基类所有成员函数和字段。
4.授权,一种可供选择的实现继承的办法,授权不干涉现存构件且会产生更健壮的代码。
5.Liskov替换准则,Liskov替换准则能够为接口的规格说明提供一个形式化的描述。
它的本质是,如果客户代码使用了由某个父类提供的方法,那么开发者就能够新增子类而不用对代码做任何改变(子类型必须能替换它们的基类型。
)6.设计模式(是开发者通过长时间地求精,从而得到的解决重复出现问题的模板化解决方案)6.1一个设计模型包括4个要素:Name(名字),用来将一个设计模式与其他设计模式区别开。
Problem description(问题描述),用来描述该设计模式适用于何种情况。
Solution(解决方案),描述了解决该问题需要的、结合在一起的类和接口的集合。
Consequences(结果),描述了将要解决设计目标的协议和可供选择的办法。
6.2设计模式中出现的不同类:●客户类(Client Class),用来访问模式。
●模式接口(Pattern Interface),模式接口是模式中对客户可见的部分。
●实现类(Implementor Class),该类实现了模式中较低层次的类。
扩展类(Extender Class),扩展类是指为了实现一个不同操作,或者是实现模式的一个扩展活动而将一个实现类特殊化。
7.常见的设计模式8.桥梁模式原理(详见作业)9.九.对象设计:说明接口(接口:操作)1 类实现者、类扩展者和类使用者●类实现者(class implementor)负责实现待实现的类。
●类使用者(class user)在其它类的实现过程中,调用由待实现类所提供的操作,这个类成为客户类。