软件工程导论复习资料.doc

上传人:暗伤 文档编号:24287892 上传时间:2022-07-04 格式:DOC 页数:4 大小:56KB
返回 下载 相关 举报
软件工程导论复习资料.doc_第1页
第1页 / 共4页
软件工程导论复习资料.doc_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《软件工程导论复习资料.doc》由会员分享,可在线阅读,更多相关《软件工程导论复习资料.doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、 第一章,软件工程导论一、软件工程是指导计算机软件开发和维护的一门工程学科二、件工程的七条基本原则:1. 用分阶段的生命周期计划严格管理2. 坚持进行阶段评审3. 实行严格的产品控制4. 采用现代程序设计技术5. 结果应能清楚地审查6. 开发小组的人员应该少而精 7. 承认不断改进软件工程实践的必要性三、软件工程方法学包含3个要素:方法、工具和过程。方法是完成软件开发的各项任务的技术方法,回答“怎样做”的问题;工具是为运用方法而提供的自动的或半自动的软件工程支撑环境;过程是为了获得高质量的软件所需要完成的一系列任务的框架,它规定了完成各项任务的工作步骤。四、 软件一程方法学: 传统方法学、面向

2、对象方法学五、 软件生命周期:软件定义、软件开发和运行维护(也称为软件维护)3个时期组成1软件定义主要任务:问题定义、可行性研究和需求分析2开发时期主要任务:总体设计,详细设计,编码和单元测试,综合测试3维护时期主要任务:通过各种维护性活动使系统持久地满足用户的需求,通常有四类维护:改正性维护,也就是诊断和改正在使用过程中发现的软件错误;适应性维护,即修改软件以适应环境的变化;完善性维护,即根据用户的需求改进若扩充软件使它更完善;预防性维护,即修改软件,为将来的维护活动预先做准备/问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”可行性研究:对于上一个阶段所确定的问题有行得能的解决办法

3、吗?需求分析:确定目标系统必须具备哪些工能 总体设计:概括地说,应该怎样实现目标系统?详细设计:应该怎样具体地实现这个系统呢?编码和单元测试:写出正确的容易理解、容易维护的程序模块 综合测试:通过各种类型测(及相应的调试)使软件达到预定的要求,最基本的测试是集成测试和验收测试,集成测试是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试;验收测试则是按照规格说明的规定,由用户对目标系统验收六、软件过程的各种模型:瀑布模型、快速原型模型、增量模型、螺旋模型、喷泉模型第二章 可行性研究一、可行性研究的任务分析几种主要的可能解法的利弊,从而判断原定

4、的系统规模和目标是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度二、可行性(1) 技术可行性 使用现有的技术能实现这个系统吗?(2) 经济可行性 这个系统的经济效益能超过它的开发成本吗?(3) 操作可行性 系统的操作方式在这个用户组织内行得通吗?三、可行性研究过程1. 复查系统规模和目标、2. 研究目前正在使用的系统3. 导出新系统的高层逻辑模型、4. 进一步定义问题5. 导出和评价供选择的解法、6. 推荐行动方针7. 草拟开发计划、8. 书写文档提交审查四、系统流程图:是概括地描绘物理系统的传统工具。数据流图:描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据流图

5、是系统逻辑功能的图形表示数据字典:数据字典是关于数据的信息的集合,也就是对数据流图中包含的所有元素的定义的集合。一般说来,数据字典应该由对下列3类元素的定义组成:(1) 数据流(2) 数据流分量(即数据元素)(3) 数据存储 第3章 需求分析一、 需求分析的任务还不是确定系统怎样完成它的工作,而仅仅是确定系统必须完成哪些工作,也就是对目标系统提出完整、准确、清晰、具体的要求。二、 确定对系统的综合要求1. 功能需求2. 性能需求、3. 可靠性和可用性需求4. 出错处理需求、5. 接口需求、6. 约束7. 逆向需求、8. 将来可能提出的要求三、分析系统的数据要求分析系统的数据要求通常采用建立数据

