网亚机房管理软件博客

新实用主义典范

RUP作为一个机房软件开发过程

定义精确模型是RUP的核心原则。根据RUP,模型能在机房软件开发过程中帮助解释复杂的结构和关系。在RUP中,模型通常通过统一建模语言(UML)的格式描述。

RUP将过程中的每个部分定义为一个独立的工作流。工作流表示了过程中的每个步骤,表示的方式为:这个步骤的负责人、这个步骤要执行的任务、这些任务要产生的产物或结果以及驱动任务的事件序列。几乎RUP的一切都是可定制的,但是RUP定义了一些核心的过程工作流。

核心过程工作流程和瀑布模型的阶段有些相似之处,但是每个阶段都是迭代的,而且定义更具体。业务建模工作流对业务流程建模,通常带有驱动软件需求的目标。需求工作流通过分析系统中的问题和遍历系统假设来创建需求定义。分析和设计工作流处理磁头架构和子系统设计。实现工作流包括建模、编码和软件子系统的集成。测试工作流对软件质量测试的计划、实现和评估进行建模。部署工作流是整体规划、分布、支持和测试工作流的高层视图。配置管理工作流涉及从新项目概念到迭代和最终产品的情况。最后,机房软件环境工作流通过创建和维护开发工具对工程组织提供支持。

机房管理软件分流

在Edward Yourdon的Death March这本名字带有宿命论意味的书中,描述了软件中频繁发生的恐怖情况:落后于进度、人员紧缺、超过预算以及糟糕的设计。Yourdon的理论是,当机房管理软件项目进入这种状态时,即使是最好的现代软件开发方法也不再适用。许多软件开发方法围绕着正规化的文档来构建,或采用以用户为中心的方式设计。在一个已经处于“死亡行军”模式的项目中,根本没时间采用这些方法。

机房管理软件分流的背后的思想是:当项目已经处于糟糕的状态时,资源是紧缺的。时间是稀缺的,工程师是稀缺的,钱也可能是稀缺的。当项目已经远远落后于进度时,经理和开发人员要克服的主要心理障碍是:不可能在规定的时间内满足原来的需求了。任务就变为将剩下的功能组织为“必须有”、“应该有”和“可以有”的列表。

扩展STL的机房原因

准备用C++编写算法或容器时,可以遵循或不遵循STL的约定。对于简单的容器和算法来说,可能不值得为遵循STL规范而付出额外的努力。然而,对于打算机房重用的重要代码,这些努力是值得的。首先,代码更容易被其他C++程序员理解,因为代码遵从了构建良好的接口规范。其次,可以将自己的容器和算法与STL中其他部分(算法或容器)结合使用,而不需提供特别的修改版或适配器。最后,可以墙皮遵循开发代码所需的严格规范。

机房内存管理删除

假设有一个范围的元素,要机房内存管理删除满足某特定条件的元素,你可能向导的第一个解决方案是查看文档,确定容器是否有eraseO方法,然后迭代所有元素,并对每个满足条件的元素调用eraseO,这个方案的效率非常低下,因为保存vector在内存中的连续性,会涉及很多内存操作,因而得到平方复杂度。这个解决方案还容易产生错误,因为必须非常小心地确保每次调用eraseO之后迭代器依然有效,这个问题的正确解决方案是“删除-擦除法”。

算法只能访问迭代器抽象,不能访问容器。因此删除算法不能真正地从底层容器中删除元素,而是用匹配给定值或谓词的元素替换为下一个不匹配给定值或谓词的元素。结果是将集合分为两个集合:一个用于保存要保留的元素,另一个保存要删除的元素。如果真的需要从容器中杉树这些元素,必须先使用removeO算法,然后调用容器的eraseO方法,将从返回的迭代器到范围尾部的所有元素删除。这就是删除-擦除法。

机房关联函数对象

在类中,可以重载机房关联函数调用运算符,使类的对象可以取代机房关联函数指针。这些对象称为函数对象(function object),或称为仿函数(functor)。

很多STL算法,例如find ifO以及accumulateO的第二种形式,要求传入函数指针作为一个参数。在使用这些函数时,可以传入仿函数而非lambda或函数指针。C++提供一些预定义的仿函数类,这些类定义在functional头文件中,执行最常用的回调操作。

仿函数类通常由简单的一行表达式组成。如果必须创建机房关联函数或仿函数类,并指定一个不与其他名称冲突的名称,则使用该名称会带来很大的思维负担,其实其概念非常简单。在此类情况下,过lambda表达式表示的匿名(未命名)函数可以带来极大的方便。Lambda表达式的语法更简单,代码也更容易理解。

