




已阅读5页,还剩32页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章 软件工程模式 本章内容安排 软件工程模式 瀑布模型 原型开发模型 螺旋模型 四代技术 混合模型 面向对象生存期模型 统一的软件开发过程 基于构件的软件开发 Web服务 软件工程四个关键元素 方法(Methodologies) 提供如何构造软件的技术 语言(Languages) 用于支持软件的分析、设计和实现 工具(Tools) 为方法和语言提供自动化或半自动化的支持 过程(Procedures) 软件工程过程 软件工程过程是黏结剂(glue),把方法 、语言和工具黏结在一起,使得计算机软 件开发理性化 定义了方法使用的顺序、可交付产品(文档、 报告以及格式等)的要求 帮助确保质量和变更(修改)的控制 使软件管理人员能对项目的进展进行评价 软件工程模式 软件工程由系列方法、语言、工具和过程的步骤 所组成,这些步骤称之为软件工程模式( Patterns) 软件工程模式又叫做软件工程范例(Paradigms)、 软件生存周期模型(Life-Cycle Model)、软件开发过 程(Development Processes)或软件过程( Software Processes) 软件工程模式的选择则是根据项目和应用的性质,方 法和语言及工具的使用,控制和可交付产品的要求等 因素决定 瀑布模型(Waterfall Model) 关于瀑布模型 瀑布模型的来源 是把硬件工程模式应用到软件工程中得来的 是一种最古老和使用最广泛的传统工程模式 瀑布模型的实质 是面向阶段的和线性的开发策略 把一个项目开发分成几个阶段:由系统需求分析开始, 然后是软件需求分析、设计、编码、测试和维护 除了确认和验证外,其他所有阶段都是当它的前一阶段 完成以后才能开始 而实际上大多数情况是难以做到的,甚至是不可能的 瀑布模型的适用范围 这种模型在科学计算、嵌入式和实时控制软件中使用很 好,但在商业数据处理等软件中却不适用, 原型开发模型(Prototyping Model) 关于原型法 原型开发的实质 就是允许失败。即人类不论在开发实践活动中如何小心谨慎,也不 论所使用的技术和工具多么好,仍不可能经一次努力就能开发出完 全正确的软件。实际上,原型是确定需求的一种机制 原型开发的方法 借鉴硬件工程的方法,在项目的早期尽快生产出一个简化(主要功 能和用户界面)且便宜的可运行软件版本,作为用户和开发人员学 习 和评价一种系统 原型开发存在的问题 为了快和省,原型版本经常采用一些折衷的解决方法,所以质量问 题较多 原型版本只是一个临时版本,用户并不了解 三类原型开发方法 根据应用不同,原型开发可分为: 抛弃式原型的最大用处是辅助分析和确定用户 需求,及解决系统任何部位的不确定性问题 演化式原型可以作为一种开发方法,用于对付 系统频繁更改最有效的方法。与抛弃式原型不 同,利用演化能成为最终系统 增量式原型开发与演化式原型不同,它是建立 在软件总体设计基础上的。可以作为瀑布模型 开发的补充 螺旋模型(Spiral Model) 关于螺旋模型 螺旋模型的特点 综合了瀑布模型和原型开发模型的优点 增加了一个新的元素,即风险分析(Risk Analysis)。用于弥补 两者的不足 螺旋模型的四个活动 计划 确定目标、可选方案和限制 风险分析 可选方案的分析和风险的确定和解决 工程 产品的开发 用户评价 对工程结果的评价 螺旋模型的应用 是当前大型系统开发最好和最现实的方法 四代技术(Fourth-Generation Techniques, 4GT) 关于4GT 4GT是20世纪80年代为快省且好的开发数据处理系统发 展起来的一种程序重用方法 这种模式都有一组工具,它们都有一个共同的特点,即 每个工具都能够使软件开发人员在高层次上定义软件的 某些特点,并把其定义的这些特点自动地生成源代码。 应用领域局限于事务信息系统的应用程序,特别是信息 分析和报表,关键是需要大型数据库;新的CASE工具 支持用4GT自动生成工程和实时应用方面的框架代码 对于中小型应用软件,生产所需时间大幅度减少,而且 小型应用软件设计和分析的数量也明显减少 用4GT开发大型软件需要同样多或更多的分析、设计和 测试工作量 混合模型(Hybrid Model)实例 关于混合模型-1 混合模型的提出 最早由美国国防部软件工程研究所(DODSEI)和美国卡内基- 梅隆大学(CMU)1985年发表的、报告中提出的 许多项目很少能完全按上面讨论各模型定义所确定的阶段一步 一步地进行。因为,任何一个项目的开发完全取决于软件的应 用领域、规模大小、可重用构件的大小和多少、软件实现的硬/ 软件环境、开始和交付的规定、周期和成本的限制,以及开发 人员的素质等因素。还有一个对开发过程影响更大且经常被忽 视的重要因素,这就是用户的需求从提出的第一天开始,直到 软件被废弃为止都在改变。为此,需要开发一种更加灵活、更 为动态的方法来解决软件开发过程中遇到的各种问题 关于混合模型-2 混合模型的四个阶段 分析阶段:构思和预计划,以及需求分析,规 格说明等活动 综合阶段:系统构造阶段 运行阶段:系统的修改和维护,以及目标环境 的修改和维护 废弃阶段 关于混合模型-3 混合模型 目前,软件企业一般都采用混合模型开发软件 是把瀑布、原型、螺旋和4GT开发模式组合起 来,允许一个项目可以根据项目特征和要求及 企业自身的开发条件(技术的和管理的)选择 一条最有效的路径 好处:给企业管理者和开发者提供了一个舞台 ,使每个模型的长处都得到发挥。但由此对企 业管理和技术都提出了更高要求 面向对象生存期模型 面向对象和面向对象生存期的提出 20世纪80年代,结构化方法虽然使人们对软件的认识重点从组成程 序的语句序列转到了构成软件的模块序列,但仍不足以从根本上解 决软件问题,于是提出了面向对象的方法 20世纪90年代初,随着OO(Object-Oriented)技术的逐渐成熟, 提出了OO生存期开发模式 OO生存期的特点 传统的生存期有逻辑数据设计和逻辑过程设计这两个不同阶段,而 OO生存期将这两个阶段合并为一个既包含数据又包含过程的类设 计,即完成高层分析和设计的类应包含的数据和过程 在OO生存期中,仍然有分析、设计和实现三个阶段 分析是以自顶向下的方式完成的,其产品是一系列相当高层的类和 它们之间的相互关系和作用 OO生存模型的主要不同体现在设计阶段;设计是一个两阶段过程 :类设计和应用程序设计 与传统的生存期比较,在性质上可以有更多的递增和迭代 OO演化开发生存期 主要特点 中间部分的设计和编码循环为快速更新代 码生成提供了基础,这是原型开发生存期 的精髓 这种迭代过程有利于减少软件开发的风险 OOSE迭代生存期 主要特点 类似于原型开发中的增量模型 不同的是下一个增量的分析阶段可以与当 前增量的实现阶段重叠 统一的软件开发过程 关于统一的软件开发过程 统一的软件开发过程(the Unified Software Development Process) 20世纪90年代末,Rational Software公司的 Jacobson、Booch和Rumbaugh三人继UML 之后推出的。 基于构件、使用可视化建模语言UML 分四个阶段:初始、细化、构造和移交 依靠三个关键思想:用例驱动、体系结构为中 心和迭代增量开发 四个阶段 初始 主要对提出的有关基本思想进行充分论证,考虑项目效益,确定项 目规模 细化 主要收集更为详细的需求,进行高层分解和设计,定义系统的体系 结构框架,并为构造阶段制定计划 构造 由多次选代组成,每次迭代都包含软件生存期的所有活动。每次迭 代都要增加一些新功能,解决一些新问题。每次所得产品都应满 足项目需求的某一子集,或交用户,或内部交付 移交 除交付产品外,还有测试和用户培训等 用例驱动 用例驱动(use-case driver) 是Jacobson在“OOSE”一书中首先提出的,有四个 理由: 能够提供一个系统的、直觉捕捉功能需求的平台 能够驱动整个开发过程 使用用例可以帮助完成迭代开发 在初始的迭代中,通过选择并实现适当的用例集合 ,便可以用一个稳定的体系结构来实现一个系统 体系结构为中心 体系结构为中心(architecture-centric) 这是在统一的软件开发过程的生存期中第一次提出来 的,其目的: 理解系统 组织开发 促进重用 发展系统 由此可见,结构的设计问题已远远超出了计算的算法 和 数据结构范围 迭代和增量开发 迭代和增量(iterative and incremental)开发 最早是在原型和OO生存期模型中提出来的,主要目的 是 用于控制软件的开发,以降低风险 为了早期致命的和重大的风险能得到控制 为了得到一个健壮的体系结构,以指导软件开发 为了提供一个框架,能较好地控制不可避免的需求和 其他修改 为了构造一个系统,多次增量接近比一次完成所带来 的各种开销要少,而且质量要高 为了提供一个开发过程,让技术人员更为有效 为了让开发人员能够获得早期学习的机会 基于构件的软件开发 基于构件的软件开发(Component-Based Software Development, CBD) 是在软件重用和OO技术的基础上发展起来的。说到底, 也是从硬件引入的 就是使用可重用的软件来设计和构造基于计算机的软件 系统 前述7种软件工程模式都是面向过程的。而CBD是第一个提出面 向结构的 软件产业要发展,并形成规模经济,标准构件的生产和 构件的重用是关键。有人估计,将来软件工程职业,5% 为构件工程师95%为组装工程师 关于构件 应用系统结构的构件 一般包含三类 通用基本构件 领域共性构件 应用专用构件 应用软件开发中的重复劳动 主要存在于前两类构件上,这样我们就可以充 分利用过去应用系统开发中积累的知识和经验, 从而将开发的重点集中在应用专用构件的开发 上,通过软件重用,不仅可以消除重复劳动, 而且还可以避免重新开发可能引入的错误 关于软件重用 软件重用发展中的主要问题 技术方面:重用构件如何确定、获取、存储 、检索和组装等 非技术方面:怎样确定标准化、知识产权、 机构组织、前期投入和管理等 要实现软件重用需要解决的问题 重用软件(构件)的开发 应用系统如何构造和组装 影响软件重用的一些关键因素 一个支持CBD软件过程模型 关于领域工程 上述CBD软件过程模型是Pressman给出的, 它由领域工程模型和基于构件开发模型组成 领域工程创建应用模型,可以被从事基于构 件 开发的软件开发者选用 领域工程包含三个活动:分析、构造和传播 目的是确定、构造、分类和传播一组软件构件。它们 对某些特定的应用领域中现有的和未来的软件系统有 很好的适应性 目标是建立相应的机制,以使得开发者在开发现有的 或新的软件系统时,可以重用这些软件构件制品 关于Web服务 Web服务的本质 Web服务是从ASP(Application Service Provider)( 应用供应商)发展而来 ASP模式是指服务商在网络上以出租形式提供商用软 件服务 ASP的出现 ASP始于1998年。如一些核心企业业务应用、数据存 储备份和恢复业务、按用户要求售制和代为运行及管存
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教育游戏化创新学习工具的开发与实施
- 多媒体教育工具的选择与教学效率提升
- 智慧城市服务中的绿色照明技术应用研究
- 企业办公区智慧安防与紧急事件的响应能力提升
- 英语翻译标识语翻译的简介专题培训课件
- 临时密码分享功能门锁创新创业项目商业计划书
- 实例脚手架工程量计算规则解析(图例丰富)教程文件
- 化学反应的定量关系
- 常见的酸和碱第1课时
- 南开大学滨海学院《综合日语》2023-2024学年第一学期期末试卷
- 广元城市IP打造营销规划方案
- 2025年项目管理专业资格考试试题及答案
- 房屋租用合同4篇
- 非公企业党建培训课件
- 2025区域型变电站智能巡视系统技术规范
- (2025)社区网格员笔试考试题库及答案
- 汛期公交安全课件
- 环境影响管理方案(3篇)
- 急性心房颤动中国急诊管理指南(2024)解读
- 2025至2030中国远程医疗行业市场发展分析及竞争格局与投资发展报告
- picc并发症观察与护理
评论
0/150
提交评论