软件技术专题-ppt课件.ppt

上传人:飞****2 文档编号:69572446 上传时间:2023-01-07 格式:PPT 页数:75 大小:486KB
返回 下载 相关 举报
软件技术专题-ppt课件.ppt_第1页
第1页 / 共75页
软件技术专题-ppt课件.ppt_第2页
第2页 / 共75页
点击查看更多>>
资源描述

《软件技术专题-ppt课件.ppt》由会员分享,可在线阅读,更多相关《软件技术专题-ppt课件.ppt(75页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、软件技术基础软件技术基础1 概述概述2 算法算法3 程序设计程序设计4 软件工程软件工程1 1 概概 述述什么是计算机软件什么是计算机软件?操作系统、操作系统、QQQQ、360360计算机系统计算机系统=硬件硬件+软件软件l程序以及相关的文档的集合。程 序文档1文档2文档3可执行部分不可执行部分什么是文档?什么是文档?l文档:记录软件开发活动和阶段性成果,理解软件所必需的阐述性资料。需求分析文档 软件设计文挡等l编写文档目的 促进对软件的开发、管理和维护;便于各种人员(用户、开发人员)的交流什么是程序?什么是程序?程序一词源于生活。做任何一件事情,都是有程序的。例如,颁奖大会的程序;做菜的程序

2、等等。把做菜的步骤用大家看得懂的方式记录下来,其他人可以按这些步骤顺序实施就完成了该事情。用计算机完成某事情,就把事先设计好的计算机处理信息的步骤,用计算机能够识别的指令编写出来,送入计算机。计算机按照指令执行,就能完成指定的工作。算法程序设计语言程序就是用计算机语言表述的算法。为解决一个问题而采取的方法和步骤,就称为算法算法。什么是算法?什么是算法?什么是计算机语言?什么是计算机语言?人们想和计算机交流,用符号来表达。怎样维护交通秩序?音乐是怎样表示的?用来表达这种关系的符号系统符号系统就是计计算机语言算机语言,也叫“程序设计语言程序设计语言”。人与计算机交流使用的是“程序设计语言”。同人类

3、语言一样,程序设计语言也是程序设计语言也是由字、词和语法规则构成的一个系统由字、词和语法规则构成的一个系统。2 2 算算 法法主要内容主要内容l算法的表示l算法的要素l算法的特点l算法的复杂度l常用算法算法的表示算法的表示 算法一般可以使用下面几种类型的工具描述:1.1.1.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的值+

4、1,即i+1i S5:如果i5,返回重新执行步骤S3以及其后的S4和S5;否则,算法结束。2.2.2.2.专用图形工具专用图形工具专用图形工具专用图形工具常用的有流程图、PAD图和N-S图等。流程图描述流程图描述 3.3.3.3.伪代码伪代码 为了便于转换成某种编程语言,一般采用准程序设计语言作算法描述语言。伪代码描述:伪代码描述:BEGIN(算法开始算法开始)1=t 2=i while i t i+1=i print tEND(算法结束算法结束)算法两要素算法两要素l算法的两要素算法由操作操作与控制结构控制结构两要素组成。1.1.操作操作(1)逻辑运算:“与”、“或”、“非”;(2)算术运算

5、:加、减、乘、除;(3)数据比较:大于、小于、等于、不等于;(4)数据传送:输入、输出、赋值。2.2.控制结构控制结构 1 1)算法的控制结构,决定了各操作的)算法的控制结构,决定了各操作的执行次序。用执行次序。用流程图流程图可以形象地表示出算法可以形象地表示出算法的控制结构。的控制结构。2 2)任何复杂的算法都可以用)任何复杂的算法都可以用顺序、选顺序、选择、循环择、循环三种控制结构组合而成。三种控制结构组合而成。FT 我们在构造一个算法的时候,也只能以这三种基本结构作为“建筑单元”,遵守三种基本结构的规范。基本结构之间可以并列、可以相互包含,但不允许交叉。正因为整个算法都由这三种基本结构构

6、成,所以结构清晰,易于验证,易于纠错。这种方法就是结构化方法结构化方法。算法的算法的特征特征l有穷性有穷性 一个算法必须总是在执行有穷步后结束,且每一步都可在有穷时间内完成;l确定性确定性 算法中的每一个指令必须有明确的含义,不能有二义性;例:武松打死老虎 手举过头顶 单手?双手?举多高?l可行性可行性(有效性有效性)算法中描述的操作都是可通过已经实现的基本运算、执行有限次实现的;例:a/b 若b=0则无效l输入输入 一个算法应有0个或多个输入;l输出输出 一个算法应有1个或多个输出。算法的复杂度算法的复杂度评价算法的标准:执行算法所耗费的时间,即时间复杂时间复杂度度;执行算法所耗费的存贮空间

