软件工程-项目生命周期_第1页
软件工程-项目生命周期_第2页
软件工程-项目生命周期_第3页
软件工程-项目生命周期_第4页
软件工程-项目生命周期_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件生命周期 软件工程 软件生命周期软件过程的基本活动软件描述软件设计与实现软件有效性验证软件进化 内容提要 软件生命周期 软件从定义开始 经过开发 使用和维护 直到最终退役的全过程称为软件生存周期 软件生命周期由软件定义 软件开发 运行 维护及退役五个时期 而每个时期又可以进一步划分成若干阶段 问题定义 要解决什么问题 尽管确切定义问题的必要性是十分明显的 但在实践中它却可能是最容易被忽视的问题 通过对客户的访问调查 系统分析员扼要的写出问题的性质 工程目标和工程规模的书面报告 经过讨论和必要的修改后这份报告应该得到客户用户的确认 可行性研究 做还是不做 本阶段的任务是根据用户提出的工程项目的性质 目标和规模 进一步了解用户的要求及现有的环境及条件 从技术 经济和社会等多方面研究并论证该项目的可行性 即该项目是否值得去解决 是否存在可行的解决办法 可行性论证包括经济可行性 技术可行性 操作可行性 法律可行性等 需求分析 需求分析的任务需求分析的任务是确定待开发的软件系统 做什么 不做什么 不考虑 怎样做 具体任务包括确定软件系统的功能需求 性能需求和运行环境约束 编制软件需求规格说明书 软件系统的验收测试准则和初步的用户手册 需求分析 2 需求分析的实现途径软件系统需求一般由用户提出 系统分析员和开发人员在需求分析阶段必须与用户反复讨论 协商 充分交流信息 并用某种方法和工具构建软件系统的逻辑模型 为了使开发方与用户对待开发软件系统达成一致的理解 必须建立相应的需求文档 有时对大型 复杂的软件系统的主要功能 接口 人机界面等还要进行模拟或建造原型 以便向用户和开发方展示待开发软件系统的主要特征 确定软件需求的过程有时需要反复多次 最终得到用户和开发者的确认 需求分析 3 需求分析的阶段成果需求分析阶段的主要成果有软件需求规格说明 软件验收测试计划和准则 初步的用户手册等 软件需求规格说明 SoftwareRequirementsSpecification 即SRS 是一个关键性的文档 多数场合 面向开发者的软件需求用需求规格说明语言来描述 它是软件开发人员进行软件设计的依据 另一方面 从某种意义上讲 SRS又起到与用户签定合同的合同书的作用 软件开发 软件开发过程由概要设计 详细设计 编码与单元测试 综合 测试共5个阶段组成 开发者通常可提出多种设计方案 并对各种方案在功能 性能 成本 进度等方面进行比较和折衷 从中选出一种 最佳方案 概要设计 1 任务 是对需求规格说明中提供的软件系统逻辑模型进行进一步的分解 从而建立软件系统的总体结构和各子系统之间 各模块之间的关系 定义各子系统接口界面和各功能模块的接口 设计全局数据库或数据结构 规定设计约束 制定组装测试计划 进而给出每个功能模块的功能描述 全局数据定义和外部文件定义等 概要设计 2 实现途径选择某种方法和工具 设计的软件系统应具有良好的总体结构 尽量降低模块接口的复杂度 并力争做到各功能模块之间的低耦合度 而功能模块内部具有较高的内聚度 3 阶段性成果概要设计说明书 数据库或数据结构说明书 组装测试计划等文档 详细设计 任务 是将概要设计产生的功能模块进一步细化 形成可编程的程序模块 然后设计程序模块的内部细节 包括算法 数据结构以及各程序模块间的接口信息 并设计模块的单元测试计划 途径 可以采用结构化的设计方法 采用结构化的程序流程图 N S图 PAD图 过程设计语言 PDL ProcedureDesignLanguage 等工具进行描述 也可以采用面向对象的设计方法等等 阶段成果 应提供 详细设计规格说明 和单元测试计划等详细设计文档 编码与单元测试 编码的主要任务是根据详细设计规格说明 用某种选定的程序设计语言把详细设计的结果转化为机器可运行的源程序模块 这是一个编程和调试程序的过程 一般来说 对软件系统所采用的分析方法 设计方法 编程方法以及所选用的程序设计语言应尽可能保持一致 编码阶段应注意遵循编程标准 养成良好的编程风格 以便编写出正确的便于理解 调试和维护的程序模块 编码与单元测试 2 单元测试 每编写出一个程序模块的源程序 调试通过后 即对该模块进行测试 这称为单元测试 3 实现阶段的成果 按一定规则存储在一定载体上的通过单元测试的各功能模块的集合 详细的单元测试报告等文档 测试 测试阶段解决的主要问题是 通过怎样的测试 及相应的调试 使软件系统达到用户的预期要求 测试分模块测试 集成测试 验收测试 1 集成测试 集成测试 根据概要设计提供的软件结构 各功能模块的说明和集成测试计划 把经过单元测试检验的模块按照某种选定的策略逐步进行组装和测试 主要任务 测试系统各模块间的连接是否正确 系统或子系统的正确处理能力 容错能力 输入 输出处理是否达到要求 阶段成果 应是满足概要设计要求 可运行的软件系统和源程序清单 集成测试报告等文档 2 验收测试 任务 按照验收测试计划和准则对软件系统进行测试 看其是否达到了需求规格说明中定义的全部功能和性能等方面的需求 验收测试结束时 应生成验收测试报告 项目开发总结报告 并向用户提交源程序清单 最终用户手册 操作手册等文档资料 最后 由专家 用户负责人 软件开发和管理人员组成的软件评审小组要对软件验收测试报告 测试结果和软件进行评审 通过后 软件产品正式通过验收 即完成了开发合同 可以交付用户使用了 运行 软件工程师将所开发的软件安装在用户需要的运行环境中 以交给用户使用 这个阶段成为运行阶段 该阶段的问题是 软件能否顺利的为用户进行服务 软件的运行是软件产品发挥社会和经济效益的重要时期 在软件使用过程中用户或软件工程师必须仔细收集已发现的软件运行中的问题 定期或不定期的拟定 软件问题报告 维护 任务 通过各种维护活动使软件系统持久地满足用户的需求 每项维护活动实质上都是一次压缩和简化了的软件定义和软件开发过程 都要经历提出维护要求 分析维护要求 提出维护方案 审批维护方案 确定维护计划 修改软件设计 修改程序 测试程序 评审 验收等步骤 维护活动一般可以分程四类 改正性维护适应性维护完善性维护预防性维护 维护 据统计 软件维护人员为了分析和理解原软件系统所花费的工作量约占整个维护工作量的60 以上 在软件开发的过程中应重视对软件可维护性的支持 退役 它是软件生命周期的结束 即停止使用 终止其运行 软件研制与软件测试的层次对应关系 软件过程的基本活动 所有软件过程都包含4项基本活动 软件描述 需求工程 软件的功能及操作上的约束必须定义软件设计与实现软件一定要按描述来生产软件有效性验证软件要被确定是有效的 即要做客户想要的事软件进化 维护 软件一定按客户需求的变更来进化 软件描述 需求工程 软件描述的目标是确定系统需要哪些服务以及运行期间受到哪些约束 需求工程产生用以描述系统的需求文档 通常需求文档被分成两个层次来描述 最终用户和客户需要高层次的需求描述 系统开发人员需要比较详细的系统描述 需求工程过程有4个主要阶段 可行性研究 需求导出与分析 需求描述和需求有效性验证 软件描述 需求工程 可行性报告 可行性研究 需求导出与分析 系统模型 用户需求与系统需求 需求文档 需求描述 需求有效性验证 软件设计与实现 软件设计与实现阶段是把系统描述转换成一个可运行的系统的过程 它总是包含设计和编程 软件设计是对实现软件的结构 系统的数据 系统组件间的接口以及所用的算法进行描述 在设计过程中不断添加设计要素和设计细节 并对先前的设计方案进行修正 软件实现是将设计方案转换成可执行的程序 软件设计 设计过程中一些特别的活动有 体系结构设计 识别系统由哪些子系统构成 及其关系抽象描述 每个子系统提供的服务及在什么范围内运行接口设计 每个子系统与其他子系统间的接口组件设计 分派服务到不同组件 并设计接口数据结构设计 详细设计并描述实现阶段的数据结构算法设计 详细设计并描述服务将要采用的算法 软件设计 事实上设计过程中的活动是交替进行的 设计产品 需求描述 体系结构设计 抽象描述 接口设计 组件设计 数据结构设计 算法设计 系统体系结构 软件描述 接口描述 组件描述 数据结构 算法描述 设计活动 设计错误修复 定位错误 程序错误修复 重测程序 软件有效性验证 软件有效性验证是要看系统是否符合它的描述以及是否符合客户的需求 它包括检查过程 从用户需求定义到程序开发的每个软件过程阶段 绝大多数有效性验证的成本发生在系统完成测试的时候 测试过程应该和开发过程相结合 分阶段增量进行 系统有效性验证 测试过程的阶段包括 单元测试模块测试子系统测试系统测试接收测试 测试 针对产品软件 测试过程 单元测试 模块测试 子系统测试 系统测试 接收测试 用户测试 集成测试 组件测试 测试过程中的测试阶段 需求描述 系统描述 系统设计 详细设计 接收测

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论