大学软件开发与应用课程PPt第6-7章软件开发.ppt

上传人:牧羊曲112 文档编号:6462894 上传时间:2023-11-02 格式:PPT 页数:73 大小:630KB
返回 下载 相关 举报
大学软件开发与应用课程PPt第6-7章软件开发.ppt_第1页
第1页 / 共73页
大学软件开发与应用课程PPt第6-7章软件开发.ppt_第2页
第2页 / 共73页
大学软件开发与应用课程PPt第6-7章软件开发.ppt_第3页
第3页 / 共73页
大学软件开发与应用课程PPt第6-7章软件开发.ppt_第4页
第4页 / 共73页
大学软件开发与应用课程PPt第6-7章软件开发.ppt_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《大学软件开发与应用课程PPt第6-7章软件开发.ppt》由会员分享,可在线阅读,更多相关《大学软件开发与应用课程PPt第6-7章软件开发.ppt(73页珍藏版)》请在三一办公上搜索。

1、1,第 6 章 软件开发方法,6.1 软件6.2 软件生存周期6.3 软件开发模型,2,计算机语言的发展,第一代语言 机器语言第二代语言 汇编语言第三代语言 高级语言,亦称过程语言 FORTRAN、COBOL、C、PASCAL 第四代语言 非过程化语言 SQL第五代语言 智能性语言,3,软件=程序+文档,程序是按事先设计的功能和性能要求执行的指令序列数据是使程序能正常操纵的信息的数据结构文档是与程序开发、维护和使用有关的图文材料,4,软件的特征,1.软件开发不同于硬件设计2.软件生产不同于硬件制造3.软件维护不同于硬件维修,5,软件危机,定义 软件开发和维护过程中遇到的一系列严重问题表现用户很

2、不满意质量很不可靠(产品无评价手段)软件不可维护对软件开发成本和进度的估算很不准确没有适当的文档软件成本比重上升软件供不应求,6,软件危机,产生的原因:(1)软件是逻辑的系统部件不是物理的系 统部件,以程序和文档形式存在(2)软件规模越来越大,功能越来越强,软件结构非常复杂结论:软件危机产生的根本原因与软件产品的特征和软件产品开发与维护的方法不正确有关 解决软件危机的根本出路:(1)认识问题的原因所在,吸取前人的经验(2)要有相应的理论、技术、工具,7,软件工程,软件工程的目的在于获得廉价的、能在实际机器上高效和可靠地工作的软件。为此需要建立并应用牢固的工程准则和方法软件工程定义很多,其核心思

3、想是:“采用工程化的原理和方法对软件进行计划、开发和维护”,因此需要建立和应用工程准则和方法,8,1.2 软件生存周期,软件生存周期一般划分为计划、开发、运行三个时期,每一时期又区分为若干阶段。计划(定义)时期有问题定义和可行性研究两个阶段 开发时期有需求分析、系统设计、编码和测试四个阶段 运行时期主要是系统维护阶段,9,典型的软件生存周期,开发阶段,维护阶段,(软件系统目标与范围说明书),(可行性论证报告),(需求说明书),定义阶段,(设计说明书),(程序),(测试报告),(软件维护报告),10,1.2.1 计划时期,计划时期的主要任务:调查和分析调查用户需求分析新系统的主要目标,分析开发该

4、系统的可行性。计划时期还应制定出人力、资源及进度计划。,11,1.2.2 开发时期,开发时期的任务 设计和实现设计包括:需求分析、软件设计实现包括:编码和测试 把设计和实现分成两步走,目的是在开发初期让程序人员集中全力搞好软件的逻辑结构,避免过早地为实现的细节分散精力。,12,需求分析其任务在于弄清用户对软件系统的全部需求,并用“需求规格说明书”的形式准确地表达出来。,13,软件设计主要任务是将需求转变为软件的表示形式,有时又可细分为总体设计和详细设计。设计阶段要编写设计文档。,14,编码即按照选定的语言,把设计的过程性描述翻译为源程序。与“需求分析”或“设计”相比,“编码”要简单得多,所以通

