欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    软件技术专题 ppt课件.ppt

    • 资源ID:1786860       资源大小:486KB        全文页数:75页
    • 资源格式: PPT        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    软件技术专题 ppt课件.ppt

    软件技术基础,1 概述2 算法3 程序设计4 软件工程,1 概 述,什么是计算机软件?,操作系统、QQ、360,计算机系统=硬件+软件,程序以及相关的文档的集合。,什么是文档?,文档:记录软件开发活动和阶段性成果,理解软件所必需的阐述性资料。 需求分析文档 软件设计文挡等编写文档目的 促进对软件的开发、管理和维护; 便于各种人员(用户、开发人员)的交流,什么是程序?,程序一词源于生活。做任何一件事情,都是有程序的。 例如,颁奖大会的程序;做菜的程序等等。 把做菜的步骤用大家看得懂的方式记录下来,其他人可以按这些步骤顺序实施就完成了该事情。,用计算机完成某事情,就把事先设计好的计算机处理信息的步骤,用计算机能够识别的指令编写出来,送入计算机。计算机按照指令执行,就能完成指定的工作。,算法,程序设计语言,程序就是用计算机语言表述的算法。,为解决一个问题而采取的方法和步骤,就称为算法。,什么是算法?,什么是计算机语言?,人们想和计算机交流,用符号来表达。,怎样维护交通秩序?音乐是怎样表示的?,用来表达这种关系的符号系统就是计算机语言,也叫“程序设计语言”。人与计算机交流使用的是“程序设计语言”。 同人类语言一样,程序设计语言也是由字、词和语法规则构成的一个系统。,2 算 法,主要内容,算法的表示算法的要素算法的特点算法的复杂度常用算法,算法的表示,算法一般可以使用下面几种类型的工具描述: 1.自然语言 例:求12345。,最原始方法: 步骤1:先求12,得到结果2。 步骤2:将步骤1得到的乘积2乘以3,得到结果6。 步骤3:将6再乘以4,得24。 步骤4:将24再乘以5,得120。,改进的算法: S1: 使t=1 S2: 使i=2 S3: 使ti, 乘积仍然放在在变量t中,可表示为tit S4: 使i的值+1,即i+1i S5: 如果i5, 返回重新执行步骤S3以及其后的S4和S5;否则,算法结束。,2.专用图形工具常用的有流程图、PAD图和N-S图等。,流程图描述,3.伪代码 为了便于转换成某种编程语言,一般采用准程序设计语言作算法描述语言。,伪代码描述:,BEGIN(算法开始) 1=t 2=i while i t i+1=i print tEND(算法结束),算法两要素,算法的两要素算法由操作与控制结构两要素组成。1.操作(1)逻辑运算:“与”、“或”、“非”;(2)算术运算:加、减、乘、除;(3)数据比较:大于、小于、等于、不等于;(4)数据传送:输入、输出、赋值。,2.控制结构,1)算法的控制结构,决定了各操作的执行次序。用流程图可以形象地表示出算法的控制结构。 2)任何复杂的算法都可以用顺序、选择、循环三种控制结构组合而成。,F,T,我们在构造一个算法的时候,也只能以这三种基本结构作为“建筑单元”,遵守三种基本结构的规范。 基本结构之间可以并列、可以相互包含,但不允许交叉。 正因为整个算法都由这三种基本结构构成,所以结构清晰,易于验证,易于纠错。这种方法就是结构化方法。,算法的特征,有穷性 一个算法必须总是在执行有穷步后结束,且每一步都可在有穷时间内完成;确定性 算法中的每一个指令必须有明确的含义,不能有二义性; 例:武松打死老虎 手举过头顶 单手?双手?举多高?,可行性(有效性) 算法中描述的操作都是可通过已经实现的基本运算、执行有限次实现的; 例:a/b 若b=0则无效输入 一个算法应有0个或多个输入;输出 一个算法应有1个或多个输出。,算法的复杂度,评价算法的标准: 执行算法所耗费的时间,即时间复杂度; 执行算法所耗费的存贮空间,主要是辅助空间,即空间复杂度。,思考:给出一组数12、13、26、27、38、49、55、60、67、86,查找某一个数x是否在这组数中的算法?,的时间复杂度?,算法的设计要求,正确性 满足需求可读性 有助于算法的理解、调试和修改健壮性 容错高效率与低存储量,常 用 算 法,先依据题目的部分条件确定答案的大致范围,在此范围内对所有可能的情况逐一验证,直到全部情况验证完。 若某个情况使验证符合题目的条件,则为本题的一个答案;若全部情况验证完后均不符合题目的条件,则问题无解。,1.枚举法,例:公鸡每只五元,母鸡每只三元,小鸡三只一元,问一百元钱买一百只鸡有几种买法?,假设公鸡数为x,母鸡数为y,则小鸡数是z,也就有了下面的方程式:,x+y+z=1005x+3x+z/3=100,算法:,2.递推法,顺推法和倒推法,例:猴子分食桃子 一天,一只猴子采得一堆桃子,当天它吃掉一半多一个,第二天又吃了一半多一个一直到第七天,它就剩一个桃子了。那么那天它共采了多少个桃子呢?,算法: S1: 使s=1 S2: 使t=7 S3: 使(s+1)2, 结果仍然放在变量s中,可表示为(s+1)2 s S4: 使t的值-1,即t-1t S5: 如果t=1, 返回重新执行步骤S3以及其后的S4和S5;否则,算法结束。,3.递归法,如果一个过程直接或间接地调用它自身,则称该过程是递归的。,例:求阶乘。,算法:,Function Factorial(n As Long) As Long If n = 1 Then Factorial = 1 Else Factorial = n * Factorial(n - 1) End Function,例:有一个nm的棋盘(2=n=50,2=m=50),在棋盘上有一个马,马走的规则为:马走日字且只能向右走。当n,m给出之后,同时给出马起始的位置和终点的位置,找出从起点到终点的所有路径的数目。,4.回溯法,回溯算法:从一条路往前走,能进则进,不能进则退回来,换一条路再试。,3 程序设计基础,程序设计的一般步骤:,解决问题的核心: 算法及算法的处理对象。,一个程序应包括:对操作的描述。 即操作步骤,也就是算法(algorithm)。对数据的描述。 在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure)。 Nikiklaus Wirth提出的公式: 数据结构+算法=程序,程序设计语言,1.发展的过程 程序设计语言分类:机器语言、汇编语言、高级语言,机器语言 机器语言是一种CPU指令系统,是该CPU可以识别的一组组由0和1序列组成的指令码。 最初的语言是机器语言,二进制编码,机器可直接执行,执行速度快。,00000001000000001000 数据装入寄存器000000001000100001010 数据装入寄存器100000101000000000001 寄存器0与1的数据乘00000001000100001001 数据装入寄存器100000100000000000001 寄存器0与1的数据加00000010000000001110 保存寄存器0里的数 编程困难、可读性差、容易出错、可移植性差,汇编语言 用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“ADD”代表加法,“MOV”代表数据传递等等。 例:load 0,a 将单元a的数据装入寄存器0 load 1,b 将单元b的数据装入寄存器1 mult 0,1 寄存器0与1的数据乘 load 1,c 将单元c的数据装入寄存器1 add 0,1 寄存器0与1的数据加 save 0,d 将寄存器0里的数存入单元d,计算机无法直接执行汇编语言程序,执行前需要翻译为机器指令。 最早是人自己翻译,后来人们开发出“汇编系统”,让计算机去完成这项工作。 汇编语言细节太多,程序无结构,缺乏组织手段,写程序仍然很困难。,高级语言 具有类似文字的表现形式; 用类似数学的表达式形式描述基本计算; 用变量等概念取代低级的存储概念,人们摆脱了繁琐的存储安排工作; 提供高级流程控制手段和程序组织手段。 例:d=a*b+c,高级语言程序必须经过翻译变成机器语言程序。翻译有两种做法:编译和解释,相应的翻译工具分别叫做编译器和解释器。,汇编语言VS高级语言,DATA SEGMENT XX DB X YY DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS: DATASTART:MOV AX,DATA MOV DS,AX MOV AL,XX CMP AL,0 JGE BLGR MOV AL 0FFHAL, MOV YY,AL HLTBLGR:JE EQUT MOV AL 01HAL, MOV YY,AL HLTEQUT:MOVE YY,AL HLTCODE ENDSENDSTART,If x0 then y=1elseif x=0 then y=0 else y=-1endif Print x,y,常用高级程序语言,目前,使用较广泛的高级语言有C、C+、Visual Basic 、Visual Foxpro 、Visual C+、Power Builder、Java、Delphi、ASP、JSP、PHP等。,2.常见的程序控制结构,程序设计方法,面向过程的程序设计,面向过程的程序设计强调模块化和结构化。采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序。遵循这种方法的程序设计就是面向过程的程序设计。,常用软件:C,FORTRAN,PASCAL等。,程序分解实例:,面向对象的程序设计,什么是对象?,现实世界中,比如书、人、车都是对象。我们怎么区分它们呢?从外观特征以及他们的动作行为。 比如:人 外观:一个脑袋,两条腿,两个胳臂 动作行为:说话,吃饭,跑步,流泪,在面向对象编程中,程序被看作是相互协作的对象集合,通过消息来实现对象间的通讯。,类是对象的集合,每个对象都是某个类的实例,所有的类构成一个通过继承关系相联系的层次结构。,常用语言:Java、c+、VB.Net等。,在结构化程序设计中可以用下面的式子表示程序: 程序=数据结构+算法 在面向对象程序设计中可以用下面的式子表示程序: 程序=对象+对象+对象 对象=算法+数据结构,面向过程:分析出解决问题所需要的步骤,用函数把这些步骤一步一步实现,使用的时候一个一个依次调用。 面向对象:把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在解决问题中的行为。,例1:有一台如下流程的演出:主持人开场演员1表演演员2表演主持人总结。 用面向过程的思想来分析,就是先完成主持人开场,再完成演员1的表演,再完成演员2的表演,最后完成主持人的总结。 如果用面向对象的思想来分析,就是:这个演出由两大部分组成:主持人、演员。与主持人相关的:开场、总结。与演员相关的:演员编号、所演的节目。然后这台演出就可以这样策划:需要一个主持人a,需要两个演员b、c。演出的事情可以表示为:a的开场 b、c的编号和节目 a的总结。,例2:下五子棋 面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走, 3、绘制画面,4、判断输赢, 5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2, 9、输出最后结果。 把上面每个步骤用分别的函数来实现,问题就解决了。,面向对象的设计思路是,整个五子棋可以分为: 1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。 第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。 可以明显地看出,面向对象是以功能来划分问题,而不是步骤。,功能上的统一保证了面向对象设计的可扩展性。 比如我要加入悔棋的功能,如果要改动面向过程的设计,那么从输入到判断到显示这一连串的步骤都要改动,甚至步骤之间的顺序都要进行大规模调整。如果是面向对象的话,只用改动棋盘对象就行了,棋盘系统保存了黑白双方的棋谱,简单回溯就可以了,而显示和规则判断则不用顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的。,再比如:把五子棋游戏改为围棋游戏,如果是面向对象的,只需要改写规则对象就可以了;如果是面向过程的,五子棋的规则分布在程序的每个角落,要改动还不如重写。,面向过程方法的特点,优点:这种程序设计方法算法描述准确。对每一子过程模块容易进行程序正确性证明。缺点:程序代码可重用性差。程序中除少数标准库函数外,每设计一个程序时,程序员几乎从零做起。即使重用代码,通常也是通过拷贝或编辑重新生成一份。维护程序的一致性困难。前一步修改了导致以后步骤的修改。,OOP方法的特点,OOP以“对象”或“数据”为中心。由于对象自然地反映了应用领域的模块性,因此具有相对稳定性,可以被用作一个组件去构成更复杂的应用,又由于对象一般封装的是某一实际需求的各种成分,因此,某一对象的改变对整个系统几乎没有影响。引入了“类”的概念。类与类以层次结构组织,属于某个类的对象除具有该类所描述的特性外,还具有层次结构中该类上层所有类描述的全部性质,OOP中称这种机制为继承。OOP方法的模块性与继承性,保证了新的应用程序设计可在原有对象的数据类型和功能的基础上通过重用、扩展和细化来进行,而不必从头做起或复制原有代码,这样,大大减少了重新编写新代码的工作量。,4 软件工程,落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。 软件工程源于软件危机。,软件危机-软件危机的表现,软件成本日益增长 软件和硬件费用比不断增加。,软件质量得不到保证开发进度难以控制维护非常困难,产生软件危机的根源,规模越来越大复杂性越来越高缺乏有效、系统原理、原则、方法和工具的指导和辅助,如何克服软件危机,人们面临的不光是技术问题,更重要的是管理问题。管理不善必然导致失败。,人们开始探索用工程的方法进行软件生产的可能性,即用现代工程的概念、原理、技术和方法进行计算机软件的开发、管理和维护。,要建一座桥梁。我们会怎么做? 了解桥梁的要求、用途设计维护开发大型软件: 定义开发维护,于是,计算机科学技术的一个新领域软件工程诞生了。,软件工程强调使用生存周期方法学和各种结构分析及结构设计技术。,软件工程,在完成生存周期每个阶段的任务时,采用适合该阶段任务特点的系统化的技术方法结构分析或结构设计技术。,生存周期方法学就指从时间角度对软件开发和维护的复杂问题进行分解,把软件生存的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。,软件生命周期,某一软件从被提出并着手开始实现,直到软件完成其使命为止的全过程被划分为一些阶段,并称这一全过程为软件生命周期。 通常,软件生命周期分三个阶段:软件定义、软件开发、运行维护。,(1) 可行性研究与计划制定:确定开发目标和总的要求,给出功能、可靠性等可能方案,制定实施计划。 (2) 需求分析:对软件需求进行分析并给出详细定义,编写软件规格说明书及初步的用户手册,提交评审。,1 软件定义-软件要“做什么”,(3) 系统设计:概要设计和详细设计,给出软件的结构、模块和功能的划分等。编写概要设计、详细设计说明书和测试计划初稿。 (4) 详细设计:源程序编码,把软件设计转换成计算机可以接受的程序代码。编写用户手册、操作手册和单元测试计划。(5)编码:(6)测试:设计测试用例,检验软件各个组成部分。编写测试分析报告。,2 软件开发软件要“怎么做”,3 软件运行和维护 (7) 软件投入运行,维护(进行扩充和删改)。,实 验,

    注意事项

    本文(软件技术专题 ppt课件.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开