6、模型的方法3.1.3 导出系统的逻辑模型 综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。四、获取需求的方法3.2.1 访谈3.2.2 面向数据流自顶向下求精3.2.3 简易的应用规格说明技术3.2.4 快速建立软件原型五、3.3.1 分析建模需求分析过程应该建立3种模型,它们分别是数据模型、功能模型和行为模型。3.4节将介绍的实体-联系图,描绘数据对象及数据对象之间的关系,是用于建立数据模型的图形。2.4节讲过的数据流图,描绘当数据在软件系统中移动时被变换的逻辑过程,指明系统具有的变换数据的功能,因此,数

7、据流图是建立功能模型的基础。3.6节将介绍的状态转换图(简称为状态图),指明了作为外部事件结果的系统行为。为此,状态转换图描绘了系统的各种行为模式(称为“状态”)和在不同状态间转换的方式。状态转换图是行为建模的基础。3.4 实体-联系图(数据对象、属性、联系)3.6 状态转换图(状态、事件、符号)3.7 其他图形工具、3.7.1 层次方框图3.7.2 Warnier图、3.7.3 IPO图六、验证软件需求(1) 一致性 所有需求必须是一致的,任何一条需求不能和其他需求互相矛盾。(2) 完整性 需求必须是完整的,规格说明书应该包括用户需要的每一个功能或性能。(3) 现实性 指定的需求应该是用现有

8、的硬件技术和软件技术基本上可以实现的。对硬件技术的进步可以做些预测,对软件技术的进步则很难做出预测,只能从现有技术水平出发判断需求的现实性。(4) 有效性 必须证明需求是正确有效的,确实能解决用户面对的问题。 第5章 总体设计划分出组成系统的物理元素(黑盒子级)程序、文件、数据库、人工过程和文档等2、设计软件的结构1、确定系统中每个程序是由哪些模块组成2、这些模块相互间的关系二、典型设计过程设想供选择的方案、选取合理的方案、推荐最佳方案、功能分解、设计软件结构、 设计数据库、 制定测试计划、书写文档、审查和复审三、设计原理:模块化、 抽象、逐步求精、信息隐藏和局部化、模块独立四、模块独立性的度

9、量:两个定性标准度量:内聚和耦合耦合:模块间互相依赖(连接)的紧密程度内聚:模块内部各个元素彼此结合的紧密程度五、耦合数据耦合 (Data Coupling)、特征耦合控制耦合 (Control Coupling) 公共环境耦合(Common Coupling)内容耦合 (Content Coupling)六、设计原则耦合是影响软件复杂程度的一个重要因素。尽量使用数据耦合、少用控制耦合和特征耦合,限制公共环境耦合的范围、完全不用内容耦合。七、模块内聚八、设计原则,如果给上述7种内聚的优劣评分,将得到如下结果:功能内聚10分 顺序内聚9分通信内聚7分 过程内聚5分时间内聚3分 逻辑内聚1分偶然内

10、聚 0分 力争做到高内聚、识别提高低内聚的模块九、启发规则:1. 改进软件结构提高模块独立性2. 模块规模应该适中3. 深度、宽度、扇出和扇入都应适当4. 模块的作用域应该在控制域之内5.力争降低模块接口的复杂程度6. 设计单入口单出口的模块7. 模块功能应该可以预测十、描绘软件结构的图形工具 层次图 HIPO图 结构图 面向数据流的设计方法:信息流的类型:变换流 、事务流分析步骤:第1步 复查基本系统模型、第2步 复查并精化数据流图第3步 确定数据流图具有变换特性还是事务特性。第4步 确定输入流和输出流的边界,从而孤立出变换中心。第5步 完成“第一级分解”。变换型数据流图被映射成一个输入、变

11、换和输出的信息处理过程。第6步 完成“第二级分解”。把数据流图中的每个处理映射成软件结构中一个适当的模块。第7步 使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。 第6章 详细设计目标:系统的具体实现。应该得出对目标系统的精确描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。1、结构程序设计的经典定义如下所述:“如果一个程序的代码块仅仅通过顺序、选择和循环这3种基本控制结构进行连接,并且每个代码块只有一个入口和一个出口,则称这个程序是结构化的。”2、如果只允许使用顺序、IF-THEN-ELSE型分支和DO-WHILE型循环这3种基本控制结构,则称为经典的结