5、常由编码员(coder)或初级程序员担任。,15,测试是开发时期最后一个阶段。按照不同的层次,又可细分为单元测试、综合测试、确认测试和系统测试等步 骤。测试是保证软件质量的重要手段。测试阶段的文档称为“测试报告”,包括测试计划、测试用例与测试结果等内容。,16,1.2.3 运行时期,运行时期是软件生存周期的最后一个时期。软件人员在这一时期的工作,主要是做好软件维护。,17,1.3 软件开发模型,1.3.1 传统的软件开发模型 瀑布模型,基于生存期的开发范型,自顶向下,逐步细化,每一步都要求给出相应的技术文档,18,主要特点,坚持结构化(将逻辑实现与物理实现分开)思想和强调文档齐套,是瀑布开发模

6、型的两条重要准则。,瀑布模型 Waterfall Model(1976),19,1.3.1 传统的软件开发模型快速原型模型,20,快速原型范型Rapid Prototyping Paradigm,(1)建立原型(2)实现最终软件原型开发范型的最大优点:用户的早期介入,21,1.3.2 面向对象开发模型,面向对象思想的最重要特征,是在解题空间中引入了“对象”的概念,使之逼真地模拟问题空间中的客观实体,从而达到与人类的思维习惯相一致。,22,软件开发技术发展史,COM、EJB,2.1 结构化开发方法2.2 面向对象开发方法,23,两种程序设计方法,程序设计的两次飞跃结构化程序设计程序=数据结构+算

7、法面向对象程序设计程序=对象+消息,24,两类软件工程方法,传统软件工程软件分析 总体设计 详细设计 面向过程的编码 测试 面向对象软件工程软件分析与对象抽取 对象详细设计 面向对象的编码 测试,25,2.1.1 结构化开发方法,基本思路:把整个系统开发过程分成若干阶段,每个阶段进行若干活动,每项活动应用一系列标准、规范、方法和技术,完成一个或者多个任务,形成符合给定规范的产品。分而治之“结构化”的含义:用一组规范的步骤、准则和工具来进行某项工作。,26,核心思想:自顶向下和逐步求精,SA方法的特点,使用描述需求说明书的规范工具(数据流图、数据词典、小说明(加工逻辑的描述)),使文档规范化,基

8、本手段:分解和抽象 分解:大问题分割成小问题,分别解决 抽象:把细节略去,先考虑最本质属性,27,SA方法,分析步骤:建立当前系统的具体模型抽象出当前系统的逻辑模型建立目标系统的逻辑模型对目标系统做完整的描述。考虑人机界面和其它一些问题主要描述工具:数据流图 表达需求 数据词典 记录数据的逻辑定义,28,数据流图(DFD),数据流图(Data Flow Diagram)是描述系统中数据流程的图形工具。它标识了一个系统的逻辑输入和逻辑输出以及把逻辑输入转换为逻辑输出所需要的加工处理,帐卡,存折,取 款 信 息,存折,核查,付款,登录,无余拒付,储户,付款信息,可行性,29,数据流图(DFD),数

9、据流图以图形的方式表达了系统中的信息变换和传递的过程基本符号:,30,取款过程的数据流图,核查,付款,登录,存折,储户,帐卡,31,数据流图(DFD),SA方法要求:先全局后局部、先整体后细 节、先抽象后具体 总体数据流图 局部数据流图,32,数据流图(DFD),一个复杂的软件其数据流图通常分为顶层、中间层和底层顶层:是一个高度抽象的软件系统的逻辑模型 中间层:它既是上一层的加工的分解结果,又是下一层若干加工的抽象底层:由基本加工构成。所谓基本加工是指不能再进行分解的加工,33,34,35,数据词典(DD),SA方法使用数据词典(Data Dictionary)对数据流名、数据存储名、数据项名

