All posts by 龙生

领域模型,你真的理解的了吗?

背景 UML比较难学,主要是其本身很复杂并且涉及到大量的概念名词。领域模型就是其中之一,网络上搜索到关于领域模型的知识应该是有两种,一种是来源于最初的传统软件开发过程,一种来源于领域驱动设计(DDD),这两者很容易混淆。以下是我对领域模型这个概念的一些理解。 1. 领域模型是什么? 理论派观点: Domain Model是一个商业建模范畴概念,即使一个企业不开发软件,也具备其业务模型; 所有同行企业,其业务模型必定有非常大的共性和内在的规律性。 由行业内的各个企业的业务模型再向上抽象出整个行业的业务模型,这个模型称之为“领域模型”。 实战派观点: 领域模型是一个分析模型,帮助系统分析人员、用户认识现实业务的工具,描述的是业务中涉及到的实体及其相互之间的关系,它是需求分析的产物,与问题域相关。 是需求分析人员与用户交流的有力工具,是彼此交流的语言。 理论派 领域模型是一种特殊的业务模型,它分析范围是整个行业,抽象出行业里共性和内在规律性的业务,比业务模型更加抽象,它不属于软件开发范畴的概念,与软件开发无关。 实战派 领域模型是一种分析模型,在软件开发过程分析阶段用于分析如何满足系统功能性需求,属于软件开发范畴,在UML中主要使用类图来描述领域模型。 业务模型是业务建模的输出物,业务建模研究的对象是公司或者组织,业务建模属于软件开发过程中的初始阶段。 软件开发过程:业务建模、需求、分析、设计。 在软件开发过程中我们接触到的领域模型属于实战派。 2. 领域模型作用 理论派 领域模型是一种特殊业务模型,作用都是: 帮助分析理解复杂业务领域问题。 行业内沟通、交流。 实战派 领域模型作用: 分析如何满足系统功能性需求。 指导项目后续的系统设计。 业务模型作用: 帮助系统需求人员理解客户公司业务,下一阶段做需求以业务模型为输入得到系统用例。 3. 领域模型与业务模型的区别 理论派 领域模型是一种特殊的业务模型,所以具备业务模型的所有特点,但是比业务模型更抽象、更通用。 实战派 产出阶段不同 业务模型是在软件开发过程中业务建模阶段产生,领域模型是在分析阶段产生。 作用不同 业务模型是系统需求人员理解客户公司业务的产物,下一阶段需求将以业务模型为输入得到系统需求。 领域模型是系统分析人员分析如何满足系统功能性需求的产物。下一阶段设计将以领域模型为输入。 “实战派”举例说明: 当接到项目,需要做一个酒店预订系统,首先进行业务建模,了解客户公司酒店管理的相关业务,这就会产出业务模型,此时业务模型里除了酒店预订这个业务环节还包括其他与酒店预订同层次的业务环节。 接下来将视线聚焦到酒店预订,改进已有流程得到酒店预订系统需求,即系统用例和需求规约。 接下来通过分析系统用例和需求规约,分析如何满足酒店管理系统功能性需求,从而得到领域模型。 "理论派"和“实战派”的领域模型是两个范畴的东西,若没有分清肯定会引起理解混乱。 4. 另一种“领域模型” – 领域驱动设计(Domain-Driven Design) 还有一种“领域模型”,它出自于Eric Evans的“Domain-Driven Design”简称DDD,也就是“领域驱动设计”,DDD是一套综合软件系统分析和设计的面向对象建模方法,所以要明确区分这两种领域模型。失血模型、贫血模型、充血模型这类概念都属于DDD范畴的“领域模型”。 4.1 两种领域模型的区别 本文中“领域模型”都代表领域驱动设计中的领域模型。 1. 解决的核心问题不同 正如前文所说的,领域模型是一个用于分析业务的分析模型,在实际项目中要解决的核心问题是: 如何满足待开发系统业务功能需求。 而“领域模型”是综合分析与设计的模型,要解决的核心问题是: 保证系统设计能满足项目多变的需求。 在传统的软件开发流程中,分析(系统需求分析)和设计(系统设计)被划分为两个阶段,分别对应国家“系统分析师” 和“系统设计师” 两种职称,这种割裂的结果导致,“系统设计师”要基于需求分析的结果做系统设计后才能进行编码,这中间会存在信息上的丢失或失真,并且实际过程中业务需求会变(可能是外界环境的变化或者对业务有更深的理解引起),就更容易引起系统设计与项目需求脱节。Eric Evans提出的DDD思想就是想解决这样问题。 2. 领域不同 领域模型是业务分析模型,分析的是系统功能性需求所出核心域的业务,软件系统只是实现业务的方式而非业务的一部分(提供IaaS服务的公司除外),不会考虑系统设计IT领域里问题。 “领域模型”是综合分析和设计的模型,涉及到系统设计,需要思考系统的边界,故该模型所分析设计的领域是综合了业务领域和IT领域。 以酒店预订系统为列,其业务描述如下 所有用户都可通过酒店订房管理系统查看酒店客房信息 用户如需预定需先注册成会员 以上涉及到两个对象:用户、会员。 若做业务分析,第一段描述中的“用户”可能就需要考虑,它可能是游客、咨询者的业务含义。 若要考虑系统设计,第一段描述中的“用户”可能就会忽略,即不在系统边界范围内。 3. 使用的阶段和岗位不同 领域模型是分析业务的分析模型,在实际项目中主要由系统分析师在分析阶段中使用。 DDD的“领域模型”是综合分析、设计的模型,在实际项目中横跨分析和设计两个阶段,岗位需要具备“系统分析师”和“系统设计师”的综合能力。 4. 包含的内容不同 领域模型主要内容: 业务实体 业务实体之间关系 “领域模型”主要内容: 业务实体 […]

