软件工程模型方法_第1页
软件工程模型方法_第2页
软件工程模型方法_第3页
软件工程模型方法_第4页
软件工程模型方法_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

1、软件过程模型,软件工程,软件过程和软件过程模型软件工程方法面向功能的方法面向对象的方法,内容抽象,软件过程,软件过程是指开发软件产品的一系列活动和结果。即人们用来开发和维护软件及相关过程的一系列活动,包括软件工程活动和软件管理活动。软件过程模型是从特定角度提出的软件过程的简化描述。“模型的本质在于简化”。软件过程模型是对所描述的实际过程的抽象,它包括各种活动、软件产品和软件工程师的不同角色。软件过程模型的分类,基于软件需求完全确定的瀑布模型;在开发的初始阶段,只给出基本需求的渐进模型,如原型模型、螺旋模型和喷泉模型;基于形式化开发方法的转换模型和基于第四代技术的模型(4g模型);基于知识的智能

2、模型等等。在实际开发中,应根据项目的特点和现有条件选择合适的模式,并可将几种模式结合起来,充分利用每种模式的优势。瀑布模型瀑布模型是由w罗伊斯于1970年提出的。也称为软件生命周期模型。瀑布模型是严格按照软件生命周期的每个阶段开发的,前一阶段的输出是下一阶段的输入,强调每个阶段的严格性。它规定了每个阶段的任务、结果和要提交的文件。每个阶段的任务完成后,必须对阶段产品(主要是文件)进行评审,合格后才能开始下一阶段的工作。因此,它是一个文档驱动的模型。瀑布模型、验收测试、组装测试、实现、详细设计、概要设计、需求分析、退役、可行性研究、使用和维护、特性:阶段之间的顺序和依赖性、延迟实现的观点、质量保

3、证的观点、瀑布模型的优点、以及开发者可以强制采用的标准方法严格规定每个阶段必须提交的文档;要求每个阶段交付的产品必须经过质量保证小组的仔细检查;明确区分逻辑设计和物理设计,尽可能延迟程序的物理实现。“文档驱动模型”为软件开发提供了基本框架,有利于大规模软件开发过程中人员的组织和管理,有利于软件开发方法和工具的研究和使用,因此在软件工程中发挥着重要作用。瀑布模型的缺点是,它将项目僵硬地分解成精确的阶段,并且在过程的早期阶段必须清楚地给出委托事项,这意味着很难响应用户需求的变化。因为生成和确认文档既昂贵又耗时,所以在几次迭代之后,有必要冻结部分开发过程并继续后续的开发阶段。这种需求的冻结使得需求相

4、当不成熟,系统不能满足用户的需求。作为一个整体的开发瀑布模型,因为它不支持产品的演化,缺乏灵活性,所以在开发过程中很难发现错误,这些错误只能在最终产品运行时暴露出来,从而使得软件产品的维护变得困难。在瀑布模型适用的地方,瀑布模型一般适用于功能和性能清晰完整且没有重大变化的软件系统的开发。例如,操作系统、编译系统和数据库管理系统等系统软件的开发。这种应用有一定的局限性。原型模型的基本框架是软件开发人员根据用户提出的基本软件需求快速开发一个原型,从而向用户展示软件系统的部分或全部功能和性能。在征求用户对原型的评价意见后,他们进一步细化和完善需求,相应地改进和完善原型,并反复进行,直到软件开发人员和

5、用户都确认软件系统的需求并达成共识。在确定了软件需求之后,可以执行后续的开发步骤,如设计、编码和测试。快速原型法:用户/客户给出软件产品的一般要求。开发团队和用户共同定义软件的总体目标,确定接口、功能和人机交互等方面的已知需求。以“快速性”为重点设计和构建原型,采用基于组件的软件开发方法,尽可能缩短软件开发周期,避免使用过多的新技术用户/客户来评估和修改需求,更新设计和改进原型,原型模型图,快速原型开发方法,只模拟软件系统的人机界面和人机交互模式。开发一个工作模型来实现软件系统中重要的或误导的功能。使用一个或几个类似的运行软件向用户显示软件需求中的一些或所有功能。原型应尽可能采用相应的软件工具

