- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件开发生命周期与统一建模语言UML 中国水利水电出版社 软件开发生命周期与统一建模语言 软件开发生命周期与统一建模语言 第1章 软件工程概述 1.1 用例概述 1.1.1 软件及其特点 1.1.2 软件危机 1.1.3 软件工程的定义 1.1.4 软件工程的基本原理 1.2 软件开发生命周期 1.3 过程模型 1.3.1 常见的生命周期模型 1.3.2 生命周期模型的应用 1.4 软件工程方法学 第1章 软件工程概述 教学要求 理解:软件和软件工程的概念;软件开发生命周期。 掌握:软件过程模型运用的原则。 1.1 软件、软件危机和软件工程的定义 软件开发是一个专业领域的人在为另一个专业领域的人服务 在软件开发过程中,需求可能经常在变,每次需求变化会带来软件系统的开发延迟,甚至出现变更反复,被推倒了的内容又要重新确立 在软件没有最终交付时,用户如何了解开发进展情况 系统难以维护和扩展,经常重复开发类似的功能 项目经常延期,实际成本往往远远高于估计成本 开发团队内部使用了不同的技术,在交流时常常有障碍 …… 1.1 软件、软件危机和软件工程的定义 软件与硬件 1.1 软件、软件危机和软件工程的定义 软件的特点 软件是脑力劳动的产品,但它不同于追求个性化的艺术作品;软件是产品,但它又不同于工业化生产得到的有形产品 1.1 软件、软件危机和软件工程的定义 1.1 软件、软件危机和软件工程的定义 什么是软件 软件 = 程序 + 数据 + 文档 数据包括初始化数据、测试数据、研发数据、运行数据、维护数据,以及软件企业积累的项目工程数据和项目管理数据。 文档是开发、使用和维护程序所需要的图文资料。 1.1 软件、软件危机和软件工程的定义 什么是软件危机 软件危机是指在计算机软件的开发和维护过程中所遇到的一系列严重问题 如何开发软件,以满足对软件日益增长的需求 如何维护数量不断增加的已有软件 1.1 软件、软件危机和软件工程的定义 消除软件危机的途径 正确认识软件。 软件=程序+数据+文档 在软件开发的各个阶段都要有完备的文档。 加强管理。 软件开发应该是一种组织良好、管理严密、各类人员协同配合、共同完成的工程项目,应该推广使用在实践中总结出来的开发软件的成功的技术和方法。 使用软件工具。 在软件开发的每个阶段都有许多烦琐重复的工作需要做,在适当的软件工具辅助下,开发人员可以把这类工作做得既快又好。 总之,为了解决软件危机,既要有技术措施(方法和工具),又要有必要的组织管理措施。软件工程正是从管理和技术两方面研究如何更好地开发和维护计算机软件的一门学科。 1.1 软件、软件危机和软件工程的定义 软件工程的定义 软件工程 = 管理 + 技术 软件工程的目标 1.1 软件、软件危机和软件工程的定义 软件工程的基本原理 (1)用分阶段的生命周期计划严格管理。 统计发现,不成功的软件项目中有一半左右是由于计划不周造成的。因此,有必要制定完善的计划,分阶段地进行管理和控制。 (2)坚持进行阶段评审。 软件中的大部分错误是在编码之前造成的;错误发现与改正得越晚,所需付出的代价也就越高,如图1-4所示。因此,在每个阶段都进行严格的评审以尽早发现在软件开发过程中所犯的错误,是一条必须遵循的重要原则。早中晚低中高变化出现的时期代价 (3)实行严格的产品控制。 软件开发过程中,需求的变更往往需要付出较高的代价,但这种改变又是难以避免的,因此不能硬性禁止客户提出改变需求的要求,而要依靠科学的产品控制技术来顺应这种要求,按照严格的规程进行变更控制。 (4)采用现代程序设计技术。 如“清晰第一、效率第二”的程序风格;面向对象的分析方法;各种框架技术的使用、模式的应用;软件建模方法的运用等。实践表明,采用先进的技术不仅可以提高软件开发和维护的效率,而且可以提高软件产品的质量。 (5)结果应能清楚地审查。 软件是脑力劳动的逻辑产品,应该根据软件开发项目的总目标及完成期限规定开发组织的责任和产品标准,制定出完备的文档,从而提高其“可见性”。 (6)开发小组的人员应该少而精。 (7)不断改进软件工程实践的经验和技术。 1.1 软件、软件危机和软件工程的定义 改正同一错误付出的代价随时间变化的趋势 1.2 软件开发生命周期 如何盖一栋大楼? 1.2 软件开发生命周期 1.问题定义——“要解决的问题是什么?” 2.可行性论证——“有行得通的解决办法吗?” 3.需求分析——“系统必须做什么?” 4.总体设计——“概括地说,怎样做?” 5.详细设计——“具体怎样做?” 6.编码和单元测试 7.综合测试 8.运行/维护 1.2 软件开发生命周期 1.问题定义——“要解决的问题是什么?” 通过对
文档评论(0)