umlchina公共课上课笔记

UML类图-软件需求分析与设计(很详细,很详细,很详细) UML之类图 类图的定义:是显示一组类、接口、协作以及它们之间关系的图。   类图主要包含7种元素:、类、接口、协作、依赖关系、泛化关系、实现关系、关联关系。 类图:包、子系统,用来把模型元素聚集成更大的组块。 类图:约束、注解     类 1.类是一组拥有相同的属性、操作、方法、关系和行为的对象地描述符。 2.类定义了一组有着状态与行为的对象。类的状态由... 阅读详情

概述

1.       开发过程粗略解析。软件开发要做的两件事情:需求(做什么)与设计(怎么做)

2.       开发过程详细解析:业务建模、需求||||分析、设计、实现、测试。

a)       业务建模是可以略过的

b)       分析跟设计可能合并

3.       所有开发方法都是要满足上面的流程。例如之前的瀑布模型,新生的RUP,XP和MS方法。但目前新的方法都是用例驱动、架构为核心、迭代的。

4.       UP中整个产品流程包括多个循环,每个循环包括多个阶段,每个阶段包括多个迭代,每个迭代对应多个工作流。先启阶段决定是否要可行,细化阶段完成架构,构建阶段完成大部分编码,移交阶段产生出货版本。每个迭代都会经过所有核心工作流,但侧重点不同。

5.       每次迭代的步骤:需求、分析、设计、实现、测试五个核心工作流。

6.       为了支持UP,一般使用UML。但UML不仅应用于UP。

7.       难点不在于怎么画,而在于画什么。

开发流程0:业务建模

1.       在8.pdf中

2.       目标:描述现实,帮助发现软件需求。业务流程就是业务用例。业务用例对业务执行者提供价值。什么是IBM?一堆价值流。

3.       并非必须,不一定和软件开发相关

4.       业务建模能帮助明确愿景。

5.       结果工件:业务用例模型和业务对象模型

6.       业务建模步骤:

a)       确定业务单元:包含大多数使用系统的人的组织。

b)       识别业务执行者

c)        识别业务用例。注意,业务用例必须是提供价值的。一般对应一个子系统,粒度很大。两条途径来识别。

d)       详细描述业务用例:使用活动图插入文字(+注释+标注基本路径)。

e)       建立业务对象模型

7.       活动图

起点、终点、活动、泳道、迁移和迁移条件、判定、并行、对象流。

8.       建立业务对象模型:现实生活中的人、事物和关系。包括业务工人和业务实体。

9.       业务模型到系统模型的改进点

a)       信息自动流转

b)       演绎复杂业务逻辑

c)        访问和操作业务实体

d)       自动工作

10.   业务模型到系统模型的可能对应

a)       业务用例->系统(子系统)

b)       业务执行者->系统执行者

c)        业务工人->系统执行者

d)       活动->系统用例

e)       业务工人、业务执行者、业务实体->实体类

开发流程1 需求

1.       2.pdf

2.       愿景:为何开发一个系统?愿景目标必须是可以度量的。

3.       需求的特点和对策:

a)       难捕获->从用户角度看问题

b)       易变化->合理的结构

4.       用例是满足上面两个条件的合理方法。用例文档就是需求文档。

5.       用例:有层次的需求组织形式,所以容易产生合理的结构。

用例                                                                         低精度,稳定

      路径

           步骤

                 补充约束                                                  高精度,不稳定

6.       步骤:

a)       识别执行者

b)       识别用例

c)        书写用例文档

d)       通过关系整理用例

e)       用例的排序和分包

7.       系统执行者:在系统之外通过系统边界直接与系统进行有意义交互的任何事物。

a)       系统之外

b)       通过系统边界

c)        直接与系统交互

d)       有意义的交互

e)       任何事物

8.       用例实例是在系统执行的一系列动作,这些动作将生成特定执行者可见的价值结果。一个用例定义为一组用例实例。

a)       价值结果->有意义的目标

b)       系统执行->价值结果由系统生成

c)        执行者可见->业务语言,用户观点

d)       一组用例实例->用例的粒度

9.       用例命名:动宾结构,避免弱动词和弱名次。

