软件工程复习.doc

上传人:枫** 文档编号:548086391 上传时间:2023-04-13 格式:DOC 页数:7 大小:48.51KB
返回 下载 相关 举报
软件工程复习.doc_第1页
第1页 / 共7页
软件工程复习.doc_第2页
第2页 / 共7页
软件工程复习.doc_第3页
第3页 / 共7页
软件工程复习.doc_第4页
第4页 / 共7页
软件工程复习.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《软件工程复习.doc》由会员分享,可在线阅读,更多相关《软件工程复习.doc(7页珍藏版)》请在金锄头文库上搜索。

1、1 软件生存周期概念:指一个从用户提出软件需求开始,经过开发、交付使用,在使用中不断地增补、修订、直至软件报废的全过程。2 软件危机的定义:落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。3 软件工程过程:1) 软件规格说明:规定软件的功能及其运行环境。2) 软件开发:产生满足规格说明的软件。3) 软件确认:确认软件能够完成客户提出的要求。4) 软件演进:为满足客户的变更要求,软件必须在使用的过程中演进。4 软件过程模型:1) 瀑布模型:无法解决软件需求不明确或者变动的问题。2) 增量模型:具有较大的灵活性,适合与软件需求不明确、设计方

2、案有一定风险的软件项目。3) 螺旋模型:加入风险分析,提高软件质量,避免不必要的资源浪费。4) 喷泉模型:开发过程中具有迭代性和无间隙性,具有软件重用和多项开发活动集成,在分析阶段耗费资源较多,但从高层返回底层无资源消耗。5) 智能模型:适用于一些具有较高或者较好知识层面的软件开发者,开发具有一定难度的软件系统。5 软件的概念和提点:1) 概念:软件是程序,以及开发、使用和维护程序所需的所有文档。文档是由应用程序,系统程序面向用户的文档及面向开发者的文档四部分构成的。2) 软件的特点:1. 软件是一种逻辑实体,不是具体的物理实体。2. 软件产品的生产过程主要是研制。3. 软件具有“复杂性”,其

3、开发和运行常受到计算机系统的限制。4. 软件成本杨贵,其开发方式目前尚未完全摆脱手工生产方式。5. 软件不存在磨损和老化问题,但存在退化问题。6 软件需求的任务:1) 确定系统的综合要求:1. 确定系统功能要求:确定系统必须完成的所有功能。2. 确定系统性能要求:系统性能根据系统应用领域的具体需求确定。3. 确定系统运行要求:主要是对系统运行时的环境要求。4. 将来可能提出的要求:对将来可能提出的扩充及修改预先做准备。2) 分析系统的数据要求:1. 数据要求:比如需要那些数据,数据之间联系,数据性质,结构等。2. 数据处理要求:包括处理的类型、处理的逻辑功能等。3) 到处系统的逻辑模型比方采用

4、结构化分析方法,面向对象的分析方法,用例模型是首选的描述工具。4) 修正系统的开发计划通过需求分析对系统的成本及进度有了更精确的估算,可进一步修改开发计划,最大先帝减少软件开发的风险。7 需求工程的基本活动:1) 获取需求:深入实际,在充分理解用户需求的基础上,积极与用户交流,捕捉、分析和修订用户对目标系统的需求,并提炼出符合解决领域问题的用户需求。2) 需求分析与建模:对以获取的需求进行分析和提炼,进行抽象描述,建立目标系统的概念模型,进一步对模型(原型)进行分析。3) 需求规格说明:对需求模型进行精确的,形式化的描述,为计算机系统的实现提供基础。4) 确认需求:以需求规格说明为基础输入,经

5、过符号执行、模拟或快速原型等方法,分析和验证需求规格说明的正确性和可行性,确保需求说明准确,完整地表达系统的主要特性。5) 需求管理:在整个需求工程中,贯穿了需求管理活动。需求管理主要包括跟踪和管理需求变化,支持系统的需求演进。用于客户的需求总是不断增长的,因此进化需求是十分必要的。8 需求的有效性验证(如何验证):需求验证的方法可以是非正式的,也可以是正式的。非正式的验证,是开发者与用户充分讨论交流的过程,开发者反复向用户进行需求的说明解释,以取得一致认识。在此基础上,进行正式验证,通常以评审会的形式进行,对上述需验证的内容逐条进行检查,找出问题,协商解决。9 数据流图:描述流图是描述系统中

