软件与软件工程_第1页
软件与软件工程_第2页
软件与软件工程_第3页
软件与软件工程_第4页
软件与软件工程_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

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

文档简介

软件与软件工程联系方式第2页,共85页,2024年2月25日,星期天绪论计算机科学是什么?

1、是科学?是工程学科?还是一门技术?…….2、学科的智力本质是什么?

3、它将持续兴旺下去还是衰落下去?

4、计算机科学和工程的核心课程是否反映了这个领域?

5、怎样把理论和实验集成在计算课程中?

6、各核心课程培养计算方面的能力吗?

7、......第3页,共85页,2024年2月25日,星期天计算机科学的三个学科形态第4页,共85页,2024年2月25日,星期天对计算机科学的学科形态的认识与争论

(1)认识

¤

理论是数学科学的根本。应用数学家们都认为:科学的进展都是基于纯数学的。

¤

抽象(模型化)是自然科学的根本。科学家相信:科学进展的过程基本上都是形成假设,然后用模型化过程求证。

¤

设计是工程的根本。工程师们认为:工程进展都是提出问题,然后通过设计去构造系统,以解决问题。第5页,共85页,2024年2月25日,星期天对计算机科学的学科形态的认识与争论

(2)争论

¤

基于一个假定:三个过程的某一个是最基本的。

¤

计算的三个形态密切相连

抽象和设计阶段出现了理论;理论和设计阶段需要模型化;理论和抽象阶段始终离不开设计。

¤

计算的三个形态有所不同

第6页,共85页,2024年2月25日,星期天争论的结论

计算处于应用数学、科学和工程三者的主要过程的交叉路口。这三个过程在本学科是同等重要和基本的。它是理论、抽象和设计三者唯一的交汇点。第7页,共85页,2024年2月25日,星期天程序设计的作用

(1)"计算科学=程序设计"是错误的。(2)计算领域的许多活动并不是程序设计,硬件设计、体系结构、操作系统结构、数据库应用等。(3)程序设计是本学科标准的实践活动的一部分,每一个计算工作者必须有程序设计的能力。但这并不意味着本学科就建筑在程序设计的基础上,也不意味着导引性课程必须是程序设计方面的课程。(4)程序设计语言是涉足本领域特色的工具。

建议:程序设计作为核心课程的一部分,并把程序设计语言作为涉足计算学科重要特色的有用媒介。

第8页,共85页,2024年2月25日,星期天计算机科学的原有定义(1)1967年Newell、Perlis和Simon主张:计算科学是研究计算机及围绕它的主要现象的科学,而且说明反对这个定义就无异于表明其他科学都不是科学。

(2)计算科学资格审查部:计算机科学是关于计算机和计算的知识总体。

它由理论、实验和设计三部分,并且包括理解计算专职、程序和系统的理论,为概念的发展和测试所进行的实验,设计方法论、算法和实现工具以及严整这些实现满足要求的分析方法。

(3)计算机科学是研究知识表达机器实现的科学。

(4)Abelson和Sussman:计算机革命是思维方法和思维表达方法的革命。第9页,共85页,2024年2月25日,星期天计算机科学简短定义

(1)计算学科是对描述和变换信息的算法过程的系统研究,

包括它的理论、分析、设计、有效性、实现和应用。(2)全部计算科学的基本问题是"什么能(有效地)自动进行?"。第10页,共85页,2024年2月25日,星期天计算机科学划分的分支领域第11页,共85页,2024年2月25日,星期天计算科学的学科能力的培养(1)面向学科的思维能力

发现本领域新的特性的能力,这些特性导致新的活动方式和新的工具,以便这些特性能被其他人所利用。

(2)使用工具的能力

使用本领域的工具有效地进行其他领域时间活动的能力。建议:

把面向学科的思维能力作为计算专业课程设置的主要目的。

同时,计算专业工作者必须充分熟悉工具,以便与其他学科的人们有效地合作,进行那些学科的设计活动。第12页,共85页,2024年2月25日,星期天学科渊源

(1)本学科和算法理论、数理逻辑和存储程序式电子计算机的发明一起,形成于40年代初。

