第5讲 结构化生命周期法
- 格式:doc
- 大小:116.50 KB
- 文档页数:12
软件工程的结构化生命周期方法
软件工程的结构化生命周期方法是一种把软件开发过程分解成若干个独立、可管理、具有确定性质的阶段或活动,并且阶段之间有明显的输入输出关系和相互制约关系的开发方法。
常见的结构化生命周期方法包括瀑布模型、迭代模型、螺旋模型等。
1. 需求分析阶段
在这个阶段,对用户需求和需求的可行性进行了解和分析,并出具详细的需求说明书。
这个阶段的主要特点是快速出具详细需求文档,以此为基础进行后续的设计等阶段。
2. 设计阶段
在这个阶段,根据需求说明书进行详细设计,并形成设计文档。
这个阶段的主要特点是通过详细设计,保证软件能够达到预期的功能与质量要求。
3. 编码阶段
在这个阶段,根据设计文档进行编码,并进行测试验证编码的正确性。
这个阶段的主要特点是把大量的设计文档转化为可实现的软件,完成最终的实现和测试。
4. 测试阶段
在这个阶段,对开发好的软件进行全面的测试以及错误和缺陷修复,以保证软件的质量和稳定性。
这个阶段的主要特点是对软件进行全面、深入、科学的测试和质量保障。
5. 运维阶段
在这个阶段,管理整个软件体系,记录使用者的各类需求并进行更新维护,以及对于发现的软件缺陷进行修改和升级。
这个阶段的主要特点是保证软件能够随时满足用户的需求,并持续改善软件的质量和性能。
软件开发中常采用的结构化生命周期方法软件开发中常采用的结构化生命周期方法,由于其特征而一般称其为瀑布模型。
结构化生命周期方法是将软件生命周期的各项活动划分为若干时期,每个时期又区分为各个阶段,各阶段的工作顺序展开,恰如自上而下的瀑布,所以称之为瀑布模型。
根据对软件生命周期分析的方法和手段的不同,对软件生命周期的描述还可用演化模型、螺旋模型、喷泉模型和智能模型。
软件开发的结构化生命周期方法将软件生命周期划分成计划阶段,开发阶段,运行阶段。
软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期。
软件开发的结构化生命周期方法将软件生命周期划分成计划阶段,开发阶段,运行阶段。
软件生命周期又称为软件生存周期或系统开发生命周期,是软件的产生直到报废的生命周期,周期内有问题定义,可行性分析,总体描述,系统设计,编码,调试和测试,验收与运行,维护升级到废弃等阶段,这种按时间分程的思想方法是软件工程中的一种思想原则,即按部就班,逐步推进,每个阶段都要有定义,工作,审查,形成文档以供交流或备查,以提高软件的质量。
但随着新的面向对象的设计方法和技术的成熟,软件生命周期设计方法的指导意义正在逐步减少。
生命周期的每一个周期都有确定的任务,并产生一定规格的文档
(资料),提交给下一个周期作为继续工作的依据。
按照软件的生命周期,软件的开发不再只单单强调”编码”,而是概括了软件开发的全过程。
软件工程要求每一周期工作的开始只能必须是建立在前一个周期结果”正确”前提上的延续,因此,每一周期都是按“活动,结果——审核——再活动,直至结果正确“循环往复进展的。
计算机二级《信息管理》重点:结构化生命周期方法结构化生命周期方法结构化分析与设计方法在软件工程中应用已很普遍,并且越来越成熟。
有许多大、中型项目都采用了这种方法进行开发并取得了显著的成果。
按B.W.Boehm的描述,瀑布模型的的软件生命周期可划分七个阶段:系统需求分析、软件需求分析、概要设计、详细设计、编码、测试和运行维护。
系统需求系统需求包括:问题定义、可行性研究及软件计划。
1.问题定义软件开发的第一步就是进行问题定义。
问题定义阶段必须回答的关键问题:软件要解决的问题是什么?如果不知道问题是什么就试图解决这个问题,显然是盲目的,只会白白浪费时间和金钱,最终得出的结果很可能是毫无意义的。
尽管确切地定义问题的必要性是十分明显的,但是在实践中它却可能是最常被忽视的一个步骤。
这里所说的问题,就是指用户的基本要求。
说得通俗些,问题定义实际上就是了解用户到底要建立什么系统,并确定分析员下一步应该做什么。
因此,问题定义的来源是用户。
通过问题定义阶段的工作,系统分析员应该提出关于问题性质、工程目标和规模的书面报告。
这一阶段的分析员应尽可能站在较高的角度去抽象、概括所要干的事情,不要拘泥于问题实现的细节。
尽管用户可能总是习惯于这样做,但分析员在这一阶段必须超脱出来,居高临下鸟瞰系统的全貌。
通过对系统的实际用户和使用部门负责人的访问调查,分析员扼要地写出他对问题的理解,并在使用部门负责人的会议上认真讨论这份书面报告,澄清含糊不清的地方,改正理解不正确的地方,最后得出一份双方都满意的文档。
当用户的要求不是很多并且不太复杂时,一两个分析员用上一两天就可以完成这一工作了。
但当系统比较大,且复杂时,恐怕就要组织一个问题定义小组,花上一两个星期,甚至数月来定义用户的问题。
如果分析员和用户及使用部门的负责人对所要解决的问题取得完全一致的看法,而且使用部门的负责人同意开发工程继续进行下去,那么开发工程将转入生命周期的下一个阶段可行性研究。
结构化生命周期法的特点
结构化生命周期法的特点
结构化生命周期法是一种软件工程最重要的方法之一,也是面向对象技术的基础。
它把软件开发过程分解成一系列阶段,每个阶段都有明确的目标,每个阶段的输入和输出都能够正确地流动。
特点:
1、结构化生命周期法以软件开发中各个不同阶段的交付物作为驱动,它有助于清晰地定义软件开发流程;
2、结构化生命周期法有利于管理软件开发的风险,可以将风险分解成比较小的部分,从而更好地控制风险;
3、结构化生命周期法具有可重复性,可以用于多个项目,并且每个项目都能从中受益;
4、结构化生命周期法可以提供有效的可衡量的质量保证,使得质量更加可控,从而更好地满足客户需求。
快速原型法及其他快速原型法、面向对象的方法的基本思想、开发过程、适用范围。
教学难点在实际管理信息系统开发过程中开发方法的选择。
各种开发方法之间的关系。
建议学时1学时教学教具多媒体教学系统软件微机录像教学方法讲授(PPT)演示设计板书设计一、快速原型法二、面向对象的方法教学过程课程导入问题讨论:1.什么是快速原型法?2.为什么许多管理信息系统开发和应用失败了, 原因是什么?3、面向对象的方法包括哪些?通过上述问题的讨论, 引导学生重视开发方法的学习, 对目前各种开发方法从总体上加以了解。
通过上述问题的讨论,引导学生重视开发方法的学习,对目前各种开发方法从总体上加以了解。
一、快速原型法信息系统原型, 就是一个可以实际运行、可以反复修改、可以不断完善的信息系统。
1. 原型法产生的原因运用结构化系统开发生命周期法的前提条件是要求用户在项目开始初期就非常明确地陈述其需求, 需求陈述出现错误, 对信息系统开发的影响尤为严重, 因此, 这种方法不允许失败。
事实上这种要求又难以做到。
人们设想, 有一种方法, 能够迅速发现需求错误。
当图形用户界面(Graphic User Interface, GUI)出现后, 自80年代中期以来, 原型法逐步被接受, 并成为一种流行的信息系统开发方法。
2. 基本思想原型法(Prototyping Method)是在系统开发初期, 凭借系统开发人员对用户需求的了解和系统主要功能的要求, 在强有力的软件环境支持下, 迅速构造出系统的初始原型, 然后与用户一起不断对原型进行修改、完善, 直到满足用户需求。
3.开发过程可行性研究。
对系统开发的意义、费用、时间作出初步的计算, 确定系统开发的必要性和可行性。
确定系统的基本要求。
系统开发人员向用户了解用户对信息系统的基本需求, 即应该具有的一些基本功能, 人机界面的基本形式等。
建造系统初始原型。
在对系统有了基本了解的基础上, 系统开发人员应争取尽快地建造一个具有这些基本功能的系统。
什么是数据流程图?数据流程图是一种能全面地描述系统数据流程的主要工具,它用一组符号来描述整个系统中信息的全貌,综合地反映出信息在系统中流动、处理和存储的情况。
数据流程图有两个特征:抽象性和概括性。
抽象性指的是数据流程图把具体的组织机构、工作场所、物质流都去掉,只剩下信息和数据存储、流动、使用以及加工情况。
概括性则是指数据流程图把系统对各种业务的处理过程联系起来考虑,形成-一个整体。
什么是数据字典?以特定格式记录下来的、对系统的数据流程图中各个基本要素的内容和特征所作的完整的定义和说明。
是对数据流程图的重要补充和说明。
是结构化系统分析的重要工具之一。
数据字典的内容包括以下六个方面:(1)数据项。
数据项也称数据元素,是最基本的数据组成单位,是不能再分解的数据单位。
(2)数据结构。
数据结构由两个或者两个以上相互关联的数据元素或者其他数据结构组成的。
-一个数据结构可以由若千个数据元素组成,也可以由若千个数据结构组成,还可以由若千个数据元素和数据结构组成。
(3)数据流。
数据流是数据结构在系统内传输的路径。
数据流的组成可以是-一个已定义的数据结构,也可以由若干数据项和数据结构组成。
(4)数据存储。
数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之;一。
(5)外部实体。
外部实体是数据的来源和去向,外部实体主要说明外部实体产生的数据流、接收到的数据流以及该外部实体的数量。
(6)处理逻辑。
处理逻辑描述数据流程图中数据的基本处理过程。
块间耦合系统内不同模块之间互联程度的度量。
模块间的耦合度越低,模块的独立性越好。
块内聚合:衡量模块内各组成部分的凝聚程度。
模块内的聚合度越高,模块的独立性越好。
简述管理信息系统的调试方法有哪几种?常见的调试的方法有试探法、回溯法、归纳法。
(1)试探法:首先分析错误征兆,猜想故障的大致位置,在程序中加进许多显示语句,获取程序中被怀疑的地方的信息。
(2)回溯法:按选优条件向前搜索,当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择。
第5讲结构化生命周期法,快速原型法及其他
快速原型法及其他
设计
板书设计一、快速原型法
二、面向对象的方法
教学过程
课程导入问题讨论:
1、什么是快速原型法?
2、为什么许多管理信息系统开发和应用失败了,原因是什么?
3、面向对象的方法包括哪些?
通过上述问题的讨论,引导学生重视开发方法的学习,对目前各种开发方法从总体上加以了解。
一、快速原型法
信息系统原型,就是一个可以实际运行、可以反复修改、可以不断完善的信息系统。
1、原型法产生的原因
运用结构化系统开发生命周期法的前提条件是要求用户在项目开始初期就非常明确地陈述其需求,需求陈述出现错误,对信息系统开发的影响尤为严重,因此,这种方法不允许失败。
事实上这种要求又难以做到。
人们设想,有一种方法,能够迅速发现需求错误。
当图形用户界面(Graphic User Interface, GUI)出现后,自80年代中期以来,原型法逐步被接受,并成为一种流行的信息系统开发方法。
2、基本思想
原型法(Prototyping Method)是在系统开发初期,凭借系统开发人员对用户需求的了解和系统主要功能的要求,在强有力的软件环境支持下,迅速构造出系统的初始原型,然后与用户一起不断对原型进行修改、完善,直到满足用户需求。
3、开发过程
可行性研究。
对系统开发的意义、费用、时间作出初步的计算,确定系
构成。
对象可由相对比较简单的对象以某种方式组成;
对象由属性和方法组成。
属性(Attribute)反映了对象的信息特征,如特点、值、状态等等.而方法(Method)则是用来定义改变属性状态的各种操作;
对象之间的联系主要是通过传递消息(Message)来实现的,而传递的方式是通过消息模式(Message pattern)和方法所定义的操作过程来完成的;
对象可按其属性进行归类(Class)。
类有一定的结构,类上可以由超类(Superclass),类下可以有子类(Subclass)。
对象或类之间的层次结构是靠继承关系(Inheritance)维系的;
对象是一个被严各模块化了的实体,称之为封装(Encapsulation)。
这种封装了的对象满足软件工程的一切要求,而且可以直接被面向对象的程序设计语言所接受。
4、开发过程
系统调查和需求分析:对系统将要面临的具体管理问题以及用户对系统开发的需求进行调查研究,即先弄清要干什么的问题。
分析问题的性质和求解问题:在繁杂的问题域中抽象地识别出对象以及其行为、结构、属性、方法等。
一般称之为面向对象的分析,即OOA。
整理问题:对分析的结果作进一步的抽象、归类、整理,并最终以范式的形式将他们确定下来。
一般称之为面向对象的设计,即OOD。
程序实现:用面向对象的程序设计语言将上一步整理的范式直接映射(即直接用程序设计语言来取代)为应用软件。
一般称之为面向对象的程序,即OOP。
5、评价
OO方法直接反映了人们对客观世界的认知模式。
人类认识客观世界有两个基本过程:一个是从特殊到一般的归纳过程,另一个是从一般到特殊的演绎过程。
从应用设计到解决问题的方案更加抽象化而且具有极强的对应性。
在设计中容易与用户沟通。
把数据和操作封装到对象之中。
设计中产生各式各样的部件,然后由部件组成框架,以至于整个程序。
应用程序具有较好的重用性、易改进、易维护和易扩充。
6、适用范围
流行的开发方法,适用面很广。
三、CASE 介绍
计算机辅助软件工程方法是一种自动化或自动化的系统开发环境,它能够全面支持出系统调查外的给一个开发步骤,使得原来由手工完成的开发过程转变为一自动化工具和支撑环境支持的自动化开发过程。
采用CASE工具进行系统开发,还必须结合某种具体的开发方法,如结构化系统开发方法等。
计算机辅助软件工程方法的特点:
解决了从客观对象到软件系统的映射问题,支持系统开发的全过程。
提高了软件质量和软件重用性。
加快了软件开发速度。
简化了系统开发过程的管理和维护。
自动生成开发过程中的各种文档资料。
CASE是一种开发方法吗?
教学小结系统开发和采用何种开发方法,是管理信息系统开发能否成功的关键。
各种开发方法各有其侧重点,结构化系统开发方法是目前各种开发方法中理论比较严谨、应用比较广泛、成功率比较高的一种开发方法,主要由于其应用了系统的思想和系统工程的工作方式,对于其存在的缺点,可以通过与原型法、面向对象方法结合使用,能够得到较好地克服。
原型法对于了解用户需求、提高用户满意程度、提高开发速度等发面尤其突出的特点,但对于大型复杂系统开发可以作为系统调查分析加以采用。
面向对象方法作为一种全新的开发方法尽管是研究的热点,但在管理实际中如何分析、设计,如何构造对象是相当复杂的一项工作,当前在面向对象的程序方面已经有了长足的进步,难点仍然是面向对象的分析和设计。
其他开发方法有的是针对特定的系统研究出的特殊的开发方法,在实际应用中还广泛,印证其有效性的案例不是很多,CASE严格意义上讲,只是一种自动化的开发技术。