梳理你的思路(从OOP到架构设计)_UML应用:业务内涵的分析抽象表达01

目录

1、 系统分析(System Analysis)

系統分析的涵意

业务(领域)知识 = 业务内涵

业务(领域)概念

2、举例(一) :东方传说

UML与建模工具


1、 系统分析(System Analysis)

系統分析的涵意

许多人在学习系统分析(System Analysis)时,常迷失于其字面上的意义,以为分析的对象是「系统」,这是一种常见的迷思!其实,分析的对象是系统所处的「业务领域知识」 (Domain Knowledge)才是正确的。就如同计算机专家James Martin所说:

        「 OOA不是要去分析实际的系统;而是用来分析人们对系统的专业认知和做法---- 从收集到

           的领域概念来分析出业务内涵。 」

           (Object-oriented analysis is not an approach that models reality. Instead, it models the way

           people understand and process reality -- through the concepts they acquire.)
 

业务(领域)知识 = 业务内涵

所以系统分析的主要对象并非「系统」本身,而是分析专家们如何以其专业知识来叙述系统,亦即,专家心中的「 业务(领域)知识」才是系统分析的主要对象。所以焦点是业务知识(Domain Knowledge) , 而不是系统。

业务(领域)概念

  • 知识的组成要素是「概念」 (Concepts)。
  • 领域知识(Domain Knowledge)的组成要素是领域概念(Domain Concepts)。
  • 概念有它的属性(Attribute),概念之间有其关系(Relationship)。
  • 系统分析(或OOA)就是要分析领域知识里的概念,并以UML的类别(Class)等示来表示之。
  • 概念(Concept)是抽象的,代表一群实体,是沟通的重要媒介。例如:「请买杯咖
  • 啡」,咖啡是个概念具有这种概念的人,都会了解这句话的意思。他会凭其经验而想到真实咖啡。
  • 概念代表一个群体---- 「类别」 (Class),人们藉由天赋的能力运用经验去想到其所代表的实际东西---- 「对象」 (Object)。
  • 例如您听到「买一只吉他」,这「吉他」概念让您想到经验中的吉他,而去乐器行买一只「真实的吉他」回家
  • 找出领域知识里的概念,就是找出软件系统的对象和类别。
  • 例如麦当劳企业有汉堡、薯条、玩具、特餐、点餐、订购玩具、顾客、员工、玩具商、分店等等的概念,将对应到软件系统的类别,所以在麦当劳的软件系统里就会有汉堡、薯条、玩具、特餐、点餐、订购玩具、顾客、员工、玩具商、分店等等的类别。
  • 「概念是人人互相分享的。概念提供了能让人人互相了解的共通词汇。」

        (Concepts are shared by others.Concepts provide the commonvocabulary for

          communication.)

  • 例如「收据」是个重要的商业概念。在商店里,「收据」代表能归还所购货品的权利,也是人们皆知道的,人们也知道实际收据的模样。这样的概念,自然成为人们沟通的主要字汇。
     

2、举例(一) :东方传说

UML与建模工具

  • 『 后羿从西王母处请来不死之药,嫦娥偷吃了这颗灵药,成仙了,身不由主飘飘然地飞往月宫之中,在那荒芜的月宫之中度着无边的寂寞岁月。 』
  • 虽然嫦娥可能是传说虚构的,并非事实(Reality),但是确确实实是我们心中的清晰概念,传说中的主角,所以是个重要的类别,表示如下:

           

  • 跟「嫦娥」具有密切关联的概念是:月亮和仙丹,常表达如下:

           

  • 不仅上述的名词概念而已,其攸关的动作也常是重要概念。动词常常代表一项事件(Event)的发生,而人们常从人、事、时、地、物等去描述一个事件的发生情境。
  • 譬如,吃仙丹就有动作(吃)的对象---仙丹,动作的主角---嫦娥,当然还有地点、时间,甚至仙丹来源等等。  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/64279.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web 安全 跨站 跨域 XSS CSRF

跨站 跨站即 cross-site,它和同站(same-site)相对,对协议和端口号无要求,只要两个 URL 的 eTLD 1 一致,就能称为同站。那么什么是 eTLD 呢? eTLD 即 effective top level domain,…

k8s服务搭建与实战案例

Kubernetes(K8s)作为一个开源的容器编排平台,广泛应用于现代的云原生应用架构中。以下是一些常见的 **Kubernetes 实战案例**,包括从基础部署到高级应用场景的使用。通过这些案例,可以更好地理解 K8s 的运作原理和最佳…

PYQT5程序框架

pyqt5程序框架_哔哩哔哩_bilibili 1.UI代码 Qhkuja.py # -*- coding: utf-8 -*-# Form implementation generated from reading ui file Qhkuja.ui # # Created by: PyQt5 UI code generator 5.15.7 # # WARNING: Any manual changes made to this file will be lost when py…

基于MobileNet v2模型的口罩实时检测系统实现

基于kaggle数据集训练的模型其实现结果如下: 代码结构如下: 实时口罩检测器: 从导航栏中的链接“实时的口罩检测器”功能,该系统包含一个实时检测用户是否佩戴口罩的功能。基于图片的口罩检测器: 从另一个导航链接“基…

高效项目托管指南:从本地到 GitHub 的完整流程