(2)计算的渊源可以深入扩展到数学和工程。数学把分析分到这一领域,而工程把设计分到这一领域。

(3)本学科包括它自己的理论、实验方法和工程。这与许多其他的自然科学不同。许多其他的自然科学和运用其成果的工程学科是分开的(例如化学和化学工程原理)、计算机科学与工程却是不可分的,因为本学科的科学与工程形态从根本上是相互渗透的。第13页,共85页,2024年2月25日,星期天与数学的关系

计算作为数学的主要对象已有几千年了。

自然现象的许多模型被用来导出方程,它的解就导致那些自然现象的预言。例如轨道的弹道计算、天气预报和流体的流动等。解这些方程的许多方法已经给出。例如线性方程组的解法、微分方程的解法和求函数的积分。

几乎在这同时,机械系统设计中所需要的计算成为工程主要关注的对象。例如计算静态物体压力的算法、计算运动物体惯量的算法和测量比我们直觉要大得多或小得多的距离的方法。第14页,共85页,2024年2月25日,星期天发展方向(1)新一代计算机体系结构。该方向包括神经元计算、计算机设计与制造、网络与通信技术、大容量存储设备的研究、容错模型内容等;

(2)并行与分布式软件开发方法学研究。该方向包括数理逻辑、计算理论、形式语义学、高级语言与程序设计理论、系统软件设计、软件工程、容错理论等内容;

(3)人工智能理论及其应用。该方向包括数理逻辑、高等逻辑、算法理论、知识工程、神经元计算、人工智能高能语言与人工智能程序设计等内容;

(4)计算机应用的关键技术。主要将围绕计算可视化与虚拟现实,计算几何,科学计算这几个重点方向开展有工作,并带动数据库技术、计算机图形学、自然语言处理与机器翻译、模式识别与图解处理等方向发展。在这一综合方向上研究内容将几乎覆盖所有的计算科学应用技术方向内容。第15页,共85页,2024年2月25日,星期天软件方法学和工程-基本问题

本领域研究满足技术要求、安全、可靠、可信的程序和大型软件系统的设计。基本问题包括:

1.在程序和程序设计系统的开发背后的原理是什么?

2.怎样去证明程序或系统满足它的技术要求?

3.怎样去给定技术要求,使不遗漏重要的情况,而且可以分析它的安全性?

4.怎样使软件系统通过不同阶段不断改进?

5.怎样使软件设计得易理解和易修改?第16页,共85页,2024年2月25日,星期天软件方法学和工程–理论软件方法学和工具练域理论的主要部分是:

(l)程序验证和证明。

(2)时态逻辑。

(3)可靠性理论。

(4)谓词演算、公理语义学、和认知心理学等支撑领域。第17页,共85页,2024年2月25日,星期天软件方法学和工程-抽象软件方法学和工具抽象的主要部分是:

(1)定义技术要求的方法。如调词变换器、程序设计演算、抽象数据类型和弗洛依德一霍尔(Floyd-Hoare)公理化符号。

(2)方法学,如逐步提炼、模块化设计、模块、分离编译、信息隐藏(informationbiding)、数据流和抽象层次。

(3)程序开发自动化的方法。例如,文本编辑程序,面向语法的编辑程序和屏幕编辑程序。

(4)可信计算的方法学;例如,容错,安全性,可靠性,恢复,N版本程序设计,多方式冗余,和检查点插入。

(5)软件工具和程序设计环境。

(6)程序和系统的测度和评估。

(7)软件系统到特定机器结构的匹配问题域。

(8)软件研制的生命周期模型。第18页,共85页,2024年2月25日,星期天软件方法学和工程–设计软件方法学和工具领域设计和实验的主要内容是:

(1)技术要求描述语言(如PSL2,IMAJO)、构造管理系统(如在AdaAPSE)和修改控制系统(如RCS,SCCS)。

(2)指向语法的编辑器、行编辑器、屏幕编辑器和字处理系统。

(3)在软件开发实践中倡导和使用的特定方法,如HDM,及Dijkstra,Jackson,Mills或Yourdon等人倡导的方法。

