阶段2:如何构建

在这一阶段,必须拿出一套设计方案,并解释其中包含的各类对象在外观上是什么样子,以及相互间是如何沟通的。此时可考虑采用一种特殊的图表工具:“统一建模语言”(UML)。请到http://www.rational.com去下载一份UML规格书。作为第1阶段中的描述工具,UML也是很有帮助的。此外,还可用它在第2阶段中处理一些图表(如流程图)。当然并非一定要使用UML,但它对你会很有帮助,特别是在希望描绘一张详尽的图表,让许多人在一起研究的时候。除UML外,还可选择对对象以及它们的接口进行文字化描述(就象我在《Thinking in C++》里说的那样,但这种方法非常原始,发挥的作用亦较有限。
我曾有一次非常成功的咨询经历,那时涉及到一小组人的初始设计。他们以前还没有构建过OOP(面向对象程序设计)项目,将对象画在白板上面。我们谈到各对象相互间该如何沟通(通信),并删除了其中的一部分,以及替换了另一部分对象。这个小组(他们知道这个项目的目的是什么)实际上已经制订出了设计方案;他们自己“拥有”了设计,而不是让设计自然而然地显露出来。我在那里做的事情就是对设计进行指导,提出一些适当的问题,尝试作出一些假设,并从小组中得到反馈,以便修改那些假设。这个过程中最美妙的事情就是整个小组并不是通过学习一些抽象的例子来进行面向对象的设计,而是通过实践一个真正的设计来掌握OOP的窍门,而那个设计正是他们当时手上的工作!
作出了对对象以及它们的接口的说明后,就完成了第2阶段的工作。当然,这些工作可能并不完全。有些工作可能要等到进入阶段3才能得知。但这已经足够了。我们真正需要关心的是最终找出所有的对象。能早些发现当然好,但OOP提供了足够完美的结构,以后再找出它们也不迟。

时间: 2024-12-21 23:05:53

阶段2:如何构建的相关文章

【8月16日直播】持续交付和质量红线牵手,RDC自动化测试和持续集成服务上线

​面对繁杂机械重复的测试工作,面对测试精度.难度极高的大数据量校验.单元测试.统计测试覆盖率等工作,面对多线程的并发测试,如何使用软件或工具,帮助减少重复机械工作,将繁杂工作流程化.自动化,提高测试的准确性和测试人员的积极性. 立即报名观看8月16日20:00直播内容 阿里巴巴研发协同平台资深开发工程师迪龙分享如何帮助企业把控质量红线? RDC提供了完备的Pipeline, 在整个研发过程开发代码提交后自动触发单元测试, 静态代码扫描.应用发布打包,部署, 自动触发集成测试, 构成了开发和测试共

在Docker上运行.NET Core

本文讲的是在Docker上运行.NET Core,[编者的话]本文为Jurgis Pasukonis在medium.com博客中发布的关于在Docker上运行.NET Core的文章,介绍了目前.NET Core在Docker上的开源情况及部分演示.Jurgis目前是TRAFI公司的CTO. 对于Microsoft和.NET来说,这是一个新的时代,然而这并不是言过其实的.如果你之前没有追随过这些消息,那么下面是一些发生在去年与此有关的事情: .NET框架和C#语言已经被开源并且可以在GitHub

Maven入门指南(二)

原文链接 | 译文链接 | 译者:nkcoder | 审校:方腾飞 Maven目录结构 Maven有一个标准的目录结构.如果你在项目中遵循Maven的目录结构,就无需在pom文件中指定源代码.测试代码等目录. Maven的目录结构布局,参考Maven标准目录结构介绍 以下为最重要的目录: - src - main - java - resources - webapp - test - java - resources - target src目录是源代码和测试代码的根目录.main目录是应用的

Firefox 18 将支持 OS X 的视网膜屏

