您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 统计图表 > 计算机软件技术基础GL
软件基础和软件开发综述西北工业大学软件技术基础Email:jiyary118@163.com2007年03月06日软件的概念及其特性程序是一种信息,它的传播需要借助某种介质。程序作为商品以有形介质为载体进行交易,就称做软件。•软件是功能、性能相对完备的程序系统•软件是具有使用性能的软设备•软件是信息商品•软件是只有过时而无“磨损”的商品+=软件的分类与应用软件计算机软件分为:系统软件和应用软件系统软件指软件制售商为释放硬件潜能、方便使用而配备的软件•如操作系统、各种语言编译/解释系统、网络软件、数据库管理软件、各种服务程序、界面工具箱等应用软件是解决某应用领域问题的软件•如财会软件、通信软件、科技计算、计算机辅助制造(CAD/CAM)软件在当今整个社会信息化的情况下系统软件和应用软件的界线正在模糊应用软件硬件平台实用工具集操作系统PcallAendBreturnACallBreturn...............(a)程序调用(b)计算机体系结构程序设计语言(一)程序设计语言是人—机交换信息的媒体,也是人—人交换信息的工具。计算机语言的种类非常的多,总的来说可以分成机器语言,汇编语言,高级语言三大类。程序是计算机要执行的指令的集合,而程序全部都是用我们所掌握的语言来编写的。所以人们要控制计算机一定要通过计算机语言向计算机发出命令。计算机所能识别的语言只有机器语言,即由0和1构成的代码。但通常人们编程时,不采用机器语言,因为它非常难于记忆和识别。目前通用的编程语言有两种形式:汇编语言和高级语言。简直是对牛弹琴!程序设计语言(一)y={1x00x=0-1x0DATASEGMENTXXDBXYYDB?DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXMOVAL,XXCMPAL,0JGEBLGRMOVAL,0FFHMOVYY,ALHLTBLGR:JEEQUTMOVAL,01HMOVYY,ALHLTEQUT:MOVYY,ALHLTCODEENDS如果用VB编写,本程序是:Dimx,yAsIntegerifx0thenY=1elseifx=0thenY=0elseY=-1endifendif例汇编:程序设计语言(二)汇编语言是机器语言的符号表示。它的实质和机器语言是相同的,都是直接对硬件操作。汇编语言的特点汇编语言与机器关系密切。不同的CPU有不同的汇编语言指令集。汇编语言执行的效率高。汇编语言源程序繁琐,需要比较深的专业知识。汇编语言调试困难。汇编语言必须翻译成机器语言,计算机才能够执行。把汇编语言源程序翻译成目标程序的过程称为汇编。汇编语言一般应用在一些对“时空”效率要求较高的场合。例如实时控制系统、嵌入式控制系统、设备驱动程序等。结绳记事象形文字现代文字象形文字程序设计语言(三)高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言。它包括了很多编程语言,如目前流行的VB、VC、FoxPro、Delphi等,这些语言的语法、命令格式都各不相同。高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:解释类:执行方式类似于我们日常生活中的“同声翻译”,应用程序源代码一边由相应语言的解释器“翻译”成目标代码(机器语言),一边执行,因此效率比较低;而且不能生成可独立执行的可执行文件,应用程序不能脱离其解释器,但这种方式比较灵活,可以动态地调整、修改应用程序。现在比较流行的HTML语言就是解释类语言。程序设计语言(三)编译类:编译是指在应用源程序执行之前,就将程序源代码“翻译”成目标代码(机器语言),因此其目标程序可以脱离其语言环境独立执行,使用比较方便、效率较高。但应用程序一旦需要修改,必须先修改源代码,再重新编译生成新的目标文件(*.OBJ)才能执行,只有目标文件而没有源代码,修改很不方便。现在大多数的编程语言都是编译型的,例如VisualC++、VisualFoxpro、Delphi等。源程序.C目标程序.obj可执行程序.exe结果编译连接执行position:=initial+rate*60词法分析器语法分析器:=id1id2id360+*语义分析器:=id1id2id3inttoreal(60)+*中间代码生成器temp1:=inttoreal(60)temp2:=id3+temp1temp3:=id2+temp2id1:=id2+temp1id1,id2,id3,:=,+,*代码优化器temp1:=id3*60.0id1:=id2+temp1代码生成器MOVR2,id3MULR2,#60.0MOVR1,id2ADDR1,R2MOVid1,R1(R1,R2为寄存器号)错误处理器符号表管理器程序设计语言(四)建议程序设计语言来源于自然语言(例如英语,汉语等)。程序翻译和解释的过程中会使用的很多的词法和文法的知识,所以建议大家在提高自己技术修养的同时注重自己的语言修养。兼收并蓄,融会贯通!语言学数学逻辑学电学软件开发技术(一)问题软件开发=编写代码?(建大楼=砌砖头)?下图是软件的生命期模型,希望大家看了之后,能够纠正一下自己的认识。系统分析软件需求分析概要设计详细设计编程与测试测试使用维护用户需要硬件需求分析系统规格说明书,可行性分析报告软件规格说明书,软件项目计划,初步用户手册概要设计说明书设计说明书,测试大纲模块测试报告,源程序文档各种测试报告退役软件开发技术---软件生命期软件的整个生命期包括阶段:可行性研究与计划(可行性分析报告)需求分析(软件规格说明书,软件项目计划书)概要设计(BD)(基础设计说明样书)详细设计(FD)(功能设计说明书)编码(CD)(代码)测试(UT,FT,ST)(测试报告书)使用和维护20%15%20%5%20%20%软件开发技术---可行性分析可行性分析(可行性分析报告)可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。可行性研究的目的不是解决问题,而是确定问题是否只得去解。可行性分析包括如下方面:1)技术可行性:使用现在的技术能实现这个系统吗?2)经济可行性:这个系统的经济效益能超过它的开发成本吗?3)操作可行性:用户的操作方式在这个用户组织内行得通吗?软件开发技术---需求分析需求分析阶段又称为需求确定阶段或分析阶段,其目的是澄清用户的需求。这个阶段的基本任务是:用户和软件人员双方一起来充分的理解用户的需求,并把双方共同的理解明确地表达成一份书面文档-需求说明书。需求说明书主要有以下三个作用:1)作为用户和软件人员之间的合同,为双方相互了解提供基础。2)反映出问题的结构,可以作为软件人员进行设计和编码的基础。3)作为验收的依据,即作为选取测试用例和进行形式验证的依据。软件开发技术---概要设计概要设计又称为总体设计,它的基本任务是:1)将系统划分成模块2)决定每个模块的功能3)决定模块的调用关系4)决定模块的界面,即模块间传递的数据概要设计这项工作比较复杂,需要一定的创造性和一定的方法来指导。这样工作一般有经验丰富的开发人员来承担(系统分析员)。现在比较常用的方法:结构化设计方法、面向对象的设计方法等。软件开发技术---详细设计概要设计将软件系统分解成许多个模块,并决定每个模块的外部特征;详细设计确定每个模块的内部特征,即每个模块内部的执行过程,包括:局部数据组织、控制流、每一步的具体加工要求及种种实现细节。由于详细设计的难度相对来说已不是很高,所以初级软件开发人员一般可以胜任,但是一些关键模块最好还是由高级软件人员来担任。详细设计的描述方式:流程图、盒图、问题分析图、程序设计语言。(到详细设计阶段才涉及到具体的编程语言)软件开发技术---编码编程阶段相当于机械工程中图纸设计完成后的”制造“阶段。这个阶段就是将详细设计阶段的结果转化为用某种语言写的程序。编程阶段应交付的结果就是程序,程序此时不应该再含有语法错误,程序内部必须包含一些必要的称之为“内部文档”的说明性材料。在软件生命期个阶段中,相对来说,编程是最容易也是人们已掌握较好的阶段。所以编程一般由一些初级程序员来承担。(编码人员相当于车间里的操作工,他们的待遇相对来说是比较低的。)软件开发技术---测试测试就是为发现错误而执行程序。测试的目的不是为了说明程序能正确的执行功能或者程序中不存在错误。测试是假定程序中存在错误,因而想通过执行这个程序来发现尽可能多的错误。软件测试的方法白盒法(UT)、黑盒法(FT,ST)测试阶段的文档1)测试计划书(测试的目的、标准、时间进度表、负责人员、测试用例库、测试工具、工时)2)测试报告书(测试结果)就不信摔不碎你!+软件开发技术---维护软件维护工作处于软件生命期的最后阶段。维护阶段的花费约占整个软件生命期的67%维护工作的种类1)完善性维护。(扩展功能、提高性能)2)纠错性维护。(修正bug)3)适应性维护。4)预防性维护。维护阶段的文档1)bug修正记录2)调查文档3)版本管理记录软件开发技术-开发实例项目要求提供一个GUI界面,用户可以通过该界面进行log文件相关的设定,用户的设定要求保存到注册表中。可行性分析技术可行性:微软提供了一系列的界面设计和注册表操作的函数,利用当前的技术是可以使用用户要求的功能的。经济可行性:该项目整个阶段预计花费40人时,500元人民币。花费的工时和费用都非常少,用户经济上是可以承受的。软件开发技术-开发实例需求分析概要设计(BD)合法性检查用户输入的数据合法的数据错误注册表中保存的数据GUI界面注册表数据流图显示给用户的数据GUI界面(数据的输入和显示)合法性检查注册表操作接口(读,写)软件开发技术-开发实例详细设计1.FDFD阶段才涉及到具体的开发环境:例如操作系统,编译工具,编程语言等。软件开发技术-开发实例FD式样书示例:软件开发技术-开发实例2.DD函数名GetModulesName()作成者作成日期2003-07-1执行模块名Logset.exeAccessPublic/private/protect改造新规机能概要Getthenameofthemodulewhichisloadinglibutility.dll参数返回值Ifsuccessreturn0,iffailedreturn-1Class参数使用方法GetModulesName(char*ModulePath)注意事項ThewholepathofthemoduleisreservedinModulePath详细机能软件开发技术-开发实例编码编码就是将详细设计的内容,用程序来实现,这也是大家所熟知的,这里就不再赘述。DD式样书示例:软件开发技术-开发实例测试测试观点:对所有的输入框的输入值进行检查。测试项目:维护1.机能强化:用户认为界面不美观,按钮上要显示图标。2.机能追加:用户要求将界面上显示的内容打印到文件中。项目标号测试项目期待结果日期人员测试结果1在“错误日志文件”中输入1024弹出错误对话框,提示用户输入值错误。2003-11-15小熊OK非常感谢大家!谢谢!通过交流相互学习,共同进步!
本文标题:计算机软件技术基础GL
链接地址:https://www.777doc.com/doc-3610488 .html