(4)测试的过程和实践(例如,遍历、手模拟、模块间接口的检查、测试集的程序通路列举和事件跟踪),质量保证和计划管理。

(5)程序开发和查错,剖面分析,文本格式化和数据库操作的软件工具。

(6)像国防部那样的安全计算系统的标准级和验证过程的技术要求。

(7)用户接口的设计。

(8)设计非常大的、可靠的、容错的和可信的系统的方法。第19页,共85页,2024年2月25日,星期天学习“软件工程”的目的和意义学会如何在现代IT企业的环境中做一个成功者;学会如何做世界级的、高质量的研究;学会如何创建大规模的软件产品。

——微软全球资深副总裁原微软亚洲研究院院长首席科学家张亚勤

第20页,共85页,2024年2月25日,星期天一、全球软件产业的现状、趋势与挑战

TheChallengesandOpportunitiesoftheGlobalSoftwareIndustry.软件产业的网络化趋势软件产业的服务化趋势软件产业的全球化趋势智能网络(IntelligentWeb)·从静态网到动态网·从被动方式到主动方式·从呈现信息和浏览的窗口到智能生成的平台·从HTML到XML第21页,共85页,2024年2月25日,星期天一、全球软件产业的现状、趋势与挑战

TheChallengesandOpportunitiesoftheGlobalSoftwareIndustry.软件产业的网络化趋势软件产业的服务化趋势软件产业的全球化趋势相对目前“打包式”软件,为用户提供智能化的“服务式”软件。第22页,共85页,2024年2月25日,星期天一、全球软件产业的现状、趋势与挑战

TheChallengesandOpportunitiesoftheGlobalSoftwareIndustry.软件产业的网络化趋势软件产业的服务化趋势软件产业的全球化趋势·强调开放性、交互性·支持主流的开放式标准·人才的全球化对中国软件企业有什么启示和挑战?第23页,共85页,2024年2月25日,星期天

TalentBeyondTechnology_WhatKindofTalentWeNeedforModernSoftwareDevelopment扎实的基础创新、独立的工作能力主人翁精神和团队精神勾通与协调能力成就感强、有激情自觉地干好工作契而不舍,从错误中学习二、现代软件开发对人才的要求第24页,共85页,2024年2月25日,星期天在微软流传着这样一个故事

有一次比尔.盖茨和上帝谈话,上帝对他说:“地球明天就要毁灭了!由于你是如此的成功,因此我特许你从地球上带一样东西到天堂!你想带什么?”比尔.盖茨回答:“请允许我从微软选300个最优秀的人,我要把他们带到天堂!”尽管微软的windows,Exchang,SQL,Office等都非常重要,但如果没有象你们这些人才,微软也将一无所有。你们对我们公司和微软来说是处于第一位的。第25页,共85页,2024年2月25日,星期天我国复合型软件人才匮乏,培养适应迅速变化的市场需求的复合型软件人才已是迫在眉睫。三、信息化建设中对复合型软件人才的需求

复合型软件人才—具备不同专业背景、有市场观念的开发管理、工程管理和软件经营等复合型软件人才;第26页,共85页,2024年2月25日,星期天四、软件开发中的错误观点2.软件需求分析很困难,不管三七二十一先把软件做了再说,反正软件是灵活的,随时可以修改。1.只要掌握了1-2门程序设计语言,进行软件开发就没有问题。总之,错误认为:软件就是程序,开发软件就是编写程序。3.只要有最好的开发工具、最好的计算机,一定能做出优秀的软件。

第27页,共85页,2024年2月25日,星期天本课程学习的主要内容1.传统的软件工程方法2.面向对象的建模技术—UML统一建模语言3.软件项目管理及CMM4.软件复用及构件工程本课程以传统的软件工程技术为基础,主要讨论如何应用软件工程的最新技术—UML统一建模语言进行软件开发,提高软件开发的水平和技术。第28页,共85页,2024年2月25日,星期天课程特点与安排1.课程特点:

实践性强、发展迅速2.课程安排(建议):课堂教学(64学时)—授课、案例分析、讨论

3.关于考试(建议)

