




已阅读5页,还剩213页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CSDP备考提纲 推荐Sommerville的三本软件工程为参考重点 V V 设计 SCDP备考提纲 本提纲以以下标准展开 IEEE12207 0 1996 信息技术标准 软件生存周期过程 基本概念 依据 生存周期过程目标 生存周期数据坐标 关系 附录 IEEE EIA标准12207 1 1997为记录生存周期数据提供补充指南 IEEE EIA标准12207 2 1997根据美国实践对生存周期过程作的补充 替换 澄清 开发过程 含开发者的活动和任务 活动 1 过程实现7 软件编码和测试2 系统需求分析8 软件集成3 系统架构设计9 软件合格测试4 软件需求分析10 系统集成5 软件架构设计11 软件安装6 软件详细设计12 软件验收支持 支持生存周期过程 1 文档过程2 配置管理过程3 质量保证过程 联合评审 设计 验证和确认4 验证5 确认6 审计7 遗留问题解决 组织生存周期过程 1 管理过程2 基础设施构建3 改进过程4 培训过程 软件工程 术语是FreidrichL Bauer1967年首先使用软件工程的定义是 为了获得在实际的机器上能可靠 有效地工作且成本低廉的软件而建立并使用的健全工程原则 CASE 计算机辅助软件工程 辅助的层次 工具方法过程质量焦点过程的四类模型线性 顺序的 分析 设计 编程 测试原形 听取用户意见 建造模型 客户测试驱动的建造 反复 演进型 螺旋模型 6个任务域 客户通信 计划 风险评估 工程 构造和发布 客户评价形式方法模型 软件的形式教学规范 例如 洁净室软件工程 管理的诸元素 人SEI人员管理成熟度模型问题榫接应用设计 JAD 项目定义 研究 准备 JAD会议 文档制备过程SEICMM分五级 初始的 可重复的 可定义的 可管理的 可优化的 由关键实践集合定义的18个关键过程域目标约定能力活动监督实现的方法验证实现的方法 软件项目管理 量度与度量项目估计工作量估计技术 按大小的估计 经验模型风险分析调度追踪和控制软件质量保证质量定义 和现实陈述的功能 性能需求 显示的开发标准文档相符 和所有职业开发时都能料到的隐式特征相符 质量因素 正确性 可靠性 效率 集成性 可用性 可维护性 柔性 可测试性 可移植性 可重用性 可交互操作性 软件配置管理 协调软件开发使之开发最少且无冲突的技艺 技术诸方面 软件工程方法 4个主要活动1 求解问题的定义2 设计 解决方案以满足客户的需要3 构造这个解决方案4 测试实现的解决方案中所显露的潜在错误 并提出客户需求也已达到的告示途径传统的软件工程方法面向对象方法形式方法 问题定义 可创建一个原形也可以提供详细的分析模型集合分析原则 1 必须为问题的数据域建模2 必须为问题的功能域建模3 必须表示出系统的行为4 数据 功能 行为模型必须是分开的5 分析应从本初情况一直伸延到实现设计原则 1 应创建一个相互是抽象关系的数据集合来操纵数据和算法2 数据结构和算法的内部设计细节 对于使用该数据结构和算法的其他软件成分应该是隐藏的3 模块应独立出现4 应从逻辑结构的约束集设计算法 设计金字塔过程Procedural设计 顶 界面设计架构设计数据设计 底 测试 以测试发现错误黑箱测试 已知产品设计要实施的特定功能 就可以进行测试 察看每个功能是否完全运作了 白箱测试 已知产品内部工作情况 进行测试以确保 全部正常啮合 即内部操作按规范执行 所有内部构建都已充分演练 计算技术的几项成就计算的第一个重大成就是引入了FORTRAN和COBOL之类的高级语言 另一个策划成就是软件工程师思考算法时以高级语言表达 还有表单和字处理器的发明 其他重要进展 时间共享的实现 可改善程序员的生产率及其产品的质量统一的编程环境 工程与社会 在所有软件开发者之中大约有75 的人不用正规的过程和生产方式 以及正规的质量度量 作业道德 8个方面 公众 客户和雇员 产品 评判 管理 职业 同仁 自己洁净室方法 试图将形式表示法 正确性证明 统计质量控制融合在一起以演进的方式作软件开发 系统的成长是一次一个功能 在把他们集成为体系结构之前每个单元的质量都要确证 测试时为每个可能的路径分派概率 设计测试用例使高概率路径能被充分测试 然后运行每个试用例并测出它直到失效的时间 这个模型可用于程序可靠性计算 软件实体本质软件实体本质是由相互关联的概念构成的 数据集 数据项之间的关系和函数调用 这个本质固有的性质是复杂性 相符性 可变更性和不可见性 三个重要的突破高级语言 时间共享 统一的编程环境 UNIX interlisp 面向对象概念抽象数据类型 隐藏的 对象的类型应以名字定义 它代表一组特定的值 以及一组特定的操作而不是他的存储结构 存储结构是被隐藏的 Ada的私有类型 Modula的模块皆是 有层次的类型 允许人们定义一个通用的接口 并以下属的类型去进一步求精 Simula67的类就是例子 人工智能1 以计算机来解原先只能由人们运用智力来解得问题2 采用特殊的编程技术集 如启发式基于规则 专家系统 方式编程 此时 人类专家要研究决定用什么启发式或解这类问题有什么经验的规则 解决问题的程序被设计成某种好似人在解题的方式 软件工程再定义 IEEE标准610 12 应用系统的 科学的 可定量的方法来开发 运作和维护软件 标准来源 国际 ISO国际标准化组织国际电子技术委员会 国际电信联盟美国 电子工业协会IEEE CS软件工程标准委员会 SESC SESC文集综合文档 2000年版 三个组织原则标准 1 有规范的级别 可用于其他标准的资源标准 包括定义 分类或其他引用材料 2 文档 为文集其他部分作全面的指导3 为用户提供的策略或准则的标准4 相符性需求文档 含SESC文集标准的大部分 5 应用指南6 工具箱的细节技术 相当于 子例程 软件工程对象 客户 过程 产品 资源 在标准集中占了4卷与其他学科关系 系统学科 软件工程 质量管理 术语 系统和软件系统工程 5个主要的系统活动 即软件系统工程功能 1 问题定义系统需求分析 12207 0 1996 5 3 2节2 解决方案分析系统架构设计 12207 0 1996 5 3 3节3 过程规划4 过程控制5 产品评价项目管理功能 计划 组织 定员 指导 控制软件工程功能 软件设计 编码 单元测试 软件子系统集成 项目阶段系统分析 系统设计 系统工程 软件需求分析 软件架构设计 软件的系统工程 软件详细设计 编码和单元测试 子系统测试 软件工程 软件集成测试 软件系统测试 软件的系统工程 软件集成测试 系统测试 系统工程 软件系统工程 以系统工程的方式处理软件开发的一次应用系统 相关元素的集合 这些元素以某种方式实现共同的目标软件系统 是由程序和文档集组成的人工系统 它们一起工作 系统工程 是科学工程管理技艺的实际应用 这些都是将用户的需要转变为系统配置的描述所必须的 描述的配置应充分有效地满足需要 SE一般做出文档 不作其他制品环境和过程 IEEE标准1220 1998运作概念 ConOps 文档 概念分析结果的记录 为用户需要到系统和软件开发过程提供一个桥 概念分析过程是以 用户 运作的观点标识系统的所有特征 ConOps文档含场景和用例验证关联矩阵 一种表示方法 显示出用什么方法来验证 测试 每一个软件需求 软件设计 将最有效最高效的系统元素组合在一起实现软件系统需求的选择和作文档的过程架构设计 或称顶层设计或概要设计 等于系统设计 它可以向用户或客户示出最终产品的轮廓设计工具 1 功能流块图2 结构图 结构的树状表示 3 数据流图4 面向对象设计和对象图5 用例计划 定义一个项目的目标和目的 策略 政策 计划 规程并将它们归档 工作细目结构 WBS 一种表示法 过程或产品分层次的部件风险 不希望发生事情的机遇 如进度超期 项目超预算 或交付不适用的产品 由以下因素刻画 1 不确定性 0 1 2 关联遗漏3 至少有部分情况不明4 变更超时问题PROBLEM 物化了的风险规格说明 可以是对整个系统而言 也可以就单个构件的细节而论 用以指导设计过程 软件质量保证 SQA 有计划的 系统的活动模式 所有的活动都必须提供足够可信度 即事项或产品与已建立的技术需求相符软件配置管理 SCM 控制和报告软件趋势的一种方式 在分散的时间点上标识系统的配置验证 我建造的产品正确吗 确认 我是在建造正确的产品吗 系统工程 各种活动的逻辑过程 它将需求的集合从特定的使命目标提升到完整的系统描述 以某种优选的方式满足这个目标 它确保项目的所有方面都被考虑过并集成为一致的整体 系统工程背后的假定 系统工程背后的假定 产品应设计成能完全满足客户的实际需要 当然要求充分的客户输入系统作为一整体必须仔细地规划使返工再设计最小化质量功能部署 QFD 一种将产品属性分等级的技术 鉴于它们的重要性客户必须通过一系列度量运作概念 ConOps 概念分析 从用户的角度为定义待建系统的特征 对问题域和操作环境作分析的过程 它强调系统的综合视图和它的运作特征 而不是个别功能和片段 理想地 它应该是开发过程的第一步 用户需要优先 过程是迭代的 包括各方代表从用户 买家 和开发者的单位 还要加上有关方 培训和运营支持者 文档应说到有关系统的每件事 用户和买方要与系统未来的开发者相互通信 应该反复评审 订正直到卷入的各方均赞同的结果文档 这本身是迭代过程 文档应该是活的遍及整个生存周期 开发过程和后期运营 都要更新和维护 软件需求工程 软件需求定义 1 用户需要的软件的能力 籍以解决某个问题或达到某个目的2 系统或系统的构件必须拥有和满足的软件能力 它必须满足合同 规范 标准或其他正式的硬性文档 五个主要的活动 1 软件需求抽取2 软件需求分析3 软件需求规范4 软件需求验证5 软件需求管理 有关需求的标准 IEEE标准830 1998 软件需求规范推荐实践IEEE标准1233 制备系统需求规范指南IEEE标准1362 信息技术标准 系统定义 运作概念文档软件工程项目基础文档 1 软件需求规范2 项目计划软件需求类型 1 功能型2 性能型3 外部接口4 设计约束5 质量属性 可追踪性 可追踪性应是两方面沿着前向和后向验证软件的需求 一个阶段的需求以其结果转移到另一个阶段 也就成为下一阶段需求 可追踪性矩阵 以数码链接需求 数码来自系统需求文档 系统规格说明 系统分段规格说明和接口控制文档 提供所有发生在段落内部或段落之间的所有消息 理想的追踪过程 1 在系统层次上标识需求2 架构选定3 分类模式4 按所选模式分配需求5 顺流而下 设计 编码 测试 分类模式 功能方面 性能和安全性 按当事人的组织等等 实现可追踪性的步骤 1 收到需求文档2 选定架构形成后续3 选定分类模式4 文档解析并分配唯一数码5 按分类模式分配要求6 建立所有需求的链接7 生成可追踪矩阵8 将可追踪链接保存在数据库中以便维护9 在整个项目期间维护可追踪链接 需求分析每次迭代包括 1 系统必须提供的文档式需求2 求精这些需求3 分析遗漏 矛盾 含混4 复审是否考虑了平衡 即客户关心和希望的与解决方案的收益时限的平衡需求分析通常是为下一次需求抽取迭代做准备五种场景 1 运作的2 失败的不合法的输入 软件失败 接口失败3 性能的4 求精型5 学习型 原型开发 原型是最终系统的模型 它只是系统开发的一部分 关键重点在用户界面上 强调用户参与软件开发过程 它能快速的产生一个信息系统较传统生存周期方法要快得多 两种类型原型 迭代式 原型不断增强直至最终系统扔掉式 一种4GL模型用以开发最终系统是3GL的扔掉式原型可以和最终系统不一样 原型四阶段 1 决定系统的那些关键方面要做原型 用户界面 不肯定不明确的系统功能 时间需求 存储需求等 2 建造原型3 测试原型4 以原型做模型 软件设计 两阶段 架构 概要 设计构件 接口 数据库 用户文档 初步的 测试 初步的 综合进度详细 关键 设计架构设计诸元素的详细版本 更新的文档 测试计划设计描述的三种主要形式 正文图形数学表达式 设计观点 1 行为观点 描述外部事件在程序执行期间和系统活动之间的因果联系 状态转移图 状态图 泛系统模型 2 功能观点 描述系统做什么 数据流图 结构图 Jackson结构图 伪代码3 结构观点 描述该系统建造的构件的相互依赖 如子程序 模块 包 结构图4 数据建模观点 描述系统中使用的数据对象之间已经存在的关系 实体关系图 设计策略1 自顶向下2 组合法 标识实体集合 然后将它们组装3 组织法 有利于小组成员转移 SSADM就是例子 见下文 4 模板法 在编译器设计中使用Jackson结构化编程 基于方法的途径 是一种算法设计的方法表示部分 用Jackson结构图处理部分 1 画出输入和输出的结构图 尽可能详尽 2 融合它们创建程序的结构图 变换 3 列出操作表并分配到程序元素 尽可能详尽 4 将程序转成正文 尽可能详尽 5 增加条件 尽可能详尽 模块 一个函数或过程 或者是一个信息隐藏模块 它包含隐藏的信息以及访问这些信息的过程 模块之间有良定义的界面 内聚 一个模块的内部团结力度 耦合 模块间连接性的量度 结构设计 希望有强的内聚和低的耦合 但它在任务构造和信息隐藏方面 对于设计实时的系统被认为是不足 并发实时系统的实际方法是 强调构造系统使之成为并发任务的能力通过利用信息隐藏开发可修改而潜在的可重用软件实时系统的行为方面 定义时常用有限状态机能够分析一个设计的性能来判定该设计是否满足性能需求 DARTS 实时系统设计途径 强调将突出系统分解为并发的任务并定义这些任务之间的接口 Jackson系统开发 设计应首先为实体建模 然后才考虑系统的功能 三阶段 建模 网络 实现ADARTS 基于Ada的实时系统设计途径 和CODATS 实时系统的并发设计途径 都是在以上方法之上强调信息隐藏的模块构造和任务构造 ADARTS和CODARTS1 开发系统的环境和行为模型2 将系统构造成两个分布的子系统3 把系统 或子系统 构造成并发的任务4 把系统构造成信息隐藏的模块5 将任务和模块的视图集成6 开发一个基于Ada的架构设计7 为任务和模块定义构件的接口8 增量式地开发软件 型 模式 定式 Patterns 型 模式 是一种抽象 它是将具体事务中经常重复出现的 特定的 非任意指定的部分 也是 设计 一个解决方案时其上下文中重复出现的问题 型的形式由有限个可见的且可区分的成分及其关系组成 型 模式 的实力仅在特定的上下文中出现 该上下文使欲生成的具体形式得以诞生并受到相应的约束 型 模式 的形式是有限的 但其实例形式并不需要限制 上下文潜在是无限的 其结果 型 模式 仅能在其上下文的域中理解和正确的运用 要有对域的见解和经验背景 另一个结论是 型 模式 的形式只是它正式的描述而非它的上下文 型 模式 应以专业语言出现使得同样工作的其他人也能理解和正确运用 概念型 模式 是一种型 模式 其形式表述了应用域中的术语和概念的含义 概念型 模式 应置根于应用域中的隐喻 概念型 模式 应与某个有限的应用域相吻合 设计型 模式 是一种型 模式 其形式表述了软件设计构造的含义 如对象 类 继承和使用关系 设计型 模式 应符合或补足概念型 模式 的开启的概念空间 编程型 模式 是一种型 模式 其形式表述了编程语言构造的含义 我们把型 模式 定为有向图的节点 为了以正文表示 首先要将图的各分支顺序化 每一个型 模式 正文对要先于所有其它需要知道它的型 模式 正文对作出 逻辑上概念型 模式 先于设计型 模式 而设计型要先于编程型 合同 由行为规范组合而成架构 子系统 其运作不取决于其他子系统提供的服务 由模块组成 且有良定义的接口模块 系统的成分 为一个或多个其它模块提供服务 不是独立的 它有许多简单的系统成分 构件 组成架构模型的类型 1 静态结构模型 示出子系统或模块2 动态处理模型 示出系统如何组织为进程3 接口模型 定义各个子系统所提供的服务4 关系模型 示出关系 如各个子系统之间的数据流 系统构造 仓储库模型1 所有共享的数据均驻留于集中的数据库中供所有子系统访问 或2 每个子系统均保有自己的数据库客户 服务器模型1 一个各自独立的服务器集合为其它子系统提供服务2 一个客户的集合调用服务器提供服务3 有一个网络使得客户能访问这些服务抽象机模型 把系统组织为一系列层次 layers 每一层都提供一组服务 每一层都定义为抽象机 它的服务供实现下层抽象机使用 控制模型集中控制类型1 调用返回模型 自顶向下的子例程模型 2 管理器模型 并发系统 有一个系统构件充作管理器 控制其它系统进程的启动 停止和协调 事件驱动模型1 广播模型 一个事件被广播到所有子系统 后者响应并处理它2 中断驱动模型 在实时系统中使用 有中断处理器 模块分解 将子系统分解为模块1 面向对象模型 系统被分解为相互通信的对象集合2 数据库模型 系统被分解为功能模块 它接受输入数据并将其转 化为输出数据 流水线或管道 过滤方式 特定域架构1 类属模型 是许多实际系统的抽象2 参照模型 更抽象 描述系统的一大类 如OSI模型 OMT 对象建模技术架构风格可以看作是型 模式 语言 它为架构师提供词汇和框架 他们就可以建造有用的设计型 模式 以解决某个特定问题 软件可靠性 在某一时间间隔内 无故障运作的概率软件可靠性工程是预测 量度 管理基于软件系统可靠性的应用科学 使客户的满意度最大化 软件失败 执行程序时的一种行为 它使客户的运营需求不能满足 软件故障 可能引起软件失败的编码缺陷失败的烈度infensity 某个时间间隔内失败的次数故障密度density 每千行源代码 1000SLOC 故障数运作大纲profile 软件能以其发生的概率实行的功能集合确认validation 其要义是证明产品满足客户的需求 对客户的使用是适宜的 一般软件的产品确认包括系统测试和域测试在临近生存期末尾所能进行的最重要的活动是故障的根由分析故障树分析 从某个不希望的事件开始 该事件则成为一个图的顶端事件 然后以图形表示所有可能发生事件的各种各样的组合事件树分析 故障树分析的逆向 从某初始事件开始 考虑它的所有后继 特别是会导致灾祸的事件 安全紧要软件 希望一个系统中安全紧要的构件数最少 因为这些构件的需求更为严格 通常这些需求会与其它考虑冲突 如性能 费用等 安全必须从整个系统来考虑而不仅限于个别构件 可靠性 系统能很好的实施其功能安全性safety 系统的所有功能都不会导致偶然事故保障性security 取决于可靠性 安全性取决于保障性软件不能代替硬件 硬件遵从某些物理定理则可使某些不安全行为不可行 且硬件的不合格较之软件更可预测 且通过诊查硬件失败也是可预见的 Delphi技术 将问题清单发送至组中各成员 他们就讨论的题目表述自己的意见 协调者综合意见后 并隐去提议者的标识并发回 如此重复直至达成一致 榫接应用设计 由中立的促进者领导的会议 捕获并显示要显示的思想 危害hazard分析 目的是考察系统并判定哪些构件将导致灾害 有两种策略 1 归纳法 事件树分析 失败模式和影响分析 考察该系统中某个构件的特定故障 并论断可能的后果 2 演绎法 故障树分析 考察系统的失败 并论断系统或构件的哪些状态是造成失败的因由 失败模式和影响分析 创建一个表其列有以下内容 构件 失败模式 失败影响 失败原因 出现后的严重性 发觉的概率 风险 优先级 改正活动 值分10等 1最小 10最大 风险优先级以另三个数产生 人机界面设计 设计 实现 评价算一个周期 影响的因素包括 其它系统的经验 指南 以及基于人的因素研究 前一版本评价的结果 还有从任务中分析中导出的需求 成功的用户界面开发的三个支柱是 设计指南 用户界面快速原型 迭代测试可用性实验室 建立在理论和经验研究基础上 关键原则是用户界面视与觉保持一致性 可用性测试 要和真实用户一道 这是找出多个严重设计缺陷的仅有方式 开发可用性度量是可能的 软件设计描述 SDD IEEE标准1016 1998 软件设计描述推荐实践SDD是一种软件系统设计的表示法 它用作软件设计信息通信的媒介 按IEEE标准730 1998的定义SDD是要求的产物 它在设计阶段产生 是设计过程结果的记录 SDD示出软件系统为满足在软件需求规范 按IEEE标准830 1998 中标识的需求将会如何构造 它把需求翻译为软件结构 构件的描述 以及实现阶段所必须的数据 每个需求都必需能追踪到一个或多个设计实体 SDD是系统分割为设计实体的表示 并描述这些实体的重要性质及关系 每个设计实体的性质和关系都以属性的标定集合描述 设计实体的属性是该设计实体的命名特征或性质 它提供有关该实体的陈述 属性一般包括 1 标识 实体的名字2 类型 实体的分类描述3 目的 描述实体存在的理由4 功能 陈述实体做什么5 从属 标识组成这个实体的所有实体6 依赖 这个实体与其它实体关系的描述7 接口 描述这个实体与其它实体如何交互8 资源 描述实体用到的外部与设计的元素9 处理 描述为达到其功能所用的规则10 数据 描述它体内部的数据元素 设计视图是设计实体属性信息的子集 它特别适用于某些软件项目活动的需要 视图包括 1 分解描述 软件系统分解成设计实体的记录 2 依赖描述 实体间的特定关系 它标识相依赖的实体 描述它们的耦合 以及标识要求的资源 3 接口描述 为设计员 程序员 测试员正确使用一个实体提供的功能 提供必须知道的事情 4 详细设计描述 包含每一设计实体内部的细节 包括标识 处理 数据等属性 非功能需求 时间 大小 性能 保障性等 用例 用例是一完整的顺序步骤 为行为者提供有价值的结果行为者即系统的用户 不一定是人系统是尚在发展的事务 可以是软件也可以是业务过程写用例首先要决定你的受众 管理人 用户或开发者 每种人采用分别的文档 每个用例必须有详细的轮廓 它必须是要实现的功能是什么 用例一般包括 1 事件流基本路径 只要不出错 每个用例都会有的替换功能路径 替换或错误条件 对于简单的用例可直接记入基本路径文档 较为复杂的用例则分别描述 替换可只列出单个事件 如 在第 n 步有错误口令进入 2 前置条件和后置条件 后置条件必须为真 除非后续仍有分支 可以包含复合条件3 谁来启动用例 通常是行为者或某个系统 生存周期瀑布模型生存周期 分析 规格说明 设计 实现 测试 系统集成 维护喷泉式生存周期 阶段混合覆盖 分析 设计 编码 测试 集成 通过不断返回前阶段演进 迭代 增量生存周期 宏阶段是分析 设计 实现 微阶段是迭代场景 问题域中的一个动作序列 框架 一个应用或应用子系统以具体的和抽象的类实现的骨架 它是按给定的问题域将抽象超类体系结构的特化 面向对象 面向对象模型 系统被看作相互协作的对象 对象封包了结构和行为面向对象开发 对象比函数稳定 它们支持信息隐藏 数据抽象和封装 它可以以更一致的方法延伸生存周期和孕育原型以支持快速应用开发 能很好的支持并发性 层次结构 复杂性 所有的功能都通过对象间传递的消息达到 面向对象编程时 程序被组织为协作的对象集 每个对象都是某个类的实例 这些类是以继承关系组成的类层次体系的成员 面向对象语言的4大流派 都是Simula的后裔 基于Smalltalk 基于C 基于Lisp 基于Pascal面向对象语言特征 对象创建做功体 消息传递功能 类的功能 并有继承多继承 一个类继承多个超类多态性 是动态束定的结果 一个消息发送到一个对象要根据子类执行的情况来判定它的不同解释 抽象类 没有实例的类 只用于创建子类 基于对象的语言 面向对象设计围绕设计中的系统作逻辑和物理 静态和动态模型提取处理 面向对象系统开发 对象是实际零部件的抽象是按模型组合的结构和活动单元封装 是一个概念 对象应对系统其它成分隐藏其内部的内容以改善其可维护性对象应具有类属性性质 对以性质从超类到子类的继承支持可重用性多态性 多继承的结果 同一成分在几个新的地方可以有不同的性质 如同在子对象中的特化对象可以是面向数据的也可以面向任务 Booch把对象分类为行为者 当事人 agent 和服务者功能内聚 在处理单元中成组的动作从属于单一目标耦合 目的是系统各构件之间相互依赖程度低 结构化系统分析设计方法 SSADM 基本原理数据驱动 应用系统的底层 通用数据结构是集中开发的 物理设计中和逻辑设计是分离的 三个系统视图1 系统数据的底层结构 指逻辑数据结构 2 数据如何流入流出系统 在系统内如何变换 数据流图 3 通过事件和延时系统的数据是如何变更的 实体生命史 在自顶向下 早期阶段 和由底向上 逻辑设计阶段 处理后包容进了多少元素在每一个阶段都要保证规格说明和设计和用户的需求匹配 提倡在所有方法中都采用非正式的质量保证评审和走查每个SSADM步骤的产物都要形成项目文档 以备后续使用SSADM的阶段是 1 分析系统的运营及当前的问题 当前系统有什么新需求 2 作需求规范 从已有系统开始 增加业务系统选项 3 选择技术选项 4 逻辑数据设计 5 物理处理设计 6 物理设计 详细程序规格说明 文档 实体生命史 系统的数据如何随着事件改变通过事件对实体的作用的模型关系数据分析 规范化 范式 形式方法 形式方法要涉及某个形式语言的基本使用 形式方法用语言中的公式作形式推理以支持软件在软件开发中形式方法是以某种形式语言描述软件产物的方法 规格说明 设计 或源代码都是例子 使得形式证明成为可能 原则上是关于这些产物的性质的表达形式方法可用于快速原型 洁净室是螺旋模型的变体 基于 变换 的范型可用的形式方法为规格说明 和抽出隐域的推理提供了技术的多样性 形式方法为记录系统的功能都提供规格说明语言 1 Z 读作zed 2 通信顺序进程 CSP 3 维也纳开发方法 VDM 4 Larch5 形式开发方法方法学 FDM 限制 不能通过形式手段将非形式的变为形式的 形式方法只可用于验证 不可用于确认形式方法当一个实现运行在理想的抽象机上可验证是否满足规格说明 但在任何物理机器上运行时则不行区别 规格说明方法只是陈述规格说明是什么 而规格说明语言决定了规格说明表达的概念的详细程度 按语义域的三个主要类别 1 抽象数据类型规格说明语言2 进程规格说明语言3 编程语言洁净室方法学 将形式方法和结构化编程以统计过程控制 螺旋生存期 增量交付 审查 和软件可靠性建模等技术组合起来 软件重用和重构工程 重用包括程序成分 设计和思想的再部署 或人们的技艺和经验重构工程 对一个完整的系统的改进 并重新部署它域分析 理解一个应用领域的活动 域模型的范围一般是从特定应用到一般情况逆向工程 再认识高层域的概念 方法之一是针对代码的型式匹配 模式 样板 型板 或元素plans 逆向工程另一途径是在面向对象编程的意义上再识 对象 重用的中心材料是构件 它们都有接口 插接和套接 白箱重用 修改源代码适配重用 只有最后才动用 因为它可能降低质量 框架 一个互联对象集合 抽象类 它定义了系统的整个架构Basili方法 需求 设计 编码的完全重用 以描述子刻画重用对象 由变换已有重用条件使之成为要求的对象 活动是 标识 评价 修改 集成 编码与单元测试 标准12207 0 1996编码与单元测试开发者的开发和文档工作是 1 每一软件单元和数据库2 为测试1的测试规程和数据开发者测试每一软件单元和数据库 确保它们满足需求 测试结果归档开发者根据需要更新用户文档开发者更新测试需求和软件集成进度表开发者评价软件代码和测试结果按以下列表的准则 评价文档化的结果有 1 可追踪性从需求到软件项的设计 2 软件项的设计与需求的外部一致性 3 单元需求间的内部一致性 4 测试单元的覆盖 5 编码方法和标准使用的适宜性 6 软件集成和测试的可行性 7 运营和维护的可行性 实现 包括设计 编码 单元测试 集成等活动构造 架构层设计除外 软件产品 环境的类型经典的信息系统嵌入式系统桌面和局域网应用互联网和无线应用语言及工具集的选择 因素包括与语言的内在联系 工具集特别能实现哪种产物 影响因素还包括 可用的开发和执行环境存储的利用下一步是开发小组坐在一起评价需求和架构的描述 他们就成为通晓产品意图 需求 和架构如何与单个构件相吻合 单个需求应是 必要的不含混的可测试的可追踪的可度量的综合后 需求应是 重要性范围 对客户而言 稳定性范围 或变更的可能性 可修改性 即通过变更其他部分将变更的总量导引为一个需求 完整性一致性 无论是单个的还是集体的需求都应有完整性 一致性和简明性建造小组在对需求取得理解后就需要评价架构IEEE标准1471 2000 软件密集系统的架构描述IEEE的推荐实践把软件系统的架构定义为 一个系统的基本组织体现在它的构件 包括构件相互的和与环境的关系 以及指导它的设计 演进的原则 架构描述的使用包括 1 输入到后续的系统设计和开发活动2 输入系统生成和分析工具内聚 两事物为何紧密相关 它们必须出自单一项 包 数据类型 单个构件 类 内 耦合 量度两个项的相互依赖 详细构造计划 计划构造所需工作量是根据1 产品必须满足的需求 在设计 需求文档中2 项目必须满足的其它需求 在合同和SOW 软件应做工作 之中3 集成和部署的方案4 可用的员工 方法和生产能力详细构造计划应含1 一个详细的进度表2 一个方法和规程的描述 即将用于实施技术工作的3 一个员工和劳力开销计划4 一个要求什么资源并在何处得到的计划 估计工作量和持续期1 考察类似项目历史上的花费和进度数据2 利用参数化的模型 根据某些参数预断费用和进度 如估计代码行3 经验法 根据不太正式的 不成文的实践经验 详细的构件设计 内部设计 构件命名 名字应反映该构件是函数 返回值 还是过程 应描述性的 宜短但不隐晦 设计数据 算法 数据结构 程序 使用信息隐藏 将数据局部化为仅供需要访问它的设计结构 和抽象 只用语言的语义 如记录和结构的域名 以自然的方式表达和访问数据 而不是强调开发者必须知道数据如何存储的所有细节 定义过程界面 构件之间耦合是通过界面的 输入 输出 全局变量引用 外部输入输出和通信设计构件内部 通常用程序设计语言 PDL 即简化的英文 交流时不含混地去表明这些代码是做什么的例程的设计也要写入文档评审设计 编码和单元测试 组织控制流 顺序的 条件分支和循环任何问题都可以通过迭代递归的求解设计单元测试用例 测试单个的单元 即构件 的代码 代码实施的每一个功能都要有一个测试用例 每个简单分支或case语句都要有一个 如果是复合条件应有分别的测试用例测试每一条件 此外 设计测试用例时 构件所用到的数据应置于构件状态能接受的情况 这包括 1 定义的 项中已写出但尚未读入 有时即所谓设置了变量2 使用的 该项已读入3 扼杀的 该项虽写出 已定义了 但测试时不定义该值 评审代码和测试用例集成三途径1 自顶向下 首先完成顶层构件 测试时利用桩 stub 例程模拟底层它们将要调用的例程2 由底向上 底层构建先完成 使用 驱动程序 模拟高层调用它们的例程3 按流 沿着执行通过系统的迹线 首先完成必须的构件 实际集成迹线时可以是自顶向下 也可以是由底向上性能调谐 性能优化 存储 时间 准确度 结构化编程 Dijkstra方法 严格控制程序逻辑只能是顺序 选择和迭代早期运用 IBM纽约时报项目 采用主程序员小组组织 自顶向下逐步求精开发 按层次体系模块化 程序作功能验证结构化程序的行按时间先后书写 要使每一行都能被先写的行引用以便验证 结构化程序为它们的指令定义了一个自然的层次 通过顺序 选择 迭代反复地将这些指令嵌入到较大更大的程序部件中 由于程序定义了数学函数 从而可抽象出执行的细节 这样 在讨论程序的正确性时 可把它的规格说明看成纯数学问题公理化验证 理论的 通过程序对数据作用的推理来证明正确性 功能验证 行业中采用 是基于函数理论利用队 栈代替数组洁净室开发 无单元排错和统计测试的组合验证法编程语言高级 COBOL FORTRAN ADA低级 汇编系统实现语言或高级汇编 C语言的语法应一致 自然并有利于程序的可读性软件工程的语言应尽可能小 但控制结构的功能强 以便描述程序单元中的执行流 其组成应是 顺序的 选择的 重复的 一个语言被说成是强类型的 仅当他在编译时刻就能决定每一操作能否在一个对象上执行 即和对象的类型一致静态类型 变量的类型是固定的动态类型 变量的类型在运行中可以改变变体记录或判别式联合 利用标签决定记录的结构过程抽象 过程和函数 再定义它应如何做之前先抽象出应做什么 测试和集成 标准12207 0 1996 包括1 软件集成2 软件合格测试3 系统集成4 系统合格测试测试计划定出测试活动的范围 途径 资源 它是定义待测试项 哪种测试 和要实施的测试任务 每个任务的负责人 以及与此计划相关的风险功能测试 只涉及程序自身是否产生正确的输出回归测试 修改后再作功能测试 测试规格说明1 测试设计的规格说明2 测试用例的规格说明3 测试规程的规格说明测试报告1 测试项传出的报告2 测试日志3 测试偶然事件报告4 测试总结报告 非功能测试 测试附加的要求 对该软件作出以下检查 1 法规遵守情况2 内部响应时间实施情况3 是否按指定的用家风格写出4 满足文档标准 测试策略 功能与结构按功能 先从规格说明标识要求的功能 然后在测试中评估它们是否提供了按结构 以系统结构导出的数据作测试口述法 由一个人精确陈述在程序执行时某特征将输出什么测试用例 是功能测试时的重要构成结构化测试 两种方案1 程序以测试用例执行2 程序的功能与要求的功能对比是否一致 由符号执行和程序证明表征 静态与动态静态测试 是一种不涉及软件以数据执行的技术 包括程序证明 符号执行和破格分析程序证明 对于一个软件构件 严格定义其输入 输出数据集上的约束 如采用数学规程 从数学上证明代码是满足规格说明的符号执行 是执行软件系统的一种技术 变量采用符号值而不是常规的数或串的值破格分析 研究程序非正常特征的来源 如从不执行的孤立代码动态分析 要求软件执行 它是靠插入程序的探头 一些程序语句 可调用分析例程 记录程序的某些元素执行的频度 符号执行 以符号值代替真实的数据值 它产生一个表达式集合作为输出 每一个输出变量一个表达式 解释如下 在创建一个流图的结果上进行程序分析 该流图含有决策点和每一分支相关的赋值 从一个入口点开始穿越该流图 沿着某特定路径就产生出赋值语句和分支谓词的列表 结果路径则由一系列输入变量 条件谓词 和赋值语句表示 从顶端到底部沿着这条路经就得出这种方法的执行部分 在穿越路径期间每个输入变量凡有真实值之处均给以符号替换 分割分析 利用符号执行标识输入数据域的子域 符号执行在软件和规格说明两者上都要实行 路径条件就是用来产生子域的 使得每个子域都作了标识处理 程序的或规格说明的 无论在什么地方 输入域的一部分都不能分派到这种子域 这样 结构的或功能的 即程序的或规格说明的 故障都已发现程序证明 Floyd开发的 归纳断言验证 方法是 断言置于所选过程的开始和末尾 每个断言以数字描述该过程的功能 若说过程是正确的 仅当它的输入和输出断言而言 仅当它的输入断言在过程入口处为真 且保证在过程出口处输出断言也为真破格分析 第一层由编译器 和语言语法相符 实施 第二层由工具查找以下事例实施 有无不可执行代码 孤立的 存在 数组界有无超越问题 失于变量初始化 有无未用过的标号和变量 循环的跳进跳出域测试 根据需求非形式分类得到的域来创建测试用例 数据或功能都可以作为分割的基础随机测试 无需参照代码或规格说明即可生成数据 要求的主要软件工具是随机数发生器 适配紊乱测试 根据对测试用例集的有效性评估作出 这种量度用于生成未来的测试用例 目标是增强有效性 在软件中插入可执行的断言 是一些关于变量取值合理性的语句 其目标是断言违例数最大化 提供一个初始的测试用例集 它们执行后记录下断言违例 因为他们对断言违例记数没有什么作用 一般用优化例程来发现最佳值来代替有害值使断言违例数最大化 测试用例总被说成是继续紊乱 每一用例都要这样重复 紊乱的测试集被执行 周期性的重复直到断言违例数不再增加因果图 探究输入的组合 将规格说明分成可工作的片断 标识因果 输入和输出回应 构造一个将因果关系联接的图 以此种方式表示规格说明的语义 标注这个图示出不可能的果和不可组合的因 将图转换成有限入口的决策图 域测试 基于观察到的一些封闭点 它们虽然满足边界条件但对域错误特别敏感 选择测试数据是在或靠近路径域的边界计算测试 策略的焦点是计算错误 其测试数据是为对计算错误敏感的路径设置 由分析路径计算的符号表式选定测试数据自动生成 程序要执行时 测试数据自动生成已完成 其目标是按覆盖度量做出的覆盖指示应达到的程度 变异mutation分析 有关测试数据集的质量 利用程序测试测试数据 创建许多差不多是一样的程序 每一个都有一点变异 然后用同一测试数据集测试这些程序 如果测试数据测不出程序的变化 就说这个程序是 活 的 目标是具有 活 变异的程序所占百分数尽量小 这就说明程序经过了良好的测试测试策略总结 测试策略有点像生产可靠的软件 它是采用多种技术的一种 IEEE标准829 1998软件测试文档 测试计划 测试计划的目的是给出测试活动的范围 途径 资源和进度表 要标识待测试项 待测试的特征 待实施的测试任务 每个任务的责任人 以及与本计划相关的风险测试设计规格说明 测试设计要定义测试方案如何求精 标识待测试特征 以及与本计划相关的风险测试用例规格说明 测试设计规格说明标识所定义的用例测试规程规格说明 指定测试用例集执行的步骤 这个步骤一般用于分析软件项以便评价特征集测试项传出报告 标识可传出作测试的测试项 包括每个项的负责人 它的物理位置 该项的状态 当前项的需求和设计若有变化应注明在本报告中 测试日志 提供一个关于执行测试时按时序的切题细节的纪录测试偶发事件报告 将测试过程期间发生的尚需进一步研究的某些事件记入文档测试总结报告 是设定测试活动的结果的总结 根据这些结果提出评价 软件维护 IEEE EIA标准12207 0 1996 第5 5节 当软件产品由于出问题 或需要改进或适配 而需要修改代码及其相关文档时 维护过程就启动了 这个过程有以下活动组成 过程实现问题和修改分析修改实况维护评审 验收迁移软件退役软件维护是一个修改软件系统或构件的过程交付后故障已改正 改进了性能或其它属性 或适配了改变的环境 软件维护占总的生存周期的40 90 其分类如下 完善性维护 其变更按用户要求的结果做出 即所谓演进或维护 适配性维护 其变更按运营系统 硬件 或DBMS变动的后果作出改进性维护 标识并消除软件中的故障预防性维护 其变更按软件更易维护做出Lehman关于连续变更的第一定律 在真实世界环境中使用的程序一定要变更是必然的或成为该环境中用途进步最少的程序 关于增加复杂性的第二定律 随着程序变更的演进 它的结构更加复杂 增加的资源必须用于保持语义和简化结构 软件维护有三类问题要与本组织的目标看齐 因为维护 本组织的投资回报 可定量的收益都不清楚过程问题 在开发初期这些附加的活动不得而知 桌面帮助可估出这些变更 一旦证实则传到技术组去评估费用 还要做对软件和组织的影响分析 最后 作回归测试技术问题 软件应易于理解 其测试也是在费用 效益方面的一个挑战过程管理 在开发一个产品或实施一个服务时 对于要做的各项工作的指导 控制和协调软件过程模型 对软件过程的一个纯描述性的表示 表示特定软件过程的属性范围和它们存在的充分理由 维护过程有关标准 IEEE94 桌面帮助 接到问题以后 做初步分析 如该问题有意义则接受分析 进行对问题管理和技术分析 调查替换解决方案 费用实现 实现所选解决方案并测试发布 将变更 及其连带 发布给客户软件维护活动模型的七个阶段体现如下 问题标识分析设计实现系统测试验收测试交付 每种活动都有五个相关属性输入生存周期产品输出生存周期产品活动定义控制度量技术方面需要进行影响分析 变更的连带效应需要可追踪性 可追踪性是一种程度 即开发过程的两个或多个产物之间建立某种关系 特别是产物有前导 后继或与它们相互有关的主例程时 遗留系统 一般是较老的 多次修改的 大的 基于老技术的系统用过时的语言写出 且无可用文档可能 对遗留系统 的解决方案 如同当前开发 尽可能按子合同作维护用一个程序包置换遗留软件重新来一次再实现销毁遗留软件 不再继续冻结维护 在新系统中做调整封装老系统 把它作为新系统的调用服务对遗留系统作逆向工程 开发一套新的软件逆向工程 分析一个主系统 标识该系统的构件及其交互关系的过程 并为该系统创建另一种形式或较高抽象层的表示 逆向工程的两种形式重制文档 在同样抽象的层次上 创建或修正一个语义相符的表示设计复原 考察系统自身 标识有意义的高层抽象 远离那些直接获取物切片 一种静态分析技术 只显示那些对指定变量有影响的源代码语句重构工程 考察一个主系统并重构一个新形式的替换方案 随后实现新形式 软件维护 IEEE标准1219 1998 是关于软件维护活动的需求 即过程 控制和计划管理 执行和文档的需求维护过程的阶段 标识问题 修改 分类 定优先级 在本阶段 软件的修改应标识 分类 并附以一个初始的优先级 应该评价每一个修改请求 MR 才能决定它的分类和处理的优先级分析 在本阶段应利用仓储库的信息和在修改标识中已确认的MR 以及分类情况 连同系统和项目的文档 研究修改的可行性及范围 并作出设计 实现 测试和交付的初步计划 设计 在本阶段 所有当前的系统和项目的文档 已有软件和数据库 分析阶段的输出 包括详细分析 需求陈述 标识的受影响的元素 测试策略 和实现计划 都要用于修改本系统的设计 应该收集度量 量度和本阶段标识的相关因素 并在适当的时间间隔内评审实现 设计阶段的结果 当前的源代码 项目和系统的文档 即通过分析和设计阶段已整个更新的系统 都应用来导出实现的工作量系统测试 按IEEE610 12 1990的定义 系统测试应在修改了的系统上进行 回归测试是系统测试的一部分 应该实行 以确认修改的代码并未导入新故障 即维护活动之前是不存在的故障 验收测试 验收测试应在完全集成好的系统上进行 可以由客户 即修改包的用户 实施 也可以由客户的第三方实施 验收测试在SCM之下的软件应遵循IEEE提供的标准IEEEStd828 1998 其它则遵循IEEEStd730 1998 交付进行物理配置审计 PCA 通知用户团体为备份开发该系统的归档版本进行安装并在客户员工中作培训 第二卷支持过程 软件配置管理和问题解决过程 IEEEStd828 1998和12207 0 1996 软件配置管理 SCM 是一个正式工程学科 是整个系统配置管理的一部分 在软件开发和使用期间 为标识和控制软件提供一组方法和工具 其活动包括标识和建立基线 评审 批准 和变更控制 变更的追踪和报告 审计和评审软件产物的演进 控制界面归档和项目提供者 软件开发者 配置管理过程是一个在整个软件生存周期中运用行政管理和技术规程的过程 包括 1 对系统中的软件项作标识 定义和设立
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职代会员工管理办法
- 上海高危产妇管理办法
- 行业系统消防管理办法
- 2025年HF-FB防弹玻璃项目发展计划
- 蚌埠艺术培训管理办法
- 营销费用兑付管理办法
- 行政平台维护管理办法
- 专利实施许可管理办法
- 磁器口古镇管理办法
- 精装房验收管理办法
- GB/T 9115.4-2000环连接面对焊钢制管法兰
- CAK-13CNC不落轮镟床维修指引
- 项目融资概述课件
- DB225118-2022建筑工程资料管理标准
- 不良资产尽职调查清单
- 小学语文口语交际教学讲座PPT
- 中国电力优质工程奖评审办法
- 上海建筑装饰集团发展战略报告(doc 30)
- 体能训练概论(NSCA)
- GB 38600-2019 养老机构服务安全基本规范
- 电子课件-《网络营销(第三版)》-A24-2998ppt课件
评论
0/150
提交评论