7、,主要是辅助空间,即空间复杂度空间复杂度。思考:给出一组数思考:给出一组数1212、1313、2626、2727、3838、4949、5555、6060、6767、8686,查找某一个数,查找某一个数x x是否在是否在这组数中的算法?这组数中的算法?算法1:顺序查找算法2:二分法查找比较:的时间复杂度?算法的设计要求算法的设计要求l正确性 满足需求l可读性 有助于算法的理解、调试和修改l健壮性 容错l高效率与低存储量常常 用用 算算 法法 先依据题目的部分条件确定答案的大致范围,在此范围内对所有可能的情况逐一验证逐一验证,直到全部情况验证完。若某个情况使验证符合题目的条件,则为本题的一个答案;

8、若全部情况验证完后均不符合题目的条件,则问题无解。1.1.枚举法枚举法 例:公鸡每只五元,母鸡每只三元,小鸡三只一元,问一百元钱买一百只鸡有几种买法?假设公鸡数为x,母鸡数为y,则小鸡数是z,也就有了下面的方程式:x+y+z=1005x+3x+z/3=100算法:算法:2.2.递推法递推法顺推法和倒推法顺推法和倒推法例:猴子分食桃子例:猴子分食桃子 一天,一只猴子采得一堆桃子,当天它吃掉一半多一个,第二天又吃了一半多一个一直到第七天,它就剩一个桃子了。那么那天它共采了多少个桃子呢?算法:S1:使s=1 S2:使t=7 S3:使(s+1)2,结果仍然放在变量s中,可表示为(s+1)2 s S4:

9、使t的值-1,即t-1t S5:如果t=1,返回重新执行步骤S3以及其后的S4和S5;否则,算法结束。3.3.递归法递归法 如果一个过程直接或间接地调用它自身,则称该过程是递归的。例:求阶乘。n!=n!=1 n=11 n=1n(n-1)!n0n(n-1)!n0算法: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=m0 then y=1elseif x=0 then y=0 else y=-1en

10、dif Print x,yl常用高级程序语言常用高级程序语言 目前,使用较广泛的高级语言有C、C+、Visual Basic、Visual Foxpro、Visual C+、Power Builder、Java、Delphi、ASP、JSP、PHP等。2.2.常见的程序控制结构常见的程序控制结构程序设计方法程序设计方法面向过程的程序设计面向过程的程序设计 面向过程的程序设计强调模块化模块化和结构化结构化。采用自顶向下、逐步求精的程序设计方法;使用三种基本控制结构构造程序。遵循这种方法的程序设计就是面向过程的程序设计面向过程的程序设计。常用软件:C,FORTRAN,PASCAL等。l程序分解实例

11、:面向对象的面向对象的程序设计程序设计什么是对象?现实世界中,比如书、人、车都是对象。我们怎么区分它们呢?从外观特征以及他们的动作行为。比如:人 外观:一个脑袋,两条腿,两个胳臂 动作行为:说话,吃饭,跑步,流泪 在面向对象编程中,程序被看作是相互协作的对象集合,通过消息来实现对象间的通讯。类是对象的集合,每个对象都是某个类的实例,所有的类构成一个通过继承关系相联系的层次结构。常用语言:Java、c+、VB.Net等。在结构化程序设计中可以用下面的式子表示程序:程序=数据结构+算法 在面向对象程序设计中可以用下面的式子表示程序:程序=对象+对象+对象 对象=算法+数据结构 面向过程:分析出解决

12、问题所需要的步骤,用函数把这些步骤一步一步实现,使用的时候一个一个依次调用。面向对象:把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在解决问题中的行为。例1:有一台如下流程的演出:主持人开场演员1表演演员2表演主持人总结。用面向过程的思想来分析,就是先完成主持人开场,再完成演员1的表演,再完成演员2的表演,最后完成主持人的总结。如果用面向对象的思想来分析,就是:这个演出由两大部分组成:主持人、演员。与主持人相关的:开场、总结。与演员相关的:演员编号、所演的节目。然后这台演出就可以这样策划:需要一个主持人a,需要两个演员b、c。演出的事情可以表示为:a的开

13、场 b、c的编号和节目 a的总结。例2:下五子棋 面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。把上面每个步骤用分别的函数来实现,问题就解决了。面向对象的设计思路是,整个五子棋可以分为:1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对

14、棋局进行判定。可以明显地看出,面向对象是以功能来划分问题,而不是步骤。功能上的统一保证了面向对象设计的可扩展性。比如我要加入悔棋的功能,如果要改动面向过程的设计,那么从输入到判断到显示这一连串的步骤都要改动,甚至步骤之间的顺序都要进行大规模调整。如果是面向对象的话,只用改动棋盘对象就行了,棋盘系统保存了黑白双方的棋谱,简单回溯就可以了,而显示和规则判断则不用顾及,同时整个对对象功能的调用顺序都没有变化,改动只是局部的。再比如:把五子棋游戏改为围棋游戏,如果是面向对象的,只需要改写规则对象就可以了;如果是面向过程的,五子棋的规则分布在程序的每个角落,要改动还不如重写。面向过程方法的特点面向过程方

