好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

PM08Chap01概述.ppt

37页
  • 卖家[上传人]:cl****1
  • 文档编号:578680307
  • 上传时间:2024-08-24
  • 文档格式:PPT
  • 文档大小:861.52KB
  • / 37 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第第1章章 概述概述提纲提纲1.0 程序设计语言程序设计语言1.1 程序设计方法学发展史程序设计方法学发展史1.2 软件技术的发展概述软件技术的发展概述1.3 程序设计方法学的定义和研究的内容程序设计方法学的定义和研究的内容1.4 与软件工程的关系与软件工程的关系1.5 程序设计的一般方法程序设计的一般方法2007年年3月月12日日1鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述1.0 程序设计语言程序设计语言n从从1952年第一个高级语言年第一个高级语言Short Code诞生到现在,程序设诞生到现在,程序设计语言先后出现了不同类型、不同版本不下数百种语言计语言先后出现了不同类型、不同版本不下数百种语言2007年年3月月12日日2鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述1.0 程序设计语言程序设计语言nDeterministic vs. Concurrent (确定型和并发型确定型和并发型)nImperative vs. Declarative(命令型和声明型)(命令型和声明型)n程序的类型程序的类型2007年年3月月12日日3鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述1.0 程序设计语言程序设计语言n确定型程序确定型程序, n对每个输入要么给出一个答案,要么是一直循环;对每个输入要么给出一个答案,要么是一直循环;通常用顺序型程序设计语言编写,并且运行在顺通常用顺序型程序设计语言编写,并且运行在顺序型计算机上,但是有时也可以并行化。

      序型计算机上,但是有时也可以并行化n并发型程序并发型程序n可以产生许多不同的答案,或根本没有答案,从可以产生许多不同的答案,或根本没有答案,从作为响应系统的意义上,他不断地与所处的环境作为响应系统的意义上,他不断地与所处的环境进行交互;通常同时运行在多个处理器上进行交互;通常同时运行在多个处理器上n程序的类型程序的类型-- Deterministic vs. Concurrent2007年年3月月12日日4鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述nImperative programs(命令型程序命令型程序) are those of most conventional languages; they involve commands changing the state of the machine to perform a task;nDeclarative programs(说明型说明型) give a mathematical axiomatization(公理公理) of a problem, as opposed to low-level instructions on how to solve it; they can be based on different logical systems.nThe deterministic vs. concurrent and the imperative vs. declarative are orthogonal distinctions: all four combinations are possible. n程序的类型程序的类型--imperative vs. declarative:1.0 程序设计语言程序设计语言2007年年3月月12日日5鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述Prolog程序程序hanoi(N):-move(N,left,centre,right)                 move(0,_,,_,,_,,)::-! .                 move(N,A,B,C):- M is N-1,                                            move(M,,A,,C,,B),,                                           inform(A,B),                                           move(M,C,B,A)                inform(X,Y):- write([move,a,disc,from, the,X,               pole,to,the,Y,pole]),n1.本例中谓词本例中谓词honoi只有只有1个变元,表示如果有个变元,表示如果有N个圆盘在个圆盘在A柱柱上,则上,则hanoi将输出将输出N个圆盘由个圆盘由A柱移到柱移到B柱的移动轨迹序列;柱的移动轨迹序列;谓词谓词move有有4个变元,其中第一个为要移动的盘的个数,第个变元,其中第一个为要移动的盘的个数,第二、三、四变元分别为源柱子、目标柱子、临时存放柱;谓二、三、四变元分别为源柱子、目标柱子、临时存放柱;谓词词inform利用利用write来输出移动的轨迹。

      来输出移动的轨迹 2007年年3月月12日日6鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述RoadMap1.0 程序设计思想与程序设计语言程序设计思想与程序设计语言1.1 程序设计方法学发展史程序设计方法学发展史1.2 软件技术的发展概述软件技术的发展概述1.3 程序设计方法学的定义和研究的内容程序设计方法学的定义和研究的内容1.4 与软件工程的关系与软件工程的关系1.5 程序设计的一般方法程序设计的一般方法2007年年3月月12日日7鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述1.1 程序设计方法学发展历史程序设计方法学发展历史n50年代年代—60年代初,年代初,手工艺式的程序设计手工艺式的程序设计方法D.E.Knuth把程序称为艺术品把程序称为艺术品n60年代末年代末—70年代初,年代初,n出现出现软件危机软件危机:一方面需要大量的软件系统,:一方面需要大量的软件系统,如如OS、、DBMS;;另一方面,软件研制周期长,另一方面,软件研制周期长,可靠性差,维护困难。

      可靠性差,维护困难n编程的重点:希望编写出的程序结构清晰、编程的重点:希望编写出的程序结构清晰、易阅读、易修改、易验证,即得到易阅读、易修改、易验证,即得到好结构的好结构的程序程序2007年年3月月12日日8鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述1.1 程序设计方法学发展历史程序设计方法学发展历史n1968年,北大西洋公约组织(年,北大西洋公约组织(NATO))在西德召在西德召开了第一次开了第一次软件工程会议软件工程会议,分析了危机的局面,,分析了危机的局面,研究了问题的根源,第一次提出了研究了问题的根源,第一次提出了用工程学的办用工程学的办法解决软件研制和生产的问题法解决软件研制和生产的问题,本次会议可以算,本次会议可以算做是软件发展史上的一个重要的里程碑做是软件发展史上的一个重要的里程碑n1969年,年,IFIP((国际信息处理协会)成立了国际信息处理协会)成立了“程序设计方法学工作组程序设计方法学工作组”,专门研究程序设计方,专门研究程序设计方法学,法学,程序设计从手工艺式向工程化的方法迈进程序设计从手工艺式向工程化的方法迈进。

      2007年年3月月12日日9鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述n1968年,结构化程序设计方法的研究年,结构化程序设计方法的研究Dijkstra提出了提出了GOTO有害论,希望有害论,希望通过程序静态结构的通过程序静态结构的良好性保证程序动态运行的正确性良好性保证程序动态运行的正确性n1969年,年,Wirth提出采用提出采用“自顶向下逐步求精、自顶向下逐步求精、分而治之分而治之”的原则进行大型程序的设计的原则进行大型程序的设计n其基本思想是:从欲求解的原问题出发,运用其基本思想是:从欲求解的原问题出发,运用科学抽科学抽象的方法,把它分解成若干相对独立的小问题,象的方法,把它分解成若干相对独立的小问题,依次依次细化,直至各个小问题获得解决为止细化,直至各个小问题获得解决为止结构化程序设计的研究结构化程序设计的研究1.1 程序设计方法学发展历史程序设计方法学发展历史2007年年3月月12日日10鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述“程序正确性证明程序正确性证明”的研究的研究n1967年,年,Floyd提出用提出用“断言法断言法”证明框图程证明框图程序的正确性序的正确性n1969年,年,Hoare在在Floyd的基础上,定义了一的基础上,定义了一个个小语言和一个逻辑系统小语言和一个逻辑系统。

      此逻辑系统含有程序此逻辑系统含有程序公理和推导规则,目的在于证明程序的部分正确公理和推导规则,目的在于证明程序的部分正确性,这就是著名的性,这就是著名的Hoare逻辑他的工作为公理逻辑他的工作为公理学语义的研究奠定了基础学语义的研究奠定了基础1.1 程序设计方法学发展历史程序设计方法学发展历史2007年年3月月12日日11鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述“程序正确性证明程序正确性证明”的研究的研究(续续)n1973年,年,Hoare和和Wirth把把PASCAL语言的大部分公理化语言的大部分公理化n1974年,人们利用模逻辑验证并行程序的正确性年,人们利用模逻辑验证并行程序的正确性n1975年一个基于公理和推导规则的自动验证系统首次出现年一个基于公理和推导规则的自动验证系统首次出现n1976年,年,Dijkstra提出了最弱前置谓词和谓词转换器的概念,提出了最弱前置谓词和谓词转换器的概念,用于进行程序的正确性证明和程序的形式化推导用于进行程序的正确性证明和程序的形式化推导n1979年,出现了用公理化思想定义的程序设计语言年,出现了用公理化思想定义的程序设计语言Euclid。

      n1980年,年,D.Gries综合了以谓词演算为基础的证明系统,称综合了以谓词演算为基础的证明系统,称之为之为“The Science of Programming”首次把程序设计从首次把程序设计从经验、技术升华为科学经验、技术升华为科学1.1 程序设计方法学发展历史程序设计方法学发展历史2007年年3月月12日日12鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述关于程序正确性证明的争论关于程序正确性证明的争论n关于程序正确性证明的争论关于程序正确性证明的争论n怀疑和反对派怀疑和反对派理由:理由:n一,形式证明太复杂,谁能够保证证明本身没有错一,形式证明太复杂,谁能够保证证明本身没有错误呢!误呢!n二,程序写好后再证明其正确性,相当于二,程序写好后再证明其正确性,相当于“马后炮马后炮”,即错误已经铸成,证明何能补救?,即错误已经铸成,证明何能补救?n折中的方案:折中的方案:编写程序,边考虑证明即程序编写程序,边考虑证明即程序设计与正确性证明同时并行考虑设计与正确性证明同时并行考虑1.1 程序设计方法学发展历史程序设计方法学发展历史2007年年3月月12日日13鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述构造正确的程序构造正确的程序n利用利用Dijkstra的的谓词转换器及其演算规则集合谓词转换器及其演算规则集合,可以推,可以推导出正确的程序。

      导出正确的程序n利用程序变换构造正确的程序利用程序变换构造正确的程序它对程序应用一连串的它对程序应用一连串的保护正确性的变换规则,最终得到可执行的程序程序保护正确性的变换规则,最终得到可执行的程序程序变换是变换是70年代以来,年代以来,“程序设计方法学程序设计方法学”研究的重要方研究的重要方面,是程序设计自动化很有希望的途径之一递归程序面,是程序设计自动化很有希望的途径之一递归程序变换是这一时期的最有意义的成果变换是这一时期的最有意义的成果如如Burstall和和Darlington的递归程序变换系统等的递归程序变换系统等n逻辑程序设计和函数程序设计逻辑程序设计和函数程序设计代表一种新的研究方向代表一种新的研究方向Prolog是以谓词逻辑的子集(是以谓词逻辑的子集(Hoare子句)为基础的一子句)为基础的一种形式系统种形式系统Prolog的执行过程就是执行逻辑上消解算的执行过程就是执行逻辑上消解算法的过程法的过程1.1 程序设计方法学发展历史程序设计方法学发展历史2007年年3月月12日日14鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述抽象数据类型的研究抽象数据类型的研究n抽象数据类型(抽象数据类型(ADT))的研究。

      的研究n抽象数据类型是程序设计方法学中一抽象数据类型是程序设计方法学中一种极为重要的方法人们把它誉为程种极为重要的方法人们把它誉为程序设计方法学发展史上的一个重要的序设计方法学发展史上的一个重要的里程碑1.1 程序设计方法学发展历史程序设计方法学发展历史2007年年3月月12日日15鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述1.1 程序设计方法学发展历史程序设计方法学发展历史n面向对象的程序设计面向对象的程序设计OOPn面向组件的程序设计面向组件的程序设计COPn实现软件二进制的代码复用,实现实现软件二进制的代码复用,实现“软件即插即用软件即插即用”n面向方面的程序设计面向方面的程序设计AOPnAOP(Aspect Oriented Programming)是是OOP的延续,的延续,AOP实际是实际是GoF设计模式的延续,该模式孜孜不倦追设计模式的延续,该模式孜孜不倦追求的是求的是调用者和被调用者之间的解耦调用者和被调用者之间的解耦,,AOP可以说也可以说也是这种目标的一种实现是这种目标的一种实现n极限编程极限编程XP-eXtreme P.nXP是是一种周密而严谨的软件开发流程一种周密而严谨的软件开发流程。

      nXP强调团队合作强调团队合作XP的价值观是增强交流、力求简的价值观是增强交流、力求简单、寻求反馈以判断好坏和勇于面对现实(勇气)单、寻求反馈以判断好坏和勇于面对现实(勇气)n嵌入式程序设计嵌入式程序设计Embedded P.2007年年3月月12日日16鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述程序设计方法的发展程序设计方法的发展n面向计算机的程序设计面向计算机的程序设计n机器语言,注重机器,逐一执行机器语言,注重机器,逐一执行n面向过程的程序设计面向过程的程序设计n结构化程序设计结构化程序设计 —— 以数据为中心以数据为中心n自顶向下,逐步求精自顶向下,逐步求精n按功能分解,数据与操作是分离的按功能分解,数据与操作是分离的n面向对象程序设计面向对象程序设计 —— 以对象为中心以对象为中心n注重对象,抽象成类注重对象,抽象成类n对象、类、封装、继承、多态对象、类、封装、继承、多态n组件程序设计组件程序设计 —— 以组件为中心以组件为中心n即插即用即插即用n其它程序设计方法:递归程序设计、嵌入式其它程序设计方法:递归程序设计、嵌入式综综合合使使用用2007年年3月月12日日17鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述与程序设计有关的图灵奖获得者与程序设计有关的图灵奖获得者•1972年,年,Edsgar Wybe Dijkstra,最先,最先察觉察觉“Goto 有害有害”的计算机科学大师的计算机科学大师•1974年,年,Donald Ervin Knuth,, 经典巨经典巨著著《《The Art of Programming》》•1978年,年,Robert W. Floyd, 前后断言法前后断言法的创始人,归纳断言法的创始人,归纳断言法•1980年,年,C. A. R. Hoare, 从从QuickSort,,CASE到程序设计语言公理化到程序设计语言公理化•1984年,年,Niklaus Wirth,,PASCAL之父之父及结构化程序设计的首创者及结构化程序设计的首创者2007年年3月月12日日18鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述RoadMap1.0 程序设计思想与程序设计语言程序设计思想与程序设计语言1.1 程序设计方法学发展史程序设计方法学发展史1.2 软件技术的发展概述软件技术的发展概述1.3 程序设计方法学的定义和研究的内容程序设计方法学的定义和研究的内容1.4 与软件工程的关系与软件工程的关系1.5 程序设计的一般方法程序设计的一般方法2007年年3月月12日日19鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述1.2 软件技术的发展概述软件技术的发展概述1.软件领域的发展软件领域的发展 §软件需求的变化软件需求的变化§软件环境的变化软件环境的变化§软件开发模式的变化软件开发模式的变化2.软件技术发展的五代历程软件技术发展的五代历程 3.软件产业的现状与未来软件产业的现状与未来 2007年年3月月12日日20鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述1.软件领域的发展-软件领域的发展-软件需求的变化软件需求的变化n计算计算n实用实用n管理管理(MIS)n分布式系统分布式系统2007年年3月月12日日21鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述1. 软件领域的发展-软件领域的发展-软件环境的变化软件环境的变化单任务单任务多任务多任务文字界面文字界面图形界面图形界面单线程单线程多线程多线程平台相关平台相关跨平台跨平台单机单机(本地本地)网络网络(分布式分布式)单一语言单一语言多种语言多种语言Return2007年年3月月12日日22鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述1.软件领域的发展-软件领域的发展-软件开发模式软件开发模式机器码机器码高级语言高级语言和脚本代码和脚本代码OS + Compiler + EditorOS + Compilers + IDEs+ Libraries + Wizards+ Components + other infrastructures+ Experience返回2007年年3月月12日日23鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述2. 软件技术的发展软件技术的发展--五代历程五代历程 Ø第一代第一代(50~60年代年代),是以,是以Algol、、Fortran等编程等编程语言为标志的语言为标志的算法技术算法技术 Ø第二代第二代(70年代年代),是以,是以Pascal、、Cobol等编程语等编程语言和关系数据库管理系统为标志的言和关系数据库管理系统为标志的结构化软件技结构化软件技术术 Ø第三代第三代(80年代年代)的软件技术是以的软件技术是以Smalltalk、、C++等为代表的等为代表的面向对象技术面向对象技术(OO) Ø第四代第四代(90年代年代)的软件技术是以的软件技术是以CORBA等为代等为代表的表的分布式面向对象技术分布式面向对象技术(DOO) Ø第五代第五代(90年代中期至今年代中期至今)软件技术是以软件技术是以COM、、CORBA3.0、、EJB和和WebService等为代表的等为代表的软件软件组件技术组件技术 2007年年3月月12日日24鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述3. 软件产业的现状与未来软件产业的现状与未来Ø数字表明,数字表明,50%的大型软件项目都会中途夭折。

      %的大型软件项目都会中途夭折大型项目平均都要推迟大型项目平均都要推迟一年以上的工期一年以上的工期,成本要,成本要超出计划的一倍,而性能却比预期的要低得多超出计划的一倍,而性能却比预期的要低得多主要因素如下  主要因素如下          ((1)新技术的发展太快  )新技术的发展太快                ((2)业务需求的变化太快业务需求的变化太快              ((3)软件开发人员跳槽频繁软件开发人员跳槽频繁    Ø虽然软件生产的理论和实践近年来已有巨大进展,虽然软件生产的理论和实践近年来已有巨大进展,各软件企业仍为贯彻软件工程的基本原则而奋斗各软件企业仍为贯彻软件工程的基本原则而奋斗着软件开发仍然是着软件开发仍然是手艺活手艺活,软件产品依然是,软件产品依然是工工艺品软件产业还不是一个成熟的产业软件产业还不是一个成熟的产业 2007年年3月月12日日25鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述4. 软件产业的现状与未来(续)软件产业的现状与未来(续)§目前的成熟产业,象计算机硬件产业、汽车目前的成熟产业,象计算机硬件产业、汽车制造产业等,存在如下特征。

       制造产业等,存在如下特征  (1) 装配化生产并可根据定单制造;  装配化生产并可根据定单制造;   (2) 存在第三方零配件市场;  存在第三方零配件市场;   (3) 可通过零配件的更换来方便地对整个产品进可通过零配件的更换来方便地对整个产品进行维修;  行维修;   (4) 整个产业形成供应链,产品生产的成本相对整个产业形成供应链,产品生产的成本相对整个供应链来说只是小头整个供应链来说只是小头 2007年年3月月12日日26鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述4. 软件产业的现状与未来(续)软件产业的现状与未来(续)n目前的软件组件技术,尚不能使软件的目前的软件组件技术,尚不能使软件的生产达到目前成熟产业的工业化水平生产达到目前成熟产业的工业化水平n软件组件技术的下一代技术软件组件技术的下一代技术——n商业组件技术商业组件技术(BusinessComponent),,将为将为软件的工业化生产提供理论与技术基础软件的工业化生产提供理论与技术基础 n还是???还是???2007年年3月月12日日27鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述RoadMap1.0 程序设计思想与程序设计语言程序设计思想与程序设计语言1.1 程序设计方法学发展史程序设计方法学发展史1.2 软件技术的发展概述软件技术的发展概述1.3 程序设计方法学的定义和研究的内容程序设计方法学的定义和研究的内容1.4 与软件工程的关系与软件工程的关系1.5 程序设计的一般方法程序设计的一般方法2007年年3月月12日日28鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述1.3 程序设计方法学的定义和研究的内容程序设计方法学的定义和研究的内容n1. 程序设计方法学的定义程序设计方法学的定义n程序设计方法学是程序设计方法学是n讨论讨论程序的性质以及程序设计的理论和方法程序的性质以及程序设计的理论和方法的一门学科,的一门学科,n研究和构造程序的过程的学问研究和构造程序的过程的学问,,n研究关于问题的分析,环境的模拟,概念的研究关于问题的分析,环境的模拟,概念的获取,需求定义的描述,以及把这种描述变获取,需求定义的描述,以及把这种描述变换细化和编码成机器可以接受的表示的一般换细化和编码成机器可以接受的表示的一般的方法的方法.2007年年3月月12日日29鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述2. 研究的内容研究的内容n结构化程序设计结构化程序设计n数据抽象与模块化程序设计数据抽象与模块化程序设计n程序正确性证明程序正确性证明n程序变换程序变换n程序的形式说明与推导程序的形式说明与推导n程序综合与分析技术程序综合与分析技术n面向对象的程序设计方法面向对象的程序设计方法n大型程序的开发大型程序的开发2007年年3月月12日日30鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述RoadMap1.0 程序设计思想与程序设计语言程序设计思想与程序设计语言1.1 程序设计方法学发展史程序设计方法学发展史1.2 软件技术的发展概述软件技术的发展概述1.3 程序设计方法学的定义和研究的内容程序设计方法学的定义和研究的内容1.4 与软件工程的关系与软件工程的关系1.5 程序设计的一般方法程序设计的一般方法2007年年3月月12日日31鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述1.4 与软件工程的关系与软件工程的关系n研究方法的不同研究方法的不同n软件工程主要应用软件工程主要应用工程的方法和技术工程的方法和技术研究软研究软件开发与维护的方法、工具和管理的一门件开发与维护的方法、工具和管理的一门计计算机科学与工程学算机科学与工程学交叉的学科交叉的学科nRUP、、Crystal、、XP、、ASD(适应性软件开发)(适应性软件开发)n程序设计方法学主要运用程序设计方法学主要运用数学方法数学方法研究程序研究程序的性质以及程序设计的理论和方法的学科的性质以及程序设计的理论和方法的学科n正确性、可信性、可移植性、正确性、可信性、可移植性、…2007年年3月月12日日32鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述1.4与软件工程的关系(续)与软件工程的关系(续)n研究的对象不同研究的对象不同n软件工程的研究对象是软件工程的研究对象是软件系统软件系统。

      目标是降低软件的目标是降低软件的开发成本,提高软件的质量,提高软件的可维护性,开发成本,提高软件的质量,提高软件的可维护性,提高软件开发的效率着重于软件的提高软件开发的效率着重于软件的宏观可用性宏观可用性n程序设计方法学研究对象是程序设计方法学研究对象是程序程序目标是保证目标是保证程序的程序的正确性正确性着重于程序的着重于程序的微观正确性微观正确性n软件工程与程序设计方法学的界限越来越模糊软件工程与程序设计方法学的界限越来越模糊n程序设计方法学是软件工程的基础程序设计方法学是软件工程的基础2007年年3月月12日日33鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述RoadMap1.0 程序设计思想与程序设计语言程序设计思想与程序设计语言1.1 程序设计方法学发展史程序设计方法学发展史1.2 软件技术的发展概述软件技术的发展概述1.3 程序设计方法学的定义和研究的内容程序设计方法学的定义和研究的内容1.4 与软件工程的关系与软件工程的关系1.5 程序设计的一般方法程序设计的一般方法2007年年3月月12日日34鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述1.5 程序设计的一般方法程序设计的一般方法n程序设计的语言程序设计的语言n机器语言、汇编语言、机器语言、汇编语言、Fortran、、Cobol、、Pascal、、C/C++、++、Javan三种程序设计结构三种程序设计结构n顺序、分支、循环顺序、分支、循环n程序设计的基本方法要素程序设计的基本方法要素n程序分析与综合程序分析与综合n算法设计与数据结构设计算法设计与数据结构设计n程序设计方法:合理的结构、准确表达与语言逻辑、程序设计方法:合理的结构、准确表达与语言逻辑、注意非语法错误引起的不稳定性注意非语法错误引起的不稳定性n程序设计风格程序设计风格2007年年3月月12日日35鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述程序设计的一般途径程序设计的一般途径2007年年3月月12日日36鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 第第1章章 概述概述小结小结n程序设计的发展史程序设计的发展史n手工--工程化--科学手工--工程化--科学n软件技术的发展软件技术的发展n需求、环境和模式发生变化需求、环境和模式发生变化n程序设计方法学的定义及内容程序设计方法学的定义及内容n程序设计方法学与软件工程的关系程序设计方法学与软件工程的关系n相辅相成,互相促进相辅相成,互相促进n程序设计的一般方法程序设计的一般方法2007年年3月月12日日37鲍玉斌鲍玉斌 baoyb@    计算机软件所计算机软件所     程序设计方法学程序设计方法学 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.