- 1、本文档共95页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch01前言
面向对象分析和设计;联系方式;教材及参考书;计算机科学与技术的课程体系;软件课程体系与知识结构(1/2);软件课程体系与知识结构(2/2);学这门课程是干什么的?;请思考这些项目设计时会碰到什么问题?;;;课程目标:;1.5 面向对象方法的发展史及现状简介;传统型商务; 在二十世纪六十年代以前
软件系统都是较小且相对简单的
所用的编程语言都是十分简单(Fortran,Cobol等)
时兴个人英雄主义,即崇尚程序员的个人技能
代码是面条式的,特别是代码中含有GOTO语句
随着软件复杂性的增长,随心所欲的方法就不再是可接受的了,因为这样的代码是很难维护的。
高层次语言的引入有助于解决一些与复杂性有关的问题,但这些语言并不能充分解决问题。
那时,无开发方法而言 ;1、功能分解法(起于二十世纪七十年代)(1/4);功能
模块;优点:
当时的计算机应用还不是很普及,只是特定的用户按自己的需要,对软件系统做出了功能性的要求,有据可寻。
在相当大的程度上,解决了以前存在的问题。特别是与模块化编程结合使用,效率更高。
删除GOTO语句,使得软件能得到有效的维护。
与模块化编程相结合,使得软件能得到有效的维护
直接地反映用户的需求,所以工作很容易开始。;缺点:
开头容易,结束难。
结构化分析和设计注重处理功能,对所处理的数据放于次要的位置。
对需求变化的适应能力很差。
局部的错误和局部的修改很容易产生全局性的影响。
不能直接地映射问题域,很难检验分析结果的正确性。; 数据流法= 数据流+数据处理(加工)+数据存储+端点+处理说明+数据字典
又称作结构化分析。基本策略是跟踪数据流,即研究问题域中数据如何流动以及在各个环节上进行何种处理,从而发现数据流和加工。问题域被映射为数据流图(DFD),并用处理说明和数据字典进行详细说明。;数据流图的图形记号;“家庭保安系统”顶级数据流图;;数据字典举例;业务模型;信息建模法(information modeling)
信息建模= 实体(对象)+属性+关系+父类型/子类型+关联对象
由实体-联系法(E-R方法)发展而来。
与数据库设计有很深的渊源。
核心概念是实体和联系:
实体描述问题域的事物,含有属性;
联系描述事物之间在数据方面的关系,也可以带有属性;实体-关系图;实体-关系图;例如,在教学管理中,学校开设若干门课程,一个教师可以教授其中的一门或多门课程,每位学生也需要学习其中的几门课程。因此,教学管理中涉及的对象(实体型)有学生、教师和课程。用E-R图描述它们之间的联系,如图所示。其中,学生与课程是多对多的联系,而教师与课程的联系是一对多。 ;业务模型; 它是基于现实的行为视图,状态是这类系统的构造块,并且所操作的数据是独立于状态的。
基于系统状态的处理。
这一方法没有说到数据管理。 ;计算机是执行一套规则的推理机(if—then语句)。
基于人工智能系统
基于规则的系统并没有帮助我们处理数据,也不支持过程概念
如 prolog, list语言
? ? ? ? ? ?;总结;随需应变的商务; 为了克服早期的方法的不足,这时人们已经开始考虑使用面向对象方法来开发系统。较为完善面向对象的分析和设计方法出现在八十年代中后期。
早期的方法只使用一种系统的视角作为构造块,而没有容纳其他视角。
功能分解法集中于将功能作为系统的构造块
在数据分析方法中(实体联系模型)构造块是实体,但在该方法中用来满足系统需求的功能被完全忽略掉了。
两种方法都没有处理对动态行为的捕获,声明性语义(规 则)以及例外处理机制都被完全忽略了。 ; 面向对象方法的解决问题的思路是从现实世界中的客观对象(如人和事物)入手,尽量运用人类的自然思维方式来构造软件系统,这与传统的结构化方法从功能入手和信息工程化方法从信息入手是不一样的。在面向对象方法中,把一切都看成是对象。 ;例题:编写一个开发票程序,需要对发票的名细栏进行计算。;对象组装;从程序设计方法的角度看,面向对象是一种新的程序设计范型(paradigm),其基本思想是使用对象、类、继承、封装、聚合、关联、消息、多态性等基本概念来进行程序设计.;(1)从现实世界中客观存在的事物出发来建立软件系统,强调直接以问题域(现实世界)中的事物为中心来思考问题、认识问题,并根据这些事物的本质特征,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌(对象);(2)用对象的属性表示事物的性质;用对象的操作表示事物的行为。(属性与操作)
(3)对象的属性与操作结合为一体,成为一个独立的、不
文档评论(0)