《大学计算机基础(第二版)》-陈振-电子教案 第7章 计算机软件技术 第7章 第15讲 程序设计方法和软件工程基础

上传人:E**** 文档编号:89401673 上传时间:2019-05-24 格式:PPT 页数:25 大小:2.28MB
返回 下载 相关 举报
《大学计算机基础(第二版)》-陈振-电子教案 第7章 计算机软件技术 第7章 第15讲 程序设计方法和软件工程基础_第1页
第1页 / 共25页
《大学计算机基础(第二版)》-陈振-电子教案 第7章 计算机软件技术 第7章 第15讲 程序设计方法和软件工程基础_第2页
第2页 / 共25页
《大学计算机基础(第二版)》-陈振-电子教案 第7章 计算机软件技术 第7章 第15讲 程序设计方法和软件工程基础_第3页
第3页 / 共25页
《大学计算机基础(第二版)》-陈振-电子教案 第7章 计算机软件技术 第7章 第15讲 程序设计方法和软件工程基础_第4页
第4页 / 共25页
《大学计算机基础(第二版)》-陈振-电子教案 第7章 计算机软件技术 第7章 第15讲 程序设计方法和软件工程基础_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《《大学计算机基础(第二版)》-陈振-电子教案 第7章 计算机软件技术 第7章 第15讲 程序设计方法和软件工程基础》由会员分享,可在线阅读,更多相关《《大学计算机基础(第二版)》-陈振-电子教案 第7章 计算机软件技术 第7章 第15讲 程序设计方法和软件工程基础(25页珍藏版)》请在金锄头文库上搜索。

1、第15讲 程序设计方法和软件工程基础,计算机基础科学系,第7章 计算机软件技术,计算机基础科学系,主要教学内容,计算机基础科学系,学习目标,计算机基础科学系,重点与难点,面对对象程序设计的基本概念与基本思想,软件工程的目标、软件生命周期、软件测试方法与软件质量的评价是本讲的重点,面向对程序设思想的领悟是本讲的难点。,计算机基础科学系,1. 程序设计方法,对象是独立存在的客观事物,是组成程序的构件,由属性和方法构成。,以模块化设计为中心,结构按功能划分成若干个模块。模块功能通过子程序调用实现。,用主体模拟人的思想和行为,用多主体系统模拟社会,结构化 程序设计,面向对象 程序设计,面向主体 程序设

2、计,计算机基础科学系,1.1结构化程序设计,结构化程序设计方法由迪克斯特拉(E.W.dijkstra)在1969年提出。,基本思想:把一个待求解的问题按功能自顶向下分解成一个个相对简单的子问题,即小模块; 然后用子程序或函数来解决这些子问题,用子程序或函数之间的数据通信来模拟这些子问题间的联系; 最后把这些子程序或函数装配起来以形成解决问题的完整程序。 开发方法:自上向下,逐步分解,分而治之,计算机基础科学系,1.1结构化程序设计,优点,缺点,1.各模块相对独立、功能 单一、结构清晰、接口简单 2.控制了程序设计的复杂性 3.提高元件的可靠性 4.缩短开发周期 5.避免程序开发的重复劳动 6.

3、易于维护和功能扩充,1.代码的可重用性差 2.可维护性差 3.稳定性差,计算机基础科学系,1.2面向对象程序设计,在面向对象程序设计中,设计人员直接用一种称为“对象”的程序构件来描述客观问题中的实体,并用“对象”间的“消息”来模拟实体间的联系,用“类”来模拟这些实体间的共性。,(1)对象 对象是独立存在的客观事物。例如,一个人、一台电脑、一辆汽车等都是一个对象。 每个对象都有其相应的属性及附属于它的行为。例如:一辆汽车有型号、外壳、颜色等特性,又有启动、加速、停止等行为。,换档,开大灯,刹车,开冷气,颜色,排档数,排气量,轮胎型号,基本概念,计算机基础科学系,1.2面向对象程序设计,对象有两个