15、法的特点l优点:这种程序设计方法算法描述准确。对每一子过程模块容易进行程序正确性证明。l缺点:程序代码可重用性差。程序中除少数标准库函数外,每设计一个程序时,程序员几乎从零做起。即使重用代码,通常也是通过拷贝或编辑重新生成一份。维护程序的一致性困难。前一步修改了导致以后步骤的修改。OOP方法的特点方法的特点lOOP以“对象”或“数据”为中心。由于对象自然地反映了应用领域的模块性,因此具有相对稳定性,可以被用作一个组件去构成更复杂的应用,又由于对象一般封装的是某一实际需求的各种成分,因此,某一对象的改变对整个系统几乎没有影响。l引入了“类”的概念。类与类以层次结构组织,属于某个类的对象除具有该类

16、所描述的特性外,还具有层次结构中该类上层所有类描述的全部性质,OOP中称这种机制为继承。lOOP方法的模块性与继承性,保证了新的应用程序设计可在原有对象的数据类型和功能的基础上通过重用、扩展和细化来进行,而不必从头做起或复制原有代码,这样,大大减少了重新编写新代码的工作量。4 软件工程软件工程 落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。软件工程源于软件危机软件工程源于软件危机。软件危机软件危机-软件危机的表现软件危机的表现软件成本日益增软件成本日益增长长 软件和硬件费用比不断增加。l软件质量得不到保证l开发进度难以控制l维护非常困

17、难产生软件危机的根源产生软件危机的根源l规模越来越大l复杂性越来越高l缺乏有效、系统原理、原则、方法和工具的指导和辅助如何克服软件危机如何克服软件危机 人们面临的不光是技术问题,更重要的是管理问题。管理不善必然导致失败。人们开始探索用工程的方法进行软件生产的可能性,即用现代工程的概念、原理、技术和方法进行计算机软件的开发、管理和维护。要建一座桥梁。我们会怎么做?了解桥梁的要求、用途设计维护开发大型软件:定义开发维护 于是,计算机科学技术的一个新领域软件工程软件工程诞生了。软件工程强调使用生存周期方法学生存周期方法学和各种结构分析及结构设计技术结构分析及结构设计技术。软件工程软件工程 在完成生存

18、周期每个阶段的任务时,采用适合该阶段任务特点的系统化的技术方法结构分析或结构设计技术。生存周期方法学就指从时间角度对软件开发和维护的复杂问题进行分解,把软件生存的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。软件生命周期软件生命周期 某一软件从被提出并着手开始实现,直某一软件从被提出并着手开始实现,直到软件完成其使命为止的全过程被划分为一到软件完成其使命为止的全过程被划分为一些阶段,并称这一全过程为软件生命周期。些阶段,并称这一全过程为软件生命周期。通常,软件生命周期分三个阶段:通常,软件生命周期分三个阶段:软件软件定义、软件开发、运行维护。定义、软件开发

19、、运行维护。(1)(1)可行性研究与计划制定:确定开发目可行性研究与计划制定:确定开发目标和总的要求,给出功能、可靠性等可能标和总的要求,给出功能、可靠性等可能方案,制定实施计划。方案,制定实施计划。(2)(2)需求分析:对软件需求进行分析并给需求分析:对软件需求进行分析并给出详细定义,编写软件规格说明书及初步出详细定义,编写软件规格说明书及初步的用户手册,提交评审。的用户手册,提交评审。1 1 软件定义软件定义-软件要软件要“做什么做什么”(3)(3)系统设计:概要设计和详细设计,给出系统设计:概要设计和详细设计,给出软件的结构、模块和功能的划分等。编写概软件的结构、模块和功能的划分等。编写

20、概要设计、详细设计说明书和测试计划初稿。要设计、详细设计说明书和测试计划初稿。(4)(4)详细设计:源程序编码,把软件设计转详细设计:源程序编码,把软件设计转换成计算机可以接受的程序代码。编写用户换成计算机可以接受的程序代码。编写用户手册、操作手册和单元测试计划。手册、操作手册和单元测试计划。(5)(5)编码:编码:(6)(6)测试:设计测试用例,检验软件各个组测试:设计测试用例,检验软件各个组成部分。编写测试分析报告。成部分。编写测试分析报告。2 2 软件开发软件开发软件要软件要“怎么做怎么做”3 3 软件运行软件运行和维护和维护 (7)(7)软件投入运行,维护软件投入运行,维护(进行扩充和删进行扩充和删改改)。实实 验验

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