机房软件的审核表策略

设计审核表有不同的方式,一些应用程序使用单个机房软件的审核表来记录所有数据库中的记录,将每张表的字段作为记录存储,这样审核表就能被任何表使用,而不需要考虑每个表的实际结构。还有一些应用程序提供一个或多个审核表用于对源表中的额数据做镜像。

由于Maid To Order应用程序仅保存客户服务的历史记录以及记录变化情况,因此可以选择第2种方式来创建机房软件的审计表。除了复制txrfCustomerServices表中的列,还需要加入一些额外的时间列,用于存放数据更改的时间以及数据更改的类型,比如添加新服务、修改服务、删除不再使用的服务。此外,还要改变服务的ID。

添加Text菜单项

现在添加新的菜单项应该很容易了。只需在Resource View窗格中双击ID为IDR SketcherTYPE的菜单资源,将其打开,然后给Element菜单添加一个新的菜单项Text即可。该菜单项的默认ID显示在Properties窗口中,该ID很好,因此可以保留该ID。可以添加与该菜单项对应的显示在状态栏上的提示,并使用n把状态栏提示和工具提示分开。

不要忘记上下文菜单。可以从IDR SketcherTYPE上复制Text菜单项。右击Text菜单项,然后从弹出菜单中选择Copy菜单项。打开IDR ELEMENT MENU菜单,右击no element菜单底部的空菜单项,然后选择Paste菜单项。之后,只需把该菜单项拖到分隔线上面适当的位置,并保存该资源文件即可。

机房内部应用崩溃

机房内部应用崩溃是用户停止使用你的应用首要原因。应用奔溃的原因可能有很多,但大都直接归到编程人员的责任。建议在自己的所有应用中都使用该程序,这样做的原因有两个:

一旦应用程序,可以向用户显示一条通知消息。

可以从机房内部崩溃日志中收集信息,并利用Web服务将信息发送给你进行分析。

使用redmine作为我的主管理系统。这是一个开源平台,可以管理项目和任务,还能与subversion(也称为svn)系统集成以执行源代码管理。在我的应用中,通过在我的系统中调用Web服务并创建crash类型的任务,可以将收集的崩溃日志直接发送到redmine。如果我的某个应用在用户设备上奔溃,系统将在一分钟内通知运行该应用的设备的信息、应用版本和崩溃日志。这样就为我提供了查找问题、解决问题并发布新版本应用所需的全部信息。

事件处理机房管理程序

为UI元素处理该事件的方法是常规的C++函数,其带有特殊的签名,该签名依赖于UI元素的类型。

这个按钮事件的处理机房管理程序声明是自动创建的,它在用户触摸了屏幕上的按钮或者用鼠标单击了按钮时执行。其第一个形参是触发事件的UI对象的句柄,必须把它转换为合适的类型,才能使用它。第二个形参提供了事件的其他信息。根据约定,UI元素的事件处理程序一般有两个形参,如前所述,第一个形参的类型是Platform Object,表示触发事件的对象。第二个形参的类型是变化的,因为它是对表示事件的对象的引用。事件处理程序办返回void类型。事件处理程序的地址记录在一个委托中,委托类似于标准C++中的函数指针。

从Access生成Excel图标的机房软件

图标是迅速总结和表达复杂数据的一种强有力的方法。机房软件的图标在演示和报表中还有广泛的吸引力。使用PivotChart对象比较容易在Excel中创建各种机房软件图标。

如果要使用以前版本Excel中的透视表创建图标,首先必须创建一个透视表。但是,现在可以提取Access中的数据并且在一个透视图中直接显示出来,不必创建一个透视表。如果正在从Access生成这个工作簿并且要用电子邮件把它发送给某个人,这是特别方便的。

下面的示例演示了如何根据Access查询创建Excel图标。记录源qselProductSalesSunmary是一个汇总每一个产品成本的查询。类似于透视表和其他Excel对象,它仅查询最小代码以便利用这个功能。可以根据需要增加额外的代码以满足你的需求。当前的情况需要两列信息:产品和代码。一旦创建包含这两列信息的工作表,将使用下列代码在Excel中创建实际的图表。

«8910111213141516171819202122»

Powered By Z-Blog 2.0 Doomsday Build 121221

版权所有©2007-2013 南京网亚计算机有限公司
QQ:502800066(购买咨询) 1074187861(技术支持) 邮件: sales@ji-fang.cn
电话:( 025)84533318 (025)84533319 (025)66671103 13913982176 传真: (025)84533320
地址: 江苏省南京市中山东路198号龙台国际大厦1205室