笔试:分,平时:分第29页,共85页,2024年2月25日,星期天作者:齐治昌、宁洪出版社:高等教育出版社ISBN:9787040146288面向21世纪课程教材、国家精品课程配套教材1.软件工程(第2版)

教材及主要参考书第30页,共85页,2024年2月25日,星期天教材及主要参考书作者:许家珆主编白忠建,彭德中,吴磊编写出版社:电子工业出版社2.软件工程—方法与实践第31页,共85页,2024年2月25日,星期天教材及主要参考书3.软件工程SoftwareEngineering,6thEdition作者:(英)IanSommerville出版社:机械工业出版社(影印版)

本书是英国著名软件工程学家IanSommerville系统介绍软件工程理论的力作,以要求极高的一类系统为实例,精辟透彻地阐述了软件工程的内涵。第32页,共85页,2024年2月25日,星期天参考网站http://

软件工程网卡内基梅大学软件工程研究所/

对象技术和构件技术链接Rational公司http://OMG(ObjectManagementGroup)http://

软件工程网卡内基梅大学软件工程研究所/

对象技术和构件技术链接Rational公司第33页,共85页,2024年2月25日,星期天第一章1软件与软件工程第34页,共85页,2024年2月25日,星期天1.1软件软件的概念;软件的特点;软件的分类;软件的发展;软件危机。第35页,共85页,2024年2月25日,星期天软件的概念软件是计算机系统的重要组成部分;软件是逻辑产品,需要计算机硬件和系统软件的支撑;软件是计算机控制系统的指挥中枢;软件是信息转换器,它能对信息进行加工、处理或变换;软件是工具,在人们的生活、工作、休闲,在社会的经济、军事、政治、文化、科学技术、教育中发挥具大作用;第36页,共85页,2024年2月25日,星期天计算机世界的软件

软件是能够完成预定功能和性能,并对相应数据进行加工的程序和描述程序及其操作的文档。

软件=程序+数据+文档程序=算法+数据结构第37页,共85页,2024年2月25日,星期天软件的特点软件是被开发或设计的,而不是传统意义上被制造的软件不会”磨损”软件产业逐步走向基于构件的组装,但还是定制的第38页,共85页,2024年2月25日,星期天

软件的描述

软件由程序、数据、文档组成。数据

用程序设计语言要求的数据结构表示文档

规范准确清晰简洁无歧义自然语言结构化英语图表

第39页,共85页,2024年2月25日,星期天程序设计语言面向机器汇编语言、机器语言等面向过程Fortran,Pascal,C等面向对象C++,Java等面向问题结构化查询语言SQL等第40页,共85页,2024年2月25日,星期天软件分类系统软件实时软件商务软件工程和科学计算软件嵌入式软件人工智能软件个人计算机软件第41页,共85页,2024年2月25日,星期天软件的发展软件发展的四个阶段1950---1965

没有系统的软件开发方法和管理机制、自定义软件、批处理、有限分布。1965---1975

产生人机交互的新概念、新技术软件产品、多用户、实时、数据库。1973---1988

微处理器的出现并广泛应用 分布式系统、嵌入智能、低成本硬件、消费者的影响。1986---2000

广域和局域网络迅速普及 强大的桌面系统、面向对象技术、专家系统、人工智能、神经网络、并行计算、网络计算机。第42页,共85页,2024年2月25日,星期天2软件发展存在的问题软件开发能力不能满足人们的需要。社会对软件的依赖程度加大,人们普遍关注软件的安全和可靠性建造高可靠性、高质量软件的任务任重道远。若干年前开发的应用软件经过几十次修改已无人认识它的内部结构,己经不可维护。由于经济原因,嵌入式系统存在许多怪现象,企业不愿意投入资源再生产,而采取打补丁+时髦界面的方法。第43页,共85页,2024年2月25日,星期天软件危机的表现软件产业的发展长期滞后,与硬件发展不协调。软件开发成本过高软件质量得不到保证软件开发效率低难以控制开发进度,工作量估计困难

