版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1. 软件:软件是能够满足预定义的功能和性能的可执行的计算机程序,包括使程序正常执行所需要的输入数据以及相关的使用文档。2. 软件工程的基本原理:a) 清晰第一,效率第二b) 设计先于编码c) 使程序的结构适合于问题的结构d) 开发伴随复用,开发为了复用3. 软件危机:指在软件开发过程中所遇到的一系列的问题。4. 软件危机的原因:a) 软件维护费用过高,直接威胁计算机应用的扩大b) 软件生产技术发展缓慢,进一步加剧了软件危机5. 软件的特征:a) 软件的开发不同于硬件的设计b) 软件的生产不同于硬件的制造c) 软件的维护不同于硬件的维修6. 软件工程从第一代开始已经发展到了第三代,编程范型也经
2、历了三次的演变a) 过程式编程范型:着眼于程序的过程和基本控制结构,粒度最小b) 面向对象编程范型:着眼于程序中的对象c) 基于构件技术的编程范型:着眼于适合整个领域的类对象用编程粒度的大小比较三种编程范型的差异。7. 软件工程学的范畴a) 软件开发技术i. 软件开发方法学ii. 软件工具(帮助开发软件的软件)iii. 软件工程环境(方法与工具相结合,再加上配套的软、硬件支持就形成环境)b) 软件工程管理i. 软件经济学ii. 软件管理学iii. 软件度量学软件工程管理的目的是为了按照进度及预算完成软件计划,实现预期的经济和社会效益。7. 软件生存周期:软件产品从形成概念,经过开发、使用和维护
3、,直到最后退役的全过程。8. 软件生存周期一般划分为:计划、开发、运行三个阶段。9. 将软件生存周期划分为若干个阶段的意义将软件生存周期划分为若干个阶段,每一个阶段只赋予有限的活动,这就使因软件规模大大增长而带来的软件复杂性变得容易控制和管理。10. 传统的瀑布模型软件生存周期的划分阶段:a) 需求分析b) 软件分析c) 软件设计d) 编码e) 软件测试f) 运行维护11. 瀑布模型(一种基于软件生存周期的线性开发模型)的特点:a) 阶段间的顺序性和依赖性i. 顺序性:只有前一阶段的开发工作完成后,后一阶段才能进行ii. 依赖性:前一阶段的输出文档是后一阶段的输入文档b) 推迟实现的观点:瀑布
4、模型是一种线性模型,过早的编码容易导致返工。所谓推迟实现是指将待开发软件的逻辑设计和物理实现区分开来,即在需求分析和软件设计阶段只考虑系统的逻辑模型,等到编码阶段再完成实现。c) 保证质量的观点:i. 每一阶段都必须要完成规定的文档,不然不能视为完成该阶段的任务ii. 每一阶段都要对完成的文档进行复审,以便尽早发现问题。d) 存有问题,风险滞后释放,不适合大型软件的开发12. 瀑布模型存在的问题a) 不适合于需求模糊的系统b) 滞后的风险释放13. 快速原型模型定义:先建立一个满足用户主要需求的原型,让用户了解整个软件的概貌,以便判断哪些功能是需要的,哪些方面还需要改进。然后在此原型的基础上进
5、行开发,直到建立起满足用户全部功能的软件系统。14. 一个关键的问题:到底用户最终的需求是什么? 术业有专攻,用户不懂计算机,软件系统分析员对用户的专业也往往不了解,所以在开发的初始阶段很难弄清用户的需要到底是什么。15. 增量模型是瀑布模型的顺序特征和快速原型模型的迭代特征相结合的产物。增量模型将软件视作一系列相互联系的增量,每一次的迭代过程,采用瀑布模型或快速原型模型完成对一个增量的开发。16. 螺旋模型:目前软件开发中最常用的一种软件开发模型,适合于大型软件的开发。17. 当项目按顺时针方向沿螺旋线移动时,每轮螺旋均包含一下内容:a) 计划b) 风险分析c) 建立原型d) 用户评审按以上
6、顺序螺旋线周而复始,直到最后实现产品。螺旋模型每一次迭代过程都需要进行一次风险分析。18. 构件集成模型构件是经过适当设计和实现的类。19. 净室模型是一种形式化的增量开发模型。其基本思想是力求在分析和设计阶段消除错误,确保正确,然后在无缺陷或“洁净”的状态下实现软件的制作。20 转换模型:将形式化软件开发和程序自动生成技术相结合的一种软件开发模型。(自动或半自动的程序变换)21.软件工程开发模型e) 传统的软件工程i. 瀑布模型ii. 快速原型模型f) 软件演化模型:i. 增量模型ii. 螺旋模型iii. 构件集成模型g) 形式化方法模型i. 转换模型ii. 净室模型22.7种软件开发模型的
7、特点及适用场合A. 瀑布模型是一种线性开发模型,每一阶段必须完成规定的文档。适用于需求明确的中、小型软件开发B. 快速原型模型:用户介入早,采用快速开发工具,通过迭代完善用户需求。适合于需求模糊的小型软件开发C. 增量模型:每次迭代完成一个增量,可用于OO开发。适合于容易分块的大型软件开发。D. 螺旋模型:典型的迭代模型,重视风险分析,可用于OO开发。适合于具有不确定性的大型软件开发E. 构件集成模型:软件开发与构件开发平行进行,主要用于OO开发。适用于领域过程、行业的中型软件开发。F. 转换模型:形式化的需求规格说明书,自动的程序变换系统。适用场合:理想化模型,尚无成熟工具支持。G. 净室模
8、型:形式化的增量开发模型,在洁净状态下实现软件制作。适合场合:开发团队熟悉形式化方法,中小型软件开发。23. 软件可行性的研究:a) 经济可行性b) 技术可行性c) 运行可行性d) 法律可行性24. 可行性研究的目的是弄清待开发的项目是不是可能实现和值得开发,通常由系统分析员完成,并需写出可行性论证报告。25. 统一过程概念:统一过程描述了软件开发各个环节中应该做什么,怎么做,什么时候做已经为什么要做,描述了一组以某种顺序完成的活动。26. 结构化分析与设计由结构化程序设计扩展而来。结构化设计(SD)的软件设计技术,结构化分析技术(SA)。27. 结构化分析SA有两项基本任务:a) 建立系统分
9、析模型b) 编写软件需求规格说明书SRS。SRS是分析阶段编写的,以文字为主的文档。28. SA模型的组成:a) 数据字典(DD):处于模型的核心部分,是系统涉及到的各种数据对象的总和。b) 实体联系图ER图:用于描述数据对象间的关系。c) 数据流图DFD:主要作用是指明系统中的数据是如何流动和变换的,以及描述使数据流进行变换的功能。d) 状态变换图STD:用于指明 系统在外部事件作用下将如何动作,表明系统的各种状态以及状态间的转换。e) 数据对象说明f) 加工规格说明(PSPEC)g) 控制规格说明 (CSPEC)29. 数据流图的组成符号:a) 圆框表示 数据加工(其中的内容还应进行编号)
10、b) 方框表示 数据源点和终点c) 箭头表示 数据流(单箭头表示只读或只写,双向表示又读又写,箭头的方向表示从文件读出)。d) 双杠或单杠表示 数据文件或数据库30. 数据字典a) 定义:关于数据信息的集合,对数据流图中的每个元素作完整的定义与说明b) 功能:对软件中的每个数据规定一个定义条目。c) 组成:i. 数据流(由多个数据项组成)ii. 数据文件iii. 数据项 加过规格说明:通常用结构化语言、判定表或判定树作为描述工具。31. 结构设计模型SD由结构分析模型SA映射而来。体系结构设计用来确定软件结构,其描述工具为结构图(structure chart),简称SC图。32. 在SC图中
11、,用矩形表示模块,带箭头的连线表示模块间的调用,并在调用线的两旁标出传入和传出模块的数据流。SC图允许使用6种模块。33. 软件设计目前的两种主流方法:基于结构化程序设计的结构化软件设计,基于面向对象技术的面向对象软件设计。34. SD模型的组成:a) 过程设计b) 接口设计c) 体系结构设计d) 数据设计35. 结构化系统分析就是使用DFD,DD,结构化英语,判定表,判定树等工具,来建立一种新的,称为结构化说明书的目标文档。36. 结构化分析的基本步骤:a) 自顶向下,进行功能分解,画出分层DFDb) 由后向前,定义系统的数据和加工,编制DD和PSPECc) 根据需要,建立复杂的数据模型d)
12、 编写SRS37. 为什么对DFD分层(画分层数据流图)对于大型规模的软件系统,可能会有成百上千个DFD图,不可能一次将所有的DFD图画完,所以必须要从系统的基本模型开始,对系统逐层进行分解。38. 分层DFD的优点:a) 便于使用b) 便于实现39. 结构化软件的设计通常从DFD图到SC图的映射开始。40. 从SA获得的DFD,所有系统都可以归结为变换型结构和事务型结构。a) 变换型结构:只有一个传入路径,变换中心和传出路径组成。b) 事物型结构:由至少一条接受路径,一个事务中心和若干条动作路径组成。当外部信息沿着接受路径进入系统后,进过事务中心获得某一个特定的值,就能据此启动某一条动作路径
13、。41. 优化初始SC图的指导准则a) 对模块划分的原则b) 高扇入/低扇出的原则。(扇入高,则上级模块多,能够增加模块的利用率;扇出低,则表示下级模块少,可以减少模块调用和控制的复杂度)42. 模块化设计的原则与方法a) 清晰第一的设计风格b) 结构化的控制结构c) 逐步细化的实现方法。43. 需求分析的步骤:需求获取;需求提炼;需求描述;需求验证。44. 需求分析的任务:a) 需求分析主要有两个基本任务:一是根据对用户问题的分析、理解和综合建立分析模型;二是在全面理解用户对系统的明确定义的基础上,通过软件需求规格说明书SRS来描述用户需求。45. 分析阶段的任务是决定设计一个什么样的系统,
14、即解决系统做什么的问题,而不是去刻画系统如何做。面向对象的软件工程1. 对象是现实世界中个体或事物的抽象,具有特征和服务功能2. 类是一组对象集合的描述,这些对象具有共同的属性、操作、关系和语义解释3. 面向对象的基本特征:a) 抽象:忽略主题中与当前目标无关的因素,把充分的注意力放在与当前目标相关的因素上b) 封装:将数据和操作包围起来,对数据的操作只能通过已定义的类接口实现c) 继承:新的类可以从已有的类中派生出来d) 多态:不同类的对象可以对同一消息做出响应,执行不同的处理。4. 面向对象的优点:a) 提高软件的可扩展性b) 提高软件的可维护性c) 提高软件的可复用性d) 容易建造模型,
15、更密切的映射现实世界5. UML是一种基于面向对象的可视化建模语言,它提供了丰富的以图形符号表示的模型元素,这些标准的图形符号隐藏了UML 的语法,而由这些图形符号组成的各种模型表示了UML 的语义。6. UML的两种模型元素:一类模型元素用于表示模型中的某个概念;另一类用于表示模型元素之间相互连接的关系。7. 按照UML 的语义,UML模型可定义为4个抽象层次(从低到高):元元模型、元模型、模型、用户模型。8. 元元模型定义了描述元模型的语言,它是任何模型的基础;9. 元模型定义了用于描述模型的语言,它组成了UML的基本元素。10. 模型定义了用于描述信息领域的语言,它组成了UML 的模型1
16、1. 用户模型是模型的实例,它用于表示一个模型的特定情况。(UML中用名称下面带有下划线表示实例)12. UML的九种图a) 静态建模:i. 用例图:描述系统的功能ii. 类图:描述系统的静态结构iii. 对象图:描述系统在某个时刻的静态结构iv. 构件图:描述系统元素间的组织v. 部署图:描述系统环境元素的配置b) 动态建模:状态图:描述系统元素的状态条件和响应时序图:按时间顺序描述系统元素间的交互协作图:按照连接关系描述系统元素间的交互活动图:描述系统元素的活动流程13. 用例图可描述软件系统和外部参与者之间的交互。用例图通常包含系统边界、用例、参与者和关联等组成符号。系统边界以一个矩形表
17、示,上方标注系统名称,内部包含一个或多个用例;每个用例由一个椭圆形表示,其中标上用例的名称;参与者用一个人形的符号表示;参与者和用例之间或用例和用例之间的关联均用直线表示。14. 用例是一组动作序列及其变体的描述。15. 消息是对象间通信的规约,对象间的交互通过对象间的消息传递完成。16. UML定义的消息有三种:简单消息;同步消息;异步消息。17. 状态图用于描述一个特定对象的所有可能状态以及引起状态迁移的事件。18. 时序图用与描述对象之间的动态交互,着重体现对象间消息传递的时间顺序。它以垂直轴表示时间,水平轴表示不同的对象。对象用一个带有垂直虚线的矩形框表示,并标有对象名和类名。垂直虚线
18、是对象的生命线,用于表示在某段时间内对象是存在的。对象间的通信在对象的生命线间通过消息符号来表示,消息的箭头指明消息的类型。19. 协作图用于描述相互协作的对象间的交换和链接。20. UML的特点:a) 统一标准b) 面向对象c) 表达能力强大、可视化21. 软件需求主要指一个软件系统必须遵循的条件或具备的能力。软件需求可以从两方面描述:a) 系统的外部特性:用户解决问题或达到目标所需的条件或能力。b) 系统的内部特性:系统为了满足合同、规范或其他规定文档所需具有的条件或能力。22. 需求分析的步骤:a) 需求获取b) 需求建模c) 需求描述d) 需求验证23. 面向对象的需求建模a) 画用例
19、图i. 确定参与者(参与者泛指所有存在于系统外部并与系统交互的人、硬件或其他系统。参与者主要是开发系统的使用者)ii. 确定用例iii. 绘制和检查用例图b) 写用例规约i. 用例规约一般包含:1. 简要说明2. 事件流3. 特殊需求4. 前置条件和后置条件c) 描述补充规约i. 补充规约用于记录在用例模型中不宜表述的系统需求。24. 如何确定参与者:a) 系统开发完成后,有哪些人使用该系统b) 系统需要从哪些人或系统中获得数据c) 系统会为那些人或其他系统提供数据d) 系统会与哪些系统相关联e) 系统由谁来维护和管理25. 需求管理是伴随着软件需求的发展而成长起来的管理技术。需求管理的5个实
20、践:a) 获得对需求的理解b) 获取需求承诺c) 管理需求变更d) 在需求变更后维护对需求的双向可追溯性e) 标识项目工作与需求的不一致性面向对象分析1. 面向对象分析OOA的首要任务:a) 首先要理解用户的需求,包括全面理解和分析用户需求,明确所开发的系统的职责,形成文件并规范的加以表述b) 然后进行分析,提取类和对象,并结合分析进行建模。其步骤是:标识类,定义属性和方法;刻画类的层次;表示对象以及对象与对象之间的关系;对象的行为建模。这些步骤可反复进行,直至完成建模。结构化分析SA有两项基本任务:a) 建立系统分析模型b) 编写软件需求规格说明书SRS。SRS是分析阶段编写的,以文字为主的
21、文档。2. P 139 SA、OOA模型。3. 分析类的查找:a) 边界类对象担负着协调用例与参与者之间进行交互的职责。一对(用例/参与者)对应一个边界类b) 为每个用例设置一个控制类c) 实体类:需要长期存储的数据面向对象设计1. 模块:模块是一个拥有明确定义的输入、输出和特性的程序实体2. 模块化设计的目的是按照规定的原则把大型软件划分为一个个较小的、相对独立但相互关联的模块3. 分解和模块独立性是模块化设计的两个重要指导思想。a) 分解b) 模块独立性:概括了把软件划分为模块时所要遵守的准则。4. 模块独立性从两个方面度量:模块本身的内聚和模块间的耦合a) 内聚指模块内部各个成分之间的联
22、系b) 耦合指一个模块和其他模块间的联系5. 内聚是从功能的角度对模块内部聚合能力的度量a) 偶然性内聚(在组成成分上互不相关,内聚程度最弱)b) 逻辑性内聚c) 时间性内聚d) 过程性内聚e) 通信性内聚f) 顺序性内聚g) 功能性内聚(块内联系最强的内聚,所有成分结合在一起,用于完成一个单一的功能)6. 耦合是对软件内部块间联系的度量:a) 非直接耦合b) 数据耦合c) 特征耦合d) 控制耦合e) 外部耦合f) 公共耦合g) 内容耦合7. 面向对象设计的任务a) 系统架构设计i. 系统高层结构设计ii. 确定设计元素iii. 确定任务管理策略iv. 确定分布式实现机制v. 确定数据存储策略
23、vi. 设计人机交互界面b) 系统元素设计i. 确定类/对象ii. 确定子系统iii. 确定包8.软件维护1. 软件维护是指系统在交付运行以后,为改正或满足新的需要所进行修改的过程。2. 软件维护是软件生存周期中花钱最多,延续时间最长的环节。3. 软件维护的类型a) 完善性维护(在整个维护工作量中,占比高达50%60%,居于第一位):不断改善和加强产品的功能和性能,以满足用户日益增长的需要。b) 适应性维护:指使软件适应运行环境的改变而进行的一类维护c) 纠错性维护:纠正在开发期间未能发现的错误d) 预防性维护:改善软件的可维护性,减少今后对它们维护时所需要的工作量。4. 可维护性:衡量维护容
24、易程度的一种软件属性。可维护性取决于软件的可理解性、可修改性和可测试性,三者一起构成软件的质量属性。5. 软件再工程:所谓软件再工程是指将新技术和新工具应用于老的软件的一种较“彻底”的预防性维护。软件测试1. 软件测试是动态查找程序代码中的各类错误和问题的过程。2. 测试的目的是为了发现程序中的错误;纠错的目的是为了定位和改正程序中的错误。3. 测试的任务是通过在计算机上执行程序,暴露其中潜在的错误;纠错的任务是消除软件故障,保证程序的可靠运行。4. 测试用例:一次程序执行所需要的测试数据称为一个测试用例。5. 测试用例 := 测试数据+期望结果,测试结果:=测试数据+期望结果+实际结果6.
25、测试的特性:a) 挑剔性:测试是为了证明程序有错而不是为了证明程序没有错误。只有抱着证明程序有错的目的去测试,才能把程序中潜在的所有错误都找出来。b) 复杂性:测试用例的设计需要细致和高度的技巧。c) 不彻底性:程序测试只能证明程序错误的存在,不能证明错误不存在。其根本原因在于在实践中无法进行穷举测试,即将所有的输入情况在被测程序下执行一遍。d) 经济型:要选择典型的、有代表性的测试样例。7. 测试的方法:a) 静态分析法(并非由计算机执行)i. 静态分析器分析ii. 人工审查法1. 代码会审2. 走查法3. 办公桌检查b) 动态分析法i. 黑盒测试(测试系统的功能)ii. 白盒测试(测试系统的结构)8. 黑盒测试:将待测试对象视作一个黑盒子,测试人员不考虑系统内部的逻辑结构和内在特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。9. 黑盒测试的四种技术:a) 等价分类法b) 边界值分析法c) 错误猜测法d) 因果图法10. 白盒测试:将测试对象视作一个透明的盒子,测试人员可以根据系统的内部特性和逻辑结构设计测试样例,对程序的所有逻辑路径
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年信息技术设备采购合同细则解析3篇
- 2024版二手集资房买卖合同-附带房屋产权变更登记手续3篇
- 2024年度网络安全防护设计与实施劳务分包合同3篇
- 2024年手机配件品牌代理销售合同范本3篇
- 2024安置房买卖合同协议书(含装修方案审批)2篇
- 2024年版综合办公地点租赁合同含法律顾问及人力资源服务2篇
- 我长大了心理健康教育
- 2024年度采购合同医院医疗设备采购
- 2024年度赡养老人生活品质保障协议3篇
- 2024年复婚时财产分割协议3篇
- 学校新生结核病筛查安排剖析
- 政工类人员培训课件
- 2024年大学试题(财经商贸)-博弈论笔试历年真题荟萃含答案
- 监狱积分考核工作总结
- 影视鉴赏-第六章-影视艺术的鉴赏与评论
- 全科医师师资培训课件
- 优化营商环境重点知识讲座
- 城市营销方案书
- 双闭环直流调速系统-
- 中国老年教育发展的背景和历史回顾
- 人工智能原理与方法智慧树知到课后章节答案2023年下哈尔滨工程大学
评论
0/150
提交评论