东北师范大学研究生软件工程chapter05.docVIP

东北师范大学研究生软件工程chapter05.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 软件工程 2.1 软件工程的基本概念 工程 为生产创建基础设施的过程,称为工程。 生产 利用工程提供的基础设施生产产品的过程,称为生产。 工程的生命周期 复杂工程需要按时间、分阶段进行,复杂工程中各个阶段按时序构成的有序序列,称为工程的生命周期。 软件工程 软件的开发过程,称为软件工程。 5. 软件工程的生命周期 软件工程需要按时间分为各个阶段进行,软件工程中各个阶段按时序构成的有序序列,称为软件工程的生命周期,或称为软件工程的生命周期法。 2.2 软件工程的基本原理 用分阶段的生命周期计划严格管理 强调软件开发过程严格按照生命周期的各个阶段进行,禁止在前一个阶段的工作尚未完成之前,进行下一个阶段的工作。 坚持进行阶段评审 强调软件开发过程各个阶段的技术审查与管理复审,确保软件质量和开发速度。 实行严格的质量控制 严禁劣质软件上市。 采用现代系统开发技术 强调尽量采用最先进的系统开发工具,避免在软件上市之前就已经过时的现象出现。 成果应该是可审查的 强调软件文档的完备性和可读性,两者称为文档的规范化。 开发团队的人员应该是少而精 强调对软件开发队伍管理的规范化。 承认不断改进的软件工程实践的必要性 软件工程学是对软件开发实践经验的总结与升华,需要不断经历时间的检验,并在实践过程中逐步完善。 2.3 生命周期法 软件生命周期由软件定义、软件开发和软件维护三个时期组成,每个时期又可以进一步划分为若干个阶段。 软件生命周期的定义不十分一致,相对准确的定义为:系统分析、系统设计、系统实现、系统实施、系统维护和系统淘汰。 图 2-1 软件生命周期 1. 问题定义 问题定义阶段必须回答的问题是“要解决的问题是什么?”。问题定义一般要求在三天之内完成,问题陈述文档长度不超过500字。 这个问题看似简单,实际并不简单,这是因为大部分用户不是对自己要解决的问题不十分清楚,就是阐述不清楚。 2. 可行性研究 这个阶段要回答的关键问题是“对于上一个阶段所确定的问题是否有行的通的解决方法吗?”。可行性研究一般要求在10~20天内完成,阶段性成果为系统的高层逻辑框架,文档长度不超过5000字。 可行性研究包括三方面内容: 技术可行性 经济可行性 操作可行性 有很多问题不是利用计算机解决的问题,或者,计算机不是解决问题的最有效的工具;除此之外,所谓“行的通”还包括成本/效益,如果用户不能负担软件的开发费用,或者问题的解决本身不会对用户产生重大影响,即:不会给用户带来近期或长期的经济效益,则同属不可行。 3. 需求分析 这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统必须做什么”,阶段性成果为系统的逻辑框架。 需求分析的工作性质与前两个阶段的工作性质基本相同,只是比前两个阶段的工作更细致、更具体一些,所以有时把这三个阶段都称为需求分析。 总体设计 这个阶段必须回答的关键问题是“应该如何解决这个问题?”。即:确定和提出解决问题的总体方案。阶段性成果为系统的高层物理框架。 5. 详细设计 这个阶段必须回答的关键问题是“应该怎样具体地实现这个系统”。即:详细设计是上一个阶段的细化或具体化。阶段性成果为系统的物理框架。 详细设计阶段成果的表达方式为软件蓝图,即:利用伪指令编写的程序。 6. 编码与单元测试 这一个阶段的任务是根据上一个阶段的成果,编写并测试每一个程序模块。 在编写程序的过程中,正确是相对的,错误是绝对的,成功的测试是发现程序中错误的测试。 7. 综合测试 这一个阶段的任务是对由各个模块构成的软件进行总体测试。测试的目的:一是软件的功能是否达到设计要求;二是软件是否有错误,错在那里。 综合测试中发现的错误一般为各个模块之间的调用关系方面的错误。 8. 技术培训与部署 这一个阶段的任务是安装与配置软件,并对软件的使用者进行培训。 9. 版本升级 这一个阶段的任务是跟踪用户的进一步需求,为软件添加新的功能,使得软件能够长时间的满足用户需求。 10. 软件淘汰 这一个阶段的任务是跟踪系统软、硬件的变化和用户需求的变化,定义新的软件,并确定新的软件的开始开发的时间。 软件淘汰的准则为:软件的信息结构发生变化。 2.4 瀑布模型 系统(软件)开发方法一般可分为两种,结构化系统开发方法和面向对象开发方法。结构化系统开发方法有时也称为瀑布模型,之所以称之为瀑布模型,是因为结构化系统开发方法有如下要求: 结构化系统开发方法中各个阶段必须在前一个基础之上进行,不允许跨阶段 结构化系统开发方法中各个阶段的阶段性成果一定大于前一个阶段的阶段性成果 当系统开发速度过快时,其各个阶段的阶段性成果中可能存在很多问题和错误,一旦发现错误,可能需要回溯的前一个阶段,这种回溯称之为湍流 2.5 技术审查与管理复审 2.5.1 进行审查和复审的

文档评论(0)

82393aa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档