程序设计方法概述
常见的程序设计方法

常见的程序设计方法常见的程序设计方法1.概述程序设计是计算机科学中非常重要的一门学科,它主要涉及将问题转化为计算机可以理解和执行的指令集合,以达到完成特定任务的目的。
本文将介绍几种常见的程序设计方法,供参考使用。
2.面向过程程序设计面向过程程序设计是一种基于顺序执行的方法。
它将程序看作一系列的步骤或过程,每个步骤依次执行,直至达到预期的结果。
这种方法主要关注于问题的解决过程,而不是问题本身的抽象和封装。
2.1 定义函数在面向过程程序设计中,函数是重要的组织单元。
通过将代码逻辑组织为函数,可以实现代码的重用和模块化管理。
定义函数时,应该明确函数的输入和输出,以及函数内部的具体实现。
2.2 控制结构面向过程程序设计中的控制结构主要包括顺序结构、选择结构和循环结构。
顺序结构表示代码按照自上而下的顺序执行。
选择结构通过条件判断来选择执行不同的代码块。
循环结构可以重复执行代码块,直到满足退出条件。
3.面向对象程序设计面向对象程序设计是一种以对象为中心的方法。
它将程序看作一组对象的集合,每个对象都有自己的属性和方法。
通过对对象进行抽象和封装,可以更好地模拟现实世界的问题,提高代码的可读性和可维护性。
3.1 类和对象3.2 封装、继承和多态封装是面向对象程序设计的核心思想之一,它将数据和方法封装在一个对象中,提高了代码的安全性和可复用性。
继承允许创建新类从已有类中继承属性和方法,减少了代码的重复工作。
多态允许同一对象以不同的方式呈现,根据当前上下文来选择调用不同的方法。
4.函数式程序设计函数式程序设计是一种基于数学函数的方法。
它将程序视为一系列函数的组合和应用,强调函数的纯粹性和不可变性,避免副作用的产生。
4.1 高阶函数函数式程序设计中的高阶函数指的是可以接受函数作为参数或返回函数的函数。
通过使用高阶函数,可以实现代码的简化和灵活性的增加。
4.2 不可变性和副作用函数式程序设计强调函数的不可变性,即函数的结果只由输入决定,不受外部状态的影响。
程序设计的三种方法

程序设计的三种方法程序设计是指通过编写计算机程序来解决问题的过程。
在程序设计中,有许多不同的方法可以使用。
本文将介绍三种常见的程序设计方法:结构化程序设计、面向对象程序设计和函数式程序设计。
1. 结构化程序设计结构化程序设计是一种以结构为基础的编程方法。
它强调将程序分解为较小的、可重用的模块,并使用顺序、选择和循环等控制结构来组织代码。
结构化程序设计帮助开发者编写清晰、易于理解和维护的代码。
特点:•模块化:将程序分解为较小的模块,每个模块负责一个特定的任务。
•顺序性:按照特定顺序执行语句,确保正确的流程。
•选择性:使用条件语句(如if语句)根据不同情况执行相应操作。
•循环性:使用循环语句(如for循环)重复执行一段代码。
优点:•结构清晰:代码分解为模块,易于理解和修改。
•可维护性高:模块化使得代码易于维护和调试。
•可重用性好:模块可以在不同项目中重复使用。
缺点:•不适合大型项目:结构化程序设计对于大型项目的管理和维护较为困难。
•难以处理复杂逻辑:结构化程序设计可能导致嵌套过深的if语句,使得代码难以理解。
2. 面向对象程序设计面向对象程序设计是一种以对象为基础的编程方法。
它将数据和操作封装到对象中,通过定义类和创建实例来组织代码。
面向对象程序设计强调数据的抽象和封装,以及对象之间的交互。
特点:•类:定义了对象的属性和方法。
•对象:类的实例化,具有特定的属性和方法。
•继承:允许一个类继承另一个类的属性和方法。
•多态性:同一个方法可以根据不同的对象产生不同的行为。
优点:•可重用性好:面向对象程序设计通过继承和多态提供了代码重用机制。
•易于扩展:通过添加新类或修改现有类,可以方便地扩展功能。
•更好的抽象能力:面向对象程序设计允许开发者将真实世界中的概念映射到代码中。
缺点:•学习曲线陡峭:面向对象程序设计需要掌握类、对象、继承等概念,对初学者来说可能较难理解。
•性能开销:相比于结构化程序设计,面向对象程序设计可能有一定的性能开销。
常见的程序设计方法

