面向对象分析与设计

C# 面向对象

筅森魡賤 提交于 2020-03-21 18:23:42
面向对象: 面向对象方法是软件工程、程序设计的主要方向,也是最有效、最实用和最流行的软件开发方法之一。 C#是完全面想对象(OOP)的程序设计语言,具有面向对象程序设计方法的所有特性。 面向对象方法的基本思想就是从所要解决的问题本身出发,尽可能运用自然的思维方式(分析、抽象、分类、继承),以现实世界中的事物为中心思考问题、认识问题,并根据这些事务的本质特征,把他们抽象表示为系统中的对象,作为系统的基本构成单位。 面向对象的最基本的特征是抽象性、封装性、继承性、多态性 。 对象(object): 客观世界中任何事物都可以看成一个对象,汽车、房屋、狗都可以看成一个对象。 任何对象都应当具有属性(attribute)和行为(behavior)两个要素。 对象 = 属性 + 行为(方法、操作) 类(class): 类表示具有相同属性和行为的一组对象的集合。 C#程序的源代码必须放到类中,一个程序至少包括一个类。 类是抽象的,不占用内存,而对象是具体的,占用存储空间 抽象(abstraction): 抽象是处理事务复杂性的方法,只关注与当前目标有关的方面,而忽略与当前目标无关的方面。 int是对所有整数的抽象,double是对所有双精度浮点型数的抽象。 封装(encapsulation): 将有关的数据和操作代码封装在一个对象中,形成一个基本单位,各个对象之间相对独立,互不干扰。

从程序员到软件工程师

懵懂的女人 提交于 2020-03-18 11:59:03
软件产业发展到今天,分工越来越细。程序员做为一个通用的称谓已经无法确切定义各种工作的特点和分类。正因为软件开发中各种职责区分不清,无论是刚刚写代码的新手还是具有多年经验的老手,一概被扣上程序员的通用名称,这也使得很多进入这个领域的软件开发人员无法制定自己未来的技术职业发展之路。 实际上,软件公司也逐渐认识到了对程序员分类的重要性,开始将各种职位定义的更加准确。对于从事软件开发的程序员来说,更需要尽快明确自己的发展方向,并在此方向上将专业知识积累的更深厚,这能让你尽快逃脱对未来发展方向的迷茫。为此,我们专门推出程序员成长系列的特别策划,将分别深入探讨软件设计师、测试工程师、文档工程师、项目经理、产品经理几种角色的成长之路。 程序员成长系列之一 软件设计师可以预先构建软件结构,如同建筑架构师一般。比尔·盖茨被称为微软公司的首席软件设计师,首先是因为他是一个优秀的架构设计师,中国同样需要这样的人才。-微软大中国区总经理黄存义 从程序员到软件设计师 2000年1月13日下午,世界软件业巨人、美国微软公司突然在位于华盛顿州雷德蒙德市的总部举行新闻发布会。比尔·盖茨把微软CEO宝座拱手让给长期伙伴史蒂夫-巴尔默,只保留董事局主席一职,但同时出任新职务“首席软件设计师”。比尔·盖茨说:“今后我将全力设计开发面向未来的新软件,同时研究制定微软的总体技术发展战略。” 比尔

UML语言各种图形的建立步骤

一世执手 提交于 2020-03-17 11:02:59
1.用例图的建立步骤: 1〉 找出系统外部的活动者和外部系统,确定系统的边界和范围。 2〉 确定每一个活动者所希望的系统行为。 3〉 把这些系统行为命名为用例。 4〉 把一些公共的系统行为分解为一批新的用例,供其它的用例引用。把一些变更的行为分解为扩展用例。 5〉 编制每一个用例的剧本。 6〉 绘制用例图。 7〉 区分主业务流和例外情况的事件流。可以把表达例外的情况的事件流的用例图画成一个单独的子用例图。 8〉 精化用例图,解决用例见得重复与冲入问题,简化用例中的对话序列,用力图可以有不同的层次,高层次系统的用例可以分解为若干个下属子系统中的子用例。 2.对象类图的建立步骤: 1〉 研究分析问题领域,确定系统的需求。 2〉 发现对象和对象类,明确他们的含义和责任,确定属性和操作。 3〉 发现类之间的静态联系。着重分析找出对象类之间的一般和特殊关系,部分与整体关系,研究类的继承性和多态性,把类之间的静态联系用关联、泛化、聚合、组合、依赖等联系表达出来,虽然对象类图表达的是系统的静态结构特征,但是应当把对系统的静态分析与动态分析结合起来,更能准确地了解系统的静态结构特征。 4〉 设计类与联系。调整和精化已得到的对象类和类之间的联系,解决诸如命名冲突、功能重复等问题。 5〉 绘制对象类图并编制相应的说明。上述做法是直接从领域分析抽取对象和对象类开始的

面对对象 一