6、和环境,并尽可能采用软件复用技术,并在运行效率方面做出让步以便尽快提供。同时,原型应充分显示软件系统的可视部分,如人机界面、数据输入方式和输出格式等。利用原型模型的软件生命周期和生成原型模型的优势,原型模型比瀑布模型更符合人们理解事物的过程和规律,是一种更实用的开发框架。它产生的正式需求文档是软件开发的基础。如果原型是可行的,它的高质量程序片段和开发工具可以用来开发工作程序。原型开发和审查是一个涉及系统分析师和用户/客户的迭代过程,每个迭代周期都是一个线性过程。对于大型软件项目,原型模型需要足够的人力资源来建立足够的原型组。原型模型要求开发人员和客户在一定时间内共同完成原型系统的开发。如果任何

7、一方未能履行其承诺,将导致原型开发的失败。如果系统难以模块化,那么构建原型所需的组件就会有问题;如果高性能是一个指标,原型模型可能不起作用。原型模型不适合有许多新技术的项目。原型模型适用于需求无法提前准确定义的软件系统开发,更适用于项目团队成员(包括分析师、设计师、程序员和用户)沟通不畅或沟通困难的情况。螺旋模型是波姆于1988年提出的。它结合了瀑布模型和原型模型的优点,也就是说,它结合了它们并增加了风险分析机制。螺旋模型的基本框架如下:螺旋模型,第一个圈产生产品规格,第二个圈产生用于开发的原型,第三个圈产生软件产品的初始版本,第四个圈产生相对完善的软件产品的新版本。原型1、原型2、原型3、风

8、险分析、风险分析、操作原型、审查软件需求、需求有效性验证、评估备选方案、定义和解决风险、验收测试计划、装配测试计划、规划下一阶段工作、设计验证和确认、产品设计、详细设计、编码、单元测试、装配测试、验收测试、操作和维护、开发和验证下一级产品、确定目标、备选方案和约束、提交生产线、制定计划等。模拟、评估、需求评估、需求细化计划、开发计划、实现计划、顺时针方向为进度方向的螺旋模型,螺旋模型的每个周期包括四个阶段:计划(需求定义)、风险分析、工程实现和评审。1)规划(需求定义)首先,利用需求分析技术了解应用领域,获取初步的用户需求,制定项目开发计划(即整个软件生命周期计划)和需求分析计划。然后,根据用

9、户和开发人员对前一周期工作成果的评价和评审,修改和完善需求,明确下一周期软件开发的目标和约束条件,并据此制定新一轮软件开发计划。,螺旋模型,2)风险分析根据本轮制定的发展计划,进行风险分析,评估备选方案,构建原型以进一步分析风险,并给出消除或降低风险的方法。此时,根据风险分析的结果决定是否继续项目。因此,螺旋模型是一个风险驱动的模型。3)工程实现使用构建的原型进行需求建模或系统仿真,直到软件系统实现。螺旋模型,4)用户评估和阶段评审将原型提交给用户使用,并征求改进意见。开发人员应该在用户的密切配合下进一步提高用户的需求,直到用户认为原型能够满足需求,或者评估或确认软件产品的设计。螺旋模型从第一

10、个周期的规划开始,一个周期接一个周期地迭代,直到整个软件系统开发完毕。螺旋模型的优势支持用户需求的动态变化。支持软件系统的可维护性,每个维护过程只需要沿着螺旋模型继续走一两个周期。这符合人们对现实世界和软件开发理解的客观规律。原型可以看作是一个正式的可执行的需求规范,用户和开发人员容易理解,也可以作为进一步开发的基础,为用户参与所有关键决策提供便利。开发人员和用户一起参与软件开发,软件中的错误可以尽早被发现。螺旋模型强调原型的可扩展性和可修改性,原型的演化贯穿整个软件生命周期,这将有助于目标软件的适应性。它不仅保持了瀑布模型的系统性和阶段性,而且通过原型评估降低了开发风险。螺旋模型为项目经理及

11、时调整管理决策提供了便利,从而降低了开发风险。螺旋模型的缺点是,如果每次迭代的效率不高,导致迭代次数过多,就会增加成本和延迟提交时间;使用这个模型需要丰富的风险评估经验和专业知识,并且需要高水平的开发团队。螺旋模型适应这种情况,支持不确定需求的开发,特别是大规模软件系统,支持面向规范、面向过程和面向对象等多种软件开发方法。转换模型是基于形式化规范语言和程序转换技术的软件系统开发模型,主要用于形式化软件开发方法。在对软件需求进行分析和确定后,用形式规格说明语言将其描述为“形式软件规格说明”,然后进行一系列自动或半自动的转换,最终得到软件系统的目标程序。转换模型,正式软件规范(m0),模型检查,需