6、数据流程的图形工具,它标识了一个系统的逻辑输入和逻辑输出,以及把逻辑输入转换成逻辑输出所需的加工处理。1) 数据流:是数据在系统内传播的路径。2) 加工:也称为数据处理,他对数据流进行某些操作或变换。3) 数据存储:指暂时保存的数据,他可以是数据库文件或任何形式的数据组织。4) 数据源点和终点:是软件系统外部环境中的实体(包括人员、组织或其他软件系统),统称为外部实体。一般只出现在数据流图的顶层图中。10 软件设计阶段的任务:1) 软件设计的任务:是将分析阶段获得的需求说明转换为计算机中可实现的系统,完成系统的结构设计,包括数据结构和程序结构,最后得到软件设计说明书。其中主要有:1. 总体设计

7、与详细设计:1. 概要设计:将软件需求转化为数据结构和软件的系统结构。划分出组成系统的无力元素:程序、数据库、过程、文件、类等。2. 详细设计:通过对结构表示进行细化,得到软件详细的数据结构和算法。2. 确定软件结构,划分子系统模块:3. 确定系统的数据结构4. 设计用户界面5. 软件设计的目标1. 软件实体有明显的层次结构,利于软件元素间控制。2. 软件实体应该是模块化的,模块具有独立功能。3. 软件实体与环境的界面清晰。4. 设计规格说明清晰、简洁、完整和无二义性。11 软件体系结构设计1) 仓库模型:也称容器模型,是一种集中式的模型。2) 分布式结构: 通过网络,将计算功能分置各个计算机

8、。3) 多处理器结构:在同一块主板上,改进处理器性能,或者增加处理器数量而形成一个整体。4) 客户-服务器模型:5) 多层应用模型:6) 分布式对象结构:12 模块:1) 模块间的关系:1. 层次结构:1. 深度:表示软件结构中从顶层模块到最底层模块的层数。2. 宽度:表示控制的总分布。3. 扇出数:指一个模块直接控制下属的模块个数。4. 扇入数:指一个模块的直接上上属模块个数。2. 模块的网状结构:较为麻烦,一般不会采取。2) 模块的独立性:1. 模块独立性:1. 功能:自身功能加上自身能够调用的所有自身子模块的功能。2. 逻辑:即描述模块内部怎么做。3. 状态:即该模块使用时的环境和条件。

9、2. 耦合性:1. 方式:块之间联系方式有直接引用和过程语句调用。显然直接引用方式快之间联系紧密。2. 作用:块间传送的共用信息(参数)类型,可为数据型、控制型、和混合型(数据/控制型),控制型信息使块间联系增高。3. 数量:块间传送的共用信息的数量越大,块间联系越精密,模块间共用的信息(如参数等)尽量少。4. 可采取的方式:a) 每个模块应采用过程语句(或函数)等间接调用等方式调用其他模块。b) 模块间传送的参数为数据型。5. 耦合内容:a) 内容耦合:一个模块直接访问另一个模块。b) 公共耦合:若干模块访问一个公共的数据环境。c) 控制耦合:一个模块传递给另一模块的信息是用于控制该模块内部

10、逻辑的控制信号。显然,对被控制模块的任何修改,都会影响控制模块。d) 复合耦合:一个模块传送到另一个模块的参数是一个负荷而数据结构。该数据信息包含数据单项的记录。6. 内聚内容:a) 偶然型内聚:又称为巧合型,将之间联系不多的各成分放在一个模块内,显然不易理解也不易修改。b) 逻辑型内聚:将几个逻辑上相似的功能分放在一个模块中,调用时由调用模块传递的参数确定执行的功能。由于要进行控制参数的传递,必然要影响模块的内聚性。c) 瞬时型内聚:将需要同时执行的文件放在一个模块中。d) 通信型内聚:模块中的成分引用共同的输入数据,或者产生相同的输出数据,则称为通信内聚模块。e) 顺序型内聚:模块中某个成