4、特征:属性状态和行为。 例如:一个人有他的身高或体重作属性, 并有他的行为:如唱歌、打球、骑摩托车、开汽车。 而在程序设计中,软件对象的概念由真实世界对象而来。对象的概念是面向对象,软件对象将状态保存在变量或称数据字段里。而行为则借助方法为工具来实现 。,计算机基础科学系,1.2面向对象程序设计,又如:在下图中,有一个对话框对象,三个标签对象,三个文本框对象,两个命令按钮对象,这些对象的组合构成了加法运算程序的界面。 作为对象之一的“确定”命令按钮的主要属性有按钮的宽度与高度,按钮的标题等; 方法是用户为命令按钮写的程序代码。该程序代码将两个文本框中的数相加显示在第三个文本框中。,图1 加法运

5、算程序,计算机基础科学系,1.2面向对象程序设计,(2)类 类在汉语词典中的解释为“很多相似事物的综合,如种类、类别、人类等”。 在面向对象程序设计中,类是具有相同属性和相同操作(服务)的对象的集合,是一个抽象的概念,而一个对象则是类的一个“实例”。 例如:汽车是一个抽象的类,具体的对象可以是:轿车、吉普车、中巴车、客车、跑车等。又如,在面向对象程序中,按钮是类,具体的按钮是由按钮类来创建的一个实例。又如,Shape也是类,通过改变Shape的属性可以创建圆、正方形、椭圆等形状。,计算机基础科学系,1.2面向对象程序设计,(3)消息 对象之间进行通信的结构叫做消息。在对象的操作中,当一个消息发

6、送给某个对象时,消息包含接收对象去执行某种操作的信息。如当你(一个对象)发动汽车(另一个对象) ,踩油门(交互)后,汽车内部就发生一连串复杂的行为。,计算机基础科学系,1.2面向对象程序设计,抽象,封装,继承,同类事物具有共同性,每个事物又具有其特殊性。运用抽象的原则舍弃对象的特殊性,抽取其共同性,则得到一个适应于一批对象的类,这便是父类,而把具有特殊性的类称为子类。,封装可被理解为一种用做保护的包装器,以防止代码和数据被外部代码任意访问,而要对其访问时则通过一个明确定义的接口实现。 在软件程序中,并不需要知道一个类的完整结构,只要知道调用的方法。好比开车换档时,不须知道变速箱、齿轮等是如何运

7、作的,只要知道将档排到哪里即可。,基本特征,计算机基础科学系,1.2面向对象程序设计,1.模块化:一个对象的原始文件可以独立地被撰写及维护而不影响其他对象。而且对象可以轻易地在系统中来回地传递使用。就好像你借车给朋友,而它仍能正常地运作一样。 2.信息隐藏:一个对象有一个公开的接口可供其他的对象与之沟通,但对象仍然维持私有的信息及方法,这些信息及方法可以在任何时间被修改,而不影响那些依赖此对象的其他对象。 3.软件复用:类的封装特性使得类可重用性大为提高,这样的有机单元特别适宜构建大型标准化的应用软件系统,可以大幅度地提高生产效率。,封装的好处:,计算机基础科学系,1.2面向对象程序设计,继承

8、,多态,继承,继承是指一个对象从另一个对象中获得属性的过程,它支持按层次分类的概念。例如,波斯猫是猫的一种,猫又是哺乳动物的一种,哺乳动物又是动物的一种。 子类的对象拥有其父类的全部或部分属性与方法,即称子类对父类的继承。,同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,即多态性。 比如同样的加法,把两个时间加在一起和把两个整数加在一起完全不同。,基本特征,计算机基础科学系,1.2面向对象程序设计,注意:当对“父类”进行修改后,这种修改会立即反映到所有以该“父类”为基础而建立的全部“子类”中,不管这些“子类”是在“父类”修改前还是修改后建立的。 “子类”对“父类”的继承如此,以