10.   用例没有粒度,不要把步骤当作用例。尽量不要用CRUD为用例,因为它们一般不提供价值,过于在乎细节,是从数据库角度进行考虑的。多个用例也可能操作同样的数据,一个用例背后可能隐藏多个数据操作。如果确定为CRUD,则合并为管理***,可以把Create当作主路径,Read,Update,Delete当作其它可选的路径。不要牵涉界面细节。

11.   在“Patterns for Effective Use Cases" 一书中有这样一段话:

It is relatively easy to identify low-level transactions while it can be difficult to identify useful services. It is usually easier to describe the individual routine transactions that a system may provide than it is to discover what the user really wants to do with the system. Doing it the easy way often leads to the so-called ‘CRUD’ (Create, Read, Update, and Delete) style use cases. It is not unusual to see use cases with names like “Create Employee Record”, “Read Employee Record”, or “Delete Employee Record”. While such use cases may be technically correct, they do not capture what is valuable to the user. Is creating an employee record important, or do we they
really want to “Hire Employee”?

12.   每个用例只有一个主执行者。

13.   每个用例是否满足愿景?是否所有愿景都通过用例得到满足?

14.   书写用例文档。参看uctext.pdf文件。

a)       编号、名称

b)       执行者

c)        前置条件、后置条件

d)       涉众利益。涉众表示关心用例的人。

e)       基本路径

f)         扩展路径。

g)       字段列表、业务规则、非功能需求、设计约束。它们统称补充约束。

1)       字段列表:描述每个步骤地名次,包括内涵和外延。

15.   用例关系:(不重要)

a)       扩展:分离扩展路径。参看UC4。

b)       包含:提取公共路径,便于复用。

c)        泛化:同一业务目的的不同技术实现。可以用扩展替代。

开发流程2 分析类图

1.       4.pdf

2.       职能分配,从面向过程角度就是分解,从面向对象角度就是协作。

3.       用例通过分析和设计转换为类、对象、关系、职责、协作。用例是外观,后者是机理。

4.       对象具有状态、行为和标识。

5.       类:共享公用结构与行为的对象的集合。

6.       分析类图的步骤

a)       识别类及属性

b)       识别类之间的泛化

c)        识别类之间的关联

d)       (注意,不分析行为)

7.       识别类和属性的方法:

用例—抽取à名次表—识别à类和属性,同时参考领域模型。

从用例的基本路径、扩展罗经和补充约束来获得。

8.       两种分析路线:实体驱动和职责驱动。

9.       审查类图:

a)       类的属性:什么的什么

b)       可能有冗余,但有时冗余是合理的

c)        处理复杂结构属性:如果1对1,可以在原类中展开;如果1:N,独立出去形成关联。

d)       属性是否对类的所有对象都有意义。如果不是,则分解只属于部分对象的属性到子类中。

10.   类的关系:

a)       泛化:集合关系,子类通过继承具有超类的特征

b)       关联:个体关系,对象通过组装具有其他对象的特征

11.   识别泛化的方法:A的对象总是B的对象,B的对象有时是A的对象。不同领域的类之间不应该形成泛化关系。

12.   关联的含义:一个对象对另一个对象的静态依赖关系。包括连接、聚合和组合。区别于依赖,依赖是动态的。

13.   聚合和组合的区别:都是整体与部分的关系,组合比聚合关系更强。反映到C++中,组合是值包含,聚合是指针包含。当组合对象死掉的话,被组合对象也会随之死掉;但聚合不会。

14.   警惕数据库习惯:如果已经有了关联,则相应的属性应该被删除掉。

15.   分析常见模式

开发流程3 分析顺序图

1.       5.pdf

2.       通过画顺序图完成责任分配

3.       在分析阶段,所有类主要分为边界类、控制类和实体类。

a)       边界类:用例的每个执行者影射为一个边界类。负责与外界交互

b)       控制类:一个用例映射为一个控制类。负责控制事件流,负责为实体类分配责任。

c)        实体类:对必须存储的信息和相关行为建模。一个用例可能有多个实体类。一个实体类也可以应用于多个用例。是业务行为的主要承担者。

