项目二 分析客户管理系统的对象及其关系.docx

上传人:b****6 文档编号:7700901 上传时间:2023-01-25 格式:DOCX 页数:15 大小:48.75KB
下载 相关 举报
项目二 分析客户管理系统的对象及其关系.docx_第1页
第1页 / 共15页
项目二 分析客户管理系统的对象及其关系.docx_第2页
第2页 / 共15页
项目二 分析客户管理系统的对象及其关系.docx_第3页
第3页 / 共15页
项目二 分析客户管理系统的对象及其关系.docx_第4页
第4页 / 共15页
项目二 分析客户管理系统的对象及其关系.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

项目二 分析客户管理系统的对象及其关系.docx

《项目二 分析客户管理系统的对象及其关系.docx》由会员分享,可在线阅读,更多相关《项目二 分析客户管理系统的对象及其关系.docx(15页珍藏版)》请在冰豆网上搜索。

项目二 分析客户管理系统的对象及其关系.docx

项目二分析客户管理系统的对象及其关系

项目二分析客户管理系统的对象及其关系-----面向对象基础

【项目背景】

从本项目开始我们将学习.NET平台和C#语言,在学习C#语言前,必须先对其有一个初步认识,要了解C#的开发环境,C#的基本程序结构,所以,在项目实施中,通过一个简单的序的设计,求熟悉.NETIDE的编程界面,熟悉C#的编程环境以及程序调试的基本方法,掌握C#程序的基本结构。

在学习中要注意和C语言或java语言区别,在比较中学习。

【项目任务】

任务1客户对象信息分析

任务2客户对象关系分析

【知识目标】

通过本项目的设计实践,达到如下的目标:

熟悉现实世界中实体的表示方法

理解基于UML面向对象的分析与设计的方法

【技能目标】

能利用UML绘制类图和对象图

【关键词】

对象object.、类class、消息Message、方法method、实例instance、库

任务2-1客户对象信息分析-----认识面向对象

【提出问题】