软件不能满足社会发展的需求,成为社会、经济发展的制约因素软件危机第44页,共85页,2024年2月25日,星期天2.软件危机原因软件的规模加大、复杂性提高、性能增强软件是逻辑产品,尚未完全认识其本质和特点缺乏有效的、系统的开发、维护大型软件项目的技术手段和管理方法用户对软件需求的描述和软件开发人员对需求的理解往往存在差异,用户经常要求修改需求,开发人员很难适应软件开发的技术人员和管理人员缺乏软件工程化的素质和要求,对工程化的开销认识不足第45页,共85页,2024年2月25日,星期天1.2软件工程的产生和发展

软件工程(SoftwareEngineering)是在克服60年代末所出现的“软件危机”的过程中逐渐形成与发展的。

随着互联网平台和环境的迅速发展,对软件工程的发展产生了变革性的巨大影响,网格计算、普适计算、中间件、网构软件等一批新技术和理念,从网络资源共享与管理,人机交互及软件服务等各方面提出了软件技术的新课题。

第46页,共85页,2024年2月25日,星期天软件工程的发展已经历了四个重要阶段:4.第四代软件工程—构件工程3.第三代软件工程—过程工程2.第二代软件工程—对象工程1.第一代软件工程—传统的软件工程第47页,共85页,2024年2月25日,星期天软件工程的发展已经历了四个重要阶段:1.第一代软件工程—传统的软件工程2.第二代软件工程—对象工程3.第三代软件工程—过程工程4.第四代软件工程—构件工程

60年代末到70年代为了克服“软件危机”(Softwarecrisis)提出“软件工程”的名词,将软件开发纳入工程化的轨道,基本形成软件工程的概念、框架、技术和方法。称为传统的软件工程。第48页,共85页,2024年2月25日,星期天软件工程的发展已经历了四个重要阶段:1、第一代软件工程—传统的软件工程2、第二代软件工程—对象工程3、第三代软件工程—过程工程4、第四代软件工程—构件工程

80年代中到90年代,面向对象的方法与技术得到发展,研究的重点转移到面向对象的分析与设计,演化为一种完整的软件开发方法和系统的技术体系,称为对象工程。第49页,共85页,2024年2月25日,星期天软件工程的发展已经历了四个重要阶段:1、第一代软件工程—传统的软件工程2、第二代软件工程—对象工程3、第三代软件工程—过程工程4、第四代软件工程—构件工程

80年代中开始,人们在软件开发的实践过程中认识到:提高软件生产率,保证软件质量的关键是“软件过程”,是软件开发和维护中的管理和支持能力,逐步形成软件过程工程。第50页,共85页,2024年2月25日,星期天软件工程的发展已经历了四个重要阶段:1、第一代软件工程—传统的软件工程2、第二代软件工程—对象工程3、第三代软件工程—过程工程4、第四代软件工程—构件工程

90起年代,基于构件(Component)的开发方法取得重要进展,软件系统的开发可通过使用现成的可复用构件组装完成,而无需从头开始构造,以此达到提高效率和质量,降低成本的目的。称为构件工程。第51页,共85页,2024年2月25日,星期天第52页,共85页,2024年2月25日,星期天

软件工程是一门新兴的边缘学科,涉及的学科多,研究的范围广,研究的主要内容有以下几方面:}

软件开发技术软件开发方法、技术软件开发工具及环境软件管理技术软件规范(国际规范)}

软件管理技术第53页,共85页,2024年2月25日,星期天1.3软件工程过程与软件生存期

为了克服软件危机,人们从其他产业的工业化生产得到启示,于是在68年北大西洋公约的软件可靠性会议(NATO)上,首次提出了“软件工程”的概念。提出了在软件生产中采用工程化的方法,采用一系列科学的、现代化的方法技术来开发软件。这种工程化的思想贯穿到软件开发和维护的全过程。第54页,共85页,2024年2月25日,星期天是指在软件工具的支持下,所进行的一系列软件开发和进化的活动。通常包括以下四类基本过程:1、软件规格说明:规定软件的功能及其运行环境。2、软件开发:产生满足规格说明的软件。3、软件确认:确认软件能够完成客户提出的要求。4、软件演进:为满足客户的变更要求,软件必须在使用的过程中演进。软件工程过程

(Softwareengineeringprocess)第55页,共85页,2024年2月25日,星期天软件工程过程