9、一个“类”为基础建立的“对象”,对所属“类”的继承也是如此。 在子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。 ,继承的好处:实现代码重用,计算机基础科学系,1.3面向主体程序设计,面向主体方法是希望通过对人解决应用问题的智能行为进行模拟,在软件解空间中建立一种嵌入在不断变化,不确定世界中,能进行感知并能自主采取行动的计算实体。主体是含有心智成分,如信念,愿望,能力,职责,承诺等的实体。,学习 能力,社会性,主体的特征,主体在没有人直接干预下能够采取行动,并能控制自己的行为和内部状态。,主体能够感知它们的环境,并以实时方式响应环

10、境中发生的变化。,主体能够根据其求解状态和技能,在合适的时候与其他主体交互,以提高自己的问题求解能力或帮助其他主体的问题求解活动。,主体通过学习以往的经验不断改善自己对同一问题的求解能力。,计算机基础科学系,2. 软件工程基础,IEEE【IEE83】给出的软件工程定义: “软件工程是开发、运行、维护和修复软件的系统方法。” IEEE【IEE93】给出了一个更加综合的定义: “将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。” 软件工程是应用计算机科学、数学及管理科学等原理开发软件的工程。它借鉴传统工程的原则、方法,以提高质量,降低成本为目的。,计算机

11、软件是包括程序、数据及相关文档资料的完整的集合。 软件工程则是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序的总称。软件工程包括软件开发与设计的方法,软件开发过程使用的工具,以及软件开发的过程。,计算机基础科学系,2.1软件工程的目标,软件工程的目标是:在给定成本、进度的前提下,开发出具有可修改性、有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的软件产品。 软件工程是一门工程性学科,目的是成功地建造一个大型软件系统。所谓成功,即:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发的软件易于移植;需要

12、较低的维护用费;能按时完成开发任务,及时交付使用;以及开发的软件可靠性高等等。,计算机基础科学系,2.2软件生命周期,问题定义 及规划,需求分析,软件设计,程序编码,软件测试,软件生命周期,软件产品从提出、实现、使用维护到停止使用的过程。,运行维护,计算机基础科学系,2.3软件测试方法,软件测试是发现错误而执行程序的过程。,软件测试方法,Add Your Text,包括代码检查、静态结构分析、代码质量度量或不实际运行软件,这种测试方法主要通过人工进行。,主要方法有逻辑覆盖、基本路径测试。,主要诊断功能不对或遗漏、界面错误、数据结构或外部数据库访问错误、性能错误、初始化和终止条件错误。,计算机基

13、础科学系,2.3软件测试方法,系统测试,集成测试,单元测试,软件测试的目的就是要在软件投入生产运行之前,尽可能多地发现软件中的错误。大量统计资料表明,软件测试的工作量往往占软件开发总工作量的40以上,在极端情况下,软件测试所花费的成本,可能相当于软件工程其它开发步骤总成本的35倍。因此,必须高度重视软件测试工作。,测试过程,计算机基础科学系,2.4软件质量,软件工程学的最终目标是获得优质量的软件。所谓优质软件是指软件能够满足用户显式或隐式的需求,文档齐全,符合组织的操作标准,在其开发使用的硬件上高效运行。,可靠性,效率,可理解性,可维护性,如何评价软件质量?,计算机基础科学系,总 结,对象是独立存在的客观事物,它由一组属性和一组方法 够成。属性是对象静态特征的描述,方法是对象动态特征的描述。 面向对象程序设计方法有抽象、封装、继承和多态四个基本特征。 软件工程是指利用合理的工程方法和原则来获得在真实机器上工作的可靠软件。 软件生命周期可分为软件定义、软件开发和运行维护三大环节。 软件测试的目的是执行程序发现错误的过程。 优质软件是指软件能够满足用户显式或隐式的需求,文档齐全,符合组织的操作标准,在其开发使用的硬件上高效运行。,Thank You !,,

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号