12、求分析,正式软件设计规范(m1),(m2),目标程序(m),转换模型,转换模型也应该引入迭代机制。也就是说,从转换模型中获得的目标程序被用作用户评估的“原型”,以使用户的需求精确和完整,然后细化的需求被用作输入,转换模型被第二次使用,等等。基于形式开发方法的转换模型需要严格的数学理论,如逻辑和代数,以及一整套开发环境,如形式需求规范语言、程序转换工具和定理证明工具。形式化开发方法提出较早,但到目前为止,它在理论和实践上还远远没有在工程中得到实际应用。喷泉模型和喷泉模型是近年来提出的软件生命周期模型。它是一个基于面向对象软件开发方法的模型,由用户需求驱动,由对象驱动。由于喷泉模型的特点,软件系统

13、具有良好的可维护性;每个阶段相互重叠,这显示了面向对象开发方法的每个阶段之间的交叉和无缝过渡;整个模型是一个迭代过程,包括一个阶段内的迭代和跨阶段的迭代。该模型具有增量开发的特点,即可以进行少量的分析、设计、实现和测试,从而将相关的功能添加到演化的系统中。该模型是对象驱动的,对象是每个阶段活动的主体,也是项目管理的基本内容。这个模型自然支持软件组件的重用。软件工程方法软件工程方法是完成软件工程项目的技术手段。它支持软件开发和维护的整个过程。软件工程方法分为:面向功能的方法结构化方法杰克逊方法沃尼尔方法面向对象的方法uml,软件工程方法是软件开发的结构化方法,而软件工程过程是使用活动的方法,结构

14、化方法,面向数据流的开发方法。图形表示方法有数据流图(dfd)和模块层次图(供应链)。在现有的软件开发方法中,最成熟和应用最广泛的方法具有快速、自然和方便的特点。结构化方法的总体指导思想是自上而下细化的,它被分解成若干个具有适当规模和功能的模块,并对每个模块进行定义和描述,其本质是功能分解和抽象。结构化方法的发展,20世纪70年代初的结构化程序,70年代中期的结构化设计,70年代后期的结构化设计,结构化方法sa,sd,sp相互联系,形成了一整套的开发方法。如果将结构分析和可持续发展方法结合起来,它也称为结构化分析和设计技术,即sdat技术。杰克逊方法,杰克逊方法是最典型的面向数据结构的设计方法

15、。首先,分析数据的层次结构,生成输入输出数据结构图,模块化处理,并在此基础上进行详细设计和编程。杰克逊方法包括jsp(杰克逊结构编程)和改进的jsd(杰克逊系统开发)。杰克逊方法的发展杰克逊于20世纪70年代在软件工程领域提出了著名的杰克逊方法,当时它仅用于软件设计。20世纪80年代初,杰克逊在许多方面对其进行了扩展和完善,最终发展成为一种需求分析方法。杰克逊方法的核心思想是根据作用于数据的行为序列的结构(顺序、选择和重复)建立目标软件系统的模型,然后在软件设计阶段将模型演化为相应的程序结构。杰克逊方法的主要步骤是分析和确定输入数据和输出数据的逻辑结构。找出输入数据结构和输出数据结构中对应的数

16、据单元。描述程序结构的杰克逊图源自描述数据结构的杰克逊图。列出所有操作和条件,并将其分配到程序结构图中。杰克逊图的基本类型,序列结构,重复结构,选择结构,杰克逊伪码,1)序列结构的伪码序列结构如下,其中seq和end是关键字:a seq b c d a end,杰克逊伪码,2)选择结构选择,或和end是关键字,cond1,cond2和cond3是执行b的条件, c或d:对应于所选结构的伪代码如下:select cond1b a或cond2 c a或cond3 d a end,杰克逊的伪代码,3)重复结构iter,直到,while和end是关键字(重复结构有两种形式:直到和while),cond是条件,对应于重复结构的伪代码图像:a iter直到(或while)cond1b a end,warnier方法,也是一种面向数据结构的设计方法,将软件系统描述为模型,然后逐渐将其转换为目标沃尼尔方法和杰克逊方法的区别在于:它们使用不同的图形工具:沃尼尔图和杰克逊图;使用不同的伪码;主要区别在于,warnier方法在构建程序框架时只考虑输入数据结构,而jackson方法不仅考虑输入数据结构,还考虑输出数据结构。warnier方法的graph元素,指示属于数据结构的相同级别表示仅在特定条件下出现,并且只有一个()可以出现在多个数据中,以指示此类

温馨提示

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

评论

0/150

提交评论