【教学课件】第一章软件设计概论.ppt
《【教学课件】第一章软件设计概论.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第一章软件设计概论.ppt(51页珍藏版)》请在三一办公上搜索。
1、VISUAL C+程序设计基础,第一章 软件设计概论,第五章 类与对象,第四章 函数,第三章 结构化程序设计,第二章 C+基础知识,第十章 异常处理,第九章 输入/输出流类库,第八章 继承与多态,第七章 动态内存分配,第六章 指针与数组,第十一章 标准模板类库(STL),附 录,目 录,第一章 软件设计概述,软件设计是一个将人类思维物化为计算机思维的过程,通过这个过程计算机获得一定程度的独立加工甚至思维的能力,从而将人类思维推向更高层次。关于软件设计的概念和方法的研究是随着计算机应用的深入和所处理问题的复杂化而不断加深的。本章将就软件设计的相关概念和程序设计方法的演化发展作一简要介绍。,1.1
2、 软件与软件危机,1.2 软 件 工 程,1.3 程序设计方法,1.6 一个简单的C+程序,1.5 C语言和面向对象的C+,1.4 算法的设计与分析,第一章 软件设计概述,1.1 软件与软件危机,什么是软件,什么是软件危机,软件 程序,软件危机首次爆发于二十世纪六十年代。在大型程序设计中,人们发现投入大量的人力、物力、时间开发出的软件,其成本、效率、质量等方面却处于失控状态,尤其软件维护异常困难。程序的修改扩充往往需要大量重复性投入。,1.1 软件与软件危机,软件危机产生的原因主要有三个:,2 软件是一种逻辑产品而非物理产品,软件的开发过程本质上是人的思考过程。,3 人的智力在面对越来越复杂的
3、问题时,处理问题的效率会越来越低。,1 软件开发者不熟悉用户问题的领域,或没有理解用户需求,软件产品与要求不一致。,1.2 软件工程,软件危机的 出现迫使人们重新认识软件和软件开发过程。大型软件开发也应该借鉴建筑、机械等行业的发展过程,由“手工方式”向“工程化”方向发展。1968年在北大西洋公约组织(NATO)的年会上首次提出软件工程的概念,此后又逐步提出软件生命期的概念。,1.2 软件工程,软件工程的提出和软件的定义,软件是程序、方法、规则、相关文档以及在计算机上运行所必需的数据的集合。而软件工程是开发、运行、维护软件的系统方法。,软件生命期,软件生命期指从开始研制到废弃不用的整个期间,可划
4、分为五个阶段:需求分析、设计、编程、测试和运行维护。,软件的质量标准,正确性 健壮性 可维护性可用性 可重用性 效率等,1.2 软件工程,正确性 软件的正确性指的是软件系统在正常条件下能够正确工作,完成规定功能。这是软件的首要指标。例如,要求设计程序,输入一批数据,计算它们的累加和。在这里,正确性就是正确能正确计算累加和。,1.2 软件工程,健壮性软件的健壮性指的是在意外情况下(如输入数据不合理或某些硬件故障),软件系统仍能适当地工作,并对意外情况进行适当处理,而不致于导致错误结果甚至系统的瘫痪或死机。例如,要求设计程序,根据输入的三边a、b、c的长度判别三角形类型。现有如下设计思想:若a、b
5、、c中只有两个量相等,则为等腰三角形,若三个量均相等,则为等边三角形,否则为一般三角形。如果输入为(-2,-2,-2)时,程序输出为:等边三角形。这个结果显然是错误的。这是由于程序对不合理数据不能进行适当处理,我们就说这个程序的健壮性不好。,1.2 软件工程,可维护性软件的维护包括发现并改正软件的错误,以及由于软件运行环境发生变化或软件功能扩充而对软件进行的改动。软件的可维护性指的是软件容易维护的程度。一般地说,软件的可读性好,容易理解,维护起来也就比较容易。因此可读性是可维护性的基础。,1.3 程序设计方法,传统的结构化程序设计 SP(Structured Programming),面向对象
6、的程序设计 OOP(Object Oriented Programming),1.3.1 传统的结构化程序设计,传统的程序设计方法可以归结为“程序=算法+数据结构”,将程序定义为处理数据的一系列过程。这种设计方法的着眼点是面向过程的,特点是数据与程序分离,即数据与数据处理分离。结构化程序设计的基本思想是采用自顶向下、逐步细化的设计方法和单入单出的控制结构。,1.3.1 传统的结构化程序设计,1.3.1 传统的结构化程序设计,举一个简单的例子,要求读入一组整数,统计其中正整数和负整数的个数。该任务的模块结构及细化过程如下:,1.3.1 传统的结构化程序设计,结构化程序设计为处理复杂问题提供了有力
7、手段,但到80年代末,这种设计方法逐渐暴露出以下缺陷:(1)难以适应大型软件的设计。(2)程序可重用性差。,1.3.2 面向对象的程序设计,为什么要引入面向对象的设计方法,面向对象的设计方法与面向过程的设计方法有什么关系,1.3.2 面向对象的程序设计,面向过程程序设计缺点的根源在于数据与数据处理分离。面向对象程序设计模拟自然界认识和处理事物的方法,将数据和对数据的操作方法放在一起,形成一个相对独立的整体对象(object),同类对象还可抽象出共性,形成类(class)。一个类中的数据通常只能通过本类提供的方法进行处理,这些方法成为该类与外部的接口。对象之间通过消息(message)进行通讯。
8、,1.3.2 面向对象的程序设计,1 基 本 概 念,3“面向对象”程序设计的特点,2 面向对象的软件开发方法,基 本 概 念,对 象(object),类(class),消 息(message),1 基 本 概 念,调节旋钮,对 象,1 基 本 概 念,是一个抽象的概念,用来描述某一类对象所共有的、本质的属性和类行为。,类,基 本 概 念,我们把对象之间产生相互作用所传递的信息称做消息。,消 息,启 动,转 向,面向对象的软件开发方法,面向对象软件开发的根本合理性在于它符合客观世界的组成方式和大脑的思维方式。在大型程序开发过程中,编码只是其中很小一部分,应当采用工程化的方法,并将面向对象的思想
9、贯穿于软件开发全过程,这就是面向对象的软件工程。面相对象的软件工程同样遵循分层抽象、逐步细化的原则。软件开发过程包括以下五个阶段:,面向对象的软件开发方法,测试的任务在于发现并改正程序中的错误。,分析阶段的主要任务是按照面向对象的概念和方法,从问题中识别出有意义的对象,以及对象的属性、行为和对象间的通信,进而抽象出类结构,最终将它们描述出来,形成一个需求模型。,设计阶段从需求模型出发,分别进行类的设计和应用程序的设计。,编程阶段实现由设计表示到面向对象程序设计语言描述的转换。,“面向对象”程序设计的特点,封装性,(2)继承与派生性,(3)多态性,3“面向对象”程序设计的特点,封装性,对象是一个
10、封装体,在其中封装了该对象的属性和操作。通过限制对属性和操作的访问权限,可以将属性“隐藏”在对象内部,对外提供一定的接口,在对象之外只能通过接口对对象进行操作。,C+通过建立数据类型类来支持封装和数据隐藏。封装性增加了对象的独立性,从而保证了数据的可靠性。一个定义完好的类可以作为独立模块使用。,3“面向对象”程序设计的特点,继承与派生,以汽车为例看客观世界描述事物的方式:,当定义了一个类后,又需定义一个新类,这个新类与原来的类相比,只是增加或修改了部分属性和操作,这时可以用原来的类派生出新类,新类中只需描述自己所特有的属性和操作。,面向对象程序设计提供了类似的机制:,继承性大大简化了对问题的描
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第一章 软件设计 概论

链接地址:https://www.31ppt.com/p-5659960.html