现实世界是由各种各样的实体(事物、对象所组成的,每种对象都有自己的内部状态和运动规律,不同对象间的相互联系和相互作用就构成了各种不同的系统,并进而构成整个客观世界。

计算机软件的目的就是为了模拟现实世界,使各种不同的现实世界系统在计算机中进行表示和实现。

为了更好的认识客观世界,把具有相似内部状态和运动规律的实体(事物、对象综合在一起称为类。

进而人们抽象的认为客观世界是由不同类的事物间相互联系和相互作用所构成的一个整体。

本次任务就是要实现如何将现实世界中的实体抽象为类,

并在计算机中表示和实现。

【相关知识】

2.1.1面向对象的基本概念

1967年挪威计算中心的KistenNygaard和OleJohanDahl开发了Simula67语言,它提供了比子程序更高一级的抽象和封装,引入了数据抽象和类的概念,它被认为是第一个面向对象语言。

20世纪70年代初,PaloAlto研究中心的AlanKay所在的研究小组开发出Smalltalk

如Object-C,C++,Self,Eiffl都产生了深远的影响。

随着面向对象语言的出现,1980年GradyBooch提出了面向对象设计的概念,之后面向对象分析开始。

1985年,第一个商用面向对象数据库问世。

VisualBasic是Microsoft于1991年在BASIC语言的基础上推出的可视化面向对象编程语言。

VisualBasic的产生标志着软件技术一个新时代的开始。

在VisualBasic之后,相继产生了VisualC++、VisualJ++、VisualFoxPro、BorlandDelphi及PowerBuilder等众多可视化程序语言。

数据封装、多态性、消息传递。

通过这些概念面向对象的思想得到了具体的体现。

1、面向对象(object-oriented;简称:

oo

至今还没有统一的概念,我们把它定义为:

按人们认识客观世界的系统思维方式,采用基于对象(实体的概念建立模型,模拟客观世界进行分析、设计以及在计算机中表示与实现的方法。

通过面向对象的理念使计算机软件系统能与现实世界中的系统一一对应。

面向对象的编程方法(Object-OrientedProgramming是九十年代才流行的一种软件编程方法。

它强调对象的“抽象”、“封装”、“继承”、“多态”。

面向对象编程是一种计算机编程架构,达到了软件工程的三个主要目标:

重用性、灵活性和扩展性。

2、对象(object

对象是人们要进行研究的任何事物,从最简单的整数到复杂的飞机等均可看作对象,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。

对象是构成世界的独立单位,它具有自己的静态特性(对象的属性,可以用某种数据来描述和动态特性(对象所具有的行为或具有的功能

面向对象方法中的对象,是系统中用来描述客观事物的一个实体,它是用来构成系统的一个基本单位。

对象由一组属性和一组行为构成。

属性是用来描述对象静态特性

的数据项,行为是用来描述对象动态特性的操作序列。

3、类(class

类是具有相似内部状态和运动规律的实体的集合。

类的概念来自于人们认识自然、认识社会的过程。

在这一程中,人们主要使用两种方法:

由特殊到一般的归纳法和由一般到特殊的演绎法。

在归纳的过程中,其所依据的原则是抽象,即忽略事物的非本质特征,只从一个个具体的事物中把共同的特征抽取出来,形成一个一般的概念,这就是"归类";昆虫、狮子、爬行动物,因为它们都能动所以归类为动物。

在演绎的过程中我们又把同类的事物,根据不同的特征分成不同的小类,这就是"分类";如动物->猫科动物->猫->大花猫等。

面向对象方法中的“类”,是具有相同属性和服务的一组对象的集合。

对于一个具体的类,它有许多具体的个体,我们就管这些个体叫做"对象"。

类是对象的抽象,对象是类的一个实例。

类的内部状态是指类集合中对象的共同状态;类的运动规律是指类集合中对象的共同运动规律。

4、消息(Message

消息是指对象间相互联系和相互作用的方式。

一个消息主要由5部分组成:

发送消息的对象(对象名、接收消息的对象(对象名、消息传递办法(即对象名.方法名、消息内容(即对象名.方法的参数,可以是认识该消息的对象所知道的变量名,或者是所有对象都知道的全局变量名、反馈(即对象方法的返回值。

5、类的特性

类的定义决定了类具有以下5个特性:

抽象、继承、封装、重载、多态。

(1抽象:

类的定义中明确指出类是一组具有内部状态和运动规律对象的抽象。

抽象是一种从一般的观点看待事物的方法,它要求我们集中于事物的本质特征(内部状态和运动规律,而非具体细节或具体实现。

也就是说,现实世界是一组抽象的对象——类组成的。

(2继承:

继承是类不同抽象级别之间的关系,即特殊类的对象拥有其某一般类的全部属性与服务,称为特殊类对一般类的继承。

类的定义主要有两种办法归纳和演绎,由一些特殊类归纳出来的一般类称为这些特殊类的父类,特殊类称为一般类的子类;同样父类可演绎出子类,父类是子类更高级别的抽象。

子类可以继承父类的所有内部状态和运动规律。

使公共的特性能够共享,提高了软件的重用性。

(3封装:

对象间的相互联系和相互作用过程主要通过消息机制得以实现。

对象之间并不需要过多的了解对方内部的具体状态或运动规律。

面向对象的类是封装良好的模块,类定义将其说明(用户可见的外部接口与实现(用户不可见的内部实现显式地分开,其内部实现按其具体定义的作用域提供保护,封装防止了程序相互依赖性而带来的变动影响。

封装是面向对象方法的一个重要原则,就是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。

类是封装的最基本单位。

在类中定义的接收对方消息的方法称为类的接口。

(4多态(覆盖:

多态是指在一般类中定义的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。

这使得同一个属性或行为在一般类及其各个特殊类中具有不同的语义。

如动物都会吃,而羊和狼吃的方式和内容都不一样,如图2-1类方法的多态性。

图2-1图2-2

(4重载:

重载指类的同名方法在给其传递不同的参数是可以有不同的行为。

在对接收消息对象内部的行为也可能不同。

如图2-2

2.1.2建模语言UML

目前,面向对象开发方法的研究已日趋成熟,国际上已有不少面向对象产品出现。

面向对象开发方法有Coad方法、Booch方法和OMT方法等。

1.Booch方法

Booch最先描述了面向对象的软件开发方法的基础问题,指出面向对象开发是一种根

而功能分解只通过问题空间的转换来获得。

2.Coad方法

Coad方法是1989年Coad和Yourdon提出的面向对象开发方法。

该方法的主要优点是通过多年来大系统开发的经验与面向对象概念的有机结合,在对象、结构、属性和操作的认定方面,提出了一套系统的原则。

该方法完成了从需求角度进一步进行类和类层次结构的认定。

尽管Coad方法没有引入类和类层次结构的术语,但事实上已经在分类结构、属性、操作、消息关联等概念中体现了类和类层次结构的特征。

3.OMT方法

OMT方法是1991年由JamesRumbaugh等5人提出来的,其经典著作为“面向对象的建模与设计”。

该方法是一种新兴的面向对象的开发方法,开发工作的基础是对真实世界的对象建模,然后围绕这些对象使用分析模型来进行独立于语言的设计,面向对象的建模和设计促进了对需求的理解,有利于开发得更清晰、更容易维护的软件系统。

该方法为大多数应用领域的软件开发提供了一种实际的、高效的保证,努力寻求一种问题求解的实际方法。

4.UML(UnifiedModelingLanguage语言

软件工程领域在1995年~1997年取得了前所未有的进展,其成果超过软件工程领域过去15年的成就总和,其中最重要的成果之一就是统一建模语言(UML的出现。

UML将是面向对象技术领域内占主导地位的标准建模语言。

UML不仅统一了Booch方法、OMT方法、OOSE方法的表示方法,而且对其作了进一步的发展,最终统一为大众接受的标准建模语言。

UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。

它融入了软件工程领域的新思想、新方法和新技术。

它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发全程。

UML是一种可视化的建模语言。

UML支持面向对象技术,提供了一种能简洁明了地表达面向对象的概念。

可视化表示能力强,通过模型图能清晰地表示系统的逻辑模型和实现模型,可用于各种复杂系统的建模。

它独立于开发过程,独立于程序设计语言,建立的软件系统模型可以用任何一种面向对象的程序设计来实现。

它易于掌握进行系统分析和设计的进程,图形结构清晰,建模简洁明了,从而加速了开发进程,提高了代码质量。

在UML系统开发中有三个主要的模型:

功能模型:

从用户的角度展示系统的功能,包括用例图。

对象模型:

动态模型:

展现系统的内部行为。

包括序列图,活动图,状态图。

在最新版的UML2中包含了类图、用例图、序列图、活动图、组件图、部署图、对象图、通讯图、状态图、包图、组合结构图、交互概览图、时间图、造型图等14款图。

下面UML中的主要图例的功用做一个简单介绍:

(1用例图

描述角色以及角色与用例之间的连接关系。

说明是谁要使用系统,以及他们使用该系统可以做些什么。

一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示了这些元素之间的各种关系,如泛化、关联和依赖。

(2类图

类图是描述系统中的类,以及各个类之间的关系的静态视图。

能够让我们在正确编写代码以前对系统有一个全面的认识。

类图是一种模型类型,确切的说,是一种静态模型类型。

类图表示类、接口和它们之间的协作关系。

(3对象图

与类图极为相似,它是类图的实例,对象图显示类的多个对象实例,

它描述的不是类之间的关系,而是对象之间的关系。

(4活动图

描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。

能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图建模的商务需求。

(5状态图

描述类的对象所有可能的状态,以及事件发生时状态的转移条件。

可以捕获对象、子系统和系统的生命周期。

他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等会怎么随着时间的推移来影响这些状态。

一个状态图应该连接到所有具有清晰的可标识状态和复杂行为的类;该图可以确定类的行为,以及该行为如何根据当前的状态变化,也可以展示哪些事件将会改变类的对象的状态。

状态图是对类图的补充。

6、序列图(顺序图

序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。

顺序图可以用来展示对象之间是如何进行交互的。

顺序图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。

7、协作图

和序列图相似,显示对象间的动态合作关系。

可以看成是类图和顺序图的交集,协作图建模对象或者角色,以及它们彼此之间是如何通信的。

如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图;这两种图合称为交互图。

8、构件图(组件图

描述代码构件的物理结构以及各种构建之间的依赖关系。

用来建模软件的组件及其相互之间的关系,这些图由构件标记符和构件之间的关系构成。

在组件图中,构件时软件单个组成部分,它可以是一个文件,产品、可执行文件和脚本等。

9、部署图(配置图

是用来建模系统的物理部署。

例如计算机和设备,以及它们之间是如何连接的。

部署图的使用者是开发人员、系统集成人员和测试人员。

部署图用于表示一组物理结点的集合及结点间的相互关系,从而建立了系统物理层面的模型。

2.1.3任务分析与实施

1、任务要求:

一个简单CRMIIS系统需求大致如下描述:

这个系统主要用来管理客户信息,管理员只需要一个,登录后可以实现对客户相关信息的管理,如增加、删除、修改客户信息等客户可以通过员工订购相关的产品。

任何人可以浏览相关信息。

分析其相关实体及属性

2、任务分析

客户信息包括客户的基本信息、客户服务记录、客户投诉记录、客户销售记录、客户报价记录、产品基本信息等。

系统管理员信息包括编号、姓名、登录名、密码、权限等

员工信息包括编号、姓名、电话、部门、地址等。

产品的信息包括产品编号、产品名称、型号、价格、出产地等

3、项目实施

例如VisualStudio2010创建类型及关系图。

任务2-2客户对象的关系分析-----使用UML建立项目模型

【提出问题】

如何描述实体和实体之间的关系,如何创建类图、对象图等,目有UML建模工具有Visio、RationalRose、PowerDesign三种,Visualstudio2010内置有UML可以实现类图、关系图与C#代码转换,本次任务我们将学习使用Visualstudio2010创建UML图。

【相关知识】

2.2.1VisualStudio2010中的UML建模功能

VisualStudio2010支持了5款图,分别为:

类图(ClassDiagram、序列图(SequenceDiagram、用例图(UseCaseDiagram、活动图(ActivityDiagram、组件图(ComponentDiagram。

但是,类图中可以放置包图(PackageDiagram相关的元素,所以VisualStudio2010实际上可以让开发人员绘制6款图。

下面主要介绍类图的创建。

1、类图

类图中的每一个类,都是由名称(Classifier、特性(Attribute,以及操作(Operation所构成。

图2-3是Member类的例子。

类中的特性,是用来声明在该类的每一个实体中,所能保存的状态;而操作指的则是每一个该类的实体可以执行的方法或是函数。

以图2-3的Member类为例来说,根据Member所建立的实体中,都会存放自己的编号(ID的状态数据;而每个Member实体也提供了一个GetOrderHistory方法。

2-3类图2-4类的关联

2、实例关系

可以通过类图描述实例之间的关系,实体之间的关系注意有:

(1、关联(Association

二:

1

构】

|

新建

关系图】,打开如图2-9也可通过项目的“解决方案资源管理器”窗口,选中指定“项目模型”,按右键,通过【添加】|【新建项】,打开“添加新项”窗体,如图2-10所示,选择模板中的“类图”

图2-9新建关系图

图2-8新建UML项目

图2-10在UML项目中添加新项

(2完成之后打开“工具箱”窗口,选择“类”组件拖放到类图中;或在类图窗口按右键,在弹出菜单中选择【类】

如图2-11所示。

图2-11添加类

(3选中类”class1”,按右键,在弹出菜单中选择【属性】,在属性窗口中修改

属性值为Employee,即类名为Employee。

如图2-12所示

图2-12添加特性

(4选中类“Employee”的“特性”,按右键,在弹出菜单中选择【添加】|【特性】然后选中所添加的特性项Attribute1(默认值,在属性窗口中修改相关属性,Name属性值为ID,Type属性值为string。

表示类“Employee”有一个“string”类型的“ID”特性。

如图2-13所示

图2-13设置特性的属性值

(5重复步骤4,添加类的其它特性。

(6选中类“Employee”的“操作”,按右键,在弹出菜单中选择【添加】|【操作】即设置类的相关行为(函数。

然后选中所添加的操作+Operation((默认值,在属性窗口中修改相关属性,Name属性值为Operation(。

在这里可以根据情况设置函数的参数(Parameter属性和返回值类型(ReturnType属性等。

图2-14添加操作

重复前面2,3,4,5,6步骤,创建一个Manager类。

步骤三:

建立类之间的关系

(1选中Manager类,按右键,在弹出菜单中选择【添加】|【继承】,拖动鼠标指向类Employee。

建立类Manager与类Employee之间的关系,表示类Manager继承自类Employee。

如图2-15

图2-15添加关系

(2按照步骤1可以建立其它类之间的关系。

步骤四、生成代码

(1类图建立完成之后,VisualStudio2010开发工具可以根据类图中所分析的结果,建立代码。

(2在“SaleModeling”类图上空白处,单击鼠标右键,选择“GenerateCode”项目。

此时会出现对话框,提醒你在根据类图产生代码前,必须要先做一些设置。

点击按钮继续。

也可以通过类图SaleModeling的TextTemplatebindings属性设置。

如图2-16

图2-18新建windows项目

(3接下来,在解决方案资源管理器中,选中SaleApp项目,单击鼠标右键。

在快捷菜单中,选中“查看类图”,如图2-19所示。

图2-19打开类图

(4此时,在项目中会自动建立并打开ClassDiagram1.cd类图文档。

默认会显示Form1、Settings、Resources和Program四个类,如图2-20所示。

步骤二、新建类

图2-20类图

(1在类图空白处单击鼠标右键,在快捷菜单中选中“添加”→“类”,如图5-6所示。

图2-21添加类

也可以通过工具箱的来添加类,如图2-22所示

图2-22工具箱图2-23设置类名

(2在“新类”对话框中,输入“类名”为Employee,并点击“确定”按钮,如图

2-23所示。

(3)在Employee类框上,单击鼠标右键,从快捷菜单中选中“添加”→“字段”。

如图2-24所示图2-24添加字段、方法(4)输入字段名称为id。

选中字段id,按右键选择“属性”,在属性窗体中设置“类型”属性值为int,“访问”属性值private以及其他属性值。

如图2-25所示图2-25设置字段的属性(5)重复第(3)、(4)步,建立name、level、baseSalary等字段。

(6)在Employee类框上单击鼠标右键,从快捷菜单中选中“添加”→“方法”。

如图2-24所示(7)输入方法名称为ComputeSalary。

如图2-25所示

如图2-25图2-26修改默认命名空间(8)修改默认命名空间名称,在“解决方案资源管理器”窗口中选中项目之后,单击鼠标右键,从快捷菜单中选中“属性”选项按钮之后,从项目的“属性”窗口的“应用程序”选项卡中,修改默认命名空间的值,如图2-26所示。

步骤三、查看C#代码打开“解决方案资源管理器”窗口,会发现项目中多了Employee.cs文件,这两个文件就是Employee类定义的源文件。

打开Employee.cs源文件后,代码文件内容如图2-27所示。

在这里编写代码后,其类图也将会自动修改。

图2-27查看代码2.3项目实践2.3.1项目任务分析客户关系系统中的相关实体,以及实体之间的关系,并用UML图来描述2.3.2需求分析

(1)客户关系系统中,主要包括如下的实现客户信息={编号、姓名、电话、客户类型、地址}

公司员工信息={编号、姓名、部门、职位、电话、地址}员工工资表={编号、月份、处理订单量、基本工资、奖金}产品信息={编号、产品名称、产品型号、价格、出产地}订单信息={订单编号、订单日期、提交订单客户编号、订单处理的员工编号、订单状态}订单明细={订单编号、产品编号、数量、价额}系统用户={用户名,密码,权限}

(2)实体之间的关系一个客户可能提交多个订单一个员工可能处理多个订单一个订单可能存在订多个产品员工的工资更加处理订单的数量确定其奖金一个公司有多个员工(3)基本功能员工要处理订单客户提交订单系统用户要处理员工信息、客户信息。

包括增加、修改、删除、查找、计算工资等。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 外语学习 > 其它语言学习

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1