【软件工程】期末复习笔记

爱⌒轻易说出口 提交于 2019-12-08 11:01:06

程序的三种基本控制结构:顺序 选择 重复
面向对象的分析方法主要是建立:对象模型 动态模型 功能模型
模块独立性的衡量标准:耦合性 内聚性
软件开发是 自顶向下逐步求精;软件测试是 自底向上集成
面型对象:多态性 唯一性 封装性 继承性
功能内聚内聚性最高;偶然内聚内聚程度最低
继承性是子类自动共享其父类的数据结构和方法
白盒覆盖测试六种覆盖方法中,由:语句覆盖、判定覆盖(分支覆盖)、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖
软件测试用例主要由测试输入数据测试的预期结果组成

E-R图包含:实体 联系 属性
数据流图包括:处理 数据流 动作对象 数据存储对象 着重描述数据对象及数据对象之间的关系
分层数据流图:顶层数据流图描述了系统的输入与输出
软件结构图:扇入指一个模块的直接上级模块个数,能反映程序重用率;扇出指一个模块的直接下级模块个数;宽度指同一层次上的模块总数最大值
对象图:用于描述对象模型
层次图:软件结构使用的图形工具
SC图:软件结构化设计(总体设计)使用的图形工具;详细设计与概要设计衔接的图形工具
PAD图:经常用于详细设计阶段

McCall模型:适应性属于面向软件产品修改
COCOMO模型:用于成本估算
螺旋模型:引入了“风险驱动”思想,适用于大规模的内部开发项目
瀑布模型:缺乏灵活性
喷泉模型:使软件开发过程具有迭代性无间隙性

黑盒测试:动态测试,外部功能,主要研究:需求说明 概要说明
白盒测试:动态测试,内部逻辑

软件生命周期
①问题定义:要解决什么问题
②可行性分析:问题是否值得解决:技术可行性、经济可行性、操作可行性、社会可行性
③需求分析:系统必须做什么
④总体分析:系统如何实现:系统设计、结构设计
⑤详细设计:具体实现设计的系统
⑥实现:编码+测试
⑦运行维护:保证软件正常运行

软件测试
①单元测试(模块测试):测试对象为单元模块;单元测试计划+详细设计说明书
②集成测试(子系统测试+系统测试):测试对象为组装后的程序模块;集成测试计划+软件需求说明书
③确认测试(验收测试):测试对象为可运行的目标软件系统;确认测试计划+软件需求说明书
④平行运行:用户指南+使用手册

  • 等价划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数具有代表性的数据作为测试用例。
  • 项目质量管理的目标是满足干系人的需要。
  • 使用白箱测试方法时确定测试数据应根据程序的内部逻辑和指定的覆盖标准。
  • 模块作用域定义为受该模块内一个判断影响的所有模块合集。
  • 项目管理工具中,将网络方法用于工作计划安排的评审和检查的是Gantt图
  • 软件开发在需求分析、设计、编码、测试这几个阶段所需不同层次的技术人员大致是(高级,中高级,初级,中高级)
  • 进行需求分析可使用多种工具,但PAD图是不适用的。
  • 项目质量管理的最终责任由项目经理承担。
  • 为了更好的管理变更,需要定义项目基线,基线可以变化,但是必须通过基线变更控制流程处理
  • 软件=程序+数据+文档
  • 软件工程学三要素:方法 工具 过程
  • 软件需求说明书是软件需求分析阶段的重要文件,应包含:数据描述、功能描述、性能描述
  • 文档是软件产品的一部分,没有文档的软件不能被称为软件。
  • 等价类划分方法将所有可能的输入数据划分成若干部分,然后从每一部分中选取少数有代表性的数据作为测试用例。
  • 在软件工程项目中,不随参与人数增加而使软件的生产效率增加的主要问题是参与人员之间的通信困难
  • 项目接近结束的时候,如果客户希望对项目范围进行大的变更,项目经理应该告诉客户变更带来的影响
  • 与设计测试用例无关的文档是项目开发计划
  • 项目中的小组成员要离开公司,项目经理首先应该做的是实施风险计划
  • 规定软件计划的目的在于尽早对欲开发的软件进行合理估价,软件计划的任务是规划与调度
  • 白箱测试方法重视测试覆盖率的度量。
  • 程序设计语言一般简单来说,可划分为低级语言和赶集语言两大类,与高级语言相比,用低级语言开发的程序,具有运行效率高,开发效率低的特点。
  • 来辅助软件开发、运行、维护、管理、支持等过程中的活动的软件作为软件开发工具,通常也称为CASE工具。
  • 瀑布模型把软件生命周期划分为八个阶段:问题的定义、可行性研究、软件需求、系统总体设计、详细设计、编码、测试和运行、维护。八个阶段又可归纳为三个大的阶段:计划阶段、开发阶段、运行阶段
  • 模块的内聚性最低的是偶然内聚
  • 在项目进行过程中,2个项目成员使用了不同版本的设计说明书,这时项目经理应该首先检查配置管理系统
  • PAD图的控制执行流程为:自上而下,从左到右
  • 状态图:描述类中对象的 动态行为
  • 完善性维护:软件维护类型中最重要的
  • 在整个软件维护阶段花费的全部工作中,完善性维护所占比例最大,预防性维护所占比例最小。
  • 适应性维护:为适应软硬件环境变化而修改软件
  • 模块内聚性最好的是功能内聚
  • 如果某种内聚要求一个模块中包含的任务必须在同一段时间内执行,则这种内聚为时间内聚
  • 软件危机的主要原因有:软件本身的特点、用户使用不当、缺乏好的开发方法与手段
  • 软件开发中大约要付出40%的工作量进行测试和排错。

结构化方法定义

结构化分析方法(Structured Method,结构化方法)是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它有结构化分析(SA)结构化设计(SD)结构化程序设计(SP)等方法。

结构化分析方法

给出一组帮助系统分析人员产生功能规约的原理与技术。它一般利用图形表达用户需求,使用的手段主要有数据流图、数据字典、结构化语言、判定表以及判定树等。

结构化分析的步骤

如下:
①分析当前的情况,做出反映当前物理模型的DFD;
②推导出等价的逻辑模型的DFD;
③设计新的逻辑系统,生成数据字典和基元描述;
④建立人机接口,提出可供选择的目标系统物理模型的DFD;
⑤确定各种方案的成本和风险等级,据此对各种方案进行分析;
⑥选择一种方案;
⑦建立完整的需求规约。

结构化设计方法

给出一组帮助设计人员在模块层次上区分设计质量的原理与技术。它通常与结构化分析方法衔接起来使用,以数据流图为基础得到软件的模块结构。SD方法尤其适用于变换型结构和事务型结构的目标系统。在设计过程中,它从整个程序的结构出发,利用模块结构图表述程序模块之间的关系。

结构化设计的步骤

如下:
①评审和细化数据流图;
②确定数据流图的类型;
③把数据流图映射到软件模块结构,设计出模块结构的上层;
④基于数据流图逐步分解高层模块,设计中下层模块;
⑤对模块结构进行优化,得到更为合理的软件结构;
⑥描述模块接口。

结构化设计方法的设计原则

  • 使每个模块执行一个功能(坚持功能性内聚)
  • 每个模块用过程语句(或函数方式等)调用其他模块
  • 模块间传送的参数作数据用
  • 模块间共用的信息(如参数等)尽量少
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!