




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3.1软件开发过程3.1.1软件概念在现代软件工程中,软件概念不仅指程序本身,还包括标准化和完整的文档资料。其中,文档是软件的“质量”部分,而程序是文档编码的表达。3.1.2软件软件生产的特点是逻辑思维,注重开发而不是制造,因此人类智能的有效展示起着决定性的作用。这与开发人员的个人技术水平和工作风格有很大关系。www . ZG-www . SKF-www . NSK-www . fag-www . ntn-www . good=www . Xu chi-http:/www . ZG-http:/www . SKF-http:/www . SKF-http:/www . NSK-http:/ww
2、w . fag-http:/Www . ntn-3http:/www . Xu chi-3http:/www . ort-3 . 1 . 3软件的一般步骤规划阶段:该阶段的任务是进行问题定义、可行性研究和需求分析。开发阶段:这个阶段的任务是设计、编码和测试。维护阶段:维护阶段的任务是通过各种必要的维护活动,通常是通过四种类型的维护活动,即纠正性维护,使系统永久满足用户的需求,这不仅诊断和改进了使用过程中发现的软件错误;适应性维护,不仅修改软件以适应不断变化的环境;完善维护,根据用户要求改进或扩展软件,使其更加完善;预防性维护是指修改软件,为将来的维护活动做准备。www . ZG-www . S
3、KF-www . NSK-www . fag-www . ntn-www . good=www . Xu chi-http:/www . ZG-http:/www . SKF-http:/www . NSK-http:/www . fag-http:/WwW . ntn-http:/www . Xu chi-http:/www . ort-3 . 1 . 4常见误解只要对总体目标有一个大致的描述,就可以开始编写代码,其他细节可以补充。给定程序并运行任务,任务完成。该软件灵活,易于修改。没有必要审查。进展被推迟了,所以可以增加更多的人。软件在交付使用前一直有效,见www . ZG-WwW . S
4、KF-WwW . SKF-WwW . NSK-WwW . fag-WwW . ntn-WwW . good=www . Xu chi-http:/WwW . ZG-http:/WwW . SKF-http:/WwW . NSK-http:/WwW . fag-http:/WwW . ntn-3http:/WwW . Xu chi-3http:/WwW。(2)可靠性应达到预定水平;(3)用户界面友好;(4)在规定的条件下,执行时间应短;(5)资源消耗少;(6)良好的可维护性;(7)便携性高;www . ZG-www . SKF-www . SKF-www . NSK-www . fag-www
5、. ntn-www . good=www . Xun chi-http:/www . SKF-http:/www . SKF-http:/www . NSK-http:/www . fag-http:/Www . ntn-http:/www . Xun chi-3http:/www . ort-3http:/,结构化程序设计原理(1)大(2)每个基本程序单元都具有“独立程序”的特征,即单一进入和单一退出;强调它由三个基本结构(顺序、选择和循环)组成;严格限制goto语句的使用;它不包含无限循环,即程序执行时间是有限的;程序中的所有语句都应该有机会执行;书写格式清晰。根据上述原则进行设计被称为结
6、构化程序设计。结构化编程的优势在于它可以使结构清晰,风格固定,易于理解、交流和维护。缺点是设计程序的效率降低了。3.2.2模块化编程自上而下的逐步细化模块化编程的优点包括:(1)便于将复杂的问题转化为单个的小问题。(2)便于从抽象到具体的编程。(3)便于测试和维护。当一个程序按照模块化的原则设计时,一个模块中包含的信息(过程和数据)不需要被其他模块知道或访问,以反映模块的独立性。(4)易于理解分析程序。在分析模块化程序时,由于每个模块功能明确,相互独立,可以采用自顶向下的分析方法。首先,确定每个模块的功能,然后了解整个程序。自顶向下设计的一个重要特征是,对于某一层,下一层的设计细节是隐藏的,并
7、且只能定义那些必须通过接口的数据和控件。如果数据结构完全包含在低级模块中。在到达这一层之前,没有必要描述设计。但是,当数据必须由某一层中的几个模块共享时,必须在进入该层之前选择数据结构。逐步细化的特点是,在考虑问题时,先整体后局部,先抽象后具体。它要求从问题的全局出发,首先定义“做什么”,然后进一步将其分解为几个子任务进行划分和规则。逐步完善,每一步都更接近程序的最终形式,直到你得到一个可以在你使用的计算机系统上执行的程序。可以看出,程序的结构设计通常是通过自顶向下的细化和模块化设计相结合来实现的。程序中有两个常见的错误:一个是语法错误,另一个是逻辑错误。语法错误通常在编译源程序时被编译器及时
8、发现,所以消除它们相对容易。程序的逻辑错误通常是潜在的。例如,在程序中使用零作为除数将导致程序执行时出现异常,编译器可能不会检测到此错误。这要求程序员根据设计文档进行归档。反复不懈地阅读程序并仔细设计测试用例,努力及时发现程序中的错误。测试的目的是发现程序中的错误,程序的目标是开发完全满足用户需求的高质量程序。因此,当发现错误时,必须纠正错误,这是调试的目的。调试是测试阶段最困难的工作。程序测试的过程涵盖了程序生命周期的整个过程。包括需求定义阶段的需求测试、编码阶段的单元测试和集成测试,以及随后的确认测试和系统测试,以验证程序是否合格并能交付给用户。3.3.1程序测试原则在测试阶段,应遵守以下
9、测试原则。设计测试用例设计测试用例时,应该给出预期的测试结果。在设计非法输入的测试用例时,程序不仅可以在合法输入时正确运行,还可以在有非法输入(有意和无意)时拒绝接受这些非法输入并给出提示信息。回归测试可能会给程序的任何修改带来新的错误。用以前的测试用例进行回归测试有助于发现通过修改程序引入的新错误。关注测试容易出错的程序一些测试的统计结果表明,在一个程序中发现的错误越多,出错的概率就越大。为了提高测试效率,深入的测试,有必要把重点放在那些容易出错的程序段上,也就是很多错误。妥善保存测试计划、测试用例、错误统计和最终分析报告,为维护提供便利。一个好的测试用例是能够发现到目前为止还没有发现的错误
10、;一个成功的测试是发现到目前为止还没有发现的错误的测试。程序测试的常用方法从被测程序是否需要执行的角度来看,程序测试的方法和技术分为静态测试和动态测试;同时,按功能将它们分为白盒测试和黑盒测试。静态测试:静态测试包括代码检查、静态结构分析、代码质量测量等。动态测试:动态测试是基于计算机的测试,它是执行程序以发现错误的过程。白盒测试方法:也称为结构测试。它把程序看作一个透明的盒子,也就是说,它根据程序的内部结构和处理过程来测试程序的所有逻辑路径。黑盒测试方法黑盒测试方法简称黑盒测试。它关注程序的外部特征,而不考虑程序的内部逻辑结构。黑盒法是测试程序的接口,看它是否能满足功能要求,输入是否能正确接
11、收,输出的结果是否正确,外部信息(如数据文件)的完整性是否能保持。黑盒法主要包括等价类划分法、边界值分析法、误差推理法和因果图法。3.3.3程序测试过程程序测试是保证程序质量的重要手段。程序测试过程分为四个步骤,即单元测试、集成测试、验收测试和系统测试。单元测试单元测试是测试程序设计的最小单元模块(程序单元)的正确性。单元测试主要针对模块的以下五个基本特征:(1)模块接口测试测试通过模块的数据流;数据结构测试;重要的执行路径检查;错误处理测试;影响上述点和其他相关点的边界条件测试。单元测试方法可以采用静态分析和动态测试。这两种测试可以互补。测试模块时,需要设计一个驱动模块和几个打桩模块。驱动模
12、块的功能是模拟被测模块的调用模块。桩模块的功能是模拟被测模块的下属模块。集成测试集成测试是在组装程序的过程中对组装好的模块进行测试。集成测试包括子系统测试和系统测试。集成测试包括程序单元的接口测试、全局数据结构测试、边界条件和非法输入测试等。验证测试和系统测试验证测试验证测试的任务是验证程序的功能和性能。系统测试系统测试是将经过验证的程序作为整个计算机系统的一个要素,与计算机硬件、外设、支持程序、数据和人员等其他系统要素相结合,在实际运行(使用)环境中对计算机系统进行一系列集成测试和验证测试。3.3.4程序调试程序调试(通常称为调试)程序调试活动由两部分组成:一是根据错误的迹象确定程序中错误的
13、确切性质、原因和位置。第二是修改程序以消除这个错误。程序调试的基本步骤:(1)错误定位;(2)修改设计和代码;(3)进行回归检验;程序调试方法程序调试可分为静态调试和动态调试。静态调试主要指通过人的思维来分析源代码和排除故障;动态调试是静态调试的辅助。主要的调试方法有:(1)强制调试;(2)回溯;(3)原因排除,通过演绎归纳和二分法实现。演绎就是列出所有可能的原因和假设,然后一个接一个地消除一个不可能的原因,直到最后一个真正的原因消失。归纳法是一种系统的思维方法,从特殊事物中推断出一般事物。它的基本思想是从一些线索入手,通过分析找出潜在的原因,找出错误。二分法的基本思想是,如果你知道程序中几个
14、关键点上每个变量的正确值,你可以使用固定值语句(如赋值语句、输入语句等)。)在程序的某一点附近给这些变量赋值,然后运行程序并检查程序的输出。如果输出结果正确,错误原因在程序的前半部分;相反,错误的原因在于程序的后半部分。对产生错误的零件重复此方法,直到错误范围缩小到易于诊断的程度。3.4算法3.4.1算法的概念用来解决问题的方法和步骤称为算法。计算机的算法是实现某项任务的指令集,这是一个有限的计算过程。它指定如何正确处理程序中的数据。著名科学家沃思提出了一个著名的公式来表达编程的本质:程序=算法数据结构。显然,在编程中,算法是灵魂,数据结构是处理对象,算法解决了“做什么”和“怎么做”的问题。程
15、序中的操作语句是算法的实现。一些算法可能只需要几个步骤,而其他的需要更多的步骤。一般来说,我们应该选择一个容易理解、简单并且步骤少的算法。因此,在设计算法时,不仅要保证算法的正确性,还要考虑算法的质量。选择合适的算法。3.4.2算法1的特征。有界性2。确定性3。有效性4。零个或多个输入是指在执行算法时需要从外部获得的信息。一个算法可以没有输入,也可以有一个或多个输入,这取决于问题本身。5.一个或多个输出将算法执行的结果发送到输出设备。没有输出的算法是没有意义的。以上五个方面是一个正确的算法应该具备的特征。同时,算法应具有直观、清晰、易于理解的表示,便于维护、修改和交流。3.4.3算法的描述方法
16、算法可以用许多不同的方式来描述。常见的有自然语言表示法、流程图、神经网络图、伪代码和程序框图。使用自然语言来表达算法。通常,自然语言仅用于描述简单的问题。用流程图来表示算法。传统流程图是算法的图形化描述工具。它用几何图形来表示各种操作,直观易懂。这是描述算法最常用的方法。美国国家标准协会(ansi)规定了一些常用的流程图符号。1966年,博哈尔和贾科平提出了以下三种基本结构,它们通常被用作表示一个好算法的基本单位。序列结构:选择结构,也叫分支结构;循环结构,也称为重复结构。它可以分为两种类型:一是循环结构;直到类型(直到类型)循环结构,序列结构,选择结构,直到类型(直到类型)循环结构,算法是由氮硫图表示。在传统流程图中,流程线的随机性使得流程图不规则,大大降低了算法的可读性。1973年,美国学者纳西和施耐德曼提出了一种新的流程图N-S图。所有的算法都写在一个矩形框中,这个矩形框也可以包含其他的附属框。这个流程图非常适合结构化编程。顺序执行,条件执行,当类型循环时,直到类型循环,例:连续输入几个正整数,要求其中最
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 饮品店AI应用行业深度调研及发展项目商业计划书
- 企业节庆礼品方案创新创业项目商业计划书
- 乡村香草园行业跨境出海项目商业计划书
- 贸易培训行业深度调研及发展项目商业计划书
- 人工智能课程行业深度调研及发展项目商业计划书
- 品牌故事动画短片制作行业跨境出海项目商业计划书
- 大学新生开学典礼教师代表鼓舞发言稿范文
- 2025年高考语文阅卷感受和备考启示
- 大班健康禁烟小战士课件
- 大班健康猜一猜课件
- 提高情商的培训课件
- JJG 597-2025交流电能表检定装置检定规程
- 2025年广州市中考物理试题(含答案)
- 2024年漳州市常山开发区招聘笔试真题
- 2024年09月年中国农业发展银行江苏省分行秋季校园招聘(86人)笔试历年参考题库附带答案详解
- 2025年江苏省扬州市中考作文4篇范文:“尊重”“诚实”“创造性”“美好生活”
- 2025年辅警招聘考试试题库含完整答案
- 2025年吉林省中考语文试卷及答案
- 2024-2025学年度天津铁道职业技术学院单招《语文》真题附答案详解(突破训练)
- 快递行业市场发展分析及投资前景研究报告2025-2028版
- 礼仪培训ptt课件
评论
0/150
提交评论