龙生   21 Jun 2018
View Details

TFS 2015(Visual Studio Team Foundation Server)的下载和安装

微软现在所有Visual Studio相关的下载到www.visualstudio.com网站下载是非常方便的 下载地址: 下载ISO版本后,进行安装,由于10-20人的小团队,不需要SharePoint所以就安装【基本服务器】版本 点击下一步 勾选试用(请支持正版),点击下一步 由于本次主要数据库选择了阿里云的RDS,而阿里云的SQL Server只有2008 R2版本而且太贵,所以就选择安装一个Express版本 由于本次发布主要采用WebDeploy,而且以前也没使用过TFS的发布,不是很熟悉流程和原理,以后有时间再研究吧,暂时不勾选生产发布代理 选择下一步 下一步后检查配置 点击配置,然后开始安装了 安装的时候发现有在线下载SQL Server Express,难怪2015.2的安装包突然小了500多M,微软真是越来越与时俱进了啊 安装后默认端口是8080,因此需要在服务器上防火墙打开8080端口 由于本次服务是采用了域名进行访问并且使用了HTTPS,因此需要在配置中更改URL并到IIS中绑定相关域名 然后新建一个用户 新建一个项目集合 然后添加刚才的用户为管理员 这样,就可以在Visual Studio里面用刚才添加的用户连接到TFS服务器了   from:https://www.cnblogs.com/printhelloworld/p/5622186.html

龙生   21 Jun 2018
View Details

POI、NPOI中用SXSSFWorkbook工作簿写入大量数据

 

龙生   21 Jun 2018
View Details

代码规范审查 – Sonar集成Visual Studio

开发人员可以使用Sonar的集成插件在开发阶段进行实时代码质量审核,在代码编写阶段分析出当前代码的质量及规范漏洞,并给出合理的修改建议。编写高质量、高维护性的代码变得更简单!    VS集成Sonar之前               集成sonar之前,项目显示没有任何警告及错误。开发人员只能保证代码无错误,却无法分析出代码的隐患及不规范性。     Sonar集成 打开VS2015,通过工具(T)-> 扩展与更新(U)打开扩展安装包界面       在扩展和更新界面中左侧选择联机,通过安装包搜索框输入Sonar,在查询出的列表中选择SonarLint for Visual Stuido 2015, 点击下载进行安装       安装完毕之后,重启vs,将需要分析的项目加入到snoarlint实时分析列表中       此时sonar实时分析已经开始工作,在警告列表中出现了分析结果并包含错误原因分析       Sonar还包含了修改建议,通过双击警告项,将定位到具体有问题的代码段,将鼠标移至问题代码段,出现sonar的修改建议,跟随提示更改代码即可         from:http://www.cnblogs.com/jingridong/p/6593135.html

龙生   20 Jun 2018
View Details

代码规范审查 – Sonar分析项目

