- 1、本文档共237页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java面向对象开发解析
面向对象开发方法
软件开发经历的周期:
软件分析:分析问题领域,了解需求
软件设计:确定软件总体架构,将总体分成各个大大小大的子系统。
软件编码:选用什么编程软件进行写程序代码。
软件测试:测试软件是否能完成特定功能,以及测试软件性能。
软件部署:安装软件,帮助用户正确操作。
软件维护:修复bug,当用户需求改变(增添新的功能或者修改已有功能的实现方式)。
软件可重用性:减少重复代码。
软件的可扩展性:需要增加新功能,能够在现有的基础结构基础上,方便创建新的子系统、而不需要改变软件现有的结构,也不会影响存在的子系统。
软件的可维护性:当需求发生改变,只需要改变局部的子系统的少量代码。
子系统的特点:
软件可以分解成各个独立的子系统,使用各个子系统能够组成整个软件系统。
结构稳定性:将一个系统划分成更小的子系统,是的系统的结构更健壮,满足用户需求。
可扩展性:子系统的基础上创建新的子系统,该子系统继承了原有子系统的一些特性,并具有一些新的特性。
内聚性:每个子系统只完成特定功能。不同子系统之间不可有功能的重叠。
解决办法:每个子系统的粒度都要尽可能小,这种方式称为精粒度系统结构。内聚性可提高软件的重用性和维护性。
可组合性:若干精粒度的子系统经组合,变成大系统。
松耦合:子系统互相独立,修改一个子系统不影响其他子系统。
主流软件开发方法:结构化开发和面向对象开发。
结构化软件设计方法:按照功能划分系统结构
结构化开发方法,即SASD方法,也称面向功能或面向数据流的软件开发方法。
首先用结构化分析(Structure Analysis, SA),对软件需求分析;后用结构化设计(Structure Design, SD),进行总体设计。最后结构化编程(structure Programming, SP),这种开发方法是开发步骤明确。
结构化设计师属于:自顶向下的设计,就是功能分解的过程。
进行结构化编程时,主体是方法,方法是最小的功能模块,每个方法都有输入输出的子系统,数据的输入来源于方法参数、全局变量、常量。数据的输出有:方法返回值、指针类型的方法参数。
形状 非法形状
圆
直线
上图为 数据流图(Data Flow Diagram ,DFD)
椭圆:处理过程,产生数据
矩形:数据输入源点或输出终点
带箭头的直线:数据流的方向
结构化开发缺点:
制约了软件可维护性和可扩展性。模块之间的松耦合性不高。
自顶向下按功能划分模块,随着需求改变。难以设计出稳定的系统。
最小的系统是方法,方法和变量、常量分散在系统各个角落。削弱各个系统间的独立性。
面向对象的开发方法:把软件系统看成各种对象的集合,对象时最小的子系统。
面向对象的特点:
把软件系统看成各种对象的集合。
需求变动是功能变动,功能的执行者-------对象,一般不会有太大变化,设计出来的系统稳定。
对象包括属性(数据)和行为(方法),对象把数据和方法的具体实现方式封装,使方法与有关的数据不分离,提高子系统的独立性。
支持封装、抽象、继承和多态,提高系统的可重用性、可维护性、可扩展性。
对象模型:建立对象模型 包括自底向上的抽象过程 和自顶向下的分解过程。
自底向上的抽象:搞清需求,再建立正确的对象模型。
把现实领域中的事物抽象为具有特定属性和行为的对象。
把具有相同属性和行为的对象抽象为类。
若干个类存在相同共性(相同的属性和行为),把这些共性抽象到父类中。
自底向上的抽象过程中,使子类更合理继承父类的属性和行为。
自顶向下的分解
例如,计算机系统,首先识别出主机对象、显示器对象、键盘对象等,再进一步分解各个对象。
UML:可视化建模语言
UML (Unified Modeling Language,统一建模语言)
Rational Rose:可视化建模工具
面向对象开发的核心思想和概念
主要任务:先建立模拟问题领域的对象模型,通过代码实现对象模型。
问题领域、对象、属性、状态、行为、方法、实现
问题领域?
是指软件系统模拟的真实世界中的系统。
对象?
是对问题领域中事物的抽象。
对象的特征:
万物皆对象。问题领域中的实体和概念都可以抽象为对象。如:学校领域,对象包括学生、成绩单、教师、教室等。在Java图形界面中,宽口,滚动面板,按钮等都是对象。
每个对象都是唯一的。真实世界中事物的唯一性。如一个人的特征独一无二。
对象具有属性和行为。如一部手机:牌子华为,价格1232,颜色白色,能够拍照、能够上网、打电话等。这部手机属性有:品牌类型type、价格price、颜色color,行为有:拍照takePhoto()、打电话takeCall
文档评论(0)