(Softwareengineeringprocess)规程与方法工具和设备有技能经过培训的开发人员过程第56页,共85页,2024年2月25日,星期天软件工程三要素软件工程过程方法工具软件工程釆用层次化的方法,每个层次都包括过程、方法、工具三要素。第57页,共85页,2024年2月25日,星期天问题定义编码需求分析软件设计可行性研究运行与维护测试开发时期运行时期计划时期(目标与范围说明书)(可行性论证论告)(维护报告)(测试报告)(程序)(设计文档)(需求说明书)软件生命周期(SDLD)—瀑布模型瀑布模型第58页,共85页,2024年2月25日,星期天1.4软件开发模型

软件开发模型是描述软件开发过程中各种活动如何执行的模型。因此又称为软件过程模型。

软件过程模型是对软件开发实际过程的抽象和简化。

目前典型的软件开发模型有:

瀑布模型、增量模型、螺旋模型、喷泉模型、变换模型和基于知识的模型等。不同的开发方法有不同的软件过程模型。第59页,共85页,2024年2月25日,星期天软件过程模型软件过程模型是软件开发全过程、软件开发活动以及它们之间关系的结构框架软件项目的管理提供里程碑和进度表为软件开发提供原则和方法第60页,共85页,2024年2月25日,星期天以软件需求完全确定为前提的瀑布模型在软件开发初期只能提供基本需求所采用的渐进式开发模型如原型模型、螺旋模型、增量模型、并发开发模型

以形式化开发方法为基础的变换模型基于构件的开发过程敏捷开发过程---统一软件开发过程RUP五类软件开发过程模型第61页,共85页,2024年2月25日,星期天瀑布模型问题定义编码需求分析软件设计可行性研究运行与维护测试开发时期运行时期计划时期(目标与范围说明书)(可行性论证论告)(维护报告)(测试报告)(程序)(设计文档)(需求说明书)瀑布模型第62页,共85页,2024年2月25日,星期天瀑布模型主要思想

软件开发过程与软件生命周期是一致的相邻二阶段之间存在因果关系需对阶段性产品进行评审第63页,共85页,2024年2月25日,星期天瀑布模型的优点软件生命周期模型,使软件开发过程可以在分析、设计、编码、测试和维护的框架下进行;软件开发过程具有系统性、可控性,克服了软件开发的随意性。第64页,共85页,2024年2月25日,星期天瀑布模型的缺点项目开始阶段用户很难精确的提出产品需求,由于技术进步,用户对系统深入的理解,修改需求十分普遍。项目开发晚期才能得到程序的运行版本,这时修改软件需求和开发中的错误代价很大。采用线性模型组织项目开发经常发生开发小组人员“堵塞状态”,特别是项目的开始和结束。第65页,共85页,2024年2月25日,星期天增量模型(incrementalmodel)增量模型是一种非整体开发的模型。是一种进化式的开发过程。根据增量的方式和形式的不同,分为:基于瀑布模型的渐增模型基于原型的快速原型模型该模型具有较大的灵活性,适合于软件需求不明确、设计方案有一定风险的软件项目。增量模型和瀑布模型之间的本质区别是什么?第66页,共85页,2024年2月25日,星期天增量模型特点增量小而可用的软件特点在前面增量的基础上开发后面的增量每个增量的开发可用瀑布或快速原型模型迭代的思路第67页,共85页,2024年2月25日,星期天

为了描述软件开发过程中可能的回溯,尤其是维护阶段往往要经历上述各个阶段。采用循环模型描述。需求分析设计编码测试运行评价计划循环模型循环模型第68页,共85页,2024年2月25日,星期天

速成原型的工作模型是一个循环的模型。

1.快速分析快速确定软件系统的基本要求,确定原型所要体现的特征(界面,总体结构,功能,性能)

2.构造原型考虑主要特征,快速构造一个可运行的系统。有三类原型:用户界面原型,功能原型,性能原型。

3.运行和评价原型

4.修改与改进原型的工作模型运行评价构造快速分析修改第69页,共85页,2024年2月25日,星期天