Sonar搭建成功之后,就可以通过简单的CMD指令进行项目分析,此篇主要介绍使用Sonar来分析.net项目。   扫描步骤: a.    打开CMD,切换到指定的项目根目录,和.sln同级目录即可(此处以一个wpf示例项目为例)  b. 使用msbuild方式通过Sonar scanner扫描代码     CMD命令下运行:SonarQube.Scanner.MSBuild.exe begin /k:"project 1" /n:"Test WPF" /v:"1.0"   注 :SonarQube.Scanner.MSBuilder.exe找不到,运行的时候需要固定到Snoar\sonar-scanner-msbuild-2.2.0.24目录下进行运行   参数说明: /K:Key -对应projectKey即项目的唯一代码,如两套源代码使用同一个projectKey那扫描的结果将混在一起,所以一个项目需要有一个单独的projectKey /n:Name: 对应projectName即项目的名称 /v:Version -对应projectVersion即项目的版本   c. 通过msbuild编译项目       CMD命令下运行:MSBuild.exe /t:Rebuild          注 : MSBuild.exe需要加入到系统路径中,将C:\Program Files (x86)\MSBuild\14.0\Bin和C:\Program Files (x86)\MSBuild\14.0\Bin\amd64将入到系统路径中      d. Scanner分析扫描结果        CMD命令下运行:SonarQube.Scanner.MSBuild.exe end         注 : 1. 如果运行出现错误请检查sonar server的log,路径为Snoar\sonarqube-6.2\logs下的sonar.log,web.log和access.log。           2. 如果遇到需要检测比较大的项目,可能上传的mysql数据量会很大,会超出默认的mysql上传的最大值,此时需要设置mysql的max_allowed_packet。       e. 通过浏览器查看分析结果        浏览器中输入http://localhost:9000/dashboard/index/project_1        代码质量结果一目了然,下面就可以分析代码及分配指定人员进行修复    f. 分析问题(举例点击bugs展开所有bugs列表)      整个分析过程简单便捷,项目开发阶段可定期分析结果进行质量审查和把关,现在就去用到你的项目上吧! from:http://www.cnblogs.com/jingridong/p/6513884.html

龙生   20 Jun 2018
View Details

代码规范审查 -Sonar环境搭建

Sonar概述 Sonar 是一个用于代码质量管理的开放平台,可以进行代码质量的持续跟踪审查,支持的语言包含C#、java、PHP、C等。可以通过UI一睹Sonar的强大之处。   Sonar安装          Sonar是一个基于java的开源平台,环境安装包含JDK安装、数据库安装、Sonar Server安装、Sonar Runner安装。 一、JDK安装 下载java SDK ,下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html  安装java sdk,直接双击exe进行运行 验证java安装是否成功,打开命令行,运行java –version, 如果显示如下图,代表安装成功!  二、数据库安装 Sonar支持数据库类型:Sql server、MySQL、Oracle,此处以MySql为例 Mysql数据库下载地址:https://www.mysql.com/downloads/, 具体安装步骤省略可自行学习。 配置Sonar数据库(创建Sonar数据库、用户等) CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci; CREATE USER 'sonar' IDENTIFIED BY 'sonar'; GRANT ALL ON sonar.* TO 'sonar’@’%' IDENTIFIED BY 'sonar'; GRANT ALL ON sonar.* TO 'sonar’@’localhost' IDENTIFIED BY 'sonar'; FLUSH PRIVILEGES;   三、Sonar server及scanner配置 下载sonar(只需下载解压,无需安装) 下载地址:https://www.sonarqube.org/downloads/ 下载sonar scanner(只需下载解压,无需安装) 下载地址:https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner 添加snoar和snoar scanner到环境变量        添加SONAR_HOME、SONAR_RUNNER_HOME环境变量,并将SONAR_RUNNER_HOME加入PATH环境变量参考如下: SONAR_HOME:C:\sonar\sonarqube-6.2 SONAR_RUNNER_HOME:C:\sonar\Sonar-scanner-2.8 PATH:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;%SONAR_RUNNER_HOME%/bin;%MAVEN_HOME%\bin; 编辑sonar配置文件,修改如下: 编辑sonar\sonarqube-6.2\conf\sonar.properties文件,配置数据库设置,默认已经提供各类数据库的支持,这里使用mysql,因此取消mysql模块的注释,修改内容如下: 编辑SonarRunner配置文件,修改如下: 编辑Sonar-scanner-2.8\conf\conf\sonar-runner.properties文件,配置数据库设置,默认已经提供各类数据库的支持,这里使用mysql,因此取消mysql模块的注释,修改内容如下:          启动sonarQube服务,从sonarqube-6.2\bin\windows-x86-64目录下双击启动StartSonar.bat,启动成功显示如下: 访问http:\localhost:9000检测是否启动成功 安装中文包       […]