11、分的输出是另一成分的输入,由于这类模块无论是数据还是在执行f) 顺序上,模块中的一部分都依赖于另外一部分,因此具有较好的内聚性。g) 功能型内聚:一个模块包含而且仅包括完成某一具体功能所必需的所有成分,或者说,模块的所有成分都是为完成该功能而协同工作、紧密联系、不可分割的,则称该模块是功能型的。13 视图:1) 用例视图:从使用者的角度描述系统的外部特性及系统应具备的功能等。2) 设计视图:用于描述系统设计特征和系统内部的结构,包括结构模型视图和行为模型视图。前者描述系统的静态结构,包括类图、对象图、后者描述系统的动态行为,包括交互图、状态图和活动图。3) 过程视图:表示系统内部的控制机制,并

12、发特征。常用类图描述过程结构,用交互图描述过程行为。4) 实现视图:表示系统的实现特征,常用构件图表示,由一些独立的构件(文件)构成,描述了系统的软件特性。5) 配置视图:用于描述系统的物理配置特征,系统的物理架构。根据系统的应用领域和特性,还可以建立其他视图。14 图:1) 用例图:从用户角度描述系统应该具备的功能,并指出各功能的操作者。2) 静态图:表示系统的静态结构,包括类图、对象图、包图。3) 行为图:描述系统的动态模型和组成对象间的交互关系,包括状态图、活动图、4) 交互图:描述对象间的交互关系,包括顺序图,合作图。5) 实现图:用于描述系统的物理实现和物理配置,包括构件图和配置图。

13、15 类之间的关系:1) 建立类之间的关系:1. 关联:1. 常规关联:2. 多元关联:3. 有序关联:4. 受限关联:5. 或关联:6. 关联类2. 聚合:1. 组合聚合:2. 共享聚合:3. 泛化:1. 重叠泛化:2. 完全泛化:3. 不完全泛化:2) 类图的抽象层次和细化关系:16 建立动态模型:1) 状态图:用来描述一个特定对象的所有可能的状态及其引起状态转移的事件。一个状态图包括一系列的状态以及状态之间的改变。2) 顺序图:用来描述一组对象之间动态的交互关系,着重描述对象间消息传递的事件顺序,所以顺序图在实时系统中被大量使用。3) 协作图:协作图不强调执行事件的顺序,而是强调为了完成

14、某个任务,对象之间通过发送消息实现协同工作关系的。4) 活动图:着重描述了对象的状态变化以及触发状态变化的事件,交互模型(顺序图和协作图)则描述对象之间的动态交互行为。17 结构化程序设计概念和特点:1) 概念:结构化程序设计是一种程序设计技术,它采用自顶而下、逐步求精的程序设计方法和单入口单出口的控制结构。2) 特点:1. 自顶而下,逐步求精:将程序自顶向下逐步细化的分解过程用一个树形结构来描述。2. 单入口单出口的控制结构:结构化的程序有且仅有顺序,选择,循环三种基本基本控制结构组成,即保证了程序结构清晰,又提高了程序代码的可重用性。18 软件测试的基本概念:软件测试是在软件开发过程中保证

15、软件质量、提高软件可靠性的最主要的手段。19 软件测试的重要性和目的:为了发现和改正错误,这对于某些涉及人身安全或重要的军事、经济目标的项目显得尤其重要。20 软件测试的特点和基本原则:1) 软件测试的特点:1. 软件测试的开销大:2. 不能进行穷举测试:3. 软件测试难度大:2) 软件测试的基本原则:1. 应尽早地和不断地进行软件测试:2. 开发人员应尽量避免进行软件测试:3. 注重测试用例的设计和选择:4. 充分注意测试中的群集现象:5. 避免测试的随意性,严格执行测试计划:6. 全面检查第一个测试结果:7. 妥善保存测试过程中的一切文档。21 静态分析与动态测试:1) 静态分析:1. 桌前检查:2. 代码会审:3. 步行检查:2) 动态测试:1. 白盒法测试:1. 逻辑覆盖:2. 语句覆盖:3. 判定覆盖:4. 条件覆盖:5. 判定条件覆盖:6. 条件组合覆盖:2. 黑盒法测试:1. 等价分类法:2. 边界值分析法:3. 错误推测法:4. 因果图法:2

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号