- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[UML系统建模与分析设计-系统建模与分析设计技术的演变
软件工程方法 UML系统建模 与分析设计 第一章系统建模与分析设计技术的演变 本章目的: 理解软件的基本概念和特点 了解软件的发展过程及软件开发过程 了解软件开发的方法 掌握面向对象技术的基本概念及开发过程 了解几种典型的面向对象方法 1.1 软件的概念、特点和分类 1.现代软件的概念和特点 (1)软件规模大。 (2)软件开发规范并趋于标准化。 (3)软件开发方法多,有大量的软件工具持。 (4)注重软件开发的管理。 (5)软件维护相对过去容易得多。 2.软件的分类 (1)按软件的功能划分 系统软件。 支撑软件。 应用软件。 (2)按软件的规模划分 微型软件。 小型软件。 中型软件。 大型甚至超大型软件。 (3)按软件工作方式划分 实时处理软件。 分时软件。 交互式软件。 批处理软件。 (4)按软件服务对象的范围划分 项目软件。 产品软件。 (5)按使用的频度划分 一次性使用软件。 使用频度较高的软件。 (6)按软件失效的影响程度划分 一般性软件。 关键性软件。 1.2 软件的发展与软件工程 软件工程的指导性原则: 变动的软件需求。 稳妥的设计方法。 高效的软件开发支持技术。 有效的过程管理。 软件工程具有里程碑意义的进展: 结构化软件开发方法的工具。 计算机辅助软件工程(CASE)。 面向对象语言和方法成为主流的软件开发技术。 1.3 软件开发模型的演变和生存周期 1.3.1 软件开发过程与模型的演变 1. 瀑布模型(waterfall model) (1)慎重使用瀑布模型的情况: 不能充分理解客户需求或客户需求有可能迅速发生化; 系统太大太复杂,不能一次做完所有的事; 事先拟采用的技术迅速发生变化; 提供的资源有限; 无法利用各开发阶段的某一中间产品。 (2)使用瀑布模型的情况: 系统所有的功能、性能要求客户可以一次性准确交付时; 必须是首次开发的新系统并且淘汰全部老系统时。 2. 渐增模型(incremental model) (1)慎重考虑使用渐增模型的情况: 不能充分理解客户需求或客户需求有可能迅速发生变化; 事先拟采用的技术迅速发生变化; 客户突然提出一些新的功能需求; 长时期内仅有有限的资源保证(开发人员和资金)。 使用渐增模型的情况: 需要在尽短的时间内得到系统基本功能的演示或使用; 各版本都有中间阶段产品可提供使用; 系统可以被自然地分割成渐增的模式; 开发人员与资金可以逐步增加。 3. 演化模型(evolutionary model) 演化模型也称为原型(prototype)法模型。 使用演化模型时应注意: 演化模型也是通过系统各个可执行的中间版本以渐增的形式来开发系统的,但是客户需求可以分步逐渐了解,不用在初始时就确定。 在模型中,可以预先定义一部分客户需求,然后在每个后继的中间版本中再逐步增加需求,一点点完善。 在开发每个中间版本时,开发过程中的活动和任务可以顺序地或部分重叠平行地被加入到这些中间版本中。 4. 螺旋模型(spiral model) 螺旋模型的四类活动: 制定计划。 风险分析。 实施开发。 客户评估。 5 . 智能模型(intelligent model) 1.3.2 软件开发模型的选择 要综合考虑以下几个因素: (1)软件规模 (2)软件类型 系统软件的开发。 实时软件的开发。 商业应用软件的开发。 嵌入式软件的开发。 人工智能软件的开发。 (3)软件质量要求 (4)交付工期 (5)客户需求明确度 (6)投资 (7)可复用性 (8)开发者掌握的资源 1.3.3 软件生存周期 1.软件定义 (1)软件系统的可行性研究 1)经济可行性研究。 2)技术可行性研究。 3)法律可行性研究。 4)方案的选择。 (2)需求分析 1)任务。 软件功能需求: 软件性能需求: 软件系统运行环境: 2)按需求建模。 3)软件需求规格说明(Software Requirements Specification,简称SRS)。 2.软件开发 (1)概要设计 建立系统总体结构和各模块之间的关系; 定义各个功能摸块的接口; 设计全局数据库或数据结构; 规定设计约束; 制定组装测试计划。 (2)详细设计 对概要设计进行细化; 建立文档资料。 (3)实现 选择合适的编程语言; 制定测试案例; 保存文档资料。 (4)组装测试 (5)确认测试 3.软件使用、维护和更新换代 (1)软件使用 (2
文档评论(0)