邮差的信 提交于 2020-03-17 07:51:12
了解什么是面对对象 oop 看看什么是OOP,Object Oriented Programming,原来就是面向对象的编程啊,还有OOD(面向对象的设计),OOA(面向对象的分析)。那什么是面向对象呢?要想了解这个问题我们要先了解面向过程,这样对比我们就好理解了。 很早很早以前的编程是面向过程的,比如实现一个算术运算1+1 = 2,通过这个简单的算法就可以解决问题。但是随着时代的进步,人们不满足现有的算法了,因为问题越来越复杂,不是1+1那么单纯了,比如一个班级的学生的数据分析,这样就有了对象这个概念,一切事物皆对象。将现实的事物抽象出来,注意抽象这个词是重点啊,把现实生活的事物以及关系,抽象成类,通过继承,实现,组合的方式把万事万物都给容纳了。实现了对现实世界的抽象和数学建模。这是一次飞跃性的进步。 举个最简单点的例子来区分 面向过程和面向对象 有一天你想吃鱼香肉丝了,怎么办呢?你有两个选择 1、自己买材料,肉,鱼香肉丝调料,蒜苔,胡萝卜等等然后切菜切肉,开炒,盛到盘子里。 2、去饭店,张开嘴:老板!来一份鱼香肉丝! 看出来区别了吗?这就是1是面向过程,2是面向对象。 面向对象有什么优势呢?首先你不需要知道鱼香肉丝是怎么做的,降低了耦合性。如果你突然不想吃鱼香肉丝了,想吃洛阳白菜,对于1你可能不太容易了,还需要重新买菜,买调料什么的。对于2,太容易了,大喊:老板

面向对象分析与设计笔记(一)

核能气质少年 提交于 2020-03-12 22:25:26
分析与设计的关系: 做正确的事情(分析),正确地做事情(设计)。 面向对象分析: 发现并描述问题领域里的对象或者概念(概念类)。 面向对象设计: 定义软件对象、 以及它们之间如何协作完成功能的(设计类) 面向对象分析与设计基本过程:定义用例→定义领域模型→定义交互图→定义设计类图 领域模型: 问题领域的概念类以及真实对象的可视化表示 ; 领域模型也被称为 概念模型、 领域对象模型、 分析对象模型 来源: https://www.cnblogs.com/juluwangshier/p/12482944.html

java基础——面向对象

半城伤御伤魂 提交于 2020-03-07 05:30:51
面向对象【java语言的核心机制,最重要的内容,java语言的特点】 面向对象和面向过程的区别 面向过程 :主要关注点是:实现的具体过程,因果关系【集成显卡的开发思路】 优点 :对于业务逻辑比较简单的程序,可以达到快速开发,前期投入成本较低 缺点 :采用面向过程的方式开发很难解决非常复杂的业务逻辑,另外面向过程的方式导致软件元素之间 的“耦合性”非常高,只要其中一环出问题,整个系统受到影响,导致最终的软件“扩展力”差, 另外,由于没有独立体的概念,所以无法达到组件复用 面向对象 :主要关注点是:主要关注对象【独立体】能完成哪些功能。【独立显卡的开发思路】 优点 :耦合度低,扩展力强,更容易解决现实世界当中更复杂的业务逻辑,组件复用性强 缺点 :前期投入成本较高,需要进行独立体的抽取,大量的系统分析与设计 面向对象思想特点 【1】是一种更符合我们思想习惯的思想 【2】可以将复杂的事情简单化 【3】将我们从执行者变成了指挥者角色发生了转换 面向对象的三大特征 - 封装 - 继承 - 多态 采用面向对象方式开发一个软件,生命周期当中:【整个生命周期中贯穿使用OO面向对象方式】 - 面向对象的分析:OOA - 面向对象的设计:OOD - 面向对象的编程:OOP 类和对象的概念 什么是类 【1】类在现实世界当中是不存在的,是一个模板,是一个概念,是人类大脑思考抽象的结果 【2

UML建模系列文章总结

冷暖自知 提交于 2020-03-06 06:47:19
一、为什么要学习 UML 二、 UML 的历史 三、 UML 的特点 四、 UML 中的视图 五、 UML 建模工具 六、 UML 的应用领域 七、 UML 的构成 1 、 需求阶段如何书写 Use Case 2 、 设计阶段如何画用例图( Use-Case Diagram ) 3 、 类与类之间的关系图 (Class Diagram,UML 图 ) 4 、 UML 建模之活动图介绍( Activity Diagram ) 5 、 UML 建模之状态图( Statechart Diagram ) 6 、 UML 建模之时序图( Sequence Diagram ) 7 、 UML 建模之业务处理模型( Business Process Model,BPM ) 8 、 UML 建模之数据建模( Data Model Diagram ) 八、总结 一、为什么要学习 UML UML 是 Unified Modeling Language (统一建模语言)的简称。 UML 是对软件密集型系统中的制品进行可视化、详述、构造和文档化的语言。制品 {Artifact} 是指软件开发过程中产生的各种各样的产物,如模型、源代码、测试用例等。 Ø UML 建模可以达到以下目的: Ø 使用模型可以更好地理解问题 Ø 使用模型可以加强人员之间的沟通 Ø 使用模型可以更早地发现错误或疏漏的地方 Ø