在 OS X 上使用 Firefox 浏览器的用户很快将能体验到视网膜版的 Firefox 浏览器,这个特性将在 Firefox 18 中得以支持,同时 Mozilla 的邮件工具 -- Thunderbird. Firefox 18 目前还处于每日构建阶段,最近构建的版本可从 这里 下载.

基于FCA的Folksonomy用户偏好挖掘研究

基于FCA的Folksonomy用户偏好挖掘研究 张云中, 杨萌, 徐宝祥 摘要 关键词: 形式概念分析; 分众分类法; 用户偏好 中图分类号:G254 Research on FCA-based User Profile Mining for Folksonomy Zhang Yunzhong, Yang Meng, Xu Baoxiang Abstract Keyword: FCA; Folksonomy; User profile Show Figures 1 引 言 Folksonomy

【转载】Docker 镜像优化与最佳实践

阿里云高级研发工程师御坂在云栖TechDay41期的线下沙龙活动中分享了Docker镜像优化与最佳实践.本文为沙龙内容回顾. 从Docker镜像存储的原理开始,针对镜像的存储.网络传输,介绍如何在构建中对这些关键点进行优化.并介绍Docker最新的多阶段构建的功能,以解决构建依赖的中间产物问题. 镜像概念 镜像是什么? 从一个比较具体的角度去看,镜像就是一个多层存储的文件,相较于普通的ISO系统镜像来说,分层存储会带来两个优点: 一个是分层存储的镜像比较容易扩展,比如我们可以基于一个Ubuntu

Docker 镜像优化与最佳实践

云栖TechDay41期,阿里云高级研发工程师御坂带来Docker镜像优化与最佳实践.从Docker镜像存储的原理开始,针对镜像的存储.网络传输,介绍如何在构建中对这些关键点进行优化.并介绍Docker最新的多阶段构建的功能,以解决构建依赖的中间产物问题.   以下是精彩内容整理: 镜像概念 镜像是什么?从一个比较具体的角度去看,镜像就是一个多层存储的文件,相较于普通的ISO系统镜像来说,分层存储会带来两个优点,一个是分层存储的镜像比较容易扩展,比如我们可以基于一个Ubuntu镜像去构建我们的N

知新之--12-factors

作为总的原则,在程序设计上很有高度... 参考URL:http://12factor.net/zh_cn/ ========================================== 12-factors I. 基准代码 一份基准代码,多份部署 II. 依赖 显式声明依赖关系 III. 配置 在环境中存储配置 IV. 后端服务 把后端服务当作附加资源 V. 构建,发布,运行 严格分离构建和运行 VI. 进程 以一个或多个无状态进程运行应用 VII. 端口绑定 通过端口绑定提供服务 VI

基于RUP的软件过程及应用

1 引言 软件过程(Software Process)是人们建立.维护和进化软件产品整个过程中所有技术活动和管理活动的集合 [1].目前,软件过程技术是一个非常活跃的研究领域,吸引了大批来自学术界和工业界的专家和学者.从1984年起每年有软件过程国际研讨会(ISPW),从1991年起开始召开软件过程国际会议(ICSP),每个国家几乎都有自己的软件过程改进网络(SPN).软件过程技术的研究主要有三个方向: (1)软件过程分析和建模.软件过程建模方法是软件过程技术的起点,其中形式化半形式化建模方法有

一个大神程序员的使命感究竟应该是什么

工作了五年的工程师,算不算高级开发者?归类开发者不是简单地看工作年限,因为经验这种东西千金难换但又一文不值. 我们现在工作的行业很奇怪.明明每年都有新的从业人员涌入人才市场,但企业依旧诉苦自己迫切需要大量的开发.这种问题存在已久,而且已经越发严峻. 开发者这个行业非常年轻,也面临着很严重的人才短缺问题.大部分的软件开发项目无疾而终,原因是后期开支过于庞大.那些行业里的大佬是怎么建议我们 的,他们说「世界上永远存在解决问题的办法,但我们还是会遇到各种难题.因为除非我们真正去尝试解决,否则永远不知道