软考系规:面向对象系统分析与设计详解
haoteby 2024-12-29 03:19 4 浏览
1、面向对象与面向过程
(1)面向过程:世界的一切都不是孤立的,是紧密联系在一起的,缺一不可,互相作用,并形成一个个小系统,然后小系统组合完成大系统,适合于需求明确不复杂的项目。
理解:想象一下你正在做一顿大餐。面向过程的方式就是按照菜谱一步一步来,先切菜、再炒菜、最后装盘。每一步都明确且顺序执行,适合那些步骤清晰、不常变动的任务。
(2)面向对象:世界是分割开来的对象(物件)组成,对象是由数据及其操作所构成的封装体,是系统中用来描述客观事物的一个模块,是构成系统的基本单位。对象包含3个基本要素,分别是对象标识、对象状态和对象行为。
理解:再想象一下,你不再只是按照菜谱做菜,而是把每个食材(比如土豆、胡萝卜)都看作是一个有生命的“对象”。这些对象有自己的属性(如颜色、形状、大小),还有自己的行为(如被削皮、被切片)。你通过告诉这些对象做什么(比如“土豆,你去切一下”),它们就会完成自己的任务,而不需要你亲自去动手切每一片。面向对象的方式让系统更加灵活和可扩展,因为你可以轻松地添加新的对象或修改现有对象的行为。
(标识号、属性、动作)除非有在特定场景下,这些对象是“自私”的,其内部就是一个黑匣子,什么也看不到,叫做封装。它们之间通过消息传递信息,孤立的对象之间进行了某些信息交互才表现出我们看到的一个过程,否则它们将“老死不相往来”。对象喜欢群居,并且总是“物以类聚人以群分”,这些相似性质的对象组成一个部落,对象们寻找性质相似的群居的过程叫做抽象,它们组成的部落叫做类。
如:龙生龙凤生凤,老鼠的孩子会打洞,也能飞上天等----继承,继承的反关系叫做泛化。
龙生九子---继承,九子各不相同----泛化
每个对象都有多个外貌,不同情况下展现不同的外貌,但是本质只有一个,叫做接口。
2、面向对象基本概念
面向对象的基本概念包括对象、类、抽象、封装、继承、多态、接口、消息、组件、复用和模式等。
(1)对象:由数据及其操作所构成的封装体,是系统中用来描述客观事物的一个模块,是构成系统的基本单位。对象三个基本要素:对象标识、对象状态、对象行为。
理解:比如一个“人”对象,你(男/女)朋友有姓名、年龄、体重等属性,以及吃饭、睡觉等行为。
(2)类:现实世界中实体的形式化描述,类将该实体的属性(数据)和操作(函数)封装在一起。类定义了属于该类的所有对象的共同特性,一个类可以定义多个对象。对象是类的实例,类是对象的模板。如果将对象比作房子,那么类就是房子的设计图纸。
理解:一群相似对象的模板,比如“人类”就是一个类,它定义了所有人共有的属性和行为,再比如“教师”类,也是有共同的属性和行为。
(3)抽象:通过特定的实例抽取共同特征以后形成概念的过程,类是一组对象的抽象。
理解:从具体事物中提取出共同特征的过程,比如从“苹果”、“香蕉”等具体水果中提取出“水果”这个概念。
(4)封装:将相关的概念组成一个单元模块,并通过一个名称来引用它。
理解:把对象的属性和行为藏起来,只通过特定的接口(比如方法)与外界交互,就像手机电池,你不需要知道它里面是怎么工作的,只需要知道怎么充电和使用。
(5)继承:表示类之间的层次关系(父类与子类),这种关系使得某类对象可以继承另外一类对象的特征,继承又可分为单继承和多继承。
理解:子类可以继承父类的属性和行为,就像儿子可以继承父亲的姓氏和某些特征。
(6)接口:描述对操作规范的说明,其只说明操作应该做什么,并没有定义操作如何做。
理解:定义了对象应该做什么,但不具体实现,就像手机充电器接口,只要符合这个接口,就可以给手机充电,但具体怎么充,由充电器自己决定。
(7)消息:体现对象间的交互,通过它向目标对象发送操作请求。
理解:对象之间交流的方式,比如你告诉天猫精灵“播放音乐”,最直观的就是你和对象聊天通过微信消息的传递,这些都是属于消息。
(8)组件:表示软件系统可替换的、物理的组成部分,封装了模块功能的实现。
理解:软件系统的独立部分,可以单独开发、测试和替换,就像汽车的发动机、轮胎等。
(9)复用:指将已有的软件及其有效成分用于构造新的软件或系统,组件技术是软件复用实现的关键。
理解:利用已有的软件组件来构建新的系统,就像搭积木一样,每个积木都是可以复用的,今天你搭建的房子可以使用这些积木,明天你搭建了一个飞机也可以使用这些积木。
(10)多态:定义同一个操作或属性名称在多个类中,并在每个类中可以有不同的体现。
理解:同一个操作或属性在不同对象上有不同的表现,比如“跑”这个动作,人跑和狗跑的方式就不一样。
(11)模式:描述了一个不断重复发生的问题,以及该问题的解决方案,其包括特定环境 +问题 + 解决方案3个组成部分。
理解:解决常见问题的经验总结,比如“工厂模式”就是用来创建对象的常用方式。
3、面向对象分析与设计
(1)面向面向对象系统分析的模型由用例模型、类-对象模型、对象-关系模型和对象-行为模型组成。
理解:通过用例模型、类-对象模型等来分析系统需求,就像做菜前先了解需要什么食材和工具一样。
(2)面向对象系统设计基于系统分析得出的问题域模型,用面向对象的方法设计出软件基础架构(概要设计)和完整的类结构(详细设计),以实现业务功能。
理解:基于分析结果,设计系统的架构和类结构,就像设计菜谱和厨房布局一样,我们可以先大概的设计,比如菜谱大概可以设为湘菜、川菜、杭帮菜,厨房布局的大概设计可以设为洗菜池、燃气灶部分,然后再针对每个大概的设计进行详细的设计,详细设计就是方方面面都考虑到了。
(3)面向对象系统设计主要包括用例设计、类设计和子系统设计。
(4)RUP是使用面向对象技术进行软件开发实践的最佳实践之一。
理解:一种流行的面向对象软件开发方法,它提供了一套完整的流程和最佳实践,继续使用上面造厨房的例子,比如你是找的专业建设厨房的施工队,他们会有严格的操作流程和标准,比如他们必须要先去买水泥、瓷砖、材料,然后施工过程中必须要把误差减少到1%以内,最后结束了还必须要打扫干净。
4、统一建模语言(UML)
(1)UML是一种可视化的建模语言,而不是编程语言。分为构造块、规则和公共机制三个部分。适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具。它比较适合用于迭代式的开发过程,是为支持大部分现存的面向对象开发过程而设计的。
理解:可以让不同背景的人,如开发人员、测试人员、设计师等都能理解系统的设计。UML图就像是图纸,可以用它来描述系统的各种模型和关系。静态图展示了系统的静态结构(如类、对象、组件等),而动态图则展示了系统的行为(如对象之间的交互、状态变化等)
(2)UML图提供了对系统进行建模的描述方式,主要包括:
静态图:用例图、类图、对象图、组/构件图、部署图(配置图)。
动态图:序列图、状态图、协作图、活动图。
理解:
静态图
静态图主要用于展示系统的静态结构,即系统的组成部分以及它们之间的关系,而不涉及这些部分的行为或动作。
(1)用例图(Use Case Diagram)
用例图是用来描述系统功能的图表,它从用户的角度展示了系统能够做什么。它主要包括参与者(用户或外部系统)和用例(系统功能)。参与者通过交互来触发这些用例,用例则展示了系统如何响应这些交互。
例子:一个在淘宝购物平台的用例图可能包括“顾客”作为参与者,以及“浏览商品”、“加入购物车”、“结算”等作为用例。
(2)类图(Class Diagram)
类图是用于描述系统中类的静态结构,包括类的属性(即数据)和操作(即方法或行为)。类图还展示了类之间的关系,如继承、关联、依赖等。
例子:在在淘宝购物平台中,类图可能包括“商品”、“购物车”、“用户”等类,以及它们之间的关系,如用户可以将商品添加到购物车中。
(3)对象图(Object Diagram)
对象图是类图的一个实例,它展示了在特定时间点或场景下,系统中实际存在的对象以及它们之间的关系。对象图通常用于说明系统的一个具体状态。
例子:在淘宝购物平台中,一个对象图可能展示了某个用户(对象)的购物车(对象)中包含了哪些商品(对象)。
(4)组/构件图(Component Diagram)
构件图用于描述系统的物理结构,即系统由哪些构件(如源代码文件、可执行文件、数据库等)组成,以及这些构件之间的关系。
例子:淘宝购物平台的构件图可能包括前端网页、后端服务器、数据库等构件,以及它们之间的通信关系。
(5)部署图(Deployment Diagram)
部署图展示了系统运行时软件和硬件的物理配置情况,包括节点(如服务器、计算机)和它们之间的通信关系。
例子:淘宝购物平台的部署图可能展示了哪些服务器负责处理前端请求,哪些服务器负责数据存储,以及它们之间的网络连接情况。
动态图
动态图则用于描述系统的动态行为,即系统的组成部分如何随时间进行交互和变化。
(1)序列图(Sequence Diagram)
序列图展示了对象之间交互的顺序,它按照时间顺序描述了对象之间发送和接收消息的过程。
例子:在淘宝购物平台中,序列图可能展示了用户登录时,前端界面、后端服务和数据库之间的交互过程。
(2)状态图(State Diagram)
状态图用于描述一个对象在其生命周期中的状态变化以及触发这些变化的事件。它展示了对象在不同状态下的行为和状态之间的转换。
例子:在淘宝购物平台中,订单的状态图可能包括“待支付”、“已支付”、“已发货”等状态,以及触发这些状态变化的事件(如用户支付、仓库发货等)。
(3)协作图(Collaboration Diagram)
协作图与序列图类似,也用于描述对象之间的交互。但协作图更侧重于展示对象之间的空间布局和关系,而不是时间顺序。
例子:在淘宝购物平台中,协作图可能展示了在订单处理过程中,订单处理系统、支付系统和物流系统之间的协作关系。
(4)活动图(Activity Diagram)
活动图用于描述系统中从一个活动到另一个活动的流程,它展示了为了完成某个目标而需要执行的一系列动作和决策点。
例子:在淘宝购物平台中,活动图可能展示了从用户选择商品到完成支付的整个流程,包括浏览商品、加入购物车、结算、支付等活动。
(3)视图描述
写在最后
如果你正在备考或计划备考系规、软考高项,需要资料的可以私我,有很多最新的电子资料,有视频课程、讲义、资料、考试要点、论文写作、论文集等需要这方面资料的可私.我。
(绿.泡.泡:stypanda)
相关推荐
- wordpress集团公司网站模板:XSgr
-
小兽wordpress推出一款高端集团公司主题,打造高品质官网。高端是一种态度和坚持,因为我坚信贴合产品及品牌理念的高端深度定制才能最大化地呈现企业的务实严谨与产品的专业品质相比,某种程度上讲–...
- 宝塔搭建WordPress跨境电商外贸商城模板汉化woodmart7.5.1源码
-
大家好啊,欢迎来到web测评。本期给大家带来一套php开发的WoodmartV7.5.1汉化主题|跨境电商|外贸商城|产品展示网站模板WordPress主题,是wordpress开发的。上次是谁要的系...
- Wordpress建站设计技巧:用好Wordpress自带样板功能
-
作者:悦然wordpress建站(悦然建站)...
- 微软推出Azure平台WordPress模板:分分钟搭建博客
-
IT之家讯微软Azure云服务平台可以托管各种各样的Web服务,从企业应用后端服务到视频托管服务等等。WordPress是目前最为流行的博客平台,驱动着全球1/4的互联网网站。不过用户想要在Azur...
- wordpress公司展示型通用模板:XShw
-
主题介绍xshw公司模板是一款现代化风格、通用型公司展示的Wordpress公司建站模板,采用经典的颜色搭配、精致的模块布局、完善的列表模板、响应式自适应技术以及配置的大幅全屏轮播图、公司简介、业务介...
- WP模板开发中,怎样给wordpress网站的文章,添加点赞功能?
-
我们在网上浏览某些网站的文章时,在文章的结尾处,都会有一个点赞的按钮,如果觉得文章内容非常不错,就可以点击这个“点赞”按钮,给这篇文章进行点赞一下。在wordpress网站的模板主题开发中,我们可不可...
- 免费的WordPress模板
-
免费的WordPress模板有很多种类,适用于不同类型的网站需求。以下是一些推荐的免费WordPress模板,它们各具特色,适合多种用途:...
- 东港边检站开展全面清理自制执勤执法证件表单专项工作
-
为进一步提高边检机关依法行政和服务管理水平,根据部局和总站统一部署,6月3日下午,东港边检站迅速开展全面清理自制执勤执法证件表单专项工作。一是统一思想,提高认识。该站于6月3日召开专题会议,传达部局视...
- 两款超级好用的二维码生成器软件,铁铁们快码住
-
今天分享两款超级好用的二维码生成器,个人认为衡量是否是好用的二维码生成器的主要有以下维度(仅从用户体验角度)...
- 扫码填表如何拍摄现场照片?表单添加图片的二维码制作方法
-
现在通过扫描二维码来登记信息的方式非常的常见,有很多的应用场景会使用这种方式来统计数据,比如问卷调查、用户反馈、巡检结果等类型。通过扫码填写信息后,制作者可以及时的获取对应的数据做出反馈。那么表单二维...
- 纯干货∣教你如何制作一份具有法律效应的“电子合同”
-
表单中使用电子合同时,不仅需要进行功能设置,还需要制作一份PDF格式的模板...
- 金山表单硬核功能“在线考试”上线
-
近日,金山文档针对教师用户群体上线“在线考试”考试功能。教育从业者可在金山文档内完成考试、练习测验、竞赛和作业布置。与此同时,该功能还具备自动批改计分、答案解析、成绩展示、信息收集等特色功能。充分适配...
- 报名小程序怎么制作?借助这个报名表单工具一键搞定
-
报名表单广泛应用于各类活动、课程、会议和招募等场景中,用于收集报名者的个人信息和参与意愿,方便组织者进行统计、管理和沟通。表单制作不需要写代码,学会借助线上报名表单工具就能一键搞定。...
- 货代人的表单制作方式,该升级了!
-
很多在货代行业工作的人可能会思考是否将销售岗位转为操作岗位,因为货代销售工作需要不断迎接业绩的挑战,每个月都要全力以赴,但绩效考核的结果并不总是确定的。...
- 为你的WordPress widget建立表单
-
通过之前的三部分教程我们已经创建了一个自己的WordPresswidget。今天我们将给大家介绍如何为你的widget创建表单,以至于WordPress可以及时的更新widget设置。为widget...