1、火龙果整理-软件过程模型软件过程模型软件工程软件工程火龙果整理软件过程与软件过程模型软件过程与软件过程模型软件工程方法软件工程方法面向功能的方法面向功能的方法面向对象方法面向对象方法内容提要内容提要火龙果整理软件过程软件过程软件过程软件过程是指开发软件产品的一组活动及其是指开发软件产品的一组活动及其结果。结果。即是人们用于开发和维护软件及即是人们用于开发和维护软件及其相关过程的一系列活动,包括其相关过程的一系列活动,包括软件工程活动和软件管理活动。软件工程活动和软件管理活动。火龙果整理软件过程模型软件过程模型软件过程模型是从一特定角度提出的软件过程模型是从一特定角度提出的软件过程的软件过程的简
2、化描述简化描述。“模型的本质在于简化模型的本质在于简化”软件过程模型就是对描述的实际过程的抽象,它软件过程模型就是对描述的实际过程的抽象,它包括构成软件过程的各种活动、软件产品及软件包括构成软件过程的各种活动、软件产品及软件工程人员参与的不同角色。工程人员参与的不同角色。火龙果整理软件过程模型的分类软件过程模型的分类以软件需求完全确定为基础的瀑布模型;以软件需求完全确定为基础的瀑布模型;在开发初期仅给出基本需求的渐进式模型,如原型在开发初期仅给出基本需求的渐进式模型,如原型模型、螺旋模型、喷泉模型等;模型、螺旋模型、喷泉模型等;以形式化开发方法为基础的变换模型、基于四代技以形式化开发方法为基础
3、的变换模型、基于四代技术的模型(术的模型(4G4G模型);模型);基于知识的智能模型等等。基于知识的智能模型等等。在实际开发时,应根据项目的特点和现有的条在实际开发时,应根据项目的特点和现有的条件选取合适的模型,也可以把几种模型组合起来使件选取合适的模型,也可以把几种模型组合起来使用以便充分利用各模型的优点。用以便充分利用各模型的优点。火龙果整理瀑布模型瀑布模型瀑布模型(瀑布模型(waterfall modelwaterfall model)是由)是由W.RoyceW.Royce于于19701970年提出来的。又称为软件生存周期模型。年提出来的。又称为软件生存周期模型。瀑布模型严格按照软件生存
4、周期各个阶段来进行开瀑布模型严格按照软件生存周期各个阶段来进行开发,上一阶段的输出即是下一阶段的输入,并强调发,上一阶段的输出即是下一阶段的输入,并强调每一阶段的严格性。它规定了各阶段的任务和应提每一阶段的严格性。它规定了各阶段的任务和应提交的成果及文档,每一阶段的任务完成后,都必须交的成果及文档,每一阶段的任务完成后,都必须对其阶段性产品(主要是文档)进行评审,通过后对其阶段性产品(主要是文档)进行评审,通过后才能开始下一阶段的工作。因此,它是一种才能开始下一阶段的工作。因此,它是一种以文档以文档作为驱动作为驱动的模型。的模型。火龙果整理瀑布模型瀑布模型验收测试验收测试组装测试组装测试实现实
5、现详细设计详细设计概要设计概要设计需求分析需求分析退役退役可行性研究可行性研究使用与维护使用与维护特点:特点:1)阶段间具有顺序性阶段间具有顺序性和依赖性和依赖性2)推迟实现的观点推迟实现的观点3)质量保证的观点质量保证的观点火龙果整理瀑布模型的优点瀑布模型的优点 可强迫开发人员采用的规范方法;可强迫开发人员采用的规范方法;严格规定了每一阶段必须提交的文档;严格规定了每一阶段必须提交的文档;要求每一阶段交付之产品都必须经过质量保证小组的仔细要求每一阶段交付之产品都必须经过质量保证小组的仔细审查;审查;清晰区分了逻辑设计与物理设计,尽可能推迟程序的物理清晰区分了逻辑设计与物理设计,尽可能推迟程序
6、的物理实现。实现。“一种文档驱动的模型一种文档驱动的模型”提供了软件开发的基本框架,有利于大型软件开发过程中提供了软件开发的基本框架,有利于大型软件开发过程中人员的组织、管理,有利于软件开发方法和工具的研究与人员的组织、管理,有利于软件开发方法和工具的研究与使用,因此,在软件工程中占有重要的地位。使用,因此,在软件工程中占有重要的地位。火龙果整理瀑布模型的不足瀑布模型的不足 它将项目生硬的分解为确切的阶段,委托事项一它将项目生硬的分解为确切的阶段,委托事项一定要在过程的早期阶段清晰给出,这意味着对用定要在过程的早期阶段清晰给出,这意味着对用户需求变更响应困难。户需求变更响应困难。因为生成和确认
7、文档成本很高且很费时,因此经因为生成和确认文档成本很高且很费时,因此经过少量的反复后,要冻结部分开发过程,继续进过少量的反复后,要冻结部分开发过程,继续进行后面的开发阶段。这种对需求的冻结使需求相行后面的开发阶段。这种对需求的冻结使需求相当不成熟,系统不能满足用户需求。当不成熟,系统不能满足用户需求。作为整体开发的瀑布模型,由于不支持产品的演作为整体开发的瀑布模型,由于不支持产品的演化,缺乏灵活性,对开发过程中很难发现错误,化,缺乏灵活性,对开发过程中很难发现错误,只有在最终产品运行时才能暴露出来,从而使软只有在最终产品运行时才能暴露出来,从而使软件产品难以维护。件产品难以维护。火龙果整理瀑布
8、模型的适应场合瀑布模型的适应场合瀑布模型一般适用于功能、性能明确、瀑布模型一般适用于功能、性能明确、完整、无重大变化的软件系统的开发。例完整、无重大变化的软件系统的开发。例如操作系统、编译系统、数据库管理系统如操作系统、编译系统、数据库管理系统等系统软件的开发。应用有一定的局限性。等系统软件的开发。应用有一定的局限性。火龙果整理原型模型原型模型原型模型(原型模型(prototyping modelprototyping model)的基本框架是)的基本框架是软软件开发人员根据用户提出的软件基本需求快速开发件开发人员根据用户提出的软件基本需求快速开发一个原型一个原型,以便向用户展示软件系统应有的
9、部分或,以便向用户展示软件系统应有的部分或全部功能和性能,在征求用户对原型的评价意见后,全部功能和性能,在征求用户对原型的评价意见后,进一步使需求精确化、完全化,并据此改进、完善进一步使需求精确化、完全化,并据此改进、完善原型,如此迭代,直到软件开发人员和用户都确认原型,如此迭代,直到软件开发人员和用户都确认软件系统的需求并达成一致的理解为止。软件需求软件系统的需求并达成一致的理解为止。软件需求确定后,便可进行设计,编码、测试等以后的各个确定后,便可进行设计,编码、测试等以后的各个开发步骤。开发步骤。火龙果整理快速原型方法快速原型方法建造建造/修修改原型改原型用户测试用户测试运行原型运行原型听
10、取用听取用户意见户意见火龙果整理初步需初步需求求分析分析快速设计快速设计建造建造原型原型用户评估原用户评估原型型(新需求新需求)对原型对原型加工加工开发开发产品产品开始开始结束结束u 用户用户/客户给出软件客户给出软件产品的一般需求产品的一般需求u 开发小组和用户共同开发小组和用户共同定义软件总体目标,定义软件总体目标,标识已知需求标识已知需求u 对界面、功能、人机对界面、功能、人机交互方式等,进行设交互方式等,进行设计并建造原型计并建造原型u 强调强调“快速快速”,釆用,釆用基于构件的软件开发基于构件的软件开发方法方法,尽量缩短软件尽量缩短软件开发周期开发周期,不宜釆用不宜釆用过多的新技术过
11、多的新技术u 用户用户/客户对原型进客户对原型进行评估行评估u 修改需求、更新设计、修改需求、更新设计、完善原型直至确定需完善原型直至确定需求。求。原型模型示意图原型模型示意图火龙果整理快速原型的开发途径快速原型的开发途径1)1)仅模拟软件系统的人机界面和人机交互方式。仅模拟软件系统的人机界面和人机交互方式。2)2)开发一个工作模型,实现软件系统中重要的或容易开发一个工作模型,实现软件系统中重要的或容易产生误解的功能。产生误解的功能。3)3)利用一个或几个类似的正在运行的软件向用户展示利用一个或几个类似的正在运行的软件向用户展示软件需求中的部分或全部功能。软件需求中的部分或全部功能。建造原型应
12、尽量采用相应的软件工具和环境,建造原型应尽量采用相应的软件工具和环境,并尽量采用软件重用技术,在运行效率方面可做并尽量采用软件重用技术,在运行效率方面可做出让步,以便尽快提供。同时,原型应充分展示出让步,以便尽快提供。同时,原型应充分展示软件系统的可见部分,如人机界面、数据的输入软件系统的可见部分,如人机界面、数据的输入方式和输出格式等。方式和输出格式等。火龙果整理采用原型模型的软件生命周期采用原型模型的软件生命周期生成生成原型原型测试测试分析定义分析定义系统需求系统需求系统系统设计设计程序程序设计设计含原型化的含原型化的软件生存期软件生存期原型化原型化运运行行和维护和维护编码编码火龙果整理原
13、型模型的优点原型模型的优点1)1)原型模型比瀑布模型更符合人们认识事物的过程原型模型比瀑布模型更符合人们认识事物的过程和规律,是一种较实用的开发框架。和规律,是一种较实用的开发框架。2)2)它产生的正式需求文挡,是软件开发的基础。它产生的正式需求文挡,是软件开发的基础。3)3)如果开发的原型是可运行的,它的若干高质量的如果开发的原型是可运行的,它的若干高质量的程序片段和开发工具可用于工作程序的开发。程序片段和开发工具可用于工作程序的开发。4)4)原型的开发和评审是系统分析员和用户原型的开发和评审是系统分析员和用户/客户共客户共同参予的迭代过程,每个迭代循环都是线性过程。同参予的迭代过程,每个迭
14、代循环都是线性过程。火龙果整理原型模型的缺点原型模型的缺点1)对于大型软件项目,原型模型需要足够的人力对于大型软件项目,原型模型需要足够的人力资源以建立足够的原型组。资源以建立足够的原型组。2)原型模型要求原型模型要求开发者开发者和和客户客户在一段时间内在一段时间内共同共同完成原型系统的开发完成原型系统的开发,如果任何一方没有实现,如果任何一方没有实现承诺,会导致原型开发的失败。承诺,会导致原型开发的失败。3)如果系统难以模块化,建造原型所需构件就有如果系统难以模块化,建造原型所需构件就有问题;如果高性能是一个指标,原型模型也可问题;如果高性能是一个指标,原型模型也可能不奏效。能不奏效。4)原
15、型模型不适合采用很多新技术的项目。原型模型不适合采用很多新技术的项目。火龙果整理原型模型的适应场合原型模型的适应场合它适合于那些不能预先确切定义需求的它适合于那些不能预先确切定义需求的软件系统的开发,更适合于那些项目组成软件系统的开发,更适合于那些项目组成员(包括分析员、设计员、程序员和用户)员(包括分析员、设计员、程序员和用户)不能很好交流或通信有困难的情况。不能很好交流或通信有困难的情况。火龙果整理螺旋模型螺旋模型螺旋模型(螺旋模型(spiralmodel)是)是B.Boehm于于1988年提出的。它综合了瀑布模型和原型模年提出的。它综合了瀑布模型和原型模型的优点,即将两者结合,并加入了风
16、险分型的优点,即将两者结合,并加入了风险分析机制。螺旋模型的基本框架如图:析机制。螺旋模型的基本框架如图:火龙果整理螺旋模型螺旋模型第一圈第一圈 产生产生产品规格说明产品规格说明第二圈第二圈 产生一个产生一个用于开发的原型用于开发的原型第三圈第三圈 产生产生软件产品的软件产品的初始版本初始版本第四圈第四圈 产生产生软件产品比较软件产品比较完善的新版本完善的新版本原型原型1 1原型原型2 2原型原型3 3风险风险分析分析风险分析风险分析风险分析风险分析风险分析风险分析操作原型操作原型评审评审需求计划需求计划和生和生存周存周期计划期计划操作的概念操作的概念软件需求软件需求需求有效需求有效性验证性验
17、证预估可选方案,预估可选方案,明明确并解决风险确并解决风险验收测试计划验收测试计划组装测试计划组装测试计划规划下阶段工作规划下阶段工作设计验证设计验证与确认与确认产品产品设计设计详细设计详细设计编码编码单元单元测试测试组装组装测试测试验收验收测试测试运行运行维护维护开发验证下一级产品开发验证下一级产品对目标、对目标、可选方可选方案和约束的确定案和约束的确定提交线提交线制定计划制定计划风险分析风险分析实施工程实施工程客户评估客户评估建模建模模拟模拟评价评价需求评价需求评价需求精化计划需求精化计划开发计划开发计划实现计划实现计划顺时针为进展方向顺时针为进展方向火龙果整理螺旋模型螺旋模型螺旋模型的每
18、一个周期都包括计划(需求定义)、螺旋模型的每一个周期都包括计划(需求定义)、风险分析、工程实现和评审风险分析、工程实现和评审4 4个阶段。个阶段。1 1)计划(需求定义)计划(需求定义)首先开始利用需求分析技术理解应用领域,获首先开始利用需求分析技术理解应用领域,获取初步用户需求,制定项目开发计划(即整个软件取初步用户需求,制定项目开发计划(即整个软件生命周期计划)和需求分析计划。然后根据用户和生命周期计划)和需求分析计划。然后根据用户和开发人员对上一周期工作成果评价和评审,修改、开发人员对上一周期工作成果评价和评审,修改、完善需求,明确下一周期软件开发的目标、约束条完善需求,明确下一周期软件
19、开发的目标、约束条件,并据此制定新一轮的软件开发计划。件,并据此制定新一轮的软件开发计划。火龙果整理螺旋模型螺旋模型2 2)风险分析)风险分析根据本轮制定的开发计划,进行风险分析,根据本轮制定的开发计划,进行风险分析,评估可选方案,并构造原型进一步分析风险,评估可选方案,并构造原型进一步分析风险,给出消除或减少风险的途径。此时根据风险分给出消除或减少风险的途径。此时根据风险分析的结果决策项目是否继续。所以,螺旋模型析的结果决策项目是否继续。所以,螺旋模型是一个是一个风险驱动风险驱动的模型。的模型。3 3)工程实现)工程实现利用构造的原型进行需求建模或进行系统模利用构造的原型进行需求建模或进行系
20、统模拟,拟,直至实现软件系统。,直至实现软件系统。火龙果整理螺旋模型螺旋模型4 4)用户评价与阶段评审)用户评价与阶段评审将原型提交用户使用并征求改进意见。开发将原型提交用户使用并征求改进意见。开发人员应在用户的密切配合下进一步完善用户需求,人员应在用户的密切配合下进一步完善用户需求,直到用户认为原型可满足需求,或对软件产品设直到用户认为原型可满足需求,或对软件产品设计进行评价或确认等。计进行评价或确认等。螺旋模型从第一个周期的计划开始,一个周螺旋模型从第一个周期的计划开始,一个周期、一个周期地不断迭代,直到整个软件系统开期、一个周期地不断迭代,直到整个软件系统开发完成。发完成。火龙果整理螺旋
21、模型的优点螺旋模型的优点1)支持用户需求的支持用户需求的动态变化动态变化。支持软件系统的。支持软件系统的可维护性可维护性,每,每次维护过程只是沿螺旋模型继续多走一两个周期。次维护过程只是沿螺旋模型继续多走一两个周期。这符合这符合人们认识现实世界和软件开发的客观规律人们认识现实世界和软件开发的客观规律。2)原型可看作形式的原型可看作形式的可执行的需求规格说明可执行的需求规格说明,易于为用户和,易于为用户和开发人员共同理解,还可作为继续开发的基础,并为用户开发人员共同理解,还可作为继续开发的基础,并为用户参与所有关键决策提供了方便。参与所有关键决策提供了方便。开发者和用户共同参与软开发者和用户共同
22、参与软件开发,可尽早发现软件中的错误件开发,可尽早发现软件中的错误。3)螺旋模型特别强调原型的可扩充性和可修改性,螺旋模型特别强调原型的可扩充性和可修改性,原型的进原型的进化贯穿整个软件生存周期化贯穿整个软件生存周期,这将有助于目标软件的适应能,这将有助于目标软件的适应能力。力。既保持瀑布模型的系统性、阶段性,又可利用原型评既保持瀑布模型的系统性、阶段性,又可利用原型评估降低开发风险估降低开发风险。4)螺旋模型为项目管理人员及时调整管理决策提供了方便,螺旋模型为项目管理人员及时调整管理决策提供了方便,进而可降低开发风险。进而可降低开发风险。火龙果整理螺旋模型的缺点螺旋模型的缺点1)如果每次迭代
23、的效率不高,致使迭代次数如果每次迭代的效率不高,致使迭代次数过多,将会增加成本并推迟提交时间;过多,将会增加成本并推迟提交时间;2)使用该模型需要有相当丰富的风险评估经使用该模型需要有相当丰富的风险评估经验和专门知识,要求开发队伍水平较高。验和专门知识,要求开发队伍水平较高。火龙果整理螺旋模型适应场合螺旋模型适应场合支持需求不明确、特别是大型软件系支持需求不明确、特别是大型软件系统的开发,并支持面向规格说明、面向过统的开发,并支持面向规格说明、面向过程、面向对象等多种软件开发方法,是一程、面向对象等多种软件开发方法,是一种具有广阔前景的模型。种具有广阔前景的模型。火龙果整理变换模型变换模型变换
24、模型是基于形式化规格说明语言以及程序变换模型是基于形式化规格说明语言以及程序变换技术的软件系统开发模型,它主要用于软变换技术的软件系统开发模型,它主要用于软件的形式化开发方法。件的形式化开发方法。在软件需求分析确定以后,便用形式化的规格在软件需求分析确定以后,便用形式化的规格说明语言将其描述为说明语言将其描述为“形式化软件规格说明形式化软件规格说明”,然后对其进行一系列自动或半自动的变换,最然后对其进行一系列自动或半自动的变换,最终得到软件系统的目标程序。终得到软件系统的目标程序。火龙果整理变换模型变换模型形式化软件规形式化软件规格说明(格说明(M0)模型检查模型检查需求分析需求分析形式化软件
25、设形式化软件设计说明(计说明(M1)(M2)目标程序(目标程序(M)变换变换火龙果整理变换模型变换模型变换模型也应引入迭代机制。即将第一次用变换模型得变换模型也应引入迭代机制。即将第一次用变换模型得来的目标程序作为来的目标程序作为“原型原型”,让用户评价,以便使用户,让用户评价,以便使用户需求精确化、完全化,再把精化后的需求作为输入,第需求精确化、完全化,再把精化后的需求作为输入,第二次用变换模型进行变换,等等。二次用变换模型进行变换,等等。以形式化开发方法为基础的变换模型需要逻辑、代数等以形式化开发方法为基础的变换模型需要逻辑、代数等严格的数学理论和诸如形式化的需求规格说明语言、程严格的数学
26、理论和诸如形式化的需求规格说明语言、程序变换工具、定理证明工具等一整套开发环境的支持。序变换工具、定理证明工具等一整套开发环境的支持。形式化开发方法提出的比较早,但到目前为止,其在理形式化开发方法提出的比较早,但到目前为止,其在理论和实践等方面离工程实际应用还有较长一段距离。论和实践等方面离工程实际应用还有较长一段距离。火龙果整理喷泉模型喷泉模型喷泉模型是近几年提喷泉模型是近几年提出来的软件生存周期出来的软件生存周期模型。它是以面向对模型。它是以面向对象的软件开发方法为象的软件开发方法为基础,以用户需求为基础,以用户需求为动力,以动力,以对象来驱动对象来驱动的模型。的模型。维维护护测测试试实实
27、现现设设计计分分析析火龙果整理喷泉模型的特点喷泉模型的特点软件系统可维护性较好;软件系统可维护性较好;各阶段相互重叠,表明了面向对象开发方法各阶段间的各阶段相互重叠,表明了面向对象开发方法各阶段间的交叉和无缝过渡;交叉和无缝过渡;整个模型是一个迭代的过程,包括一个阶段内部的迭代整个模型是一个迭代的过程,包括一个阶段内部的迭代和跨阶段的迭代;和跨阶段的迭代;模型具有增量开发特性,即能做到分析一点、设计一点、模型具有增量开发特性,即能做到分析一点、设计一点、实现一点,测试一点,使相关功能随之加入到演化的系实现一点,测试一点,使相关功能随之加入到演化的系统中。统中。模型是对象驱动的,对象是各阶段活动
28、的主体,也是项模型是对象驱动的,对象是各阶段活动的主体,也是项目管理的基本内容。目管理的基本内容。该模型很自然地支持软部件的重用。该模型很自然地支持软部件的重用。火龙果整理软件工程方法软件工程方法软件工程方法是完成软件工程项目的技术手段。软件工程方法是完成软件工程项目的技术手段。它支持软件开发与维护的全部过程。它支持软件开发与维护的全部过程。软件工程方法划分为:软件工程方法划分为:面向功能的方法面向功能的方法结构化分析方法结构化分析方法Jackson方法方法Warnier方法方法面向对象方法面向对象方法UMLu 软件工程方法是软件开发软件工程方法是软件开发的结构化方法的结构化方法u 软件工程过
29、程是方法的使软件工程过程是方法的使用活动用活动火龙果整理结构化分析方法结构化分析方法一种面向数据流的开发方法。图形表示方法为数一种面向数据流的开发方法。图形表示方法为数据流图据流图(DFD)和模块层次结构图和模块层次结构图(SC)。现有的软件开发方法中最成熟,应用最广泛的方现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速,自然和方便。法,主要特点是快速,自然和方便。结构化方法总的指导思想自顶向下、逐步求精,结构化方法总的指导思想自顶向下、逐步求精,分解成若干个具有合适大小和功能的模块并对各分解成若干个具有合适大小和功能的模块并对各个模块进行定义和描述个模块进行定义和描述,其实质就是
30、功能分解和,其实质就是功能分解和抽象。抽象。火龙果整理结构化方法的发展结构化方法的发展70年代初年代初结构化程序设计方法结构化程序设计方法SP法法(StructuredProgram)70年代中年代中结构化设计方法结构化设计方法SD法法(StructuredDesign)70年代末年代末结构化分析方法结构化分析方法SA法法(StructuredAnalysis)SA,SD,SP法相互衔接,形成了一整套开发方法。若将法相互衔接,形成了一整套开发方法。若将SA,SD法结合起来,又称为结构化分析与设计技术,即法结合起来,又称为结构化分析与设计技术,即SDAT技术。技术。火龙果整理Jackson方法方
31、法Jackson方法是最典型的面向数据结构的设计方法,方法是最典型的面向数据结构的设计方法,它首先分析数据的层次结构,生成输入、输出数它首先分析数据的层次结构,生成输入、输出数据结构图,把处理模块化,并在此基础上进行详据结构图,把处理模块化,并在此基础上进行详细设计和编程。细设计和编程。Jackson方法有方法有JSP(JacksonStructureProgramming)和改进的)和改进的JSD(JacksonSystemdevelopment)方法。)方法。火龙果整理Jackson方法的发展方法的发展二十世纪七十年代二十世纪七十年代Jackson提出了软件工程领域中著名的提出了软件工程领
32、域中著名的Jackson方法,当时它只用于软件设计。方法,当时它只用于软件设计。二十世纪八十年代初,二十世纪八十年代初,Jackson又对它进行了多方面的扩又对它进行了多方面的扩充和完善,最终发展成为一种需求分析方法。充和完善,最终发展成为一种需求分析方法。Jackson方法的核心思想是:方法的核心思想是:根据作用于数据的行为序列的结构根据作用于数据的行为序列的结构(顺序、选择与重复顺序、选择与重复),建立目标软件系统的模型,然后在软件设计阶段将模型演建立目标软件系统的模型,然后在软件设计阶段将模型演化为相应的程序结构。化为相应的程序结构。火龙果整理Jackson方法的主要步骤方法的主要步骤1
33、)分析并确定输入数据和输出数据的逻辑结构。分析并确定输入数据和输出数据的逻辑结构。2)找出输入数据结构和输出数据结构中有对应关系的数据单找出输入数据结构和输出数据结构中有对应关系的数据单元。元。3)从描述数据结构的从描述数据结构的Jackson图导出描述程序结构的图导出描述程序结构的Jackson图。图。4)列出所有的操作和条件,并把他们分配到程序结构图中去。列出所有的操作和条件,并把他们分配到程序结构图中去。火龙果整理Jackson图的基本类型图的基本类型顺序结构顺序结构重复结构重复结构选择结构选择结构*表示重复O 表示选择一个分支AB*ABCDABCDOOO火龙果整理Jackson的伪代码
34、的伪代码1)顺序结构)顺序结构顺序结构的伪码如下,其中顺序结构的伪码如下,其中seq和和end是关键是关键字:字:AseqBCDAend火龙果整理Jackson的伪代码的伪代码2)选择结构)选择结构select、or,和,和end是关键字是关键字,cond1、cond2和和cond3分别是执行分别是执行B、C或或D的条件:选择的条件:选择结构对应的伪码如下:结构对应的伪码如下:Aselectcond1BAorcond2CAorcond3DAend火龙果整理Jackson的伪代码的伪代码3)重复结构)重复结构iter、until、while和和end是关键字是关键字(重复结构有(重复结构有unt
35、il和和while两种形式),两种形式),cond是条是条件,重复结构对应的伪码图象:件,重复结构对应的伪码图象:Aiteruntil(或(或while)condBAend火龙果整理Warnier方法方法它也是一种面向数据结构的设计方法,它将软件它也是一种面向数据结构的设计方法,它将软件系统当做模型来进行描述,再逐步转换成目标系系统当做模型来进行描述,再逐步转换成目标系统。统。Warnier方法与方法与Jackson方法差别如下方法差别如下:它们使用的图形工具不同:分别使用它们使用的图形工具不同:分别使用Warnier图和图和Jackson图图;使用的伪码不同使用的伪码不同;最主要的差别是在构
36、造程序框架时,最主要的差别是在构造程序框架时,Warnier方法仅考虑方法仅考虑输入数据结构,而输入数据结构,而Jackson方法不仅考虑输入数据结构,方法不仅考虑输入数据结构,而且还考虑输出数据结构。而且还考虑输出数据结构。火龙果整理Warnier方法的图元素方法的图元素 表示属于数据结构的同一层次表示属于数据结构的同一层次 表示在一定条件下才出现,几个数据只能出现一个表示在一定条件下才出现,几个数据只能出现一个()指明这类数据重复出现的次数指明这类数据重复出现的次数某大学某大学系系(8)专业专业(P1)处处(5)科科(P2)部部(3)室室(2)例:例:火龙果整理面向对象方法面向对象方法面向
37、对象方法学是面向对象方法学是20世纪世纪90年代发展起来的软件年代发展起来的软件分析设计方法。该方法把客观世界的事物或实体分析设计方法。该方法把客观世界的事物或实体都看成对象,把对象作为分析设计的基本元素,都看成对象,把对象作为分析设计的基本元素,把所有对象都划分成对象类,类可以派生和继承,把所有对象都划分成对象类,类可以派生和继承,对每个对象类都定义一组数据和方法。面向对象对每个对象类都定义一组数据和方法。面向对象方法包括面向对象分析、面向对象设计和面向对方法包括面向对象分析、面向对象设计和面向对象实现,是近年来取得迅速发展并具有强大生命象实现,是近年来取得迅速发展并具有强大生命力的软件开发
38、方法,被誉为力的软件开发方法,被誉为90年代软件的核心技年代软件的核心技术之一。术之一。火龙果整理 一些软件工程专家在提出自己的一些软件工程专家在提出自己的OO方法时,也方法时,也提出了自己的建模语言;提出了自己的建模语言;用户并不了解不同建模语言的优缺点,在实际工用户并不了解不同建模语言的优缺点,在实际工作中很难选择合适的建模语言;作中很难选择合适的建模语言;不同建模语言之间存在的细微差别极大地妨碍了不同建模语言之间存在的细微差别极大地妨碍了用户之间的交流;用户之间的交流;OO要健康发展,必须在精心比较不同建模语言要健康发展,必须在精心比较不同建模语言优缺点的基础上,把建模语言同一起来;优缺
39、点的基础上,把建模语言同一起来;Booch,Rumbaugh和和Jacobson经过合作研究,于经过合作研究,于1996年提出了统一建模语言年提出了统一建模语言UML;1997年年11月,国际对象管理组织月,国际对象管理组织OMG批准把批准把UML作为作为OO技术的标准建模语言。技术的标准建模语言。UML(统一建模语言)(统一建模语言)火龙果整理UML(统一建模语言)(统一建模语言)UML是为了简化和强化现有的大量面向对象开发方法这是为了简化和强化现有的大量面向对象开发方法这一目的而开发的。一目的而开发的。UML在设计时候借鉴、集成了面向功在设计时候借鉴、集成了面向功能方法的优点。能方法的优点
40、。统一建模语言是一个通用的可视化建模语言,用于对软件统一建模语言是一个通用的可视化建模语言,用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。进行描述、可视化处理、构造和建立软件系统制品的文档。它记录了对必须构造的系统的决定和理解,可用于对系统它记录了对必须构造的系统的决定和理解,可用于对系统的理解、设计、浏览、配置、维护和信息控制。的理解、设计、浏览、配置、维护和信息控制。UML适用于各种软件开发方法、软件生命周期的各个阶适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,是一种总结了以往段、各种应用领域以及各种开发工具,是一种总结了以往建模技术的经验并
41、吸收当今优秀成果的标准建模方法。建模技术的经验并吸收当今优秀成果的标准建模方法。火龙果整理UML(统一建模语言)(统一建模语言)UML包括概念的语义,表示法和说明,提供了静态、动包括概念的语义,表示法和说明,提供了静态、动态、系统环境及组织结构的模型。态、系统环境及组织结构的模型。UML可被交互的可视化建模工具所支持,这些工具提供可被交互的可视化建模工具所支持,这些工具提供了代码生成器和报表生成器。了代码生成器和报表生成器。UML标准并没有定义一种标准的开发过程,但它适用于标准并没有定义一种标准的开发过程,但它适用于迭代式的开发过程。它是为支持大部分现存的面向对象开迭代式的开发过程。它是为支持
42、大部分现存的面向对象开发过程而设计的。发过程而设计的。火龙果整理UML(统一建模语言)(统一建模语言)UML描述了一个系统的静态结构和动态行为。它将系统描述了一个系统的静态结构和动态行为。它将系统描述为一些离散的相互作用的对象并最终为外部用户提供描述为一些离散的相互作用的对象并最终为外部用户提供一定功能的模型结构。一定功能的模型结构。静态结构定义了系统中重要对象的属性和操作以及这静态结构定义了系统中重要对象的属性和操作以及这些对象之间的相互关系。些对象之间的相互关系。动态行为定义了对象的时间特性和对象为完成目标而动态行为定义了对象的时间特性和对象为完成目标而相互进行通信的机制。相互进行通信的机制。火龙果整理UML(统一建模语言)(统一建模语言)UML还包括可将模型分解成包的结构组件,以便还包括可将模型分解成包的结构组件,以便于软件小组将大的系统分解成易于处理的块结构,于软件小组将大的系统分解成易于处理的块结构,并理解和控制各个包之间的依赖关系,在复杂的并理解和控制各个包之间的依赖关系,在复杂的开发环境中管理模型单元。它还包括用于显示系开发环境中管理模型单元。它还包括用于显示系统实现和组织运行的组件。统实现和组织运行的组件。