龙生   20 Jun 2018
View Details

代码规范审查 – 审查分析工具选型

大型项目产品功能庞大、参与人员多、周期较长,造成代码质量和可维护性要求较高。这需要在开发阶段加入定期的代码审核机制,可通过人工code review及代码走查工具来完成。人工Code Review耗时量大,对review人员的审查能力要求高,所以加入代码定期自动化审查就更适合,不过缺点是代码走查是做不到人工review的业务逻辑验证。    C#代码审查工具选型 对于c#代码审查的工具比较多,常见的有FXCop, StyleCop, Sonar。不同工具的优势及使用场景各有不同: FxCop: 微软的代码分析工具,以微软内部的.NET规范为参照,通过分析编译好的dll文件得到错误信息 StyleCop: 微软的代码分析工具,以微软内部的.NET规范为参照,通过代码静态扫描的方式分析源代码 Sonar: 代码质量管理平台,通过MSBuild方式分析代码的不规范及缺陷,并将分析结果直接显示在Web页面上   Fxcop和styleCop属于小工具类,安装方便,在开发阶段对代码的规范有很好的帮助,偏开发人员使用。Sonar属于分析平台类,需要单独搭建服务器进行分析的结果的保存及展示,偏测试及管理人员使用。所以项目进行过程中可搭配使用,开发人员可选择Fxcop或styleCop小工具进行代码的自我质量把控,项目管理人员可通过Sonar来进行质量管理的分析及分配。   接下来几篇将重点介绍Sonar的搭建和使用,对于FxCop和StyleCop使用比较简便,可自行学习使用。   from:http://www.cnblogs.com/jingridong/p/6489003.html

龙生   20 Jun 2018
View Details

解决MSB3247 不同版本的同一依赖程序集之间出现冲突

打开选项对话框( 工具 – >选项… ). 在左侧树中,选择 项目和解决方案 节点,然后选择 生成和运行 . 注意:如果此节点没有显示出来,请确保在对话框 显示所有设置 底部的复选框被选中. 在出现的工具/选项页中,设置 MSBuild项目生成输出的详细程度 水平 详细 (假设你是在VS2010中, 正常 将在VS2008或以上即可). 生成项目。 在生成窗口中查找关键字 ResolveAssemblyReferences,快速定位错误源。   from:https://blog.csdn.net/gaoxu529/article/details/41009089

龙生   20 Jun 2018
View Details

C# 代码规范和质量检查工具 StyleCop.Analyzers

简介 原来一直用 ReSharper 来进行代码质量检查,不过毕竟是收费的,所以想找个免费的可以推广给公司的同事也一起用。搜索了一下,找到了StyleCop,但是我在 VS 2015里安装 StyleCop 或者通过 Nuget 包安装 StyleCop.MSBuild,虽然编译以后能把 warning 显示在 Error List 中,但是无法通过 项目—右键 配置 StyleCop 的规则,最终在找到了一个 StyleCopAnalyzers 也算是 StyleCop 的新版本吧。 主要使用了 Visual Studio 2015’s Roslyn 分析工具,带来了以下的好处: 可以支持 C# 6 使用 Roslyn 解析器,减少了自定义解析器的性能消耗 当你写代码的时候解析器就会运行,当你编译的时候也会运行(不需要再设置 msbuild 任务或者安装任何 vs 插件)   安装 安装的话比较简单,在项目里管理 NuGet 包,输入 StyleCop.Analyzers 然后安装就可以了 安装完成就直接可以看到效果了,StyleCop.Analyzers 会像 ReSharper 那样在你写代码的时候就提示错误,而不用编译以后才发现错误了。 不过编译以后还是会把所有的错误提示显示出来   配置自定义规则 在上面的图片里,可以看到我的项目一共有32个 StyleCop 警告,下面我们就把 SA1652 警告去除。 找到引用里得 Analyzer,右键点击 Open Active Rule Set,就可以打开规则表 然后找到 StyleCop.Analyzers 的规则 SA1652,取消勾选,然后保存。 最终会在项目里生成一个 .ruleset 后缀的文件就是我们的自定义规则。 编译以后查看效果,就会发现前面提示的 SA1652 的警告已经没有了。   from:https://blog.csdn.net/xiaoxiao520c/article/details/76585609

龙生   19 Jun 2018
View Details
1 184 185 186 432