12、构程序设计;3、如果除了上述3种基本控制结构之外,还允许使用DO-CASE型多分支结构和DO-UNTIL型循环结构,则称为扩展的结构程序设计;4、如果再加上允许使用LEAVE(或BREAK)结构,则称为修正的结构程序设计。人机界面设计: 1. 系统响应时间、 2. 用户帮助设施3. 出错信息处理、4. 命令交互过程设计的工具: 程序流程图、盒图(N-S图)、 PAD图、判定表、判定树、过程设计语言面向数据结构的设计方法:1 Jackson方法和Warnier方法是最著名的两个面向数据结构的设计方法.2 使用面向数据结构的设计方法,当然首先需要分析确定数据结构,并且用适当的工具清晰地描绘数据结构

13、。3 Jackson方法:(1) 分析并确定输入数据和输出数据的逻辑结构,并用Jackson图描绘这些数据结构。(2) 找出输入数据结构和输出数据结构中有对应关系的数据单元。所谓有对应关系是指有直接的因果关系,在程序中可以同时处理的数据单元(对于重复出现的数据单元必须重复的次序和次数都相同才可能有对应关系)。(3) 用下述3条规则从描绘数据结构的Jackson图导出描绘程序结构的Jackson图:第一,为每对有对应关系的数据单元,按照它们在数据结构图中的层次在程序结构图的相应层次画一个处理框(注意,如果这对数据单元在输入数据结构和输出数据结构中所处的层次不同,则和它们对应的处理框在程序结构图中

14、所处的层次与它们之中在数据结构图中层次低的那个对应);第二,根据输入数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框;第三,根据输出数据结构中剩余的每个数据单元所处的层次,在程序结构图的相应层次分别为它们画上对应的处理框。在导出程序结构图的过程中,由于改进的Jackson图规定在构成顺序结构的元素中不能有重复出现或选择出现的元素,因此可能需要增加中间层次的处理框(4) 列出所有操作和条件(包括分支条件和循环结束条件),并且把它们分配到程序结构图的适当位置。(5) 用伪码表示程序程序复杂程度的定量度量: McCabe方法、Halstead方法 第7章 实现

15、通常把编码和测试统称为实现。所谓编码就是把软件设计结果翻译成用某种程序设计语言书写的程序。测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。单元测试、综合测试软件测试的目标:(1) 测试是为了发现程序中的错误而执行程序的过程;(2) 好的测试方案是极可能发现迄今为止尚未发现的错误的测试方案;(3) 成功的测试是发现了至今为止尚未发现的错误的测试。测试方法:黑盒测试: 如果已经知道了产品应该具有的功能,可以通过测试来检验是否每个功能都能正常使用;白盒测试:如果知道产品的内部工作过程,可以通过测试来检验产品内部动作是否按照规格说明书的规定正常进行。测试步骤:1模块测试、2 子系统

16、测试、3. 系统测试4. 验收测试、5. 平行运行集成测试:1、自顶向下集成2、自底向上集成逻辑覆盖:1. 语句覆盖2. 判定覆盖3. 条件覆盖4. 判定/条件覆盖5. 条件组合覆盖6. 点覆盖7. 边覆盖8 . 路径覆盖控制结构测试:1. 基本路径测试:第一步,根据过程设计结果画出相应的流图。第二步,计算流图的环形复杂度。第三步,确定线性独立路径的基本集合。第四步,设计可强制执行基本集合中每条路径的测试用例。黑盒测试技术:等价划分、边界值分析、错误推测软件可靠性:程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。估算平均无故障时间的方法4. 估计错误总数的方法:1) 植入错误法 2) 分别测试法 第八章 维护8.1 软件维护的定义所谓软件维护就是在软件已经交付使用之后,为了改正错误或满足新的需要而修改软件的过程。改正性维护:在任何大型程序的使用期间,用户必然会发现程序错误,并且把他们遇到的问题报告给维护人员。适应性维护:也就是为了和变化了的环境适当地配合而进行的修改软件的活动,是既必要又经常的维护活动。完善性维护:在使用软件的过程中用户往往提出增加新功能或修改已有功能的建议,还可能提出一般性的改进意见。预防性维护:当为了改进未来的可维护性或可靠性,或为了给未来的改进奠定更好的基础而修改软件

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

当前位置:首页 > 技术资料 > 技术方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