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

上传人(卖家):晟晟文业 文档编号:3804085 上传时间:2022-10-14 格式:PPT 页数:73 大小:689.88KB
下载 相关 举报
大学软件开发与应用课程PPt-第6-7章软件开发new课件.ppt_第1页
第1页 / 共73页
大学软件开发与应用课程PPt-第6-7章软件开发new课件.ppt_第2页
第2页 / 共73页
大学软件开发与应用课程PPt-第6-7章软件开发new课件.ppt_第3页
第3页 / 共73页
大学软件开发与应用课程PPt-第6-7章软件开发new课件.ppt_第4页
第4页 / 共73页
大学软件开发与应用课程PPt-第6-7章软件开发new课件.ppt_第5页
第5页 / 共73页
点击查看更多>>
资源描述

1、1计算机语言的发展计算机语言的发展 第一代语言第一代语言 机器语言机器语言第二代语言第二代语言 汇编语言汇编语言第三代语言第三代语言 高级语言高级语言,亦称过程语言亦称过程语言 FORTRAN、COBOL、C、PASCAL 第四代语言第四代语言 非过程化语言非过程化语言 SQL第五代语言第五代语言 智能性语言智能性语言2程序是按事先设计的功能和性能要求执行的指令序列数据是使程序能正常操纵的信息的数据结构文档是与程序开发、维护和使用有关的图文材料34定义定义 软件开发和维护过程中遇到的一系列严重问题表现表现e用户很不满意e质量很不可靠(产品无评价手段)e软件不可维护e对软件开发成本和进度的估算很

2、不准确e没有适当的文档e软件成本比重上升e软件供不应求5产生的原因:产生的原因:(1)软件是逻辑的系统部件不是物理的系软件是逻辑的系统部件不是物理的系 统部件,以程序和文档形式存在统部件,以程序和文档形式存在 (2)软件规模越来越大,功能越来越强,软件规模越来越大,功能越来越强,软件结构非常复杂软件结构非常复杂结论:结论:软件危机产生的根本原因与软件产品的特软件危机产生的根本原因与软件产品的特征和软件产品开发与维护的方法不正确有关征和软件产品开发与维护的方法不正确有关 解决软件危机的根本出路:解决软件危机的根本出路:(1)认识问题的原因所在,吸取前人的经验认识问题的原因所在,吸取前人的经验 (

3、2)要有相应的理论、技术、工具要有相应的理论、技术、工具6软件工程软件工程软件工程的目的在于获得廉价的、能在软件工程的目的在于获得廉价的、能在实际机器上高效和可靠地工作的软件。实际机器上高效和可靠地工作的软件。为此需要建立并应用牢固的为此需要建立并应用牢固的工程工程准则准则和和方法方法软件工程软件工程定义很多,其定义很多,其核心思想核心思想是:是:“采用工程化的原理和方法对软件进行计采用工程化的原理和方法对软件进行计划、开发和维护划、开发和维护”,因此需要建立和应,因此需要建立和应用用工程工程准则准则和和方法方法71.2 1.2 软件生存周期软件生存周期 e计划时期有问题定义和可行性研究两个阶

4、段 e开发时期有需求分析、系统设计、编码和测试四个阶段 e运行时期主要是系统维护阶段 8问题定义可行性研究需求分析软件设计编码测试维护典型的软件生存周期 开发阶段维护阶段(软件系统目标与范围说明书)(可行性论证报告)(需求说明书)定义阶段(设计说明书)(程序)(测试报告)(软件维护报告)91.2.1 1.2.1 计划时期计划时期计划时期的主要任务:调查和分析调查用户需求分析新系统的主要目标,分析开发该系统的可行性。计划时期还应制定出人力、资源及进度计划。101.2.2 1.2.2 开发时期开发时期开发时期的任务 设计和实现设计包括:需求分析、软件设计实现包括:编码和测试 把设计和实现分成两步走

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

6、发时期最后一个阶段。测试是开发时期最后一个阶段。按照不同的层次,又可细分为单元测试按照不同的层次,又可细分为单元测试 、综合测试、确认测试和系统测试等步、综合测试、确认测试和系统测试等步 骤。测试是保证软件质量的重要手段。骤。测试是保证软件质量的重要手段。测试阶段的文档称为“测试报告”,包括测试计划、测试用例与测试结果等内容。151.2.3 1.2.3 运行时期运行时期运行时期是软件生存周期的最后一个时期。软件人员在这一时期的工作,主要是做好软件维护。161.3 1.3 软件开发模型软件开发模型1.3.1 传统的软件开发模型 瀑布模型 基于生存期的开发范型基于生存期的开发范型自顶向下,逐步细化