常见的程序设计方法在计算机程序设计中,常见的程序设计方法有许多种。
程序设计是将问题转化为计算机可以理解和执行的指令或代码的过程,而不同的问题和需求通常需要使用不同的程序设计方法来解决。
下面将介绍一些常见的程序设计方法。
1. 顺序程序设计顺序程序设计是最基础的程序设计方法之一。
顺序程序设计按照指令的顺序逐步执行,从上到下,从左到右。
开发者需要按照问题的逻辑和需求,将指令按照正确的顺序编写。
这种方法简单明了,适用于一些简单的问题,但对于复杂的问题可能会显得不够灵活。
2. 分支程序设计分支程序设计基于条件语句,根据不同的条件选择不同的执行路径。
常见的条件语句有if语句和switch语句。
开发者可以根据不同的条件,执行不同的代码块,从而实现问题的不同分支。
分支程序设计适用于需要根据条件进行不同操作的问题,可以增加程序的灵活性和适应性。
3. 循环程序设计循环程序设计允许程序根据需要重复执行一段代码块。
循环语句的常见形式有for循环、while循环和do-while循环。
循环程序设计可以逐次迭代一个过程,直到满足退出条件为止。
这种方法适用于需要重复执行相同或类似操作的问题,提高了程序的效率和可重用性。
4. 递归程序设计递归程序设计是指一个函数或过程在执行过程中调用自身的方法。
通过递归,一个复杂的问题可以被拆分为多个相同或类似的子问题,从而简化解决步骤。
递归程序设计适用于问题可以自我分解为更小规模问题的情况,但需要注意递归深度和终止条件以避免无限循环。
5. 面向对象程序设计面向对象程序设计是一种以对象和类为基本单位的程序设计方法。
它将数据和操作这些数据的函数封装成对象,通过对象之间的交互来解决问题。
面向对象程序设计具有抽象、封装、继承和多态等特性,可以更好地模拟和解决现实世界中的问题。
面向对象程序设计适用于复杂的问题,提高了代码的可读性和可维护性。
6. 函数式程序设计函数式程序设计是一种基于数学函数概念的程序设计方法。
《设计程序与方法》课件——09、设计程序概述

设计 程序 类型
按照逻辑 思维方式
分类
线性设计程序 平行式设计程序 循环式设计程序
问题
设计
解决
分析
评价与反思
循环式设计程序
按照产品 设计类型
分类
产品改良设计程序 产品开发设计程序 复杂系统的产品设计程序
不同公司 设计程序
德国青蛙设计公司的设计程序 日本日立中央研究所的设计程序 维杰 库玛提出的设计程序
设计 程序 目的
设计是由抽象到具象的过程 运用逻辑的推理、理性的思辨、形成合理的设计规范或严谨的 设计程序 保证设计中各环节、各因素达到最佳平衡和协调
设计 程序 意义
设计 程序 意义
设计程序应具有科学性、合理性和可行性 规范有效的程序和正确的方法是设计取得成功的基本保证 将新产品设计的风险性及不确定性降至最低
2021 PRODUCT DESIGN
设计程序与方法
设计程序概述
程序
程序
程序是指为了完成某项任务而制定的计划、规程、 步骤,以及具体环节所采用的方法和途径
设计 程序
设计 程序
设计程序是指设计的实施过程及完成设计 任务的次序与途径
创造性
生产性
计划性
全面性
理性 感性 发展
设计 程序 目的
市场调查 信息资料
公司内部评价 外
市场调查 信息资料
DO
设计程序 设计方法
图纸 生产技术
工程测试 结构设计
效果演示 模型制作
分析
构建 洞察
了解 人群
了解 环境
研究
合成
探索 概念
确立 目标
构建 方案
实现 产品
实现
规划
开发
程序设计的主要方法