4.       顺序图和类图的映射(示例)

a)       消息的传入:类对象所具有的操作----责任。

b)       消息的传出:类对象完成操作所需的合作----协作。

5.       顺序图绘制要点

a)       位置:在每个用例下面,对应用例的路径

b)       基本路径:一张图

c)        简单的扩展点:合并到基本路径,用Text说明条件

d)       复杂扩展点:单独一张图,和主图之间用note连接

6.       责任在实体类之间的分配

a)       总原则:低耦合,高内聚

b)       三个重要原则:

                        i.              专家原则:把责任分配给专家

                       ii.              老板原则:聚合/组合发生时,对被聚合类的调用需要经有聚合类。

                     iii.              可视原则:只有发生关联的类之间才有消息传递。

c)        分配责任时可能会产生新的实体类。

7.       状态图

a)       把某对象从所有顺序图中拿出来单独考察(一个实体类可能应用于多个用例)。

b)       状态:在系统中表现出相同行为的属性值组合。

c)        迁移:属性值变化导致行为变化。

开发流程4 设计

1.       6.pdf

2.       分析强调业务概念,设计强调平台实现。二者有时是合并的。

3.       整个软件分为:表示层、业务层和逻辑层。

4.       数据层

a)       映射存储

b)       构造数据源层

5.       映射存储

a)       映射类与属性:类->表,对象->行,属性->列

b)       映射泛化关系:超类与子类都映射成表,超类主键作为所有类的主键

c)        映射连接关系:1对0..1(外键放在0..1端),1对1(外键放在任意一端),1对多(外键放在多方),多对多(添加第三张表)

d)       映射组合

e)       映射反身连接

6.       建模工具自动映射

7.       构造数据源层(《数据库设计模式》)

a)       表数据入口

b)       行数据入口

c)        活动记录

d)       数据映射器(O/R Mapping)

8.       业务层模式:

事务脚本、领域模型、表模块、服务层。

9.       界面层(MVC,Struts)

10.   设计模式

11.   测试:单元测试。

12.   实现视图:构建图和部署图。

全面UML教学课件:软件工程的图形化建模指南 本文还有配套的精品资源,点击获取 简介:UML(统一建模语言)是一种在软件工程中广泛使用的图形化建模语言,用于清晰描述软件系统的设计与分析。本教学课件全面覆盖了UML的核心概念、基本元素与图表类型,包含类、对象、接口、用例等关键元素的深入讲解。通过学习本课件,初学者和有经验的开发者都能掌握UML的应用,从而提高项目沟通效率和开发效率。 1. UML基础概念介绍 ... 阅读详情

相关推荐

UMLChina培训课程

UMLChina培训课程,讲UML很不错的一本书

umlの类图

版权声明:本文为博主原创文章,若要转载请注明出处!^_^ https://blog.youkuaiyun.com/u010892841/article/details/24844825 类图cl...

weixin_30838921的博客 123

软件需求设计UML全程实作--愿景UMLChina

UMLChina训练幻灯片,软件需求设计UML全程实作--愿景

【UML】要点「未完待续」

UML,复习软件工程完善

Lenhart001的博客 1245

【技术分享】ArcGIS Pro底图色彩优化实战:从DEM到山体阴影的进阶调色技巧

本文深入探讨了在ArcGIS Pro中优化地形底图色彩的进阶技巧。通过分析DEM与山体阴影的直方图,详细讲解了如何运用图层混合、亮度、对比度及伽马值等核心参数进行精细化调色,从而将灰暗平淡的地图转化为层次分明、视觉美观的专业成果。

5b6n7m8的博客 759

Godot 2D游戏开发实战:用GDScript复刻10款经典小游戏(附完整源码)

本文是一份Godot 2D游戏开发实战指南,通过使用GDScript语言复刻10款经典小游戏,帮助开发者快速掌握引擎核心功能。内容涵盖从环境配置、GDScript基础到贪吃蛇、Flappy Bird、打砖块、俄罗斯方块等项目的核心逻辑与代码实现,并附有完整源码,旨在通过实践提升独立开发能力。

gold的博客 778