智能模型(intelligentmodel)获取需求需求分析具体描述优化程序调整验证维护知识库专家系统程序

也称为基于知识的软件开发模型,是知识工程与软件工程相结合的软件开发模型。智能模型第70页,共85页,2024年2月25日,星期天1.5软件开发方法

软件开发的目标是要在规定的投资和时间内,开发出符合用户的需求,高质量的软件,为此需要有成功的开发方法。软件开发方法可分为两大类:面向过程的开发方法面向对象的开发方法第71页,共85页,2024年2月25日,星期天结构化开发方法(StructuredDevelopingMethod)是现有的软件开发方法中最成熟,应用最广泛的方法,主要特点是快速,自然和方便。结构化方法总的指导思想自顶向下、逐步求精。它的基本原则是功能的分解与抽象。一、结构化开发方法的组成结构化程序设计方法SP法(StructuredProgram)结构化设计方法SD法(StructuredDesign)结构化分析方法SA法(StructuredAnalysis)

SA,SD,SP法相互衔接,形成了一整套开发方法。结构化方法及瀑布模型第72页,共85页,2024年2月25日,星期天什么是原型化方法(PrototypingMethod)原型化方法及其工作模型

原型——是软件的一个早期可运行的版本,它反映了最终系统的部分重要特性。原型化方法的基本思想是花费少量代价建立一个可运行的系统,使用户及早获得学习的机会。原型化方法又称速成原型法(RapidPrototyping)。第73页,共85页,2024年2月25日,星期天原型化方法及其工作模型

1、废弃(throwaway)型

RSP法(RapidSpecificPrototyping)快速建立需求规格原型。

2、追加(addon)型

RCP法(RapidCyclicPrototyping)快速建立渐进原型法。采用循环渐进的开发方式,对系统模型作连续精化。第74页,共85页,2024年2月25日,星期天构造原型运行/评价原型原型完成否要细部说明否严格说明细部效果满意否整理原型提供文档修正改进原型YYNN快速分析,确定初步规格说明YN细化的快速原型模型图2细化的快速原型模型快速分析或修改评价构造运行第75页,共85页,2024年2月25日,星期天原型模型的优点原型模型支持软件需求开发,帮助用户和开发人员理解需求,是软件需求工程的关键。它产生的正式需求文挡,是软件开发的基础。如果开发的原型是可运行的,它的若干高质量的程序片段和开发工具可用于工作程序的开发。原型的开发和评审是系统分析员和用户/客户共同参予的迭代过程,每个迭代循环都是线性过程。第76页,共85页,2024年2月25日,星期天

对大型软件,需要多个原型描述系统的生存期,螺旋模型将瀑布模型与原型化模型结合起来,并加入了风险分析。螺旋模型螺旋模型螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期可分为4个工作步骤:第一,确定目标、方案和限制条件;第二,评估方案、标识风险和解决风险;第三,开发确认产品;第四,计划下一周期工作。第77页,共85页,2024年2月25日,星期天螺旋模型的使用软件工程项目从螺旋中心开始启动,沿顺时针方向前进。第一圈产生产品规格说明;第二圈产生一个用于开发的原型;第三圈产生软件产品的初始版本;第四圈产生软件产品比较完善的新版本

……。第78页,共85页,2024年2月25日,星期天螺旋模型的优点符合人们认识现实世界和软件开发的客覌规律;支持软件整个生命周期;保持瀑布模型的系统性、阶段性;利用原型评估降低开发风险;开发者和用户共同参与软件开发,尽早发现软件中的错误;不断推出和完善软件版本,有助于需求变化,获取用户需求,加强对需求的理解。第79页,共85页,2024年2月25日,星期天面向对象方法(OOSD(Object-OrientedSoftwareDevelopment)是80年代推出的一种全新的软件开发方法。非常实用而强有力,被誉为90年代软件的核心技术之一。面向对象方法及其工作模型

其基本思想是:对问题领域进行自然的分割,以更接近人类通常思维的方式建立问题领域的模型,以便对客观的信息实体进行结构和行为的模拟,从而使设计的软件更直接地表现问题的求解过程。面向对象

温馨提示

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

评论

0/150

提交评论