UML基本架构建模--类的通用建模技术(一)



Modeling the Vocabulary of a System

为系统的词汇表建模

You’ll use classes most commonly to model abstractions that are drawn from the problem you are trying to solve or from the technology you are using to implement a solution to that problem. Each of these abstractions is a part of the vocabulary of your system, meaning that, together, they represent the things that are important to users and to implementers.

你可以使用最常用的类为抽象建模,这些抽象来自你正在尝试解决的问题或是使用实现一个解决这个问题的技术.这些抽象的每一个都是系统词汇的一部分.同时这意味着,它们代表的是那些对用户和实施者很重要的事情.

For users, most abstractions are not that hard to identify because, typically, they are drawn from the things that users already use to describe their system. Techniques such as CRC cards and use case-based analysis are excellent ways to help users find these abstractions. For implementers, these abstractions are typically just the things in the technology that are parts of the solution.

对用户来说,大多数的抽象事物并不难识别,因为,通常它们来自用户在描述它们的系统时已经使用过的事物.像CRC卡技巧和基于用例分析的技巧都是帮助用户寻找这些抽象事物的很好的方法.对于实施者来说,这些抽象事物,通常仅是技巧的一部分.

To model the vocabulary of a system,

为构建系统的词汇表,需要做的事有:

1.Identify those things that users or implementers use to describe the problem or solution. Use CRC cards and use case-based analysis to help find these abstractions.

识别那些用户和实施者使用描述问题和答案的事物.使用CRC卡和基于用例分析来帮助寻找这些抽象.

2. For each abstraction, identify a set of responsibilities. Make sure that each class is crisply defined and that there is a good balance of responsibilities among all your classes.

为每个抽象标识一组职责.确保每个类清晰地被定义,这能很好的平衡你所有类之间的职责.

3. Provide the attributes and operations that are needed to carry out these responsibilities for each class.

为每个需要执行这些职责的类提供属性和操作.

Figure 4-9 shows a set of classes drawn from a retail system, including Customer, Order, and Product. This figure includes a few other related abstractions drawn from the vocabulary of the problem, such as Shipment(used to track orders), Invoice(used to bill orders), and Warehouse(where products are located prior to shipment). There is also one solution-related abstraction, Transaction, which applies to orders and shipments.

如图4-9显示的一组来自零售系统的类,包括客户,订单,和产品.这个图包含少量来自问题词汇表的其它相关抽象,如发货(用来跟踪订单),发票(用于已支付订单),和仓库(定义发货之前产品的位置).还有一个解决方案相关的抽象:交易,它适用于订单和发货.

As your models get larger, many of the classes you find will tend to cluster together in groups that are conceptually and semantically related. In the UML, you can use packages to model these clusters of classes.

当你的模型越来越大时,你会发现更多的类将趋向于聚集在概念上和语义相关的群中.在UML中,你可以使用包来构建这些类的聚集.

Your models will rarely be completely static. Instead, most abstractions in your system’s vocabulary will interact with one another in dynamic ways. In the UML, there are a number of ways to model this dynamic behavior.

你的模型很少会是完全静态的.相反,在你的系统词汇表中大多数的抽象将会以动态的方式互相影响.在UML中,有一些构建这些动态行为的方法.

时间: 2024-10-08 08:21:22

UML基本架构建模--类的通用建模技术(一)的相关文章

UML基本架构建模--类的通用建模技术(三)

 Modeling Nonsoftware Things 构建非软件事物模型 Sometimes, the things you model may never have an analog in software. For example, the people who send invoices and the robots that automatically package orders for shipping from a warehouse might be a part of

UML基本架构建模--类的通用建模技术(二)

 Modeling the Distribution of Responsibilities in a System 为系统的职责分配建模 Once you start modeling more than just a handful of classes, you will want to be sure that your abstractions provide a balanced set of responsibilities. What this means is that y

UML基本架构建模--类的通用建模技术(四)

 Modeling Primitive Types 构建原始类型模型 At the other extreme, the things you model may be drawn directly from the programming language you are using to implement a solution. Typically, these abstractions involve primitive types, such as integers, charac

UML基本架构建模--获取类

 Getting Started 开始 Modeling a system involves identifying the things that are important to your particular view. These things form the vocabulary of the system you are modeling. For example, if you are building a house, things like walls, doors, w

UML基本架构建模--类的辅助信息

 Organizing Attributes and Operations 组织属性和操作 When drawing a class, you don't have to show every attribute and every operation at once. In fact, in most cases, you can't (there are too many of them to put in one figure) and you probably should not

UML基本架构建模--通用机制的术语和概念(四)

 Constraints 约束 Everything in the UML has its own semantics. Generalization (usually, if you know what's good for you) implies the LisKov substitution principle, and multiple associations connected to one class denote distinct relationships. With c

微服务架构下静态数据通用缓存机制

在分布式系统中,特别是最近很火的微服务架构下,有没有或者能不能总结出一个业务静态数据的通用缓存处理机制或方案,这篇文章将结合一些实际的研发经验,尝试理清其中存在的关键问题以及探寻通用的解决之道. 什么是静态数据 这里静态数据是指不经常发生变化或者变化频率比较低的数据,比如车型库.用户基本信息.车辆基本信息等,车型库这种可能每个月会更新一次,用户和车辆基本信息的变化来源于用户注册.修改,这个操作的频率相对也是比较低的. 另外这类数据的另一个特点是要求准确率和实时性都比较高,不能出现丢失.错误,以及

大气智能家居家具装修装饰类企业通用网站织梦模板【dedecms模板】

模板名称:大气智能家居家具装修装饰类企业通用网站织梦模板模板介绍:织梦最新内核开发的模板,适合智能家居家具企业,也可以通用装修行业等企业使用,页面简洁简单,容易管理,DEDE5.5内核以上都可以使用:附带测试数据! 模板特点:1:智能家居家具展示公司模板,代码简洁,风格大气简单,页面干净.2:首页带炫酷的幻灯片,产品展示,新闻展示.3:网站内容都能在后台修改,后台简单易学.4:后台直接修改联系方式.地址.版权信息,网站内容等,修改更加方便. 使用程序:织梦DEDECMS5.5以上版本都可以使用.

基于类的通用视图

基于类的通用视图 前面我们说过了django的通用视图,不知道django通用视图的去看我前面的随笔,谢谢 django的通用视图帮我们省略了很多代码,但有时候django的通用视图并不能满足我们全部的需求,例如像重定义一些属性和方法的时候,或者我们想换种写法的时候,因此,django提供了基于类的通用视图,通过子类或者在url中传参的方法来配置我们的基于类的通用视图 通用视图和基于类的通用视图是两种不一样的写法,前面我们介绍的通用视图,所有的代码集中于url的配置文件中,而基于类的通用视图主要