UML--核心元素之分析类

分析类包括边界类、控制类和实体类。 边界类是一种用于对系统外部环境与其内部运作之间的交互进行建模的类。 myself:就像建模时,不是所有的属性都要建模一样。不是所有的方法都要建模一样。学习也是如此,不需要把所有的内容都学,只要把与“场景”相关联的内容学习就好。   myself:接触新的工作,新的任务的时候,前一段时间要努力去学习,去适应它。这段时间的努力,可以让后续的自己更加的踏实...

weixin_33937913的博客 245

航测无人机las点云数据生成DEM

“ 做航测的同僚都知道,Pix4D或者CC(ContextCapture)都可以生成DSM,往往高程点提取以及土方计算都需要用到DEM,PhotoScan软件可以提出地面点并只应用地面点连接三角网,然而分类效果差,生成的DEM不管是平整度还是精度,都不理想。而传统等高线生DEM需要耗费较长时间,以下提供一种参考方法,供大家探讨。 ” 1 点云数据 航测类软件大多可以生成点云数据,如Pix4D,PhotoScan,CC等,此次点云数据为citymapper2相片基于CC生产的Las点云。 2 筛选地面点 筛.

qq_43173805的博客 1万+

UML分析类图的绘制

首先明确分析类是基于我们之前的用况分析之上的 类图分为三个层次: 1.对象层 (确定有哪些类) 2.特征层 (确定每个类的具体属性和操作) 3.关系层(确定这些类之间的关系) 我们对类图的绘制就是要确定这三个层次的内容并用规范的UML将它们表示出来。 在整个过程中,我们不可能将每一层都分析得非常完美再进行下一个层次的分析。我们需要保持足够严谨和认真的态度,在基本确定这一

猫多会咬狗 3万+

基于Simulink的直流电机双闭环调速系统抗扰动仿真与参数优化

本文详细介绍了基于Simulink的直流电机双闭环调速系统仿真与参数优化方法。通过构建转速外环与电流内环的仿真模型,阐述了利用工程设计法整定PI参数的核心步骤,并重点探讨了如何优化系统参数以增强其抗负载突变等扰动的能力,实现快速、平稳的调速性能。

weixin_29061997的博客 193

从零开始用飞牛fnas搭建集成DeepSeek-R1的远程AI工作台

从零开始用飞牛fnas搭建集成DeepSeek-R1的远程AI工作台

AI+全栈,AI+应用,实操落地,前沿技术 3808

基于UML的系统分析与设计

基于UML的Blog系统分析与设计之五------边界类、控制类、实体类的设计 边界类、控制类、实体类 边界对象(boundary object):参与者使用它来同系统交互,这通常包含窗口,屏幕,对话框和菜单。 实体对象(entity object): 它指的是用例完成以后系统要保存的数据,以后进行数据库设计时可以参照。 控制对象(control object): 将边界对象和实体对...

bengan的专栏 767

cartographer基于3d地图的纯定位模式