7、自顶向下,逐步细化每一步都要求给出相每一步都要求给出相应的技术文档应的技术文档17主要特点主要特点坚持坚持结构化结构化(将逻辑实现与物理实现分开)思想和强调思想和强调文档文档齐齐套,是瀑布开发模型的两条重套,是瀑布开发模型的两条重要准则。要准则。瀑布模型瀑布模型 Waterfall Model(1976)18 1.3.1 传统的软件开发模型快速原型模型需求分析需求分析原型开发原型开发最终系统设计最终系统设计原型评价原型评价最终系统实现最终系统实现用户用户反馈反馈19快速原型范型快速原型范型Rapid Prototyping Paradigm (1)建立原型建立原型 (2)实现最终软件实现最终软

8、件原型开发范型的最大原型开发范型的最大优点优点:用户的用户的早期介入早期介入201.3.2 1.3.2 面向对象开发模型面向对象开发模型面向对象思想的最重要特征,是在解题空间中引入了“对象”的概念,使之逼真地模拟问题空间中的客观实体,从而达到与人类的思维习惯相一致。21结构化技术结构化技术组件技术组件技术面向对象技术面向对象技术COM、EJB 2.1 结构化开发方法结构化开发方法2.2 面向对象开发方法面向对象开发方法22两种程序设计方法两种程序设计方法程序设计的两次飞跃结构化程序设计e程序=数据结构+算法面向对象程序设计e程序=对象+消息 23两类软件工程方法两类软件工程方法传统软件工程e软

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

10、述)),使文档规范化使文档规范化 基本手段基本手段:分解和抽象分解和抽象 分解分解:大问题分割成小问题大问题分割成小问题,分别解决分别解决 抽象抽象:把细节略去把细节略去,先考虑最本质属性先考虑最本质属性26SASA方法方法分析步骤:分析步骤:e建立建立当前系统的当前系统的具体模型具体模型e抽象抽象出当前系统的出当前系统的逻辑模型逻辑模型e建立建立目标系统的目标系统的逻辑模型逻辑模型e对目标系统做完整的描述。考虑人机界对目标系统做完整的描述。考虑人机界面和其它一些问题面和其它一些问题主要描述工具:主要描述工具:e 数据流图数据流图 表达需求表达需求 e 数据词典数据词典 记录数据的逻辑定义记录