10、、基本加工名进行详细说明,数据流图中包含的所有元素定义的集合构成了数据词典,DD是SA方法的主要工具,36,数据词典(DD),数据词典中条目类型数据流条目常用符号=+|()文件条目 列出文件记录的组成数据项组织方式数据项条目 数据单项定义,包括类型、取值范围加工条目 加工的精确描述,小说明加工说明,37,2.1.2 结构化设计(SD),在软件需求分析阶段,已搞清楚了软件“做什么”的问题,需求通过规格说明书描述,这也是目标系统的逻辑模型。进入了设计阶段,要把软件“做什么”的逻辑模型变换为“怎么做”的物理模型,设计的结果反映在“设计规格说明书”文档中。描述了软件的总体的体系结构,称为软件总体设计或

11、结构设计。对结构进一步细化,称为详细设计或结构设计。,38,SD方法的基本思想,根据SA方法中的数据流图建立一个良好的模块结构图运用模块化的设计原理控制系统的复杂性,即设计出模块相对独立的,模块结构图深度、宽度都适当的,单入口单出口的,单一功能的模块结构的软件结构图。评价模块结构图质量的标准:模块之间的联系越松散越好,而模块内各成分之间的联系越紧凑越好,39,SD方法的设计原理,模块化 指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。模块化是软件解决复杂问题所具备的手段,为了说明

12、这一点,可将问题的复杂性和工作量的关系进行推理抽象模块独立,40,模块化(module),模块:在程序中是数据说明、可执行语句等程序对象的集合,或者是单独命名和编址的元素,如高级语言中的过程、函数、子程序等等。在软件的体系结构中,模块是可组合、分解和更换的单元。模块具有以下几种基本属性:接口:指模块的输入与输出。功能:指模块实现什么功能。逻辑:描述内部如何实现要求的功能及所需的数据。,41,模块独立性(module independence),模块独立性:每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。模块独立性有两个定性的度量标准:内聚(模块内部各成分之间的联系)和

13、耦合(模块之间的联系)模块间耦合性越小越好模块内聚性越大越好,42,模块的设计准则,通过模块的分解和合并,提高模块独立性模块调用个数最好不要超过5个降低模块接口的复杂性模块的作用域应该在控制域之内模块应该设计成单入口单出口模块的大小要适中,一般在50条语句左右,43,2.1.3 详细设计和编码,三种基本控制结构顺序结构选择结构循环结构,44,详细设计的描述工具:程序流程图方框图(N-S图)问题分析图(PAD图)伪码(PDL语言),45,程序流程图,46,N-S图,N-S图也叫做盒图。,47,问题分析图(PAD),48,过程设计语言(Process Design Language,PDL),也称

14、程序描述语言(Program Description Language),又称为伪码(pseudo code)。属于文字形式的表达工具。它并非真正的代码,也不能在计算机上执行,但形式上与代码相似。它是一种用于描述模块算法设计和处理细节的语言。PDL具有严格的关键字外层语法,用于定义控制结构、数据结构和模块接口,而它表示实际操作和条件的内层语法又是灵活自由的,使用自然语言的词汇。,49,PDL 特 点,所有关键字都有固定语法,以便提供结构化控制结构、数据说明和模块的特征。描述处理过程的说明性语言没有严格的语法。具有数据说明机制,包括简单的与复杂的数据说明。具有模块定义和调用机制,因此开发人员应根

15、据系统编程所用的语种,说明PDL表示的有关程序结构。,50,结构化编码方法,程序的正确性可读性、可理解性、可测试性、可维护性,51,2.2 面向对象开发方法 OOSD,一、面向对象分析(OOA),二、面向对象设计(OOD),三、面向对象编程(OOP),Object-Oriented Design,Object-Oriented Programing,Object-Oriented Analysis,52,面向对象的分析:需求分析:分析系统的功能、性能、约束。领域分析:重点在于对问题域中的概念进行描述。,面向对象的设计:重点在于职责分配和交互设计,定义那些最终用面向对象程序设计语言实现的逻辑软件