程序设计的主要方法
编程或程序设计的主要方法主要包括结构化编程、面向对象编程和面向过程编程等三种。
结构化编程,这是早期程序设计的主要方法,重点是减少代码的复杂性,提高程序的可读性。
它主要包括顺序、选择和循环等三种基本控制结构。
常见的结构化编程语言有C,Pascal等。
面向对象编程是一种热门的编程方法,强调通过抽象的对象模型以模拟世界中的对象。
这种方法的核心思想是数据抽象、封装、多态和继承。
面向对象编程语言具有良好的扩展性和复用性,是现代大多数复杂应用程序的首选设计方法。
常见的面向对象编程语言有Java,C++等。
面向过程编程是一种以过程为中心的编程方法,强调通过算法来解决问题。
这种编程方法以任务的完成为目标,每个过程都被看作是一个独立的实体。
过程之间通过输入和输出数据进行交流。
常见的面向过程编程语言有Fortran,C等。
此外,还有一些较新的程序设计方法,例如函数式编程、逻辑编程等。
函数式编程是一种以函数为主导的编程方法,逻辑编程则是一种以逻辑推理为基础的编程方法。
这些程序设计方法相互之间并不排斥,往往在实际应用中会结合使用。
什么是程序设计方法

什么是程序设计方法程序设计方法是指在软件开发过程中采用的一系列技术、策略和流程,以确保软件的质量和效率。
它包括了从需求分析到软件测试的整个生命周期。
程序设计方法的核心目的是提高软件的可靠性、可维护性和可扩展性。
1. 程序设计方法的分类程序设计方法主要分为两大类:结构化方法和面向对象方法。
- 结构化方法:这是一种传统的编程方法,侧重于将问题分解为小的、可管理的模块,然后逐步构建整个系统。
它强调自顶向下的设计和模块化。
- 面向对象方法:这种设计方法侧重于使用对象和类来模拟现实世界中的实体和它们的行为。
面向对象编程(OOP)是一种流行的面向对象方法,它使用类和对象来创建软件。
2. 程序设计方法的关键要素- 需求分析:在程序设计之前,首先要明确软件需要满足的功能和性能需求。
- 设计:根据需求分析的结果,设计软件的架构和组件。
- 编码:将设计转化为实际的代码。
- 测试:确保代码符合设计要求,并且没有错误。
- 维护:软件发布后,需要进行持续的维护和更新。
3. 程序设计方法的步骤- 需求收集:与客户沟通,收集软件需求。
- 需求分析:分析需求的可行性和完整性。
- 系统设计:设计软件的架构和用户界面。
- 详细设计:细化每个模块的功能和实现方式。
- 编码实现:编写代码实现设计。
- 代码审查:检查代码质量,确保符合规范。
- 单元测试:测试每个模块的功能。
- 集成测试:将模块组合在一起,测试整体功能。
- 系统测试:在实际环境中测试软件的性能。
- 用户验收测试:最终用户测试软件,确保满足需求。
- 部署:将软件部署到生产环境。
- 维护:根据用户反馈进行软件的维护和升级。
4. 程序设计方法的优势- 提高效率:通过模块化和重用,可以减少重复工作,提高开发效率。
- 增强可维护性:清晰的结构和文档使得软件更容易维护。
- 提升质量:通过严格的测试流程,可以减少软件中的缺陷。
- 促进团队协作:统一的设计方法可以促进团队成员之间的协作。
常见的程序设计方法
常见的程序设计方法程序设计是指将问题拆解为一系列可执行的指令或算法,并将其转化为计算机能够识别和执行的代码。
常见的程序设计方法包括顺序、选择、循环、递归、分治和动态规划等。
1.顺序:顺序是最简单和最常见的程序设计方法。
顺序程序设计是按照定义的顺序依次执行一系列的语句或指令,每个语句按照顺序执行,直到程序结束。
顺序程序设计常用于简单的计算和数据处理任务。
2.选择:选择是根据特定条件选择不同的执行路径。
常见的选择结构有if语句和switch语句。
if语句根据条件的真假执行不同的代码块,而switch语句根据不同的表达式值执行相应的代码块。
选择结构常用于根据用户的输入或条件的满足来决定程序的执行逻辑。
3.循环:循环是根据特定条件重复执行段代码。
常见的循环结构有while循环、do-while循环和for循环。
这些循环结构可根据循环条件的真假来确定循环的执行次数,从而实现重复执行特定操作的功能。
循环结构常用于处理大量数据或重复需要进行的任务。
4.递归:递归是指在函数或算法的实现中,调用自身来解决更小规模的同类问题。
递归算法是将一个复杂问题分解为更简单的子问题,并通过反复调用自身来解决子问题,最终达到解决原问题的目的。
递归常用于解决具有相似结构的问题,如数学问题、图形问题等。
5.分治:分治是指将问题划分成独立的子问题,对每个子问题进行求解,最后将子问题的解合并成原问题的解。
分治算法的核心思想是将复杂问题分解成多个规模较小且结构相同的子问题,并通过递归地解决这些子问题,最终得到整个问题的解。
分治算法常用于解决问题、排序问题等。
6.动态规划:动态规划是一种将问题划分为重叠子问题并缓存子问题解的方法。
与分治算法不同的是,动态规划算法会通过缓存已求解的子问题的解来避免重复计算,从而提高算法的效率。
动态规划常用于解决优化问题,如背包问题、最短路径问题等。
除以上常见的程序设计方法外,还有一些高级的方法如面向对象编程、函数式编程和事件驱动编程等。
常见的程序设计方法
常见的程序设计方法常见的程序设计方法程序设计方法是指在编写程序时,所采取的一套规范和策略,以达到编程目标的有效手段。
不同的程序设计方法适用于不同的场景和需求,下面将介绍一些常见的程序设计方法。
1. 面向对象编程(Object-Oriented Programming)面向对象编程是一种以对象作为程序的基本单元,通过封装、继承和多态等特性来组织和管理代码的编程方法。
它将问题划分为一系列的对象,每个对象具有独立的状态和行为,并通过消息传递与其他对象进行交互。
面向对象编程具有代码复用性高、可扩展性强、易于维护等特点,广泛应用于软件开发领域。
2. 面向过程编程(Procedural Programming)面向过程编程是一种以过程为基本单元,按照一定的顺序逐步执行的编程方法。
它将问题划分为一系列的步骤,每个步骤是一段具体的代码逻辑。
面向过程编程强调程序的流程控制和数据的处理,更加直观和简单,适用于解决简单、线性的问题。
3. 函数式编程(Functional Programming)函数式编程是一种把计算过程看作是函数求值的方式,强调将程序分解成一系列纯函数的组合。
函数式编程避免使用可变的状态和数据,更注重代码的表达力和可推理性。
它具有代码简洁、模块化好、并发性高等特点,适用于处理数据流和迭代计算等场景。
4. 响应式编程(Reactive Programming)响应式编程是一种基于事件流的编程模式,通过观察者模式处理数据流的变化。
响应式编程关注数据的异步处理和响应,通过将数据流和处理逻辑分离,使得代码更加清晰可读。
它在用户界面交互、编程接口调用、数据处理等方面有广泛应用。
5. 领域驱动设计(Domn-Driven Design)领域驱动设计是一种将业务领域作为核心,通过不断迭代和优化的方式来设计和开发软件系统的方法。
它将复杂的业务问题划分为一系列的领域模型和聚合,通过领域模型来实现业务逻辑和核心功能。
领域驱动设计注重业务思维和可扩展性,广泛应用于复杂的企业级应用开发。
常见的程序设计方法
常见的程序设计方法常见的程序设计方法=======================在软件开发过程中,程序设计是一个非常关键的环节。
良好的程序设计方法能够有效地提高程序的质量和可维护性。
下面将介绍一些常见的程序设计方法,帮助开发者在编写代码时更加高效和规范。
1. 模块化设计-模块化设计是将一个大型的程序拆分成若干个独立的模块,每个模块负责完成特定的功能。
通过模块化设计,可以降低程序的复杂度,提高代码的可读性和可维护性。
每个模块应该具有清晰的接口和功能,便于其他模块进行调用和复用。
2. 面向对象设计--面向对象设计是一种抽象和封装的思想,将现实世界中的事物抽象成对象,在程序中进行模拟和处理。
面向对象设计可以提高代码的可维护性和复用性,通过类和对象的组织结构,可以将代码划分成多个独立的模块,便于分工合作和协同开发。
3. 设计模式-设计模式是一种经过验证和实践的程序设计经验,它提供了一套通用的解决方案,用于解决特定的设计问题。
常见的设计模式包括单例模式、工厂模式、观察者模式等。
采用设计模式可以提高代码的可维护性和扩展性,降低代码的复杂度。
4. 接口设计-接口设计是指定义类或模块提供的公共接口,包括接口的方法、属性和事件等。
好的接口设计可以提高代码的可复用性和灵活性。
接口应该具有清晰的目的和功能,遵循接口隔离原则,确保每个接口的功能单一,便于修改和扩展。
5. 数据结构设计数据结构是程序中用于存储和组织数据的方式。
合理的数据结构设计可以提高代码的效率和性能。
常见的数据结构包括数组、链表、栈、队列等。
在设计数据结构时,需要考虑数据的访问方式和处理需求,选择合适的数据结构来存储和操作数据。
6. 异常处理-异常处理是指在程序运行过程中,当出现错误或异常情况时,及时地捕获并处理。
良好的异常处理可以提高程序的健壮性和可靠性。
在编写代码时,需要合理地使用异常处理机制,捕获和处理可能出现的异常情况,避免程序崩溃或出现未知错误。
c语言程序设计方法
c语言程序设计方法C语言是一种广泛应用于软件开发领域的高级编程语言,其简洁、高效和具有较强的可移植性,使其成为许多程序员首选的编程语言之一。
在进行C语言程序设计时,合理的设计方法能够提高代码的质量和可维护性。
本文将介绍几种常用的C语言程序设计方法,以帮助读者更好地进行程序开发。
一、模块化设计模块化设计是一种将程序拆分成多个独立模块的方法。
每个模块都具有特定的功能,通过模块化设计可以提高代码的可读性和重用性。
在C语言中,可以通过建立函数来实现模块化设计。
一个好的模块化设计应该考虑到函数的功能单一性、接口设计的灵活性以及模块之间的高内聚低耦合原则。
二、注释规范注释是程序开发中不可或缺的一部分,良好的注释规范可以使其他开发人员更好地理解代码的逻辑和意图。
在C语言中,可以使用单行注释(//)和多行注释(/* ... */)来添加注释。
在进行注释时,应尽量避免使用无意义的注释,而要注重对代码中关键逻辑或特殊处理的解释。
三、错误处理在程序开发中,错误处理是非常重要的一环。
良好的错误处理能够提高程序的健壮性和可靠性。
C语言提供了多种处理错误的方式,如使用错误码、异常处理等。
在进行错误处理时,首先应该考虑到可能出现的错误情况,然后针对每种情况制定相应的处理策略,以保证程序的正常运行。
四、优化算法在进行C语言程序设计时,算法的优化是一个至关重要的方面。
合理选择和设计算法能够使程序运行效率更高,减少资源的消耗。
在优化算法时,应注意避免过多的嵌套循环和重复计算,尽量使用已有的库函数和数据结构,以提高程序的执行效率。
五、代码风格良好的代码风格能够使程序的阅读和维护更加方便。
在C语言中,可以采用统一的代码缩进、命名规范和注释规范等来确保代码的可读性。
合理选择变量名和函数名,并使用有意义的命名能够提高代码的可理解性。
此外,在书写代码时,要注意代码的排版,以保持整洁美观。
六、调试技巧调试是程序开发中不可避免的一部分。
掌握一些常用的调试技巧能够帮助程序员更快地定位和解决问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
另外还需考虑人员沟通和软件维护。 程序的开发步骤(大/小程序均适合)
定义 需求规约
设计 求解模型
实现 模型
要知其然,更要知其所以然。
5/36
3.1 问题规模对程序设计方法的影响
问题规模对小程序开发的影响
需求规约简单,易于精确定义;
设计求解模型(即算法)的开发是重点;
―
开发时关注算法的正确性和精巧性。
模块独立性受数据结构制约
―
要知其然,更要知其所以然。
18/36
3.2 结构化程序设计方法
优势特色
以功能为核心构建系统,目标明确,易于理解, 客户描述的需求不精确,涉及开发人员难懂的领域术语;开发 措施(即自顶向下逐步求精)简单有效;
人员使用的专业框图/术语的描述,用户难理解。这样在软件
交付使用前,用户很难对需求转换的有效性和合理性进行确认。
三种结构,且每种结构只允许单入口和单出口。 结合 PC机构造,解释结构化设计思想及其优点。 功 功 系 输入数据 输出数据 ——《中国计算机百科全书 (第二版能 )》 能 …… 统 1 n 要知其然,更要知其所以然。 13/36
3.2 结构化程序设计方法
实例剖析
实例1(问题需求):
―
1、能够记录图书的明细信息及分类信息(包括图书本身 的书名、作者、出版单位、出版年份、是否英文、原版 等等,以及图书的分类号、关键字等等); 2、能记录读者具体情况,查询读者借阅信息; 3、能够查阅当前图书在库及借出情况; 4、能设置读者借阅期限到或者某种条件拒绝借阅的处理; 5、特殊情况的处理; 6、打印各类相关报表,制作各种统计图表……。
3.3 面向对象程序设计方法
方法起源
核心思想
基本概念
实例剖析
要知其然,更要知其所以然。
21/36
3.3 面向对象程序设计方法
面向对象方法的起源
40~50年代,运筹学流行:雷达选址、水雷布阵
60年代,挪威的Dahl帮助Nygaard用计算机求解运 筹学问题,并发布Simula-62,67年正式发布。
3. 掌握OOP的来龙去脉、核心思想,并结合大程序开
发的关注点,理解面向对象的基本概念。 要知其然,更要知其所以然。 3/36
3.1 问题规模对程序设计方法的影响
问题规模的演化(决定了程序规模和复杂性)
最初:面向科学计算,规模小、需求明确
60-70年代:简单管理应用,如财务信息管理。
―
这一阶段,问题开始显现。如程序的质量差、完工时间 开发冒泡排序之类的程序很容易,综合性业务管理 不可预期、完工后难于维护,且生产率较低。人们将上 述问题称作软件危机。各种程序设计方法涌现。
要知其然,更要知其所以然。 2/36
录
第3章 程序设计方法概述
3.1 问题规模对程序设计方法的影响
3.2 结构化程序设计方法
3.3 面向对象程序设计方法
3.4 两种方法的简单评述
1. 理解并掌握大程序开发的特点、难点和关注点;
2. 掌握SP核心思想、实施步骤及方法的优缺点;
本 章 重 点
要知其然,更要知其所以然。 10/36
3.2 结构化程序设计方法
方法起源
核心思想
实例剖要知其所以然。
11/36
3.2 结构化程序设计方法
起源:60年代末关于goto语句的争论
当时软件危机症状明显:质量差、低产出、难维护。 Dijkstra、Wirth等人力主废弃goto,并提出一些结 构化设计的方法和原则,以及语言支持; 后Knuth将讨论引到“好程序”的标准上,让人们 逐步认识到结构的重要性;
― ― ― ―
J.Rumbaugh等提出的OMT方法学
J.Rumbaugh、G.Booch和I.Jacobson等人又提出基于 UML的统一方法
9/36
3.1 问题规模对程序设计方法的影响
两种经典的程序设计方法概述
发展至今,产生许多程序设计方法,其中结构 化程序设计和面向对象程序设计最为经典。
二者思想萌芽几乎同时出现于1968年左右。但 结构化方法率先被业界接受,并占据主导地位。 随着程序规模扩大,结构化方法在可重用性、 可维护性方面遇到困难。人们发现OO方法的部 分思想有助于解决;加之对游戏、GUI程序,结 构化方法难于奏效。于是OO逐渐被重视,并迅 速走出实验室,得以发展和流行。
大程序开发的侧重点 不失败的可能性。
―
可靠性:在特定时间、特定环境、做特定操作 维护包括纠错、增 /删/改功能、换环境、系统重构等,贯穿整
个软件生命周期。可维护性好,可大幅降低维护难度,减少因
维护而引入的各类错误。对提高可维护性的重视,怎么说都不
即系统“核心模块”不会发生“特定类型”错误。
可重用性:对已有模块/子程序,无需修改或仅 总体上,大程序重在如何处理复杂性,设计 为过!软件工程的核心,就是为了提高软件的可维护性。
3.1 问题规模对程序设计方法的影响
大程序开发现状:
缺乏成熟理论支持,确保系统正确是一种梦想;
目前希望在某些关键行为上不出错; 对求解模型,不求完全不变,但求有较规范的 设计方法,模型要易于维护和扩充。
大程序开发应注重什么?
要知其然,更要知其所以然。 8/36
3.1 问题规模对程序设计方法的影响
3.2 结构化程序设计方法· 小结
方法学视角 将系统是做一个给定输入产生特定输出功能体。 核心思想 以功能为核心构建系统,功能可组合、可拆解 主要策略 自顶向下逐步求精
存在问题 以功能为核心构建软件系统,问题多多; 用户和开发人员之间存在语义鸿沟。
要知其然,更要知其所以然。 20/36
之后,伴随C++、Eiffel兴起,OO方法开始走红。
要知其然,更要知其所以然。 22/36
3.3 面向对象程序设计方法
面向对象方法的发展
90年代,OO研究从语言转到软件开发方法方面, 提出了一系列面向对象的开发方法和技术,如:
―
B.Henderson-Sellers和J.M.Edwards提出OO生存周期的 喷泉模型及OO系统开发的七点框架方法OO方法 G.Booch提出的面向对象开发方法学 P.Coad和E.Yourdon提出的OO分析和OO设计
算法完成后,编码/测试(即实现模型)很简单; 人员沟通协作:无(个人独立完成整个过程)
后期维护:即使有,因程序规模小而变得简单。
对面向实际应用的小软件的开发而言,也是如此。
要知其然,更要知其所以然。 6/36
3.1 问题规模对程序设计方法的影响
问题规模对大程序开发的影响
难于定义稳定、精确的需求规约;
核心思想
以功能为核心的,系统是功能模块的组装。
―
所谓结构化程序设计,就是这样一种编程方法: 由若干子模块组成,各模块独立性较强。 1. 用自顶向下逐步求精策略指导开发过程; 2. 程序由若干模块(或构件)组装而成;
“结构化”是指可组合、可分解,即系统(或大模块)
设计策略:自顶向下逐步求精
结构化就是功能可组合、可拆解。 3. 构成模块的每一子程序只能包含顺序、分支、选择等
可维护性:实施各类维护活动的难易程度。 可重用性高,可减少工作量(需求、设计、编码测试、维
出结构合理、易于维护的系统处理框架。
需少量修改就可拿到别处使用的难易程度;
护),降低错误。因为重用模块经过多次复用,存在错误的
可能性远比新开发程序低,可靠性更容易保证。 要知其然,更要知其所以然。
以PC机架构设计为例解释上述侧重点。
― ― ―
―
要知其然,更要知其所以然。
14/36
3.2 结构化程序设计方法
实例剖析
解决方案
图书资料管理系统
信息维护
数据检索
报表处理
特殊处理
图书信息 增删改
读者信息 增删改
员工信息 增删改
管理权限 增删改
……
要知其然,更要知其所以然。
15/36
3.2 结构化程序设计方法
方案剖析
简单易用。以功能为核心搭建系统框架,目标 明确,方法简单,易于学习,易于实现。
江西师范大学·计算机信息工程学院·计算机科学系
第1章 程序设计语言概述 第2章 程序设计语言的基本成分 第3章 程序设计方法概述
目
第4章 面向对象语言基础
第5章 类的管理及常用工具类
第6章 异常处理和断言
第7章 线程 第8章 GUI编程基础和applet 第9章 I/O流 第10章 网络通信 第11章 泛型与集合框架
1972年,Alan.Kay研制世界上首个图形用户界面的 计算机系统Alto。发布语言SmallTalk72,GUI界面 O.J.Dahl K.Nygaard Alan.Kay 的推广使得 OOP日渐受到重视。 Smalltalk-80及其支撑环境(84年作为产品公开) 的推出,使得面向对象程序设计进入实用阶段。
策略有效。自顶向下逐步求精思想贯穿分解过 程,系统结构为层次状。分解过程即实现过程。 模块化。信息封装于模块,各模块相互独立。
结构化方法究竟存在什么问题呢?
要知其然,更要知其所以然。 16/36
3.2 结构化程序设计方法