欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    软件开发过程与方法.ppt

    • 资源ID:6063632       资源大小:433.50KB        全文页数:41页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件开发过程与方法.ppt

    VC+程序设计项目实践,贾振华,第1章 软件开发过程与方法,学习目标:了解软件的开发过程了解软件的开发方法理解编码实现的规则熟悉测试方法,1.1软件开发过程,软件开发过程是按照软件工业化的标准定义的在软件开发中必须具有的一系列过程规范。软件开发过程是定义软件中的软件需求、软件设计,软件编码、软件测试、软件部署的实现目标和规范化的管理方法论。软件开发过程是保证软件高质量完成的一系列任务的框架,它规定了完成各项任务的工作步骤。,1.1软件开发过程需求分析,需求分析阶段研究的对象是软件项目的用户要求。一方面,必须全面理解用户的各项要求,但又不能全盘接受所有的要求,因为并非所有的用户要求都是合理的,对其中模糊的要求还需要澄清,然后才能决定是否可以采纳。对于那些无法实现的要求,应向用户做充分的解释,以求得谅解。另一方面,要准确地表达已经接受的用户要求。只有经过确切描述的软件需求才能成为软件设计的基础。,1.1软件开发过程需求分析,软件需求分析的目标是准确理解用户的要求,进行细致的调查分析,将用户的非形式的要求转化为完整的需求定义,再将需求定义转换为相应的形式的规格说明。,1.1软件开发过程需求分析,制定软件的需求规格说明不仅仅是软件开发人员的事,用户也起着至关重要的作用。用户必须对软件功能和性能提出初步要求,并澄清一些模糊概念。而软件分析人员则要认真了解用户的要求,细致地进行调查分析,把用户“做什么”的要求最终转换成一个完全的、精细的软件逻辑模型并写出软件的需求规格说明,准确地表达用户的要求。包括的内容有:,1.1软件开发过程需求分析,1)功能需求 2)性能需求 3)可靠性和可用性需求4)出错性处理需求5)接口需求6)界面需求7)其他需求,1.1软件开发过程系统分析与设计,系统分析与设计可以分为总体设计和详细设计。总体设计的基本目的是:从整体角度上来说,系统该如何实现;总体设计称为概要设计或初步设计。这个阶段工作将划分出系统的组成:程序、文件、数据库、人工过程和文档等,另外就是设计软件的结构,即确定系统由哪些功能模块组成,以及相互之间的关系。详细设计的根本目标是确定怎样具体实现所要求的系统,即能够对系统进行精确描述,为编码打下基础。详细设计还没有编写具体代码,只是设计出“程序蓝图”,程序员根据这个蓝图编写出实际的程序代码。详细设计的结果决定了程序代码的质量。,1.1软件开发过程编码实现,编码实现是把系统分析与设计结果转换成某种程序设计语言代码的过程。程序的质量主要取决于软件的设计质量。但是,所选用的程序设计语言的特点及编程风格也对程序的可靠性、可读性、可测试性和可维护性产生深远的影响。在编写代码过程中,注意编码风格,要求源代码的逻辑简明清晰、易读易懂,为达到这个目的,应该遵循下述规则:,1.1软件开发过程编码实现,1)程序内部文档程序内部文档包括恰当的标识符、适当的注释和程序的组织风格等。选取含义鲜明的标识符,能够正确提示程序对象所代表的实体,有助于对程序的理解。如果使用缩写,缩写规则应该一致,并给每个标志符加上注释。,1.1软件开发过程编码实现,1)程序内部文档(续)注释是阅读和理解程序的重要手段,通常在每个模块的开始有一段序言性注释,简要说明模块的功能、主要算法、接口情况、重要数据说明以及开发人员、时间、版本等内容。注释的内容一定要正确,错误的注释不仅不对理解程序起帮助,反而错误的引导对程序的理解。程序源代码的组织对于程序的可读性影响很大,利用适当的空白改善程序的视觉反应,使程序的层次结构清晰明显。,1.1软件开发过程编码实现,2)数据说明数据说明的次序标准化,可按照数据结构或数据类型确定的次序。当多个变量名在一个说明语句中,应按照字母顺序排列这些变量。在说明一个复杂的数据结构时,应加注释说明方法和特点。不同数据类型应按存储空间的大小顺序说明。,1.1软件开发过程编码实现,3)语句构造在构造语句时,应遵循的原则是简单而直接,不能为了提高效率而使程序变得过分复杂。具体规则如下:在一行内只写一条语句,并采取适当的缩进格式,使程序的逻辑和功能变得更加明确;,1.1软件开发过程编码实现,3)语句构造(续)尽量避免复杂的条件;尽量减少非操作的条件语句;避免大量使用循环嵌套或条件嵌套;使用括号来表达逻辑表达式或算术表达式的运算顺序。,1.1软件开发过程编码实现,4)输入输出在设计和编写程序时应考虑如下规则:对所有输入的数据都进行验证,从而识别错误的输入,以保证每个数据的有效性;对所有输入数据进行输入提示,详细说明可用的选择或边界值;,1.1软件开发过程编码实现,4)输入输出(续)检查输入项重要组合的合法性,必要时报告输入状态信息;使得输入的步骤和操作尽可能简单,并保持简单的输入格式;输入一批数据时,最好使用数据结束标志,而不要由用户指定输入数据数目;输入数据时,应允许使用自由格式输入,应允许有缺省值;,1.1软件开发过程编码实现,4)输入输出(续)在以交互式输入/输出方式进行输入时,要在屏幕上使用提示符明确提示交互输入的请求,指明可使用选择项的种类和取值范围。同时,在数据输入的过程中和输入结束时,也要在屏幕上给出状态信息;当程序语言对输入格式有严格要求时,应保持输入格式与输入语句要求的一致性;给所有的输出加注解,并设计输出报表格式。,1.1软件开发过程编码实现,5)效率(1)有关程序效率的几条准则效率是一个性能要求,目标值应当在需求分析阶段给出。软件效率以需求为准,不应以人力所及为准。好的设计可以提高效率。程序的效率与程序的简单性相关,不要牺牲程序的清晰性和可读性来不必要地提高效率。,1.1软件开发过程编码实现,5)效率(续)(2)算法对效率的影响在编程序前,尽可能化简有关的算术表达式和逻辑表达式;仔细检查算法中的嵌套的循环,尽可能将某些语句或表达式移到循环外面;尽量避免使用多维数组;尽量避免使用指针和复杂的表达式;采用快速的算术运算;不要混淆数据类型,避免在表达式中出现类型混杂;尽量采用整数算术表达式和布尔表达式;选用等效的高效率算法。,1.1软件开发过程编码实现,5)效率(续)(3)影响存储器效率的因素在大型计算机中必须考虑操作系统页式调度的特点,一般来说,使用能保持功能的结构化控制结构,是提高效率的有效方法。在微处理器中如果要求使用最少的存储单元,则应选用紧缩存储器特性的编译程序,在非常必要时可以使用汇编语言。提高执行效率的技术通常也能提高存储器效率。提高存储器的关键是简单。,1.1软件开发过程编码实现,5)效率(续)(4)影响输入/输出的因素对所有的输入/输出操作,安排适当的缓冲区,以减少频繁的信息交换。对辅助存储(例如磁盘),选择尽可能简单的,可接受的存取方法;对辅助存储的输入/输出,应当成块传送;对终端或打印机的输入/输出,应考虑设备特性,改善输入/输出的质量和速度;任何不易理解的,对改善输入/输出效果关系不大的措施都是不可取的;不应该为追求所谓超高效的输入/输出,进而损害程序的可理解性;良好的输入/输出程序设计风格对提高输入/输出效率会有明显的效果。,1.1软件开发过程测试,软件测试按阶段划分为两种,一种是在编写出每个模块之后就进行的测试,称为单元测试。一种是编码阶段结束后的系统测试。1)首先了解软件测试的目的,对软件测试的目的提出的观点:软件测试是为了发现错误而执行程序的过程。一个好的测试用例能够发现至今尚未发现的错误。一个成功的测试是发现了至今尚未发现的错误的测试。,1.1软件开发过程测试,2)软件测试的一些指导原则:测试用例应由输入数据和预期的输出数据两部分组成。测试用例不仅选用合理的输入数据,还要选择不合理的输入数据。除了检查程序是否做了它应该做的事,还应该检查程序是否做了它不应该做的事。应制定测试计划并严格执行,排除随意性。长期保留测试用例。对发现错误较多的程序段,应进行更深入的测试。程序员避免测试自己的程序。,1.1软件开发过程测试,3)测试方法一般分为两大类:动态测试方法和静态测试方法,而动态测试方法又分为:黑盒测试 白盒测试,1.1软件开发过程测试,(1)黑盒测试黑盒测试又称为功能测试或数据驱动测试。该方法把被测试对象看成一个黑盒子,测试人员完全不考虑程序的内部结构和处理过程,只在软件的接口处进行测试,检查程序是否满足功能要求。黑盒测试主要发现以下错误:是否有不正确或遗漏了的功能。在接口上,能否正确地接受输入数据,能否产生正确的输出信息。访问外部信息是否有错。性能上是否满足要求等。注意:穷举地输入测试数据进行黑盒测试是不可能的。,1.1软件开发过程测试,(2)白盒测试此方法把测试对象看作一个打开的盒子,测试人员须了解程序的内部结构和处理过程,以检查处理过程的细节为基础,对程序中尽可能多的逻辑路径进行测试,检验内部控制结构和数据结构是否有错,实际的运行状态与预期的状态是否一致。一般情况下,系统测试应测试以下几个部分:系统是否实现了需求分析阶段要求实现的所有功能;在正常条件下,系统运行是否正常;在非正常条件下,系统运行是否正常;,1.1软件开发过程部署,简单地讲,部署就是安装,就是把软件放置到相应的地方,并且进行相应的配置(一般称作部署描述),让软件能够正常运行起来。部署阶段中的任务和活动包括通知用户部署情况、执行培训计划、执行数据输入或转换、安装系统、运行部署后评审、修订先前的文档。,1.1软件开发过程维护,软件维护是在软件已经交付使用之后,为了改正错误或满足新的要求而对软件进行修改的过程。软件维护通常包括4类活动:为纠正错误而进行的改正性维护;为适应外部环境变化而进行的适应性维护;为改进原有软件而进行的完善性维护;为改进将来的可维护性和可靠性而进行的预防性维护。决定软件的可维护性的因素有:软件的可理解性、可测试性、可修改性、可移植性和可重用性。软件重用技术是从根本上提高软件可维护性的重要技术。,1.2软件开发方法,在20世纪60年代中期,计算机软件的开发和维护遇到了一系列严重的问题,即软件危机,这些严重的问题不仅与软件本身的特点有关,还和软件开发与维护的方法不正确有关。为解决软件危机,1968年在第一届NATO会议上提出了软件工程的思想,并不断地得到发展和完善。同时,也在不断地探索新的软件开发设计方法,提出许多开发方法,包括面向数据流的开发设计方法、结构化软件开发方法、面向数据结构的软件开发方法、面向问题的分析方法、面向对象的软件开发方法、原型化方法等。下面对这些软件开发方法做以简单介绍。,1.2软件开发方法面向数据流的开发设计方法,面向数据流的设计方法的目标是给出设计软件结构的一个系统化途径。在软件开发的需求分析阶段,重点考虑信息流,通常用数据流图描述信息在系统中的加工和流动情况。面向数据流的设计方法定义了一些不同的“映射”,利用这些映射可以把数据流变换成软件结构。数据流有两种类型:一是交换流,一些数据信息沿输入路径进入系统,通过变换中心,加工处理后沿输出路径输出,离开系统。另一种是事务流,这种数据流以事务为中心,数据沿输入路径到达一个处理,这个处理根据数据的类型在若干个动作序列中选出一个来执行。变换分析是一系列设计步骤的总称,经过这些步骤把具有变换流特点的数据流图按预先确定的模式映射成软件结构。,1.2软件开发方法面向数据流的开发设计方法,这种方法的设计步骤有:第一步:复查基本系统模型,确保系统的输入数据和输出数据符合实际需要。第二步:复查和精化数据流图,确保数据流图给出的目标系统是正确的逻辑模型,而且应该使数据流图中每个处理都代表一个规模适中相对独立的子功能。第三步:确定数据流图具有变换特性还是事务特性。第四步:确定输入和输出流的边界,从而孤立出变换中心。,1.2软件开发方法面向数据流的开发设计方法,第五步:完成“第一级分解”,所谓分解就是分配控制的过程,软件结构代表对控制的自顶向下的分配。第六步:完成“第二级分解”,所谓第二级分解就是把数据流图中的每个处理映射成软件结构中一个适当的模块。应根据实际情况和标准规则,进行第二级分解。第七步:使用设计度量和启发式规则对第一次分割得到的软件结构进行精化。经过上述的步骤,开发出软件的整体表示。,1.2软件开发方法结构化软件开发方法,结构化开发方法是由E.Yourdon 和 共同提出的,即所谓的SASD 方 法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。Yourdon方法是80年代使用最广泛的软件开发方法。它首先用结构化分析(SA)对软件进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程(SP)。它给出了两类典型的软件结构(变换型和事务型)使软件开发的成功率大大提高。结构化分析方法(Structured Method,结构化方法)是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法。结构是指系统内各个组成要素之间的相互联系、相互作用的框架。结构化开发方法提出了一组提高软件结构合理性的准则,如分解与抽象、模块独立性、信息隐蔽等。针对软件生存周期各个不同的阶段,它有结构化分析(SA)、结构化设计(SD)和结构化程序设计(SP)等方法。,1.2软件开发方法面向数据结构的软件开发方法,Jackson方法是最典型的面向数据结构的软件开发方法(简称JSD方法),Jackson方法把问题分解为可由三种基本结构形式表示的各部分的层次结构。三种基本结构就是顺序、选择和重复。三种基本结构可以进行组合,形成复杂的结构体系。这一方法从目标系统的输入、输出数据结构入手,导出程序框架结构,再补充其它细节,就可得到完整的程序结构图。这一方法对输入、输出数据结构明确的中小型系统非常有效,如商业应用中的文件表格处理。该方法也可与其它方法结合,用于模块的具体设计。Jackson系统开发方法把分析的重点放在构造与系统相关联的现实世界,并建立现实世界的信息域的模型上。它实际上是支持软件分析与设计的一组连续的技术步骤。而且,JSD方法的最终目标是生成软件的过程性描述,没有特别考虑程序模块化结构,模块只是作为过程的副产品而出现,没有特别强调模块独立性。,1.2软件开发方法面向数据结构的软件开发方法,使用JSD方法的步骤如下:(1)实体动作分析(2)实体结构分析(3)定义初始模型(4)功能描述(5)决定系统时间特性(6)实现,1.2软件开发方法面向问题的分析方法,面向问题的分析方法PAM(Problem Analysis Method),是80年代末由日立公司提出的一种软件开发方法。它的基本思想是考虑输入、输出数据结构,指导系统的分解,在系统分析指导下逐步综合。这一方法的具体步骤是:从输入、输出数据结构导出基本处理框;分析这些处理框之间的先后关系;按先后关系逐步综合处理框,直到画出整个系统的PAD图(问题分析图)。这一方法本质上是综合的自底向上的方法,但在逐步综合之前已进行了有目的的分解,这个目的就是充分考虑系统的输入、输出数据结构。PAM方法的另一个优点是使用PAD图。这是一种二维树形结构图,是到目前为止最好的具体设计表示方法之一。当然由于在输入、输出数据结构与整个系统之间同样存在着鸿沟,这一方法仍只适用于解决中小型问题。,1.2软件开发方法面向对象的软件开发方法,随着OOP(面向对象编程)向OOD(面向对象设计)和OOA(面向对象分析)的发展,最终形成面向对象的软件开发方法OMT(Object Modeling Technique)。这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。所以OMT彻底实现了PAM没有完全实现的目标。不仅如此,OO技术在需求分析、可维护性和可靠性这三个软件开发的要害环节和质量指标上有了实质性的突破,基本地解决了在这些方面存在的严重问题。综上所述,面向对象系统采用了自底向上的归纳、自顶向下的分解的方法,它通过对对象模型的建立,能够真正建立基于用户的需求,而且系统的可维护性大大改善。当前业界关于面向对象建模的标准是UML(Unified Modeling Language)。,1.2软件开发方法原型化方法,产生原型化方法的原因很多,主要随着我们系统开发经验的增多,我们也发现并非所有的需求都能够预先定义,而且反复修改是不可避免的。当然能够采用原型化方法是因为开发工具的快速发展,比如用VB,Delphi等工具,人 们可以迅速的开发出一个可以让用户看的见、摸的着的系统框架,这样,对于计算机不是很熟悉的用户就可以根据这个样板提出自己的需求。,1.2软件开发方法原型化方法,开发原型化系统一般由以下几个阶段:(1)确定用户需求(2)开发原始模型(3)征求用户对初始原型的改进意见(4)修改原型。原型化开发比较适合于用户需求不清、业务理论不确定、需求经常变化的情况。当系统规模不是很大也不太复杂时采用该方法是比较好的。,1.3本章小结,本章按照软件生命周期过程中应完成的任务和性质,在概念上把软件的开发过程划分为软件需求分析、软件设计、软件编码、软件测试、软件部署和维护过程。从整体上解决了软件的开发过程问题。针对复杂的用户需求以及需求多变的情况,概述了软件分析与设计的方法,包括面向数据流的开发设计方法、结构化软件开发方法、面向数据结构的软件开发方法、面向问题的分析方法、面向对象的软件开发方法、原型化方法等。,Thank You!,

    注意事项

    本文(软件开发过程与方法.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开