16、组成部分类。,面向对象的编程:C+、JAVA。,53,第7章 软件测试与质量保证,目标:软件测试是为了发现软件中的错误而执行程序的过程。好的测试方案是尽可能地发现至今尚未发现的错误的测试方案。成功的测试则是发现出至今未发现的错误的测试。,54,软件测试的原则,1.不要抱有“软件不会有错或认为查不出错”的幻想2.测试用例应由测试输入数据和对应的预期输出结果这两部分组成。3.在设计测试用例时,应当包括合理的输入数据和不合理的输入数据。4.程序员应避免测试自己的程序。5.严格全面地执行测试计划。6妥善保存测试计划、测试用例、出错统计和最终分析报告。,55,软件测试策略与技术,单元测试,系统测试,确认

17、测试,组装测试,单元测试,单元测试,被测模块,被测模块,被测模块,已确认的软件,已测模块,可交付的软件,系统其它元素,软件需求,设计信息,已集成的软件,56,软件测试策略,单元测试:人工测试、上机测试组装测试:渐增式组装测试:自底向上、自顶向下非渐增式组装测试确认测试有效性测试、软件配置复查、测试和测试、验收测试系统测试,57,M1,自底向上测试,M2,M5,M4,M3,M6,组装测试(驱动模块从属模块),58,D3,自底向上测试,D1,M5,D2,M3,M6,59,自底向上测试,M2,M5,M4,M3,M6,D4,D5,60,M1,自底向上测试,M2,M5,M4,M3,M6,61,M1,自顶

18、向下测试,M2,M5,M4,M3,M6,组装测试(主控模块调用模块桩模块),62,M1,自顶向下测试,S1,S3,S2,63,M1,自顶向下测试,M2,S4,M4,M3,S5,64,M1,自顶向下测试,M2,M5,M4,M3,M6,65,常用的测试方法,白盒测试(结构测试或逻辑功能测试)将程序看作一个打开的盒子,根据程序内部的逻辑结构及有关的信息来设计或选择测试用例覆盖程度由底到高:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖黑盒测试(功能测试或数据驱动测试)把程序看作一个不能打开的盒子,根据程序的需求规格说明来设计测试用例方法:等价分类法、边缘分析法、因果图法、错误推断法,66

19、,软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:对程序模块的所有独立的执行路径至少测试一次;对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次;在循环的边界和运行界限内执行循环体;测试内部数据结构的有效性,等。,67,语句覆盖:针对语句执行,使得每一条语句至少执行一次。判定覆盖:着眼于每个分支的执行,使得每个分支至少执行一次。条件覆盖:每个判定中每个条件的可能取值都至少执行一次。判定-条件覆盖:兼顾以上两条。条件组合覆盖:每个判定的所有可能的条件取值组合至少出现一次。,68,以上各种覆盖准则的侧重点不同,覆盖程度也不同,但它们具有共同点:任何一种覆盖都不能做到完全测试。,

20、69,黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误:是否有不正确或遗漏了的功能?在接口上,输入能否正确地接受?能否输出正确的结果?是否有数据结构错误或外部信息(例如数据文件)访问错误?性能上是否能够满足要求?是否有初始化或终止性错误?,70,7.3 软件的质量保证,软件质量保证是阶段评审、开发方法、配套管理与程序测试的综合运用。评审与测试程序正确性证明软件配置管理软件质量保证计划,71,软件的质量标准,软件质量的标准:(1)功能性(能够满足软件需求说明(SRS)中各项功能需求)(2)可靠性(3)易用性(4)效率(5)可维护性(6)可移植性,72,7.3.2 质量保证的活动内容,质量保证是复审、开发方法、配置控制程序测试和测试的综合应用的综合应用。质量保证的活动内容(1)软件测试(2)软件配置(3)方法、设计、编码(4)复审、计划与开发,73,各项活动内容,都须写入软件项目质 量保证计划,并由质量保证小组监督实施。质量保证既是技术活动,也是管理活动.,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号