实验二Java面向对象程序设计

扶醉桌前 提交于 2020-03-05 17:24:26
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1352 姓名:王国伊 学号:20135207 成绩: 指导教师:娄嘉鹏 实验日期:2015.5.8 实验密级:无 预习程度: 实验时间:15:30~18:00 仪器组次:07 必修/选修:选修 实验序号:02 实验名称: Java 面向对象程序设计 实验目的与要求: 1. 初步掌握单元测试和 TDD ; 2. 理解并掌握面向对象三要素:封装、继承、多态; 3. 初步掌握 UML 建模; 4. 熟悉 S.O.L.I.D 原则; 5. 了解设计模式。 实验仪器: 名称 型号 数量 PC机 Lenovo Z485 1 Linux虚拟机 Ubuntu(32bit) 1 实验步骤 一、单元测试 三种代码 编程是智力活动,不是打字,编程前要把干什么、如何干想清楚才能把程序写对、写好。当我们想用程序解决问题时,要会写三种码: 伪代码 产品代码 测试代码 需求:我们要在一个MyUtil类中解决一个百分制成绩转成“优、良、中、及格、不及格”五级制成绩的功能。 伪代码: 产品代码: 测试代码: 经过几次修改后得到可以通过自己测试的代码,即能够实现需求的代码。 这时测试都符合预期了,我们把MyUtil.java提供给别人使用时,他人可以按照要求实现需求。为保证单元测度是充分的,我们的一般要求是测试代码要比产品代码多。 2

面向对象的软件开发方法

早过忘川 提交于 2020-03-04 15:45:31
一、了解什么是面向对象的软件开发方法 答:1、OOSD是一种把面向对象的思想应用于软件开发过程,是一种当今成熟的、普遍流行的软件开发方法 2、面向对象方法的解决思路是从现实世界中的客观对象入手,尽量运用人类的自然思维方式来构造软件系统。是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。 3、面向对象方法中,把一切都看成是对象。对象是功能抽象和数据抽象的统一,较过程稳定。 二、面向对象软件开发的主要思想 答:1、按照人类的自然思维的方式,对客观世界建立软件模型。 2、客观实体和实体之间的联系构成了现实世界的所有问题。 3、面向对象技术将现实世界中的实体及相互关系映射为对象及对象间的关系,实体间的相互作用被映射为对象间的消息发送等。 三、面向对象方法的主要优点 答:(1)把易变的数据结构和部分功能封装在对象内并加以隐藏 i、保证了对象行为的可靠性。 ii、对其修改并不会影响其它对象,有利于维护,对需求变化有较强的适应。 (2)封装性和继承性有利于复用对象 i、把对象的属性和操作捆绑在一起,提高了对象(作为模块)的内聚性,减少了与其它对象的耦合,为复用对象提供了可能性和方便性。(高内聚,低耦合) ii、在继承结构中,特殊类对一般类的继承,本身就是对一般类的属性和操作的复用。 四、面向对象开发方法的组成 答:(1)OOA(Object-Oriented

Java之面向对象

故事扮演 提交于 2020-03-03 00:18:59
6.1 面向过程与面向对象 什么叫面向对象? 面向对象(Object-Oriented,简称OO)就是一种常见的程序结构设计方法。 面向对象思想的基础是 将相关的数据和方法放在一起 ,组合成一种新的复合数据类型,然后使用新创建的复合数据类型作为项目的基础。 面向对象是一个很抽象的概念,它相对面向过程而言。 过程与对象都是一种解决问题的思想。 面向过程:强调的是功能行为 ,面向过程就是分析出实现需求所需要的步骤,通过函数一步一步实现这些步骤,接着依次调用即可 ,也就是一种过程, 先干啥, 再干啥; 面向对象:将功能封装到对象里,强调的是具备某功能的对象; 面向对象是把整个需求按照特点、功能划分,将这些存在共性的部分封装成对象,创建了对象不是为了完成某一个步骤,而是描述某个事物在解决问题的步骤中的行为 按照面向对象的思想,可以把任何的东西看做对象! 面向过程和面向对象一定是互斥的吗 ?肯定不是 我们在处理问题时可以完全的面向过程 但是不能完全面向对象。举个例子来说: 你让女朋友做饭 你这个角度而言 面向对象 从女朋友这个角度而言呢?如果GF做 面向过程;如果GF不做 叫外卖 面向对象 从餐馆这个角度而言呢?应该是要做饭 面向过程;如果餐馆不做 可以叫别家餐馆做 .....别的餐馆都不做 这个饭始终没人做 相互踢皮球 从中可以看出什么 这个事最终要被处理-面向过程 所以