关于纯定位模式呢,本人试过2d和3d,怎么说呢,有条件的话,建议直接上3d,因为博主当初在做定位时针对室内和室外都尝试过,2d只在室内环境下效果会很棒,但是在室外就呵呵啦!所以这里直接讲解3d室外定位(建图篇请自己查看我之前的博客:[3d建图](https://blog.youkuaiyun.com/qq_40216084/article/details/105531983) 看了我之前的博客大概知道配置文件和源文件路径了,我这里就不把路径写出来了,挺麻烦的。直接讲怎么做把,有不懂的留言,看到了我一定知无不言。 **首

qq_40216084的博客 5552

UMLChina是不是只有UML课,有没有打算开设“领域驱动设计“课程?

最近经常被问到一些关于领域驱动设计问题,分几篇文章逐一回答。 问题二: UMLChina是不是只有UML课,有没有打算开设"领域驱动设计"课程? 答: 从2007年开始,我们就开设了"领域驱动设计"课程,只不过是以上门内训的方式提供。 其实UMLChina提供的训练服务主要是上门内训,公开课利用有空的周末安排。 课程是这样定位的: 大家平时看到宣传得最多的是"软件需求设计UML全程实例剖析"公开课。从2002年开始,已经开设了17年。 其他的课程还有: 业务建模和需求高阶—在"软件需求设

rolt的专栏 284

逆向分析PerimeterX px3:从混淆JS到生成有效令牌的完整实战

在Web安全与数据采集领域,反自动化防护是保障服务稳定和数据安全的关键技术。其核心原理是通过收集浏览器环境指纹和用户行为特征,动态生成加密令牌来区分真人用户与自动化脚本。这项技术的工程价值在于平衡安全性与用户体验,广泛应用于电商、金融、社交等需要防止恶意爬虫和自动化攻击的场景。本文聚焦于业界广泛部署的PerimeterX px3防护方案,通过JavaScript逆向工程,深入剖析其令牌生成机制。我们将探讨如何运用动态调试、反混淆工具和算法还原等关键技术,突破px3的防护壁垒,为自动化测试和数据采集提供稳定可

diankui6178的博客 526

华为面试手撕真题【判断是ipv4还是ipv6地址】

编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址。

MISAYAONE的博客 1万+

关于实体类、边界类和控制类

<br />实体类:<br />     实体类是用于对必须存储的信息和相关行为建模的类。实体对象(实体类的实例)用于保存和更新一些现象的有关信息,例如:事件、人员或者一些现实生活中的对象。实体类通常都是永久性的,它们所具有的属性和关系是长期需要的,有时甚至在系统的整个生存期都需要。<br />     实体类的找寻相对简单点,这里就不再做具体的叙述了。<br /> <br />边界类:<br />    边界类是系统内部与系统外部的业务主角之间进行交互建模的类。边界类依赖于系统外部的环境,比如业务主角的操

Bestrem_9的专栏 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

参加UMLCHINA(潘加宇)培训笔记

2005年3月18日,参加UMLCHINA培训,收获颇多,主讲者潘加宇老师显然在这方面有着丰富的经验,讲课的方式也很好,值得学习,讲课的内容如下:开场讲了软件开发的本质,其实就是“现实世界-》找到问题-》解决问题”这样的步骤,找到问题包括(业务建模、愿景[目标]、需求),解决问题包括(分析核心机制、设计架构)接着开始讲述每个过程:◆ 业务建模在这个阶段是完全基于业务的,这个时候不一定要开发软件,可

Macroyan的专栏 3268

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

01-用UML画顺序图

1.为什么要画顺序图?    在创建了用例图之后,为了描述对象按时间顺序的消息交换过程,体现用例的行为,阐明用例图。 2.怎么画顺序图?     1.在logical  view中新建Sequence Diagram(顺序图)     2.在logical View上右键新建类class,命名,然后在这个class上面右键修改其属性。                        属性包

高调做事,低调做人! 2836

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

UML实践----用例图、顺序图、状态图、类图

<br />为什么UML很重要?<br />为了回答这个问题,我们看看建筑行业。设计师设计出房子。施工人员使用这个设计来建造房子。建筑越复杂,设计师和施工人员之间的交流就越重要。蓝图就成为了这个行业中的设计师和施工人员的必修课。<br />写软件就好像建造建筑物一样。系统越复杂,参与编写与配置软件的人员之间的交流也就越重要。在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”。现在它已经成为了软件行业的一部分了。UML提供了分析师,设计师和程序员之间在软件设计时的通用语言。<br />UML被应

luols的专栏 5161

【Hibernate步步为营】--(一对多映射)之双向关联

单向关联的一对多映射,在一的一端维护双向的关系这种做法虽然能实现但是存在很多缺陷,首先生成很多多余的SQL语句,因为多的一端不维护关系,只有一的一端维护,在进行操作时一的一端会发出多余的update语句;其次,因为多的一端不知道一的一端存在,所以在保存多的一端时如果外键为null值,并且在设计数据库时关系字段设为非空,则将无法保存数据。因为单向关联一对多存在很多缺点那就没有其它的办法了吗,可以采用双向关联来优化

航帆远洋 7442
上一篇: 配置和使用CPPUnit笔记
zdwillie
博客等级 码龄22年 2粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值