第9课软件工程基础知识

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

7.4、系统设计知识
内聚是一模块内部各个元素彼此结合的紧密程度的度量 ➢ 偶然内聚:如果一个模块完成一组任务,这组任务彼此间即使有关系,
其关系也是松散的。 ➢ 逻辑内聚:把几种逻辑上相关的功能组合在一起,每次被调用时,由传
送给的模块参数来确定该模块应完成哪一种功能。 ➢ 时间内聚:如果一个模块所包含的任务必须在同一时间间隔内执行,这
2、面向对象分析与设计基本概念 1)、面向对象分析与设计概述:
较为流行的面向对象分析与设计方法有:Booch方法、 Coad方法、Yourdon方法、Jocobson方法和统一建模 语言UML。 2)、UML概述: ➢ 构成:UML的基本构造块、支配这引起构造块如何放 置在一起的规则和运用与整个语言的一些公共机制。 ➢ UML的词汇表包含3种构造块:事物、关系和图。事物 是对模型中最具有代表性的成分的抽象。关系把事物 结合在一起。图聚集了相关的事物
导下进行测试。开发者负责记录发现的错误和使用中 遇到的问题。 B测试:是在一个或多个用户的现场由该软件的最终用户 实施的,开发者通常不在现场,用户负责记录发现的 错误和使用中遇到的问题并把这些问题报告给开发者。 ➢ 系统测试:
➢ 判定覆盖:设计足够多的测试用例,不仅每个语句至少执行一次, 而且使得程序中每个判定的每个分支至少执行一次。
➢ 条件覆盖:设计足够多的测试用例,不仅每个语句至少执行一次, 而且使得程序中每个判定表达式中的每个条件都取到各种可能的 结果。
➢ 条件组合覆盖:设计足够多的测试用例,使得每个判断的各种可 能组合至少出现一次。
风格的有关知识。 ➢ 了解系统测试的原则、策略和测试方法,系统高度的相关知识。 ➢ 了解系统可维护性的概念、评价指标、主要内容;了解系统运行管理的基本制度
和日常运行管理的内容。 ➢ 了解软件质量特性的两种质量模型和保证软件质量的方法。
第7章 软件工程基础知识
7.1、软件工程和项目管理基础 7.2、面向对象技术基础 7.3、系统分析基础知识 7.4、系统设计知识 7.5、程序设计和测试 7.6、系统运行和维护知识 7.7、软件质量管理与质量保证
➢ 螺旋模型:综合了瀑布模型演化模型的优点,并增加了风险分析。 ➢ 喷泉模型:主要用于描述面向对象的开发过程。喷泉一词体现了
面向对象开发过程的迭代和无间隙特征。
7.1、软件工程和项目管理基础
2、软件开发项目管理基础知识 1)、成本估算: 成本估算方法: ➢ 开发费用=人月数X每个人月的代价 ➢ 开发费用=原代码行数X每行平均费用 有Putnam和cocomo两模型 2)、风险分析 风险分析由4个不同的活动构成:风险识别、风险预测、风险评估和
顶向下,逐层分解,建立系统的处理流程,以数据流图(DFD)和数据 词典为主要工具,建立系统的逻辑模型 DFD的基本成分有:数据流、加工、数据存储和外部实体 3、系统分析报告: 系统分析报告是系统分析阶段的工作成果。系统分析报告一经确认就成为具 有约束力的指导性文件,成为下一阶段系统设计工作的论据和今后验收 目标系统的检验标准。 在系统分析报告中,数据流图、数据字典和加工说明这部分是主体,是系统 分析报告中必不可少的组成部分。 系统分析报告必须简明扼要,抓住本质,反映出目标系统的全貌和开发人员 的设想。
7.4、系统设计知识
4)、处理过程设计: 处理过程设计的关键是用一种合适的表达方式来描述每个模块的执
行过程。这种表示方法应该简源自文库、精确,并由此能直接导出用编 程语言表示的程序。常用的描述方式有图形、语言和表格3类, 包括:程序流程图、盒图、形式语言、决策树和决策表。 5)、用户界面设计: 用户界面是系统与用户之间的接口,也是控制和选择信息输入与输 出的主要途径。用户界面设计应该坚持友好、简便、实用、易于 操作的原则。 界面设计包括菜单方式、佳话方式、操作提示方式以及操作权限管 理方式等。 6)、安全控制设计: 从数据环境和数据处理两方面看,影响系统安全的因素有环境性因 素和数据处理因素
➢ 条件及判定覆盖:设计足够多的测试用例,使得每个判断中每个 条件的每种可能至少出现一次,而且每个判断的不同判定也至少 出现一次。
➢ 路径覆盖:设计足够多的测试用例,要求程序中的所有路径至少 执行一次。
7.5、程序设计和测试
4、软件测试步骤: ➢ 单元测试: ➢ 组装测试: ➢ 确认测试: a测试:由用户在开发者的场所进行,并且在开发者的指
7.5、程序设计和测试
1、程序设计 程序设计的主要依据是系统设计阶段的HIPO图以及数据库结构和编
码设计。 1)、程序设计方法: 结构化方法,原型方法和面向对象的方法。 2)、程序设计基本模块 控制模块 输入模块 输入数据校验模块 输出模块 处理模块 3)、程序设计语言
7.5、程序设计和测试
4)、对源程序的质量要求 对源程序最基本的质量要求是正确性和可靠性。
结构化设计方法SD方法是一种面向数据流的设计方法,它可以与SA方法 衔接。 ➢ 结构图:结构图的基本成分有模块、调用和输入/输出数据。 ➢ 信息流的类型 3、系统总体结构设计 ➢ 系统结构设计原则: ➢ 系统模块结构设计:
7.4、系统设计知识
耦合是软件结构中各个模块之间相互关联程度的度量。 ➢ 非直接耦合:如果两个模块没有没有直接关系,它们之间的联系完全是
通过主程序的控制和调用来实现的。 ➢ 数据耦合:如果两个模块借助于参数表传递简单数据。 ➢ 标志耦合:如果两个以上的模块都需要其余某一数据结构子结构时,不
使用全局变量的方式而是用记录传递的方式 ➢ 控制耦合:如果一模块明显地把开关量、名字等信息送入另一模块,控
制另一模块的功能。 ➢ 外部耦合:当模块与软件以个的环境有关时就发生外部耦合。例如:输
风险控制 3)、进度管理 进度管理常用图形技术方法有:Gantt图和Pert图 4)、人员管理
7.1、软件工程和项目管理基础
3、软件工具和软件开发环境 1)、软件工具 用来辅助软件开发、运行、维护、管理、
支持等过程的软件称为软件工具。 2)、软件开发环境 软件开发环境是支持软件产品开发的软件
系统环境集成机制包括数据集成、控制 集成和界面集成
入输出把一个模块与特定的设备、格式、通信协议耦合在一起。 ➢ 公共耦合:多个模块引用一全局数据区的模式。例如C语言中的external
数据类型、磁盘文件等都是全局数据区。 ➢ 内容耦合:一个模块访问另一模块的内部数据;一个模块不通过正常入
口转到另一模块内部;两个模块有部分程序代码重叠;一个模块有多个 入口;
有成份,或者说模块中所有成分结合起来是为了完成一个具体的任务。
7.4、系统设计知识
4、系统详细设计 1)、代码设计 代码设计应该遵循惟一性、合理性、可扩充性、简单性、适用性、规范性、
系统性等基本原则。 2)、输出设计 从系统开发的角度看,输出决定输入,即输入信息中有根据输出要求才能确
定。输出设计包括:确定输出内容、选择输出设备与介质和确定输出格 式。 输出方式:报表输出和图形输出 3)、输入设计 输入设计原则:最小量原则、简单性原则、早检验原则和少转换原则 输入设计的内容:确定输入数据内容、设计输入方式、输入格式设计和校对 方式。 输入设计的校对:人工校对和二次键入校对和数据平衡校对。
现在人们现关注软件的易使用性、易维护性和 易移植性 ➢ 易使用性:是指操作是否简便以及用户花在学 习使用软件上的时间的多少。 ➢ 易维护性:易理解性、易测试性和易修改性。 ➢ 可移植性:是指程序从某一环境移植到另一环 境的能力。采用信息隐蔽原则和尽量不使用语 言标准文件以外的语句都有利于程序的移植。
7.1、软件工程和项目管理基础
4、软件过程能力评估 软件过程评估是软件改进和软件能力评价的 ➢ 初始级: ➢ 可重复级: ➢ 已定义级: ➢ 已管理级: ➢ 优化级:
7.2、面向对象技术基础
1、面向对象的基本概念 ➢ 对象: ➢ 消息: ➢ 类: ➢ 继承: ➢ 多态: ➢ 动态绑定:
7.2、面向对象技术基础
第7章 软件工程基础知识
根据考试大纲,要求学生掌握软件工程和项目管理基础知识,软件需求分析/需求定 义及软件基础知识、程序设计基础、程序测试基础知识、软件开发文档基础知识、 软件运行和维护基础知识等6个方面的知识。
通过本章的学习,要求掌握如下内容。 ➢ 掌握软件工程的基本概念、软件生存周期的划分以及各阶段的任务;了解常用的
7.2、面向对象技术基础
➢ UML提供了9种图
➢ 类图:展现了一组对象、接口、协作和它们之间的关系。 ➢ 对象图:展现了一组对象以及它们之间的关系 ➢ 用例图:展现了一组用例、主角以及它们之间的关系 ➢ 序列图:是场景的图形化表示,描述了以时间顺序组织的对
象之间的交互活动 ➢ 协作图:强调收发消息的对象的结构组织 ➢ 状态图:展现了一个状态机,由状态、转换、事件和活动组
常用的软件开发模型有:瀑布模型、演化模型、螺旋模型、喷泉模 型
➢ 瀑布模型:瀑布模型给出了软件生存周期各阶段的固定顺序,上 一阶段完成后才能进入到下一阶段,整个过程就像流水下泻。该 模型最突出的缺点是缺乏灵活性,特别是无法解决软件需求不明 确或不准确的问题,不适应用户需求的动态变化。
➢ 演化模型:采用演化模型的开发过程,实际上就是从初始的原型 逐步演化成最终软件产品的过程。演化模型特别适合于对软件需 求缺乏准确认识的情况。
7.1、软件工程和项目管理基础
1、软件工程概述: 软件工程是批应用计算机科学、数学及管理科学等原则
和方法来解决软件问题的工程,其目的是提高软件生 产率,提高软件质量,降低软件成本。 软件的生存周期: ➢ 制定计划 ➢ 需求分析 ➢ 设计 ➢ 程序编写 ➢ 测试 ➢ 运行维护。
7.1、软件工程和项目管理基础
7.4、系统设计知识
1、系统设计概述 系统设计的主要目的就是为系统制定蓝图,在各种技术和实施方法中权衡利
弊,精心设计,合理使用各种资源,最终勾画出新系统的详细设计方案。 分为两个步骤: ➢ 把总任务分解为许多基本的、具体的任务 ➢ 为各个具体任务选择适当的技术手段和处理方法,即详细设计。 2、结构化设计方法
在完全不考虑软件的内部结构和特性的情况下测试软件的外部特 性。根据软件的规格说明来设计测试用例。白盒测试也称为结构 测试,根据程序的内部结构和逻辑来设计测试用例。常用的技术 是逻辑覆盖,即考察用测试数据运行被测程序时对程序逻辑的覆 盖程度。
7.5、程序设计和测试
➢ 语句覆盖:设计足够多的测试用例,使程序中的每个语句至少执 行一次。是最弱的逻辑覆盖。
个模块属于时间内聚,例如初始化模块。 ➢ 过程内聚:如果一个模块的处理元素是相关的,而且必须按特定的次序
执行。 ➢ 通信内聚:如果一个模块的所有功能都通过使用公用数据而发生关系。 ➢ 顺序内聚:如果一个模块的处理元素是相关的,而且必须顺序执行,通
常一个处理元素的输出数据作为下一下处理元素的输入数据。 ➢ 功能内聚:如果一个模块包括且仅包括为完成某一具体任务所必须的所
软件开发模型,其基本特点和区别;掌握软件工具和软件环境的概念。 ➢ 了解软件开发项目管理的基本内容;了解软件过程改进的基础知识以及软件过程
能力成熟度模型CMM。 ➢ 掌握面向对象的基本概念,了解面向对象分析与设计的基本思想,了解UML的基
础知识。 ➢ 了解系统分析的主要任务、结果;掌握结构化分析方法的基本思想。 ➢ 了解系统设计的内容和步骤,掌握结构化设计方法的基本思想和基本步骤;了解
成 ➢ 活动图:是种特殊的状态图,它展现了在系统内从一个活动
到别一个活动的流程。 ➢ 构件图:展现了一组构件之间的组织和依赖。 ➢ 部署图:展现了运行处理结点及其构件的配置。
7.3、系统分析基础知识
1、系统分析概述 ➢ 目的和任务 2、结构化分析方法 结构化分析方法最初着眼于数据流,考虑数据流在系统中的传递和变换,自
7.5、程序设计和测试
2、编码风格 1)、源程序中的内部文档 ➢ 选择标识符的名字 ➢ 注释 2)、数据说明 3)、语句构造 4)、输入和输出
7.5、程序设计和测试
3、系统测试和调度 系统测试是为了发现错误而执行程序的过程,成功的测试是发现了
至今尚未发现的错误。 测试的基本原则: 4、测试策略和测试方法: ➢ 人工测试:主要有3种方法:个人复查、抽查、会审。 ➢ 机器测试:分为黑盒测试和白盒测试。黑盒测试也称为功能测试,
相关文档
最新文档