




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 程序设计&软件工程基础一、程序序设计的的概念程序设计计:利用计计算机解解决具体体问题的的全过程程。程序设计计的基本本过程:分析所所求解的的问题抽象数数学模型型设计合合适的算算法和数数据结构构编写程程序调试运运行程序设计计基础二、程序序设计方方法1.结构化程程序设计计(Structured Programming)为了完成成一些大大规模、高复杂杂度的程程序设计计任务,SP(和软件件工程)思想被被提倡。强调数数据类型型、程序序结构,强调可靠靠性、可可维护性性甚于程程序的效效率。其主要思思想如下下:(1)注意程程序的可可读性(2)采用自自顶向下下、逐步步求精的的设计方方法。(3)程序语语言只包包括
2、3种结构(单入口,单出口口)(4)模块化化程序设计计基础基本结构构:顺序结构构选择结构构循环结构构程序设计计基础程序模块1程序模块2程序模块2条件程序模块1成立不成立条件程序模块成立不成立2.面向对象象程序设设计(Object-Oriented Programming)20世纪80年代OOP由理论转转向实践践,90年代开始始盛行。(1)软件规规模越来来越大,(美国国航天飞飞机系统统4000万条代码),人人们不得得不寻求求更高效效、更可可靠的开开发技术术。 (2)OOP抓住软件件开发的的本质,OOP开发的软软件易重重用、易易修改、易测测试、易易扩充。程序设计计基础对象:用来描描述客观观事物的的实
3、体。每个对对象有各各自的内内部属性性和操作作方法。程序设计计基础整个程序序是由一一系列相相互作用用的对象象构成的的,对象象之间的的交互通通过发送送消息来来实现。属性:频道颜色音量方法:调节频道调节颜色调节音量电视机电视机对象类:具有相相同的属属性和操操作方法法,并遵遵守相同同规则的对对象的集集合。类是对象象集合的的抽象,规定了了这些对对象的公公共属性性(即数据结结构)和方法(操作数据据的函数数)。对象是是类的一一个实例例。程序设计计基础OOP特点:封装、继承、多态性性程序设计计基础三、程序序设计语语言文章汉语、英语字、词、语法结构写文章程序计算机语言数据表示、表达式、语句结构编程序计算机语语言
4、:人与计计算机通通讯的语语言程序:利用计计算机语语言编写写的能够够完成一一定功能能的一组代码。程序设计计语言计算机机语言1.语言的分分类应用范围通用语言、专用语言系统程序设计语言、科学计算语言事务处理语言、实时控制语言程序设计方法结构化语言模块化语言面向对象语言与硬件的联系程度机器语言汇编语言高级语言与计算机硬件基本无关依赖于计算机硬件(低级语言)程序设计计基础机器语言言从本质上上说,计计算机只只能识别别0和1两个数字字,因此此,计算算机能够够直接识识别的指指令是由由一连串串的0和1组合起来来的二进进制编码码。机器指令令操作作码操操作数机器语言言:指计算算机能够够直接识识别的指指令的集集合。即
5、即以二进进制代码码表示的的机器指指令集合合,它是是计算机机能够直直接识别别和执行行的语言言。程序设计计基础优点:占用内内存少,执行速速度快;缺点:面向机机器,通通用性差差,不易易阅读和和记忆,编程工作量大大,难以以维护。程序设计计基础例用Intel8086指令系统统编写机机器语言言程序,完成“9+8”优点:比机器器语言程程序容易易阅读和和修改缺点:面向机机器,通通用性差差。程序设计计基础汇编语言言汇编语言言:用符号号代替机机器指令令所产生生的语言言。例如如,8086汇编语言言 实现现 “9+8”源程序:用汇编编语言编编写的程程序。汇编程序序:负责翻翻译的软软件。主要作用用源程程序转换换成用二二
6、进制代代码表示示的目标标程序。连接程序序:将目标标程序与与库文件件或其他他目标程程序连接接起来形成可执执行程序序。程序设计计基础汇编语言源程序目标程序可执行程序汇编程序连接程序高级语言言高级语言言:用接近近自然语语言和数数学语言言的语法法、符号号描述基本操操作的程程序设计计语言FORTRAN、Pascal、C、C+、Delphi、Java、C#例如用C+实现“9+8”程序设计计基础优点:符合人人类习惯惯,简单单易学通用性强强,便于于维护源程序:用高级级语言编编写的程程序。翻译程序序:将源程程序翻译译成用二二进制代代码表示示的目标程序序。翻译程序序的工作作方式:解释方方式:边边解释边边执行编译方
7、方式:编编译程序序、运行行程序程序设计计基础高级语言源程序执行结果解释程序解释方式程序设计计基础编译方式可执行程序高级语言源程序编译程序目标程序连接程序2.程序设计计语言的的选择选择编程程语言涉涉及很多多因素:人的因因素:编编程小组组精通这这门语言言吗?任务需需要:选选择的语语言能否否实现任任务的全全部功能?能跨跨平台吗吗?有数数据库接接口功能能吗?能能直接控制声声卡等硬硬件吗?客户指指定。例例如要通通过串行行口控制制一个外外部设备,C+汇编语言言是最明明智的选选择。了解一些些流行的的语言,对于做做出合理理选择会会有帮助助。程序设计计基础一、软件件的定义义软件:计算机系系统中的的程序及及其文档
8、档。程序:计算任务务的处理理对象和和处理规规则的描描述。文档:为了便于于了解程程序所需需的阐明明性资料料。程序必须须装入机机器内部部才能工工作文档供人人阅读,不一定定装入机机器软件工程程基础18IEEE对软件的的定义(1983)软件是计计算机程程序、方方法、规规则、相相关的文文档资料料以及在在计算机机上运行行的程序序所必需需的数据据的集合合。程序:是计算算机需要要遵照执执行的一一系列指指令。它它作为一一种具有逻辑结结构的信信息,精精确而完完整地描描述计算算任务中中的处理对象象和处理理规则。方法、规规则:通常是是在文档档中说明明并在程程序中实实现的。文档:开发、使用和和维护程程序所需需要的图图文
9、资料料。数据:向一个个程序提提供的输输入。二、软件件的发展展过程软件的发发展受到到应用和和硬件发发展的推推动和制制约,其其发展过过程大致致可分为为三个阶阶段:第一阶段1946-1958第二阶段1956-1968第三阶段1968以后从第一个程序出现到实用的高级程序设计语言出现,这期间重点考虑程序本身,尚未出现“软件”一词。实用的高级程序设计语言出现到软件工程出现,这期间出现软件一词,融程序及其有关的文档于一体。“软件危机”软件工程出现现在,1968年大西洋公约学术会议提出“软件工程”的概念。1.软件危机机概念观点1软件产品品的生产产总是超超出预算算,落后于计划进进度,而而且产品品质量不不可靠。观
10、点2在软件的的开发和和维护过过程中所所遇到的的一系列严严重问题题。软件的生生产过程程不像硬硬件那样样规范,受人的的因素和和外界影影响很大大,因此此在软件件生产的的各阶段段都会引引入不同同程度的的错误,致使成成本上升升,甚至至导致软软件失败败。三、软件件危机与与软件工工程2.软件危机机的表现现软件开发发和维护护费用急急剧上升升不重视文文档资料料产品质量量不可靠靠软件产品品成本高高于硬件件产品3.软件开发发中的问问题软件生产产技术进进展缓慢慢软件成本本和质量量难以控控制对软件开开发的错错误认识识难以准确确、全面面把握用用户需求求不重视阶阶段审查查和复审审软件复杂杂且规模模庞大软件维护护费用上上升4
11、.软件工程程概念软件工程程(SoftwareEngineering,SE)一门研究究用工程程化方法法构建和和维护有有效的、实用的的和高质量软件件的学科科 。软件工程程在软件开开发与维维护过程程中采用用工程的的原理、方法、技术并使用正正确的管管理方法法来指导导软件生生产的全全过程。主要内容容软件开发发方法软件开发发过程软件开发发工具软件管理理5.软件工程程的基本本准则B.W.Boehm综合各方方意见,于1983年提出了了软件工工程的基基本准则则1用分阶段段的生命命周期计计划严格格管理据统计,在不成成功的软软件项目目中有50%左左右是由由于计划划不周造造成的。应该把把软件生生命周期期划分为为若干阶
12、阶段,并并制定出出相应的的切实可可行的计计划,严严格按照照计划对对开发和和维护进进行管理理。2坚持进行行阶段评评审设计的错错误占软软件错误误的63%,编编码错误误只占37%。而且在在后期纠纠正错误误的代价价非常高高。因此此,必须须严格坚坚持阶段段评审,及早发发现和纠纠正错误误3实行严格格的产品品质量控控制在现实中中由于外外部原因因要求对对需求等等进行修修改是难难免的。但必须须有严格格的管理理制度和和措施。4采用现代代程序设设计技术术和软件件工程技技术如结构化化程序分分析(Structured Analysis)和结结构化设设计(Structured Design)等等。5结果应能能清楚地地审查
13、由于软件件是一种种看不见见摸不着着的逻辑辑产品,对它的的检验和和审查很很困难。因此,应提供供可视化化的检验验标准和和方法。6开发人员员应少而而精软件开发发小组的的人员应应该是素素质高,人员不不宜过多多。人员员素质低低和人员员过多,都会导导致软件件的错误误率高,且开发发效率下下降,成成本增加加。7承认不断断改进软软件工程程的必要要性软件工程程是一门门不断迅迅速发展展的学科科,必须须学习和和跟踪先先进的技技术和方方法,也也要不断断总结经经验、改改进方法法,要不不断进行行技术创创新。四、软件件生命周周期软件生命命周期是是从时间的角度出出发,从从软件目目标的提提出、定定义、开开发、维维护,直直到最终终
14、被丢弃弃的整个个过程。计划时期期开发发时期运行时时期1.计划时期期问题的定定义:提出软软件项目目的目标标和规模模可行性研研究:对项目目进行可可行性调调研和论论证,确确定项目目是否能能够或者值得开开发2.开发时期期开发时期期要具体体分析、设计和和实现计计划时期期定义的的软件。需求分析析:做什么么概要设计计:建立目目标系统统的总体体结构详细设计计:怎样做做编码码:选择程程序设计计语言进进行描述述。测试试:单元测测试、综综合测试试、确认认测试和和系统测测试或者者验收测测试。3.运行时期期交付使用用维护护工作维护的主主要任务务:通过各种种必要的的维护活活动延长长系统的的生命周周期。软件开发发的原则则与
15、方法法结构化软软件开发发的原则则结构化:用一组组规范的的步骤、准则和和工具来来进行工工作最成熟、最广泛泛的方法法(1)用户参参与(2)先逻辑辑,后物物理(3)自顶向向下逐逐步求精精 功能能分解与与抽象(4)工作成成果描述述标准化化软件开发发的方法法(1)系统流流程图(2)结构分分析法(3)结构化化设计法法(4)数据结结构法(5)层次输输入处理输出方法法(HIPO法)一、问题题定义问题是指指用户的的基本要要求,就就是确切切地定义义用户要要求解决决的问题题,即确定问题题的性质质、工程程的目标标和规模模。问题定义义的目的的是要在在短时间间内,对对用户的的要求有有一个比比较准确确的估计计,对要要实现的
16、的系统规规模做到到心中有有数。但但仅有这这些还不不够,还还要搞清清用户不不打算干干什么,在这个个系统中中哪些内内容不用用实现。工作的宗宗旨是搞搞清要做做什么并并划清要要实现的的系统的的范围边边界。在问题定定义阶段段,分析析员应尽尽可能站站在较高高的角度度去抽象象、概括括所要做做的事情情。分析员对对问题有有了明确确认识之之后,应应该把自自己的认认识写成成书面报报告,提提交给用用户和使使用部门门的负责责人审查查,以检检验分析析员对所所要解决决的问题题的理解解是否正正确。因因为分析析员对问问题的理理解为今今后开发发工作确确定了方方向。分分析员对对问题理理解正确确与否,关系到到系统成成败。问题定义义(
17、续)在问题定定义阶段段,分析析员应该该对工程程成本做做出粗略略的预算算,并对对下阶段段可行性性研究所所需要时时间和成成本做出出较精确确的估计计。对问题定定义的书书面报告告应该尽尽可能清清楚简洁洁,最好好写在一一页内。这份报报告通常常应包括括工程项项目的名名字,对对问题概概括定义义、项目目的目标标,项目目的规模模,对可可行性研研究的具具体建议议(既需要用用的时间间和成本本)等等。一旦分析析员和用用户及使使用部门门的负责责人对所所要解决决的问题题,取得得完全一一致的看看法且在在报告书书上签了了字,问问题定义义阶段工工作就宣宣告完成成,可行行性研究究就可以以开始。二、可行行性研究究可行性研研究就是是
18、分析员员站在较较高的角角度去调调查现行行系统及及用户提提出的目目标,并并寻找是是否有一一种手段段能够在在现有条条件下实实际地达达到项目目目标。同时向向用户指指出该系系统实现现的意义义,使用用户去权权衡花费费这样的的代价去去实现这这样的系系统是否否值得。可行性研研究的目目的就是是用最小小的代价价在尽可可能短的的时间内内,确定定问题是是否能够够解决,从而确确定问题题是否值值得去解解。如何才能能达到这这个目的的呢?进进行客观观分析,通过对对几种可可能解法法,分析析其利弊弊,才能能判断原原定系统统的目标标和规模模是否现现实,系系统带来来的效益益是否大大到值得得投资开开发这个个系统。因此,可行性性研究实
19、实质上是是进行一一个大大大压缩简简化了的的软件分分析和设设计过程程,也就就是在较较高层上上,以较较抽象的的方式进进行软件件分析和和设计的的过程。可行性研研究应在在以下三三方面进进行:技术可可行性;经济济可行性性;操操作可行行性。可行性研研究(续续)1.技术可行行性对技术可可行性研研究,首首先应从从对现行行系统进进行调查查入手。因为现现行系统统是信息息的重要要来源。新的目目标系统统必须能能完成现现行系统统的基本本功能;另一方方面,新新系统必必须能解解决旧系系统中存存在的问问题。所所以,应应先对现现行系统统的组成成部分、功能和和存在问问题进行行调查研研究。但但这种调调查研究究不可能能做得很很细,对
20、对一些内内容细节节必须先先暂时忽忽略,抓抓住主要要的问题题。此时时,分析员应应把调查查到的现现行系统统的情况况画成高高层数据据流程图图。其次,导出新系系统的高高层逻辑辑模型(数据流程程图)。新系统统的高层层的逻辑辑模型建建立在现现行系统统的高层层数据流流程图的的基础上上。因为为通过前前一步的的工作,分析员员对目标标系统(新系统)应该具的的基本功功能和所所受的约约束,已已有一定定的了解解,使用用数据流流程图描描绘数据据在系统统中流动动和处理理的情况况,从而而概括地地表达出出对新系系统的设设想。用用数据流流程图和和数据字字典来定定义新系系统的高高层逻辑辑模型。可行性研研究(续续)其三,重重新定义义
21、问题。新系统统的逻辑辑模型实实质上表表达了分分析员对对新系统统必须做做什么的的看法。此时,分析员员应该和和用户一一起复查查问题定定义、工工程规模模和目标标。这次次复查应应该把数数据流程程图和数数据字典典作讨论论的基础础。如果果分析员员对问题题有误解解或者用用户曾经经遗漏了了某些要要求,那那么现在在是发现现和改正正这些错错误的时时候了。其四,导导出供选选择的解解法。分分析员应应从他所所建议的的系统逻逻辑模型型出发,推导出出若干个个较高层层次的解解决办法法,供比比较和选选择。最最简单的的途径,是从技技术角度度出发,考虑解解决问题题的不同同方案。这些不不同方案案可以在在数据流流程图上上划分不不同的自
22、自动化边边界而得得到。所所以分析析员在确确定了几几组不同同的自动动化边界界之后,再针对对每组边边界,考考虑如何何实现所所要求的的系统。当从技术术角度提提出了一一些系统统模型之之后,应应根据技技术可行行性的考考虑,初初步排除除一些不不现实的的系统。把技术术上行不不通的解解法(方案)去掉之后后,就剩剩下了一一组技术术上可行行的方案案。可行性研研究(续续)一般来说说,技术术可行性性还可以以从硬件件(包括外围围设备)的性能要要求、软软件的性性能要求求(包括操作作系统、软件包包、数据据库管理理系统、各种软软件工具具)能源及环环境条件件以及软软件系统统所采用用的技术术是否先先进,实实现的可可能性如如何,实
23、实现软件件系统的的人员素素质是否否具备等等方面进进行考虑虑。2.经济可行行性研究经济济可行性性,不仅仅仅是了了解为完完成用户户提出的的要求是否有足足够的资资金支持持(这是目前前很多分分析员重重点要做做的事情情),而更主要要是把成成本与获获利分析析清楚。也就是是对经济济合理性性进行评评价,即即带来的的经济效效益是否否超过其其开发和和维护所所需要的的费用。这工作作包括估估计费用用和估计计效益两两个方面面。可行性研研究(续续)估计费用用。主要要考虑以以下几部部分:设设备费用用,包括括计算机机硬件和和软件的的费用;人力费费用,包包括开发发人员和和维护人人员的工工资;材材料费用用;管理理费用以以及维护护
24、费用等等。估计效益益。可以以从以下下几个方方面考虑虑:提供供了哪些些以前提提供不了了的信息息,提供供信息的的速度提提高了多多少?质质量有什什么提高高?对使使用者查查询和使使用信息息的方便便程度有有什么提提高,节节省多少少人力?对组织织的领导导人和管管理人员员正确做做出决策策提供了了哪帮助助?有时不能能直接用用金钱来来衡量效效益,如如一个邮邮购单位位,由于于能够及及时、准准确地处处理订货货,缩短短了顾客客收到货货物的时时间,从从而在竞竞争中得得到了更更多的顾顾客。这这一类的的收益就就不容易易用具体体金钱来来衡量,只能由由管理人人员根据据经验来来做出大大约的估估计。在估计效效益时,要谨慎慎把各种种
25、可能影影响效益益发挥的的各种因因素考虑虑在内,打上折折扣。可行性研研究(续续)3.操作和维维护可行行性人员操作作和维护护可行性性的研究究是了解解当用户户所要求求的软件件系统建建立起来来之后,用户户对它的的操作是是否方便便?管理理和维护护是否容容易?如如果对于于一个软软件系统统的操作作比原有有的手工工系统还还麻烦,那么它它是不会会受欢迎迎的。另另一方面面,如果果管理和和维护这这个软件件系统的的人员比比原来的的手工系系统还多多,素质质要求还还高,那那么这个个系统对对用户来来说负担担太重了了。从上面的的讨论中中不难看看出,可可行性研研究的出出发点应应该是从从当前的的物理系系统到新新的物理理系统的的转
26、换,它是整整个可行行性研究究的基础础,实际际上也是是整个系系统开发发过程的的缩影。因为整整个系统统实现过过程也就就是把当当前的手手工系统统转化为为可用计计算机实实现的新新系统的的一个转转换过程程,只不不过这工工作比在在可行性性研究阶阶段更细细致,更更具体罢罢了。上述从三三个方面面分别开开展的,而实际际上它们们之间有有着密切切的联系系,因此此还必须须对它们们综合考考虑,然然后向用用户推荐荐方案供供其选择择。可行性研研究(续续)当用户选选定方案案之后,分析员员应对在在问题定定义阶段段所规定定的实现现目标进进行修改改。因为为,这时时对系统统有了更更深入的的了解,原来的的问题定定义可能能有的不不能实现
27、现,还有有些需要要加上去去,也就就是说原原有的问问题边界界不够准准确,需需要纠正正,以便便今后有有一个非非常明确确的工作作目标。这是一一步极有有实质意意义的工工作,它它使分析析员和用用户最后后明确了了要解决决的问题题的边界界以及它它的实现现方案。一般来来说,可可行性研研究的结结果可导导致以下下两种情情况:(1)可行()不可行可行性研研究结束束后,要要写出可可行性研研究报告告,提交交有关专专家论证证和上级级主管部部门批准准。可行行性研究究报告作作为所有有软件文文件资料料的基础础材料,它的格格式可以以很不相相同,但但大体的的内容提提纲是一一致的。需求分析析的定义义软件需求求分析是是在可行行性研究究
28、基础上上进行的的更细致致的分析析工作。也就是是在对软软件计划划阶段确确定的工工作范围围内进一一步对目目标对象象和环境境作细致致、深入入的调查查分析。需求分分析过程程实际上上是一个个调查研研究、分分析综合合的过程程,是一一个抽象象思维、逻辑推推理的过过程。通通过调查查研究和和分析,充分了了解用户户对软件件系统的的要求。在此基基础上,把用户户要求表表达出来来,解决决软件系系统“做做什么”的问题题。也就就是建立立起系统统的逻辑模型型,把软件件功能和和性能的的总体概概念描述述成具体体的软件规格格说明书书。需求分析析的目标标(1.理清数据据流或数数据结构构;2.通过标识识接口细细节,深深入描述述功能,确
29、定设设计约束束和软件件有效性性要求;3.构造一个个完全、精致的的目标系系统逻辑辑模型。)需求分析析的任务务(认清问问题、分分析与综综合、逻逻辑模型型导出与与复审)结构化分分析方法法三、需求求分析结构化分分析方法法结构化分分析方法法的策略略基本的系系统模型型结构化分分析方法法策略分分析.输入1.软件系统输出1输出2输出3输入.x1231.12.23.33.13.23.43.5顶层0层1层3.3逐层分解方法示意图业务流程程图结构化分分析方法法(续)数据流图图数据流图图的定义义数据流图图的组成成要素:源点、终点、数据流流、数据据文件、数据变变换数据变换换的两种种类型:对数据据结构的的变换,如对数数据
30、的格格式重新新排列。在原原有数据据内容基基础上产产生新的的数据内内容,如如计算平平均值或或总计。数据流图图的画法法、画数数据流图图的基本本原则(数据流流程图中中的图形形符号只只能包含含四种基基本元素素。数数据流程程图主图图上的数数据流必必须封闭闭在外部部实体(外部项项)之间间,实体体可以是是一个也也可是多多个。变换框框上至少少有一个个输出数数据流和和一个输输入数据据流。数据流流程图上上的每一一个元素素都必须须有“名名字”。)、方法法与步骤骤注意事事项(父父子图的的平衡、分解程程度与数数据存储储文件,数据流流图是静静态图、与传统统框图的的差别、反复修修改的过过程)数据流图图数据流图图数据流图图数
31、据字典典、数据据字典的的定义(数据字典典就是对对数据流流程图中中,数据据、变换等进进行精确确定义。)、数据据定义方方法(对数据自自顶向下下的分解解。当分分解到不不需要进一步定定义,对对每个和和系统有有关的人人都能清清楚理解解这些数数据项的含含义为止止。)、数据据定义中中的数据据结构(顺序、选选择、重重复、可可选)、数据据字典中中的符号号( 表示示等价、+表示和(或连接两两个分量)、表示重复复花括号号内的分分量、|表示或即即从方括弧内内列出的的若干分分量中选选择一个个、()表示可选选即或括弧里里的量可可有可无无、n.m表示界域域)、数据据流、数数据存储储、数据据变换的的定义加工的描描述要求:准准
32、确、清清晰、简简洁自然语言言结构化语语言决策树决策表以上工具具的混合合使用决策树、决策表表、结构构化语言言if交交易额额 = 2500元元 thenif三三个月无无欠款then折折扣15%else if 老顾顾客then 折扣扣10%else 折扣扣 5%else 无折折扣1.研究目前前正在使使用的系系统现有的系系统(包括人工工系统)是信息的的重要来来源。因因此,首首先要去去了解现现有系统统能完成成哪些工工作,而而新的目目标系统统必须也也能完成成它的基基本功能能;对现有系系统(人工系统统)的了解,是要了了解对现现有系统统能做什什么,同同时画出出描绘现现有系统统的高层层数据流流程图。2.导出新系
33、系统的高高层数据据流程图图(即逻辑模模型)好的设计计,通常常总是从从现有系系统出发发导出现现有系统统的逻辑辑模型,然后参参考现有有系统的的逻辑模模型,设设想出新新系统的的逻辑模模型。通常第一一步的工工作,对对新的目目标系统统应该具具有的基基本功能能和所受受的约束束条件,已有一一定的了了解,把把这些了了解用数数据流程程图概括括地描绘绘出对新新系统的的设想。同时定定义系统统中使用用的数据据,构造造初步的的数据字字典。这这样,数据流程程图和数数据字典典共同定定义了新新的目标标系统的的高层逻逻辑模型型。结构化分分析步骤骤结构化分分析步骤骤(续)3.完善数据据流程图图在第二步步画出新新系统的的高层数数据
34、流程程图中,许多数数据的定定义和一一些细节节都没有有考虑进进去。现现在应着着手解决决这个问问题。(1)沿着数据据流程图图回溯为了对数数据流程程图中的的数据流流和数据据存储进进行定义义,通常常是从数数据流程程图的输输出端着着手分析析。这是是因为软软件系统统的目标标是产生生这些输输出,输输出数据据确定了了软件系系统必须须具有的的最基本本的组成成元素。输出数据据是由哪哪些数据据项组成成的,通通过调查查访问是是不难搞搞清这个个问题。那么每每个输出出数据项项又是从从哪里来来的呢?因为它是是新系统统的输出出,那么么它们或或者是从从外面输输入到系系统中来来,或者者是通过过运算由由系统中中产生出出来的。为了弄
35、弄清这些些,可以以沿着数数据流程程图从输输出端往往输入端端回溯,能够确确定每个个数据项项的来源源,与此此同时也也就初步步定义了了有关的的算法。结构化分分析步骤骤(续)在第二步步得到的的高层数数据流程程图中,许多具具体细节节没有包包括在里里面。因因此,当当沿着数数据流程程图回溯溯时,经经常会遇遇到:为为了得到到某个数数据项需需要用到到数据流流程图中中目前还还没有的的数据项项,或者者得出这这个数据据项要用用的算法法还不完完全清楚楚。为了了解决这这些问题题,需要要向用户户和有关关人员请请教,他他们的回回答使分分析员对对新系统统的认识识更具体体更深入入了。系系统中更更多的数数据项被被划分出出来,更更多
36、的算算法被搞搞清楚了了。一般般把分析析过程得得到的有有关数据据项的信信息、变变换的算算法简明明地记在在数据字字典中。(2)用户复查查通过沿着着数据流流程图的的回溯过过程,把把一些数数据项和和变换的的算法记记录到数数据字典典中。这这个数据据字典是是否准确确完整?算法是否否正确?还有没有有必要的的变换和和数据项项遗漏了了?某些数据据项的来来源搞清清楚吗?结构化分分析步骤骤(续)对这些问问题必须须请系统统的用户户对前面面步骤得得出的结结果仔细细地进行行复查。可以借借助于数数据流程程图和数数据字典典,从输输入端开开始向用用户解释释输入数数据怎样样一步一一步地转转变成输输出数据据。这些些解释集集中反映映
37、了分析析员通过过前面分分析工作作,所获获得的对对新目标标系统的的认识。这些认认识是否否正确,有无遗遗漏?应请用户户及时纠纠正和补补充分析析员的认认识。通通过复查查过程验验证了已已知的元元素,补补充了未未知的元元素。填填补了文文档中的的空白。由于复查查可能获获得新的的知识,又可能能引出新新的问题题。这些些需要进进一步的的调查访访问寻求求对问题题的解答答,而且且还应及及时修改改和补充充数据流流程图和和数据字字典,把把对系统统的新认认识及时时记录下下来。所所以,追追踪数据据流程图图和复查查软件系系统的逻逻辑模型型实质上上构成一一个循环环。对数数据流程程图的分分析产生生一些问问题,这这些问题题通过复复
38、查得到到的答案案使分析析员对系系统有更更深人更更具体的的认识,同时可可能又引引出新的的问题,寻找这这些新问问题的答答案导致致了对新新系统的的更进一一步的认认识。,每经过过一次循循环都会会对新系系统了解解更多的的细节。结构化分分析(续续)4.分解细化化数据流流程图通过上面面的分析析及用户户的复查查,分析析员对新新系统有有了更进进一步了了解,此此时可对对数据流流程图中中的各个个变换进进行检查查。如果果某个变变换的功功能还比比较复杂杂,即还还比较抽抽象,就就应将这这个变换换功能分分解成若若干个子子功能。这些较较低层的的子功能能就成为为新的数数据流程程图上的的变换。在新的的数据流流程图中中,也应应包括
39、自自己的数数据流和和数据存存储。数据流程程图经分分解之后后,得到到一组新新的数据据流程图图,不同的的软件元元素之间间关系变变得更清清楚了。对这组组新数据据流程图图的分析析追踪可可能产生生新的问问题,对对这些问问题的解解答,又又可能在在数据字字典中增增加一些些新的条条目,并并且可能能导致新新的或精精化的变变换算法法的描述述。随着着分析过过程的进进展,经经过问题题与解答答的反复复循环,分析员员越来越越深入、具体地地定义了了新系统统。通过过上面各各步就可可以得到到一套新新目标系系统的分分层数据据流程图图和数据据字典,也就是是得到新新系统的的逻辑模模型。软件总体体设计的的任务从软件需求求规格说说明书出
40、发,将将设计对对象用数数据流或或数据结结构的形形式表达达成完整整的抽象象实体。这个实实体应当当是一个个结构清清晰、层层次分明明的模块块组合,应当可可以被评评价和细细化,也也可以被被修改。同时还还要定义义这个实实体与外外部环境境的接口口。软件总体体设计的的目标1.软件实体体应当具具有明显显的层次次结构,便于软软件元素素之间的的控制。2.软件实体体应当模模块化,这些摸摸块应具具有完全全独立的的功能。3.软件实体体与环境境的界面面应当清清晰。4.软件设计计的最终终表示软件设计计规格说说明应当当清晰、简洁、完整整和无岐岐义。四、软件件总体设设计结构化方方法从建建立一个个具有良良好结构构系统的的观点出出
41、发,基基于把一一个复杂杂的系统统分解成成相对对对立的模模块的原原则,主主要研究究了将系系统分解解为不同同模块的的方法与与技术,分析系系统分解解师长生生的各种种影响,提出了了评价模模块结构构质量的的具体标标准,还还给出了了从数据据流图导导出模块块结构图图的规则则。结构化设设计方法法规定了了一系列列模块的的分解协协调原则则,提出出了结构构化设计计的基础础是模块块化,即即将整个个协调分分解成相相对对立立的若干干模块,通过对对模块的的设计和和模块之之间关系系的协调调来实现现整个协协调的功功能。结构化设设计方法法系统模块块结构图图模块化的的优点可以独立立设计、编码、测试,控制了了程序的的复杂性性,减少少
42、了出错错。模块错误误不宜扩扩散,提提高了软软件的可可靠性。便于团队队开发开发的软软件可维维护性、开放性性、通用用性好。1.评价软件件初始结结构,调调节之间间的耦合合度和聚聚合度在设计初初始软件件结构以以后,常常常会发发现几个个模块的的功能有有相似之之处,这这相似部部分不仅仅增加了了编程和和调试的的工作量量,同时时也给维维护过程程带来麻麻烦,应应当消除除这样的的重复。(1)完全相似似这种情况况只在数数据类型型上不一一致,可可采用完完全合并并,只需需在数据据类型的的描述或或变量定定义上加加以改进进。(2)局部相似似两个模块块具有功功能类似似的组成成部分和和不同部部分。可可通过模模块分解解消除重重复
43、功能能部分:首先找找出模块块中的功功能相似似部分,分离出出来,构构成它们们的一个个公共的的下层模模块。如如果分解解后余下下的模块块比较简简单,则则可以同同它们的的各自调调用模块块进行合合并。这这样消除除了重复复功能的的组成部部分,模模块间的的耦合较较小、模模块内的的聚合较较大。软件总体体设计准准则(续续)软件总体体设计准准则(续续)2.模块功能能的完善善一个完整整的功能能模块应应具有以以下三个个要素:(1)执行某项项指定功功能的部部分(2)如果需要要返回一一系列的的数据给给它的调调用者,应在完完成数据据处理或或结束时时,告诉诉它的调调用者“文件完完”或其其他标志志。(3)出错处理理部分,即在不
44、不能完成成指定任任务时,必须将将产生这这种例外外情况的的原因(出错标志志)通知它的的调用者者。它们们是一个个功能模模块的有有机组成成部分,不应当当分离到到其他模模块中去去,否则则会增加加模块间间的耦合合。软件总体体设计准准则(续续)3.模块调用用个数最最好不要要超过五五个一个模块块拥有的的直属下下级模块块的个数数叫模块块的扇出出数。如如果一个个模块扇扇出数过过大,这这个模块块就往往往包含过过多的功功能,一一般是因因为缺乏乏中间层层次的控控制模块块,需要要将其功功能进行行分解。一个模块块的直接接上级模模块的个个数叫模模块的扇扇入数。一个模模块的扇扇入表明明有多少少个上级级模块直直接调用用它,扇扇
45、入越大大,则共共享该模模块的上上级模块块数目越越多,这这是有好好处的。但不能能违背模模块独立立性而单单纯追求求高扇入入。4.一个模块块的作用用范围应应在其控控制范围围之内一个模块块的作用用范围就就是这个个模块内内一个判判定的作作用范围围。一个个判定的的作用范范围是指指所有受受这个判判定影响响的那些些模块,只要模模块中含含有一些些依赖于于这个判判定的操操作,那那么这个个模块就就在这个个判定的的作用范范围之内内。软件总体体设计准准则(续续)5.力争设计计单入口口和单出出口的模模块,避避免“病病态联接接”一个模块块只有一一个入口口和一个个出口时时,这个个模块比比较容易易理解,有利于于结构化化编制程程
46、序,也也比较容容易维护护。但实实际上这这样的模模块不多多。病态态联接是是指转移移到或引引用到另另一模块块中去的的内容耦耦合。要要尽量避避免这种种病态联联接,以以减少模模块间的的耦合。6.力争降低低模块接接口的复复杂性模块接口口复杂性性是软件件发生错错误的一一个主要要原因。因此,应该仔仔细设计计模块接接口,使使得信息息传递简简单并且且和模块块功能相相一致。例如:求求一元二二次方程程的根的的模块QUAD-ROOT(TBL,x)其中用数数组TBL传送方程程的系数数,用数数组x回送求得得的根。但是模模块QUAD-ROOT接口TBL和x意义不明明确,不不利于对对这个模模块的理理解。因因此可以以将它简简化
47、如下下:QUAD-ROOT(A,B,C,ROOT1,ROOT2),其中,A,B,C是方程系系数,ROOT1和ROOT2是方程的的两个根根。软件的总总体设计计准则(续)7.模块的大大小模块大小小就是模模块含语语句数量量的多少少。模块块的大小小没有统统一的标标准。一一般来说说,模块块的大小小以一页页左右为为宜,比比较容易易阅读和和理解。在进行行模块设设计时,首先应应根据模模块的独独立性来来选取模模块的规规模。如如果某个个模块功功能是独独立的,那怕程程序段较较短也不不要人为为地加长长;如果果程序段段只有一一个独立立的功能能,那怕怕程序较较长,也也不要人人为地把把它分解解成两个个模块。结构化设设计工具
48、具:HIPO图用图形的的方法表表示系统统的输入入、输出出、功能能和层次次软件详细细设计的的定义对软件模模块的过过程设计计。软件详细细设计的的任务对总体设设计所产产生的功功能模块块进行过过程描述述,开发发一个可可以直接接转换成成程序语语言代码码的软件件表示。软件详细细设计的的步骤1.将总体设设计产生生的构成成系统的的各功能能模块逐逐步细化化,形成成若干程序模块块;2.运用详细细设计工工具对程程序模块块进行过过程描述述;3.确定各个个模块间间的详细细接口信信息;4.编写详细细设计说说明书;5.详细设计计评审。五、软件件详细设设计程序设计计风格效率测试的目目的1.测试是一一个程序序的执行行过程,它的目目的在于于发现错错误;2.一个好的的测试用用例是极极可能发发现至今今未发现现的错误误;3.一个成功功的测试试是发现现了至今今未发现现的错误误的测试试。测试的原原则1.避免由程程序编写写者自己己进行测测试,目目的在于于克服盲盲目的自自信心和和对功能能要求误误解的延延续性;2.测试用例例的设计计和选择择,预期期结果的的定义要要有利于于错误的的检测。无效的的、异常常的、临临界的或或可能引引起问题题变异的的输入条条件比正正常的输输入条件件更重要要。测试试用例不不仅要检检查程序序是否做做了应该该做的事事,还要要检查它它是否做
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国双氯芬酸数据监测研究报告
- 2025至2030年中国冶金用胶辊数据监测研究报告
- 2025至2030年中国全效紧肤调理霜数据监测研究报告
- 2025至2030年中国丝印铝制瓶盖数据监测研究报告
- 2025至2030年中国LLDPE拉伸膜数据监测研究报告
- 2025年中国高浓度工业废水浓缩处理装置市场调查研究报告
- 2025年中国童军扣市场调查研究报告
- 科技型企业融资居间协议
- 医药购销廉洁协议书范本
- 临时合作协议书范本
- 申论公务员考试试题与参考答案(2024年)
- 《幼儿行为观察与分析案例教程》教学教案
- 小学科学教育课程实施方案
- DB11T 1035-2013 城市轨道交通能源消耗评价方法
- 2024新能源光伏电站运行规程和检修规程
- 供应室课件大全
- 银行存管三方协议书
- 2024义务教育道德与法治课程标准(2022版)
- 2024年新人教版化学九年级上册全册课件(新版教材)
- 智能体脂秤市场洞察报告
- 教科版 二年级科学上册第一单元第6课《不同的季节》同步练习(附答案解析)
评论
0/150
提交评论