11、数据的逻辑定义 27数据流图数据流图(DFD)(DFD)数据流图(数据流图(Data Flow DiagramData Flow Diagram)是描述系统是描述系统中数据流程的图形工具。它标识了一个系统中数据流程的图形工具。它标识了一个系统的的逻辑输入逻辑输入和和逻辑输出逻辑输出以及把逻辑输入转换以及把逻辑输入转换为逻辑输出所需要的为逻辑输出所需要的加工处理加工处理 帐卡帐卡存折存折取取 款款 信信 息息存折存折核查核查付款付款登录登录无余拒付无余拒付储户储户付款信息付款信息可行性可行性28数据流图数据流图(DFD)(DFD)数据流图以图形的方式表达了系统中的信息数据流图以图形的方式表达了系

12、统中的信息变换和传递的过程变换和传递的过程基本符号:基本符号:数据流数据流 加工加工 数据存储数据存储 数据源点或数据源点或 终点终点29付款信息付款信息取取 款款 信信 息息无余拒付无余拒付取款单取款单 存折存折取款过程的数据流图核查核查付款付款登录登录存折存折储户储户 帐卡帐卡30数据流图数据流图(DFD)(DFD)SA方法要求:先全局后局部、先整体后细方法要求:先全局后局部、先整体后细 节、先抽象后具体节、先抽象后具体 总体数据流图总体数据流图 局部数据流图局部数据流图逐步细化逐步细化31数据流图数据流图(DFD)(DFD)一个复杂的软件其数据流图通常分为顶层、中间层和底层e顶层:顶层:

13、是一个高度抽象的软件系统的逻是一个高度抽象的软件系统的逻辑模型辑模型 e中间层:中间层:它既是上一层的加工的分解结它既是上一层的加工的分解结果,又是下一层若干加工的抽象果,又是下一层若干加工的抽象e底层:底层:由基本加工构成。所谓基本加工由基本加工构成。所谓基本加工是指不能再进行分解的加工是指不能再进行分解的加工323334数据词典数据词典(DD)(DD)SASA方法方法使用使用数据词典数据词典(Data Dictionary)对数据流名、数据存储名、数据项名、基对数据流名、数据存储名、数据项名、基本加工名进行详细说明本加工名进行详细说明 数据流图中包含的所有元素定义数据流图中包含的所有元素定

14、义的集合构成了数据词典的集合构成了数据词典 DD是是SA方法的主要工具方法的主要工具35数据词典数据词典(DD)(DD)数据词典中条目类型数据词典中条目类型e数据流条目数据流条目常用符号常用符号=+|()e文件条目文件条目 列出文件记录的组成数据项组织方式列出文件记录的组成数据项组织方式e数据项条目数据项条目 数据单项定义,包括类型、取值范围数据单项定义,包括类型、取值范围e加工条目加工条目 加工的精确描述,小说明加工说明加工的精确描述,小说明加工说明362.1.2 2.1.2 结构化设计(结构化设计(SDSD)在软件需求分析阶段,已搞清楚了软件在软件需求分析阶段,已搞清楚了软件“做什做什么么

15、”的问题,需求通过规格说明书描述,这也的问题,需求通过规格说明书描述,这也是目标系统的逻辑模型。是目标系统的逻辑模型。进入了设计阶段,要把软件进入了设计阶段,要把软件“做什么做什么”的逻辑的逻辑模型变换为模型变换为“怎么做怎么做”的物理模型,设计的结的物理模型,设计的结果反映在果反映在“设计规格说明书设计规格说明书”文档中。文档中。描述了软件的总体的体系结构,称为软件总体描述了软件的总体的体系结构,称为软件总体设计或结构设计。对结构进一步细化,称为详设计或结构设计。对结构进一步细化,称为详细设计或结构设计。细设计或结构设计。37SD方法的基本思想根据根据SASA方法中的数据流图建立一个良好方法

16、中的数据流图建立一个良好的模块结构图的模块结构图运用模块化的设计原理控制系统的复杂运用模块化的设计原理控制系统的复杂性,即设计出模块相对独立的,模块结性,即设计出模块相对独立的,模块结构图深度、宽度都适当的,单入口单出构图深度、宽度都适当的,单入口单出口的,单一功能的模块结构的软件结构口的,单一功能的模块结构的软件结构图。图。评价模块结构图质量的标准:评价模块结构图质量的标准:模块之间模块之间的联系越松散越好,而模块内各成分之的联系越松散越好,而模块内各成分之间的联系越紧凑越好间的联系越紧凑越好38SDSD方法的设计原理方法的设计原理l模块化模块化 指解决一个复杂问题时自顶向下逐层把软件系统划

17、分成若干模块的过程。每个模块完成一个特定的子功能,所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。模块化是软件解决复杂问题所具备的手段,为了说明这一点,可将问题的复杂性和工作量的关系进行推理l抽象抽象l模块独立模块独立39 模块化(module)模块:模块:在程序中是数据说明、可执行语在程序中是数据说明、可执行语句等程序对象的集合,或者是单独命名句等程序对象的集合,或者是单独命名和编址的元素,如高级语言中的过程、和编址的元素,如高级语言中的过程、函数、子程序等等。在软件的体系结构函数、子程序等等。在软件的体系结构中,模块是可组合、分解和更换的单元中,模块是可组合、分解和更

18、换的单元。模块具有以下几种基本属性:。模块具有以下几种基本属性:接口:接口:指模块的输入与输出。指模块的输入与输出。功能:功能:指模块实现什么功能。指模块实现什么功能。逻辑:逻辑:描述内部如何实现要求的功能及描述内部如何实现要求的功能及所需的数据。所需的数据。40模块独立性(module independence)模块独立性:每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。模块独立性有两个定性的度量标准:内聚()和耦合()模块间耦合性越小越好模块内聚性越大越好41模块的设计准则模块的设计准则通过模块的分解和合并,提高模块独立性通过模块的分解和合并,提高模块独立性模块调

19、用个数最好不要超过模块调用个数最好不要超过5个个降低模块接口的复杂性降低模块接口的复杂性模块的作用域应该在控制域之内模块的作用域应该在控制域之内模块应该设计成单入口单出口模块应该设计成单入口单出口模块的大小要适中,一般在模块的大小要适中,一般在50条语句左右条语句左右422.1.3 2.1.3 详细设计和编码详细设计和编码三种基本控制结构顺序结构选择结构循环结构43详细设计的描述工具:程序流程图方框图(N-S图)问题分析图(PAD图)伪码(PDL语言)4445N-SN-S图也叫做盒图。4647过程设计语言过程设计语言(Process Design Language,PDL)也称程序描述语言(P

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

21、所用的语种,说明PDL表示的有关程序结构。49结构化编码方法结构化编码方法程序的正确性可读性、可理解性、可测试性、可维护性50面向对象开发方法面向对象开发方法 OOSD一、面向对象分析一、面向对象分析(OOA)二、面向对象设计二、面向对象设计(OOD)三、面向对象编程三、面向对象编程(OOP)O Object-bject-O Oriented riented D DesignesignO Object-bject-O Oriented riented P Programingrograming O Object-bject-O Oriented riented A Analysisnalysi

22、s 51面向对象的分析:面向对象的分析:需求分析:分析系统的功能、性能、约束。需求分析:分析系统的功能、性能、约束。领域分析:重点在于对问题域中的概念进行描述。领域分析:重点在于对问题域中的概念进行描述。面向对象的设计:面向对象的设计:重点在于职责分配和交互设重点在于职责分配和交互设计,定义那些最终用面向对象程序设计语言实计,定义那些最终用面向对象程序设计语言实现的逻辑软件组成部分类。现的逻辑软件组成部分类。面向对象面向对象的分析的分析(OOA)面向对象面向对象的设计的设计(OOD)面向对象面向对象的编程的编程(OOP)面向对象的编程:面向对象的编程:C+、JAVA。52第第7 7章章 软件测

23、试与质量保证软件测试与质量保证目标:目标:软件测试是为了发现软件中的错误而执行程序的过程。好的测试方案是尽可能地发现至今尚未发现的错误的测试方案。成功的测试则是发现出至今未发现的错误的测试。53软件测试的原则软件测试的原则54软件测试策略与技术软件测试策略与技术单元测试系统测试确认测试组装测试单元测试单元测试被测模块被测模块被测模块已确认的软件已测模块可交付的软件系统其它元素软件需求设计信息已集成的软件55软件测试策略软件测试策略单元测试:人工测试、上机测试组装测试:e渐增式组装测试:自底向上、自顶向下e非渐增式组装测试确认测试e有效性测试、软件配置复查、测试和测试、验收测试系统测试56 M1

24、 自自底向上测试底向上测试 M2 M5 M4 M3 M6 组装测试(组装测试(驱动模块驱动模块从属模块从属模块)57 D3 自自底向上测试底向上测试 D1 M5 D2 M3 M6 58自自底向上测试底向上测试 M2 M5 M4 M3 M6 D4 D5 59 M1 自自底向上测试底向上测试 M2 M5 M4 M3 M6 60 M1 自顶自顶向下测试向下测试 M2 M5 M4 M3 M6 组装测试(组装测试(主控模块主控模块调用模块调用模块桩模块桩模块)61 M1 自顶自顶向下测试向下测试 S1 S3 S2 62 M1 自顶自顶向下测试向下测试 M2 S4 M4 M3 S5 63 M1 自顶自顶向

25、下测试向下测试 M2 M5 M4 M3 M6 64常用的测试方法常用的测试方法白盒测试 (结构测试或逻辑功能测试)e将程序看作一个打开的盒子,根据程序内部的逻辑结构及有关的信息来设计或选择测试用例e覆盖程度由底到高:语句覆盖、判定覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖黑盒测试 (功能测试或数据驱动测试)e把程序看作一个不能打开的盒子,根据程序的需求规格说明来设计测试用例e方法:等价分类法、边缘分析法、因果图法、错误推断法65 软件人员使用白盒测试方法,主要想对程序模块进行如下的检查:e 对程序模块的至少测试一次;e 对,;e 在循环的边界和运行界限内执行循环体;e 测试,等。66语句覆盖

26、:针对语句执行,使得每一条语句至少执行一次。判定覆盖:着眼于每个分支的执行,使得每个分支至少执行一次。条件覆盖:每个判定中每个条件的可能取值都至少执行一次。判定-条件覆盖:兼顾以上两条。条件组合覆盖:每个判定的所有可能的条件取值组合至少出现一次。67以上各种覆盖准则的侧重点不同,覆盖程度也不同,但它们具有共同点:任何一种覆盖都不能做到完全测试。68黑盒测试方法是在程序接口上进行黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误测试,主要是为了发现以下错误:e?e 在接口上,?e(例如数据文件)?e?e?697.3 软件的质量保证软件的质量保证软件质量保证是阶段评审、开发方法、配套管理与

27、程序测试的综合运用。e评审与测试e程序正确性证明e软件配置管理e软件质量保证计划707.3.1软件的质量标准软件的质量标准 软件质量的标准:(1)功能性(能够满足软件需求说明(SRS)中各项功能需求)(2)可靠性(3)易用性(4)效率(5)可维护性(6)可移植性717.3.2 质量保证的活动内容质量保证的活动内容 质量保证是复审、开发方法、配置控制程序测试和测试的综合应用的综合应用。质量保证的活动内容质量保证的活动内容(1)软件测试(2)软件配置(3)方法、设计、编码(4)复审、计划与开发72各项活动内容,都须写入软件项目质 量保证计划,并由质量保证小组监督实施。质量保证既是技术活动,也是管理活动.73

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

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(大学软件开发与应用课程PPt-第6-7章软件开发new课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|