在现代软件开发中,将项目托管在 GitHub 上是一个常见且高效的方式。GitHub 不仅可以用作版本控制工具,还能帮助你与团队协作或展示自己的项目。本文将带你一步步完成项目的打包和上传。 高效项目托管指南:从本地到 GitHub 的完整流程 1. 准备…

用TPS54531绘制BUCK电路板

首先,这TPS54531 是一款非同步降压转换器芯片(异步)。 这是BUCK的基本原理图,它是异步的。 我们用这款芯片来控制MOS管的高频开关,以此实现降压。 这里使用的应该是CCM模式。 这里: Vi为24V,…

【新人系列】Python 入门(十六):正则表达式

✍ 个人博客:https://blog.csdn.net/Newin2020?typeblog 📝 专栏地址:https://blog.csdn.net/newin2020/category_12801353.html 📣 专栏定位:为 0 基础刚入门 Python 的小伙伴提供详细的讲解,也欢迎大佬们…

人工智能增强的音频和聊天协作服务

论文标题:AI-enabled Audio and Chat Collaboration Services 中文标题:人工智能增强的音频和聊天协作服务 作者信息: Emil P. Andersen, Norwegian Defence Research Establishment (FFI), Kjeller, NorwayJesper R. Goksr, Sindre E. Ha…

【原创】- 澳门预约医疗系统 - 一个基于Vue3编写的程序

在空余时间写了一个前端预约医疗系统,用Vue3写的一套前端模块,里面数据都是本地模拟,一个练手的简单项目。 此项目主要功能有: 1.预约挂号、挂号记录 2.疫苗接种 3.就医记录 4.科室导航 5.AI问诊 6.个人病例 7.支付可配置化 8.健康…

Cadence学习笔记 3 MCU主控原理图绘制

基于Cadence 17.4,四层板4路HDMI电路 更多Cadence学习笔记:Cadence学习笔记 1 原理图库绘制Cadence学习笔记 2 PCB封装绘制 目录 3、MCU主控原理图绘制 快捷键总结: 3、MCU主控原理图绘制 新建原理图Design,选择好SCH文件夹&…

vue2实现答题组件

需求 实现一个答题组件,点击正确的选项,该选项背景变绿色;点击错误的选项,该选项背景变红色。不管点击了什么选项,延迟一秒后切换下一题。 每次出题,从题库中选随机选择一道用户此次进入这个页面后还没有…

3D相框案例讲解(详细)

前言 通过现阶段的学习,我们已经掌握了HTML,CSS和JS部分的相关知识点,现在让我们通过一篇案例,来巩固我们近期所学的知识点。 详细视频讲解戳这里 任务一 了解目标案例样式 1.1了解案例 3D相框 1.2 分析案例 首先我们看到一个…

SuperMap GIS基础产品FAQ集锦(20241216)

一、SuperMap iDesktopX 问题1:想问一下 SuperMap iDesktopX可以修改倾斜入库后数据的位置吗 11.2.1 【解决办法】在配置文件(*.scp)中找打position属性,修改其中的xyz值,用于改变位置;修改后如果想要相机…

2.11.静态链表

一.静态链表的基本概念: 1.上图说明:索引为0处是头结点,头结点不存储数据,但存储下一个结点的数组下标,本例中头结点里存储的下一个结点的数组下标为2,即索引为2的结点为头结点后的第一个结点,以…

【Childishness and Playfulness】

奥迪双钻,旋风冲锋龙卷风,巨无霸 智能芯片 东西南北中,好像已经忘了怎么折叠了,折千纸鹤,折小船,折舞狮,折飞机 红外线小灯,纽扣电池,各种形状投影 爷爷的手电筒&am…

【C++初阶】第9课—标准模板库STL(string_3)

文章目录 1. string类对象的查找操作1.1 c_str返回c格式字符串1.2 substr获取string类对象子串1.3 find和rfind查找字符串内容1.4 find_first_of与find_first_not_of1.5 find_last_of与find_last_not_of1.6 copy复制string类对象内的字符串内容1.7 compare对比string类字符串1.…

【教程】如何下载WandB平台的运行数据?

【教程】如何下载WandB平台的运行数据? 前言 CSDN主页:https://blog.csdn.net/rvdgdsva 博客园主页:https://www.cnblogs.com/hassle Weights & Biases (WandB)是一个用于机器学习的平台,它提供了一套工具来帮助你跟踪、比…

vscode设置终端代理

转载请标明出处:小帆的帆的博客 设置终端代理 修改项目的.vscode/settings.json {"terminal.integrated.env.windows": {"http_proxy": "http://127.0.0.1:7890","https_proxy": "http://127.0.0.1:7890"}, }…

【Linux】自定义项目-进度条

更多精彩内容..... 🎉❤️播主の主页✨😘 Stark、-CSDN博客 准备工作:"\r"与"\n"字符 ①:基本含义 在C语言和Linux环境中,\r是回车符,\n是换行符,用于控制文本格式和输出…

Linux从0到1——初识线程【什么是线程/线程控制/详解tid】

Linux从0到1——初识线程 1. 什么是线程?1.1 线程的概念1.2 结合代码理解线程1.3 重谈地址空间1.4 线程的优缺点 2. 线程异常和线程用途3. Linux进程VS线程4. 详解pthread_create的arg参数4.1 给线程传参4.2 一次创建多个线程 5. 线程控制5.1 线程退出5.2 线程分离5…