目录

软件工程基本名词定义与解释

目录

软件工程基本名词定义与解释

软件分类:按功能不同分为:系统软件,支撑软件,应用软件 支撑软件:支撑软件的开发,维护和运行, ……中间件则可被看成现代支撑软件的代表 开发环境主要包括:环境数据库,各种接口软件和工具组 微电子是基础,计算机和网络是载体,软件是核心 软件工程概念:目的是倡导以工程的原理,原则和方法进行软件的开发,已解决软件危机 本质:问题域到不同抽象层之间的概念和计算逻辑的映射 实现映射的基本手段 :建模 软件模型:设计模型,实现模型,部署模型 软件工程三元组:目标,原则,活动 三要素:过程,方法和工具 按承担软件开发工作的主体,将软件生存周期过程分为三类:基本过程(最重要),支持过程,组织过程 软件生存周期模型:软件过程,活动任务的结构框架 可行性研究的任务:操作可行性 ,经济可行性,技术可行性 需求必须具有五个基本性质:①必要的 ②无歧义的 ③可测的 ④可跟踪的 ⑤可测量的 需求分类:①功能需求(核心)功能需求是整个需求的主体。非功能需求对功能需求而言可以是一对多的 确保需求的一致性,完整性,现实性,有效性 需求规约的作用:①是最重要的,作为软件开发组织和用户之间一份事实上的技术合同书 ④基于需求规约,一般还会产生另外两个文档–初始测试计划和用户系统操作描述 SRS:软件需求规约 SRS只关注产品需求 SOW(工作陈述)关注项目工作与管理 OMG发布的UML(统一建模语言)以及USDP(统一软件开发过程) 面向对象方法真正意义深远的目标是它适合于解决分析和设计期间的复杂性,并实现分析与设计的复用 ooa:面向对象分析 ood:面向对象设计 oop:面向对象的程序设计 oot:测试 UML:是一种通用的可视化建模语言 用于:①规约系统的制品 ②构造系统的制品 UML是系统分析和设计的工具 操作:抽象操作,即没有给出实现的操作 接口(提现功能抽象):接口是一组操作的集合,其中每个操作描述了类或构件的一个服务 接口只描述类的外部操作,并不描述内部结构 接口相当于抽象类 构件:构件描述比特事件的软件制品的系统单位 制品:是系统中物理的,可替代的部分 用例之间的关系有包含,扩展和泛化 关联:用直线表示 聚合:一种特殊的关联,表示“整体/部分”关系 用空心菱形表示 组合:整体类的实例和部分类的实例具有相同的生命周期 用实心菱形表示 组合是特殊的聚合 泛化:一般和特殊的关系 单继承:一个类只有一个父类 多继承:多个父类 —空心三角形 细化(实现):—-空心三角形表示 依赖:使用关系 —–> 模型化简单依赖:一个类只使用另一个类作为它的操作参数 系统静态部分建模的图形:①类图 ②构建图 ③组合结构图 ④对象图 ⑤部署图 ⑥制品图 类图:面向对象分析与设计所得到的最重要的模型 用况图:表现一组use case,actors以及它们之间关系的图 6个抽象:主体,用况,参与者,依赖(扩展,包含),泛化,关联 对以后开发活动的影响: ①use case是系统分析和设计阶段的输入之一,是类,对象,操作的源,并作为分析和设计的一个依据 ②use case是制定开发计划,测试计划,设计测试是用例的依据之一 ③use case可以划分系统与外部实体的界限,是系统开发起点 关联:是操作者和usecase之间的唯一关系 顺序图:是一种交互图 顺序图有对象,生命线,控制焦点,消息组成 顺序图绘制步骤: ①列出该用例的参与者 ②列出启动用例时参与者使用的边界对象 ③列出管理该用例的控制对象 ④根据用例描述的所有流程,按时间顺序列出分析对象之间进行消息传递的序列 控制类型 :选择执行(opt) 并发执行(par) 执行图 状态图 类体现了数据抽象,过程抽象,局部化以及信息隐蔽得原理 面向对象的核心原则:数据抽象 ooa的基本任务:对问题与和系统责任进行分析和理解 需求模型(用况图) 基本模型(类图) 辅助模型(状态图,顺序图,活动图,包图) 筛选原则:系统中任何对象都为了提供某些信息或履行某些功能。如果没有这些用途,则这这种对象就没有必要在系统中存在 面向对象分析 :①发现对象类 ②审查和筛选对象类 ③分析每个类的属性和操作 ④定义对象类之间的关系:继承,实现,关联,依赖 对象之间的关系:继承,关联,依赖,实现 用例之间的关系:继承,关联,包含,扩展 面向对象设计(ood)就是在ooa模型基础上,运用面向对象方法进行系统设计。目标是产生一个符合具体实现条件的ood模型 ood的根本目标:①提高软件生产率 ②提高质量 ③加强可维护性(易变性:服务>接口>熟悉>类(最稳定) 分析(ooa)与设计(ood)的关系:分析:问题域与系统责任 设计:与实现有关的因素 ooa与ood的关系:增补,调整 ooa过程:问题域部分的设计(核心),人机交互部分的设计,控制驱动部分的设计,数据接口部分的设计 问题域部分(pdc)的设计 实现条件对问题域部分的影响:①编程语言:对问题域部分的影响最大 ②硬件操作系统及网络设施 ③复用支持 ④数据管理系统 ⑤界面支持系统 使用ooa结果,并进行补充和调整:①对复核设计与编程的类而增加结构 ②增加一般类以建立共同协议 ③按编程语言调整继承和多态 ④提高性能 ⑤为实现对象永久存储所做的修改 ⑥为编程方便增加底层细节 ood:设计人机交互的细节 从use case录取人机交互内容及过程 人机交互的细化:①输入的细化 ②输出的细化 人机界面的设计准则:一致性,启发性,减少人脑记忆的负担,减少重复的输入,容错性:撤销恢复 ,及时反馈,防止灾难性的错误 人机界面的oo设计 :①选择界面支持系统 ②根据人机交互需求选择界面元素 ③用oo概念与表示法表达所有的界面成分 控制驱动部分的设计:是ood模型的组成部分之一,由系统中全部主动类构成 如何设计控制驱动部分:①识别控制流 ②审查与筛选 ③控制流的表示分类 数据管理部分:数据管理部分是ood模型中负责与具体的数据管理系统衔接的外围组成部分,它为系统中需要长久存储的对象提供了在选定的数据管理系统中进行数据存储与恢复的功能 数据管理系统分类:文件系统,R·DBMS(关系型数据库管理系统),oo·DBMS 如何设计数据管理部分:①选择数据管理系统:R·dbms ②数据存放设计 针对r·dbms :①对象在数据库中的存放车的规范化 ②设计数据管理部分的类 软件测试:静态分析,动态分析(黑盒测试,白盒测试) 测试目标:预防错误和发现错误 ⭐测试和调试的区别: ①测试从一个侧面证明程序员的失败,调试是为了证明程序员的正确 ②测试已知条件开始,使用预选定义的程序,具有预知的结果,不可预见的是程序是否通过测试。调试一般是以不可知的内部条件开始,出统计性调试外,结果是不可预见的。 ③测试是有计划的,并要进行测试和设计。调试不受时间约束。 ④测试是一个发现错误,改正错误,重新测试的过程。调试是推理过程 ⑤测试的执行是规律的。调试的执行往往要求程序进行 必要推理以至质的飞跃。 ⑥测试经常是有独立的测试组在不了解软件的设计的条件下完成的。调试必须有了解详细设计的程序员完成 。 ⑦大多数测试的执行和设计可有工具支持。调试程序员能利用的工具主要是调试器。 白盒测试:结构测试或逻辑驱动测试 主要方法:逻辑覆盖,基本路径测试 覆盖能力:路径测试>分支覆盖(判定覆盖)=条件覆盖>语句覆盖 基本路径法:①画控制流程图 ②计算V(G)环路复杂度 ③设计独立路径 ④根据目前设计测试用例