- 博客(9)
- 资源 (7)
- 收藏
- 关注
原创 2021-04-09
领域模型 与类模型的关系在面向对象分析阶段,需要分析领域概念(概念类)、领域概念之间的关系、领域概念的属性(状态、信息)。图形化表达模型时,采用UML类符号,但不含方法的方式来表示概念类,类模型中的 类,在画类图时,可以隐藏方法。那么,隐藏了方法的类 是否等同于 领域模型的概念类呢?(它们长得样子一样)。不对的。 这完全是两个不同的概念。在领域模型分析阶段,主要是研究系统的需求,还没有涉及到某个领域概念需要承担的职责,因此,还没有方法的概念。类图中省略方法的类,它的方法是存在于模型中的,
2021-04-09 09:01:29 126
原创 2020-11-30 代码重构与间接原则的区别
代码重构与间接原则的区别问:“计算机科学里的所有问题都可以通过增加一个抽象的间接层来解决”(出处未知)。增加间接层固然好,但其实方法的提供(服务端)和使用(客户端)之间不匹配的问题只是被屏蔽了,而不是被解决了;相比之下我认为重构才是从根本上解决问题的方式。是什么促使我们选择间接而不是重构呢?仅仅是因为重构有风险吗?博主意见:重构: 并不是重新设计!重新设计的代价、风险都很大。如果现有系统确实没有重构的价值、或者重构的代价也同样很大,那么,公司会考虑重新设计新系统。 而重构的核心,1) 代码变得整
2020-11-30 10:15:18 256
原创 2020-11-30 代理、外观、适配器,三者设计模式的区别
代理模式、适配器、外观模式之间的差别这三者模式的共性之处: 客户只关心接口,不关心具体的 (真实的) 实现,符合面向对象设计原则 “面向接口编程,不要面向实现编程”。适配器模式: 把真实的实现模块(一个或者多个对象,或者就是函数库)中,一个一个方法(或者函数),依次匹配到客户需要的格式,与客户代码一起工作;外观模式: 把真实实现的模块(即,现有系统,往往比较复杂、功能强大,但新形势下不需要全部的功能)中有用的部分进行一定的分析、组合、添加,形成一套简洁实用的接口,供多个客户同时使用;代理模式
2020-11-30 09:58:40 254
原创 2020-11-19 如何选择采用接口还是继承?
在我们日常的软件设计过程中,经常会遇到很多的决策,有时会感到一些左右为难、或者左右都可以的窘境。比如这个问题,究竟是采用接口的方式,还是继承的方式来解决问题?继承,是面向对象分析与设计最常用的方式之一,在应用系统的设计过程中,得到了广泛的使用。它的主要不足是,继承后的系统需要囊括整个继承树的信息,对新系统而言,冗余部分相当大;二是子类对父类的耦合很紧密,不利用系统的扩展;接口,有很大的灵活性。接口的不同实现方式,对于使用接口的客户而言,只是一种抽象的耦合。改变接口的实现,对客户代码的影响很小。因
2020-11-19 21:24:56 564
原创 2020-11-19 操作契约 与用例描述有什么关系?
用例描述 是用例模型的核心组成部分,描述了用例的详细功能,是由一些列的动作组成,实现了对参与者有价值的结果。操作契约,是对用例描述中被认为是“重要的”动作,进行详细的描述。该动作发生的前置条件、该动作结束之后系统应该保证的后置条件。操作契约是对用例描述的补充和强调。------------------------------------------------交流、学习、进步!-----------------------------------------------------欢迎.
2020-11-19 20:58:08 806
原创 2020-11-18 什么是GRASP
GRASP的全称?及其在面向对象设计中的作用?【建议】GRASP是 General Responsibility Assignment Software Principle( or Pattern). 中文名称是 通用职责分配软件原则。初学面向对象编程的人员,是否曾有过这样的一种感觉:为了完成项目任务,随意地定义了几个类、随意地把任务分配到某个类里面,然后组织起运行逻辑,完成了任务。或者 是 把很多的任务全部塞进了一个类里面,然后觉得奇怪:这与C语言编写的面向过程的程序的区别在哪里呢?GRAS.
2020-11-18 11:15:51 371 1
原创 2020-11-13 软件工程专业、计算机专业的本科培养,重点应该在哪里
软件工程专业、计算机专业的本科培养,重点应该在哪里?中国的基础软件,如操作系统、工业工具软件、工业控制软件等,与世界的距离相去甚远!即使是一个浏览器,国内似乎有多个品牌的产品,但是,其底层的核心呢,很多都是采用了Chrome V8引擎。为什么这么多年来,偌大的IT产业,从无数的高校-无数的相关专业-培养的大量本专业毕业生里面,出不来几个能够在底层核心功能上自主开发的人才?毕业生千篇一律地能够从事简单的互联网网页开发。但对于网页的底层的运行机制、原理,知道的又很少,知其然不知其所以然,工作3~5年后,
2020-11-18 11:08:24 107
原创 2020-11-18 理解 “高内聚、低耦合“
软件设计过程中的疑惑讨论-1通常软件设计要求“高内聚、低耦合”,这在面向对象思想下建立的模型应该如何理解?是否可以理解成 同一类中方法频繁调用,而对其他类中的方法尽量低频率调用?还是指传参尽可能少?【建议】内聚是模块内部元素之间的相互感知、对变更的敏感程度;耦合是模块之间相互感知、对变更的敏感程度的描述。这两者都没有可以定量化设计、评估的方法。内聚的一般特征:模块(或者类)所负责的功能类别较少、功能数量较少。这样,该模块(或者类)又有大概率的自己能够完成这些功能,与其他模块之间的交互降低到最低的
2020-11-18 10:53:05 150
原创 2019-05-06 IT行业迫切需要大量能够从事软件设计的高端人才
现在有很多入门的IT新手,对各类编程语言非常热情,学了Java 学Python,学完Vue,接着学 BootStrap,既要学如何前端编程,又要学后端编程。但是,有一个非常尴尬的问题: 这么许多 程序员,有没有想到过,软件是需要设计的!软件设计的重要性 远远超过编程语言的重要性!并且,我们国家IT产业貌似繁荣,但是,具备良好软件设计理念与能力的IT人员(高端软件人才),严重不足。...
2019-05-06 15:31:02 572
原版最新“软件工程"教材
2012-02-03
软件建模的艺术 The Art of software modeling (Eng version)
2010-02-06
PIC microcontroller
2008-06-08
PIC microcontroller
2008-06-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人