探讨综合信息系统的开发方法与策略研究
导读:“大数据”火热之后,一些经典的数据建模、数据库/数据仓库、数据分析方面内容,包括骨灰级的商业智能 (BI)、知识管理 (KM) 等概念,也常被贴上这个标签。虽有蹭热度之嫌,但也是有相关知识与技术自然的、逻辑上的关联。这甚至包括一些“传统”的未决问题,比如“数据孤岛”或“应用筒仓”等。前文探讨的信息系统途径与功能性应用软件途径的区别与关系问题,在大数据时代同样存在;其背后还隐藏着个“程序与数据分离”问题——这个沉寂已久的话题最近又开始浮出,且与当前诸多热点有关:首先是大数据,然后是人工智能,还有云计算、新计算架构以及一些区块链发展相关的课题等。本文和稍早重发的若干文章讨论的内容与上述问题密切关联;这些问题从未真正解决,甚至更加严重。这里将以前的一些讨论重发作为参考,以备在新的基础上进一步探讨。(编者,2019-01-28)
摘要:理想的综合信息系统需要同时解决业务功能和信息资源管理两种典型需求,传统的开发方式在这两个目的的结合上存在困惑。模型驱动原理、企业架构 (EA)、参考模型等方面的发展,昭示了解决上述问题的新策略:面向数据库、综合建模、模型驱动,用模型驱动机制统一、控制整个开发、应用周期,进而直接形成模型驱动的新一代信息系统。
关键词:信息系统,开发途径,策略,模型驱动
1 引言
Flyingrobot (2007b) 对综合信息系统的开发,归纳了两种典型途径。其一是“功能系统开发途径”,从确定用户功能需求出发,精确设计能够实现目标功能的程序。通常的“应用”或“应用系统”开发方式都属于此列。按照这种途径开发的系统,信息管理与维护通常是在基本功能实现同时自然或辅助实现的次要功能。与此对应,另一种是“信息资源开发途径”,这一途径强调信息本身的实体性、独立性,从信息本身相对独立的生命周期着手,针对信息实体建立其整个生命周期上的支持、管理,首先形成汇集、维护、提供信息的基本功能,在此基础上再进一步建构更多的应用。这一思路与通常所说的“信息管理”或“信息资源管理”(Information Management or Infomation Resource Management) 一致。这两种开发途径,各有其优缺点和不同的适合领域,但并非相互独立。如何结合,则是一个现实的课题,尤其是其中涉及的数据互相重叠时,不能很好的结合,不仅带来数据资源搜集、管理上的重复工作,更重要的是大大增加了因数据不一致可能带来的隐患。对于希望覆盖或支持应用主体大部分业务和基本信息的综合信息系统而言,根据现有的理论和方法,对信息资源开发途径似乎有更多的选择理由。但在实践中,却难以与功能开发实现结合,并未取得预期的效果。本文围绕综合信息系统,对功能系统和信息资源开发两种开发途径进行讨论,并试图结合企业建模与企业工程等领域的一些进展,提出面向未来的、适合我军转型发展方向的新一代综合信息系统开发的策略。
2 综合信息系统及其目标
本文的讨论针对所谓“综合信息系统”,笼统地看,对此可能有两类基本的理解,一种是指基于计算机实现、具有特定业务功能的系统,例如自动控制系统,库存管理系统,计划控制系统等;一种是基于计算机实现、“汇集、储存和提供信息”的系统,也可称为数据库或信息资源管理系统(这两种典型的系统对应着两种典型开发的途径,在后面会进一步讨论)。应该留意,后者提供数据的对象是人,所提供的数据则既可以包括高度结构化的数据(以适合人类阅读的方式),也常常包括非结构化/半结构化数据(例如数字化的图形、语音、文本甚至包含文字的扫描图片)。要充分地发挥计算机的威力,其中一个方面就要努力提高数据的结构化与规范化程度,即计算机可处理的程度。例如,对于文字文档的扫描图片,其内容基本上不能为计算机直接“处理”;即使将其内容转化为计算机字符编码,如果是自然语言文本,目前也基本不能被计算机程序正确处理(但已经可以做一些处理,譬如关键字搜索)。同样是计算机字符编码文本,如果是严格依照某种编程语法编制的脚本(比如对一组业务规则的表达),就直接可以被计算机精确执行或处理,但其内容或意义,又可能不能被一般业务人员直接理解;更理想的状况是,这一组规则既可以展现为普通业务人员可以理解的方式,又能够被计算机自动地执行。当前高速发展中的“业务建模”技术,就具有这种能力。这正是我们努力的方向之一:让更多的数据既易于被人所理解和使用,同时也可以被计算机系统自动处理或使用,从而让计算机做更多的事,为人提供更多的支持。这就需要更好地结合功能和资源两个方面的要求。
本文对“综合信息系统”设定这样一种目标或范围:为最终应用主体(例如企业)的业务提供具有整体性、综合性的信息技术解决方案。与特定的(较为专门的)功能或业务系统相比,它的覆盖面更广泛,也更依赖于综合的业务信息。在更深一层的理解上,这里还隐含着这样一种认识:适合在计算机及网络支撑下完成的大部分“业务”,实质上(至少在计算机中)都体现为某种信息处理的过程。符合上述理解的综合信息系统的基本目标可概括为两个方面:
- 汇集、提供运作与管理中所需要的尽可能完整、一致的信息;
- 实现、支持基于上述信息(或与上述信息相关)的各种操作或功能。
从综合信息系统角度着手,建立基于信息技术的企业整体性解决方案,是应用主体企业在较高信息化水平下的课题。我们并不假设一个综合系统可以覆盖所有的需求,但可以预期这样的综合系统的发展,会“覆盖”越来越多的特殊功能系统,从而减少对独立的、孤岛式应用解决方案的依赖。从现实的状况看,这一类系统或解决方案远非成熟。
这种系统的基础,是统一的综合信息库——动态储存大量、有意义的数据——习惯上称之为“数据库”。实现应用数据库所需的基础设施——数据库管理系统 (DBMS),从理论到产品,都是相对成熟的,近半个多世纪,人们构造了大量的基于DBMS的应用,是典型企业应用的基本形态。与DBMS比,综合信息系统本身更不成熟,有很大的改进空间。在这方面,余彤鹰 (1999) 提出的新一代企业信息系统构思,是实现综合信息系统目标的一种有代表性的创新思路,曾给予国内一些企业应用开发者很大影响或启发。经过近八年时间的考验,其中提出的关键特征如企业建模、模型驱动,目前已经成为IT业普遍关注的热点,或公认的技术方向,在市场上也已经有了初步成功地案例。以互联网试验室2002年9月提出的《业务系统基础架构平台研究报告》(ChinaLabs, 2002) 为标志,国内兴起了一股影响至今的企业应用平台化的浪潮,兴起和领先这个潮流的关键之一,正是将企业建模和模型驱动技术引入综合信息系统应用。
3 功能系统开发途径
在过去几十年里,企业信息技术应用中最广泛和成功的例子,大多属于特定的功能系统,例如销售点系统 (POS)、财务系统、制造资源规划系统 (MRP II) 和各种特定业务的处理或支持系统、办公系统等等。流行的ERP(企业资源规划)概念,也常被看作是综合信息系统的代名词,但市场上大多数ERP系统始终和更加中性的“综合信息系统”(例如管理信息系统)有所区别。
这些系统开发方法与技术虽然可以有很大差别,但大都可归纳为功能系统开发途径。在典型的功能系统开发中,数据被看作是系统附属或私有的,由不同的开发企业在各自选择的运行环境中,按照各自的需要和技术风格加以解决,不大可能联合起来统一它们的数据规划或数据库。另外,为实现特定的功能,只需覆盖有限的数据,无需(也很难)去覆盖与本系统功能无关的数据,即使那些数据有紧密的逻辑关系。开发者的必须确保功能的实现和效果,是否能在数据层面上与其它系统整合,是第二位的。
这样,对于最终用户,使用多种不同应用系统的结果就无可避免地形成信息断层、孤岛、和冗余,它们制约了企业对信息的有效使用它们制约了应用主体对信息的有效使用,以及更高级、整体性功能的实现。这是IT应用领域悬而未决的主要问题之一,正因为如此,系统间集成、遗留系统/数据再利用等,已经成为当今信息技术应用领域的主要课题。近期IT界青睐的面向服务架构 (SOA),可以把不同系统的功能更好地衔接起来,但这种在功能上的集成,仍然无法解决或绕开功能背后的信息断层与孤岛等问题 (Flyingrobot, 2007a, b)。
4 信息资源开发途径
信息资源开发途径主要体现在一些特殊的领域或项目上,这种项目通常包括大量数据,其功能主要表现为对这些数据的直接使用——检索、查询、提取(阅读或输出),例如文献资源管理,一些公共信息共享、管理系统等。在各种企业应用的发展线索中,早期的“管理信息系统”(MIS)和相关线索上的“决策支持系统”(DSS)、“专家系统”(ES) 和“知识管理”(KM) 等,都是更接近综合信息系统的概念,但在实践中,它们发育得并不好 (参见余彤鹰, 2007a)。
道理上,从信息资源分析与建立上入手,先建立完整、规范的数据环境,在此基础上开发各种功能,可以最大限度地避免信息断层或孤岛等问题。但信息的稳定性是相对的,无论是它的内容、结构还是范围都不是静止的、固定的;而且基于同样数据的功能,也不是能够一次性弄清的,已有的功能可能需要改变,新的功能随时可能提出,而功能演进的本身依然会不可避免地带来对信息的特定要求,即使基本的信息已经预先加以建立——至少从经验上看,特定功能所要求的特定信息/结构,与通用的信息/结构之间,常常没有足够明晰的界限。
换一个角度说,信息资源管理开发途径强调在保持数据本身的稳定性、一致性的前提下开发功能,这就需要将功能实现与数据结构解耦,或者在开发新的功能的时候严格遵照事先建立的信息规划,从实践的经验看,面对复杂的业务功能需求,这两项要求迄今仍然难以达成,其中既有纯技术的困难,也有商业性运作的困难。当前的应用开发技术,在多数情况下,功能实现的方式与数据结构是高度耦合的,特定的功能系统,总是基于自身独立、独特的数据规划。即使对同样功能的实现,不同的应用开发供应商,有不同的技术、商业立场,要它们交换或共享系统中数据的完整结构,或者完全遵循一套通用的结构(假设它们存在),即使技术上没有问题,也会遇到复杂的商业策略问题。这些问题的存在,使得信息资源开发途径始终限于本节最初所说的少数情形。(Flyingrobot, 2007b)
当开发目标覆盖应用主体(例如商业企业、*机构)大部分业务和基本信息时,对信息资源开发途径似乎有更多的选择理由。从信息资源建立的角度入手,从长远、整体的角度看,是更加合理的,但是,必须找到与深入、高级的功能无缝衔接(同时又不造成高度耦合)的方法。
5 信息工程与信息资源管理
实际上,前面提出的综合信息系统的基本目标,并非新的想法。管理信息系统 (MIS) 就是类似的经典概念。在过往对综合信息系统开发的探索中,上世纪八十年代,James Martin, Clive Finkelstein 等倡导的信息工程 (IE) 最有代表性。信息工程 (IE) 的基本思路是以数据为中心,在严格的数据模型和规范基础上建立“主题数据库”(subject data bases),分离数据结构与处理过程,把数据库看作是“应用”的环境 (即数据环境,data environment),在此基础上就可以逐步建立应用体系 (Martin & Finkelstein, 1981)。从系统架构的角度,信息工程也强调以数据库管理系统 (DBMS) 为基础,适合或最终导致面向数据库的应用架构。实际上,即使是功能导向的企业应用系统 (例如前面提到的MRP/ERP,POS等等),同样是以DBMS为基础的,以数据库为中心,或面向数据库,是多数企业应用体系结构的一个基本特征。将这一点,与近年来企业体系结构演化的趋势,包括应用中间层的兴起(中间件或应用服务器)、对SOA的重视等加以比较,是意味深长的 (Flyingrobot, 2007a)。
信息工程的目标,与我们所讨论的综合信息系统的目标基本一致,而它以数据(信息)为中心,强调总体数据规划与数据环境建设的思路,则可看作是信息资源开发途径的典型代表。国内也有学者将“信息资源管理”与信息工程结合,提出了“信息资源规划”,并在实践中取得了一定的效果 (参见:高复先, 2002)。
在信息工程或信息资源管理背后都有这样一个基本认识:信息是属于用户(相对于系统开发者而言)的一种资源,是具有特定的结构与属性的独立实体,与对它们的“使用”(包括储存、处置、检索或分析等等)是相对分离的。这个思路,强调数据(信息)整个生命周期上各个环节的管理,从基础数据环境(数据库)的建立开始构建综合信息系统,但对于在此基础上如何实现各种可能功能(应用),并没有给出更有力的答案。
信息工程充分继承了“数据库”最初提出时的基本想法,即强调数据处理与数据结构分离,但迄今为止,实现基于数据库的功能的计算机软件基本都是与数据结构高度耦合的程序。这意味着基于数据环境的企业信息系统开发者必须严格遵循和使用“甲方”提供的数据规划及数据库,应用只能以定制(或自行开发)方式实现。同时,由于这些定制程序与信息结构的高度耦合,它的维护将成为越来越繁琐,无法摆脱的艰巨任务。信息结构的相对稳定在此时并不如想象的那么重要,甚至是非实质性的:因为只需微小的变化,就足以破坏构造于其上的应用程序,仅此一点就足以制约信息工程方法的成功(余彤鹰, 2004a)。从经验看,最终用户(甲方)自主或定制开发整体性信息系统解决方案的计划,在大多数情况下都无法取得预期的成功。
信息工程最初单纯从信息规划的角度提出建立计算机化的企业,这明显是不够的,因此信息工程的提出、倡导者 Janmes Martin 转向和发展了企业工程 (Enterprise Engineering),并将其看作对信息工程的进一步扩展,其它的信息工程倡导者,也都有类似的发展(余彤鹰, 2001)。企业工程/业务工程 (参见余彤鹰1999, 2001等),拟补了信息工程的不足,是全面建设新一代综合信息系统的重要基础。
6 企业建模、架构、框架与参考模型
信息工程与信息资源规划的基本着眼点是数据结构。另外一些研究和实践者,直接将目光放在企业或业务本身,并试图将其与信息系统架构直接联系起来。有一系列相关的概念:企业架构 (Enterprise Architecture)、企业框架 (Enterprise Framework)、企业建模 (Enterprise Modeling) 与企业参考模型 (Enterprise Refrence Model)。这里的“企业”一词也常被换成更具体的“业务”(business),但在本文讨论的话题上,可以暂时忽略这种区别,并留意,这里的“企业”(enterprise) 是广义的,不限于商业企业,*、军队、学校、民间组织等都可以理解为广义的企业。
承接上面的讨论,值得特别指出,这些工作在逻辑上可以看作是信息工程 (IE) 的扩展与延续——从数据建模扩展到企业/业务的全方位建模,其结果不仅包括企业的数据模型,也包括了业务模型、功能模型、过程模型,甚至信息系统本身的技术架构(模型)。企业建模与所谓“信息建模”本来就是密切关联的。从形式上,企业模型就是一种信息模型;从内容上,企业模型用数据(信息)构成对企业本身的表达。而基于体系结构和企业框架,对整个企业进行整体规划与设计,这个思路实际上和信息工程或本文中的“信息资源开发途径”吻合。与传统的信息工程内容相比,这些领域上的发展,至少在几个方面有所超越:
- 在对象与范围上,更明确地强调了企业、业务本身,不限于但包括数据(信息)建模;
- 在方法上,有更丰富的理论、方法学,从架构到框架,再到参考模型的建立与运用,以及一批在实际应用中得到验证的方法或体系;
- 在工具与技术上,出现了许多专用或辅助的建模工具,并且在模型管理、分析与模拟等方面具备越来越强的能力,远远超出了数据(信息)建模的范畴;
- 在应用上,在诸如*、国防体系、军队这样的复杂、大型应用领域,得到了有效的应用或验证。
虽然有所发展,但在如何运用模型上,始终存在一种基本的困惑。余彤鹰 (1999, 2004b, 2005, 2007b等) 从原理和方法等角度,对此给出了一些回答,并且提出了“模型驱动机制”(Model-Driven Mechanism),阐明模型在开发过程和应用系统中的作用原理,以具有模型驱动等基本特征的“新一代企业信息系统”为纲,将企业建模、企业信息系统与企业工程等有机地联系了起来。
7 综合信息系统开发策略
在余彤鹰 (1999) 开始的一系列工作中,提出了新一代企业息系统开发的策略、方法、技术等许多方面的基本要点,今天看来,基本方向和关键要点,都代表或符合迄今相关领域理论和实践的进展。结合这些工作,综合前面的分析,从新一代综合信息系统开发策略的角度,我们归纳出以下几个要点:
1)面向数据库
综合信息系统综合信息系统的基本架构是面向数据库的。这一点直接继承了信息工程的思想,也符合信息资源管理的思路。虽然现实中企业所应用的面向功能开发的系统大都是基于数据库的,但许多开发者对数据库的基础作用理解得并不足够。强调面向数据库,会给软件架构设计和功能实现方式带来不同的思路和要求。另一方面,面向数据库的架构并不排斥其它架构风格(比如模型驱动架构和面向服务架构),可以很好地结合。从信息资源管理的角度,除了适合以关系数据库表达的结构化数据外,还需要处理/支持半结构或非结构的数据,这些数据同样应该被“嫁接”到结构化的数据之上(例如,形成基于关系模型扩展的多媒体数据库)。
2)综合建模
新一代的综合信息系统的整个开发工作,都体现为建模或基于适当的基于模型的方法,“业务”到信息(数据),从功能(过程)到系统架构。近年,在的企业建模(体系结构、企业框架、企业参考模型)、业务(过程)建模、信息系统建模、软件架构、软件功能建模,甚至软件的部署模型方面,都有长足的进步,建模技术与方法、工具,是IT领域的热点,但上述不同领域上的建模,逐步成为需要关注和突破的关键。新一代综合信息系统开发,应该努力将它们有机地结合起来。这种综合应用,不仅仅是对具体领域上进行建模,尤其包括不同模型之间的衔接、结合或运用方式,以及不同的方法论的综合运用。“模型驱动”也为建模提出了更明确的方向和要求。
3)模型驱动
余彤鹰 (2005) 提出了模型驱动机制,以此解释模型驱动的方式和实质。通过模型驱动机制,可以更清楚地把握模型运用的可能模式,引导我们选择、建立更适当的建模方法和应用体系,更充分有效地发挥模型的作用。它既可以用于应用系统本身,也可以用于开发系统的系统——应用系统的开发过程。前者是模型应用的高级形式,后者是相对初级的形式。在上一个要点中我们强调的综合建模,这个工作的输出——模型——须结合模型驱动原理加以运用,根据模型驱动的原理,可以有两个不同的层面:初级的“模型驱动开发过程”,和高级的“模型驱动系统”。
在初级层面上,模型驱动开发在整个开发过程中,充分运用建模与模型,软件领域在模型驱动架构 (MDA) 的基础上,已经提出了完整的“模型驱动开发”(MDD) 方法。已经在实践中广泛运用的企业架构/框架 (EA/EF),也应该按照这个原理,充分发挥和强化建模与模型的作用。
在更高的层面上,我们希望直接开发“模型驱动的信息系统”(MDIS),这是一种理想的境界,将使建模的过程和成果(模型)实时、动态地运用到实际使用中的应用系统。应用系统的架构可以是多种多样的,但综合信息系统可能是最适合采用模型驱动的系统形式之一。模型驱动系统是复杂系统的一种基本形式,并非新的系统构思,即使在以往的软件实现中,也包含着相当多的例子 (余彤鹰, 2007b)。实现模型驱动系统的障碍主要在于观念转变而不是软件技术。
8 小结
通过分析,我们可以看到,对综合信息系统,应用开发的两种典型途径“功能系统开发”与“信息资源开发”各有长短。后者,尤其继承了信息工程的理念与方法,似乎更适合于综合信息系统,但这种判断却没有充分体现在实践中。近年发展迅速,得到更多关注的各种建模方法和理论,实际上也是对信息工程或信息规划的一种扩展。要想让建模的结果——模型充分发挥作用,就应当按照模型驱动的基本原理——模型驱动机制去构造整个建模和运用模型的体系。由此,我们提出,以面向数据库、综合建模、模型驱动三个要点,作为新的综合信息系统开发的基本策略。这三项基本策略中的核心,是模型驱动机制,即用模型驱动机制控制、统一整个开发、应用周期,进而直接形成模型驱动的新一代综合信息系统综合信息系统。而面向数据库,是结合应用架构与技术架构的关键特征,它常常容易(或已经)被人们忽略。
要在实践中充分运用上述策略,应该对信息系统的原理、架构、开发与实现技术与方法、生命周期、模型理论、信息化与企业工程等等进行全方位的综合研究 (余彤鹰, 2004b),这里结合当前的实际,特别提出以下几项工作:
- 通用体系结构与建模框架的开发研究。在充分借鉴国外现有理论与实践的基础上,基于模型驱动理论,综合创新。虽然建模领域的许多工作都已经有几十年的历史,近年也有不少发展和普及,但囿于建模目的和运用方法等方面的局限,现有的建模(尤其企业、信息系统建模)仍然未臻成熟,存在较大的创新、改进空间,同时这也是确保有效地形成模型驱动机制从而发挥最大作用的关键。
- 建模体系的综合研究。对当前非常丰富的建模方法进行系统地鉴别、整理,根据特定的工作目标,整合、形成特定的工作体系。
- 模型驱动的信息系统开发过程与整个生命周期的研究。
- 模型驱动系统(软件)的研究与开发。国内商业领域已经有了初步的成果,但还远没有达到预期的成功。
- 面向数据库的软件体系架构研究。结合最新的软件架构发展和数据库平台当前面临的特殊问题进行研究。
- 从操作系统平台到数据库的国产或中性化、开源解决方案。这一点,是结合现在国内IT应用的实际状况,和IT相关领域的趋势提出的。非微软系,基于开源的解决方案体系的构建,已经具备了相当好的基础,在产品架构发生重大变化的时候,正是在这方面做出改变或重新选择契机。
上述策略,是建立同时符合本文最初提出的两方面目标的综合信息系统的关键。功能系统为主的应用开发格局短期内不会改变,单纯的信息资源管理仍然不会得到真正的发展,尤其无法取代前者,但我相信,基于模型的新一代综合信息系统能够在功能和信息资源两个方面覆盖越来越多的需求。
9 参考文献
- ChinaLabs (2002):业务系统基础架构平台研究报告,北京:互联网实验室,2002年9月
- Flyingrobot(2007a):以数据库为中心的应用与面向数据库. 企业应用探索日志, 2007年9月.
http://blog.vsharing.com/flyingrobot/A610947.html
- Flyingrobot(2007b):功能还是资源——信息系统的两种开发途径, 企业应用探索日志, 2007年10月.
http://blog.vsharing.com/flyingrobot/A612135.html
- Martin, James & Finkelstein, Clive(1981):Information Engineering. Prentice-Hall, 1981
- Martin, James(1995):The Creat Transition: Using the Seven Disciplines of Enterprise Engineering to Align People, Technology, and Strategy. AMACOM, 1995
- 高复先(2002):信息资源规划:信息化建设基础工程. 清华大学出版社, 2002年4月
- 余彤鹰(1999):迈向21世纪的企业信息技术应用. 企业工程论坛, 1999年1月,
http://www.ee-forum.org/pub/1998-2009/eitsd0.html
- 余彤鹰(2001):显现中的企业工程. 2001北京企业工程研讨会, 2001年12月,
(http://www.ee-forum.org/pub/1998-2009/eee/
- 余彤鹰(2004a):探讨一下信息资源管理(IRM)与信息工程(IE).企业工程论坛, 2004年8月.
http://www.ee-forum.org/bbs/bbsview2.asp?type=4&id=63
- 余彤鹰(2004b):余彤鹰. 新一代企业信息系统研究与开发纲要. 企业工程论坛, 2004年11月.
http://www.ee-forum.org/pub/1998-2009/neis11.htm
- 余彤鹰(2005):新一代企业信息系统——从实质性需求分析与研究到模型驱动系统. 企业工程论坛, 2005年8月.
http://www.ee-forum.org/pub/1998-2009/downloads/YU_MDEIS2005_050816a_CH.pdf
- 余彤鹰(2007a):企业应用发展线索分析. 企业工程论坛, 2007年7月.
http://www.ee-forum.org/pub/1998-2009/ty_070701a.html
- 余彤鹰(2007b):企业工程、模型与信息系统. 暨南大学管理学院, 2007年9月.
http://www.ee-forum.org/bbs/bbsview2.asp?type=6&id=180
初次公布:企业工程论坛,2008-04-11,
http://www.ee-forum.org/pub/1998-2009/bbs/type=6&id=272.html
作者印记:c8cc97
本文及所提及(链接到)的企业工程论坛的文章收录在两本文集中,下载地址如下(有重发的在参考文献部分补充了新的网址链接):
- 《企业工程论坛合集(一):企业工程、企业架构、信息化与管理 》
- 《企业工程论坛合集(二):企业应用、信息系统与模型 》
推荐阅读
-
什么是可用性测试?有效性(Effectiveness)-- 用户完成特定任务和实现特定目标的正确性和完整性程度;效率(Efficiency)-- 用户完成任务的正确性和完整性程度与所用资源(如时间)之比;满意度(Satisfaction)-- 用户在使用产品时的主观满意度和接受程度。 2.如何获得可用性? 可以参考以下原则:Gould、Boies 和 Lewis(1991 年)为以用户为中心的设计定义了 4 个重要原则: 早期以用户为中心:设计者应在设计过程的早期就努力了解用户的需求。 综合设计:设计的所有方面都应同步发展,而不是按顺序进行。使产品的内部设计始终与用户界面的需求保持一致。 早期和持续测试:当今唯一可行的软件测试方法是经验主义方法,即如果实际用户认为设计可行,该设计就是可行的。通过在整个开发过程中引入可用性测试,用户就有机会在产品推出之前对设计提出反馈意见。 迭代设计:大问题往往掩盖了小问题的存在。设计人员和开发人员应在整个测试过程中对设计进行迭代。 3...什么是可用性测试? 可用性测试是根据可用性标准对图形用户界面进行的系统评估。 可用性测试是衡量用户与系统(网站、软件应用程序、移动技术或任何用户操作设备)交互时的体验质量。4.如何进行可用性测试? l 实验室实验
-
澎湃新闻对话腾讯丁珂:从 "治已病 "到 "治未病",企业需快速构建 "安全免疫力"--丁珂指出,对企业而言,安全不是成本而是生命线 丁珂指出,对企业而言,安全不是成本而是生命线,也是商业 "硬币 "的另一面。在数字智能化的新阶段,发展驱动安全建设已成为普遍共识,企业需要转变安全思维,从被动建设到主动防御,构建一套新的安全范式和框架,以更加积极、主动的安全观来提升数字安全免疫力,以 "治未病 "的理念取代 "治已病",前置安全,快速构建 "安全免疫力"。对 "已病",前置预判,及时应对处置安全风险,才能维护品牌价值,保障健康发展。 与此同时,安全建设还普遍存在 "不知道往哪投、怎么投 "的痛点。对此,腾讯安全提出,企业可以按照数字安全免疫模型的框架进行安全全局部署,重点在业务安全、数据安全、安全运维管理、边界安全、终端安全、应用开发安全等薄弱环节的关键领域注入 "免疫增强针"。 今年进入公众视野的AIGC还在产业化、产品化的过程中,但大量攻击者已经利用它生成攻击脚本、钓鱼邮件,甚至伪造身份进行诈骗。"人工智能本身是否安全,会不会让网络更不安全? 腾讯安全研究认为,AIGC的风险主要集中在 "无法解释 "和 "无法追踪 "的特点上,但这在技术上是能够找到应对方法的。丁珂谈到,AIGC作为生产力的巨大提升,确实会带来更复杂的攻防态势和更大的防御难度。但任何新技术都要经历这样的周期。而法律法规也会随着技术的演进而不断更新,使新技术的发展更加规范和健全。 丁珂认为,随着我国网络安全法律法规体系的不断完善,合规性将给企业推进网络安全带来很大的推动力,并很直观地展现在需求端。未来,伴随着数据要素市场的建立或企业对数据价值的挖掘,也将带动数据安全市场的快速增长。 对于腾讯安全的商业逻辑和运营,丁珂表示,不谋求建立竞争壁垒,而是期望与生态共同发展,腾讯安全希望通过能力开放,实现安全与业务相伴的生态模式。 谈到未来,丁磊表示,安全领域已经进入加速发展期,在蓝海中会持续关注很多新的业务领域,希望孵化出新的商业模式,腾讯安全团队也会持续关注并抓住机会做好产品。 以下为采访实录(在不改变原意的基础上略有删减): 冲浪新闻:当前,以人工智能、大数据等新技术为驱动的第四次工业革命正向纵深推进,给人类生产生活带来深刻变革。而互联网作为新技术的载体,面临的安全挑战不仅数量越来越多,形式也越来越复杂。从互联网安全从业者的角度,腾讯观察到近年来国内外网络安全形势发生了哪些变化?这些变化呈现出怎样的趋势?
-
探讨综合信息系统的开发方法与策略研究
-
设计与开发数据库自动化运维平台的实用策略与方法论
-
深度学习中的不确定性量化:2020年实用技术与应用大解析 - 61页精华解读" 这份报告深入剖析了近年来深度学习领域中不确定性量化(UQ)技术的最新发展,包括其在强化学习(RL)中的运用实例。探讨了贝叶斯近似和集成学习等主流UQ方法在各个具体场景中的广泛应用,比如自动驾驶、目标识别、图像修复、医疗影像分析(如分类和分割)、文本理解(如文本分类和风险评估)、以及生物信息学等多个领域。 报告进一步梳理了UQ方法在深度学习领域的关键应用案例,并针对当前面临的挑战及未来研究方向进行了概览和展望,为这一领域的研究人员和实践者提供了有价值的参考指南。
-
探讨提升企业赚钱能力的策略与方法
-
回顾与剖析《组织行为学》的发展轨迹:研究策略与个人心得探讨
-
破解低代码开发难题的方法与策略
-
Grid++Report 锐浪报表开发常见问题解答集锦-报表设计 问:怎样在设计时打印预览报表? 答:为了及时查看报表的设计效果,Grid++Report 报表设计应用程序提供了四种查看视图:普通视图、页面视图、预览视图与查询视图。通过窗口下边的 Tab 按钮可以在四种视图中任意切换。在预览视图中查看报表的打印预览效果,在查询视图中查看报表的查询显示效果。如果在报表的记录集提供了数据源连接串与查询 SQL,在进入预览视图与查询视图时会利用数据源连接串与查询 SQL 从数据源中自动取数,否则 Grid++Report 将自动生成模拟数据进行模拟打印预览与查询显示。注意:在预览视图与查询视图中看到的报表运行结果有可能与在你程序中的最终运行结果有差异,因为在报表的生成过程中我们可以在程序中对报表的生成行为进行一定的控制。 问:怎样用 Grid++Report 设计交叉表? 答:Grid++Report 没有提供专门实现交叉表的功能,其它的报表构件提供的交叉表功能一般也比较死板和功能有限。利用 Grid++Report 的编程接口可以做出灵活多变,功能丰富的交叉表。示例程序 CrossTab 就是一个实现交叉表的例子程序,认真领会此例子程序,你就可以做出自己想要各种交叉表,并能提取一些共用代码,便于重复使用。 问:怎样设置整个报表的缺省字体? 答:设置报表主对象的字体属性,也就是设置了整个报表的缺省字体。如果改变报表主对象的字体属性,则没有专门的设置字体属性的子对象的字体属性也跟随改变。同样每个报表节与明细网格也有字体属性,他们的字体属性也就是其拥有的子对象的缺省字体。 问:怎样在打印时限制一页的输出行数? 答:设定明细网格的内容行的‘每页行数(RowsPerPage)’属性即可。另外要注意‘调节行高(AdjustRowHeight)’属性值:为真时根据页面的输出高度自动调整行的高度,使整个页面的输出区域充满。为假时按设计时的高度输出行。 问:怎样显示中文大写金额? 答:将对象的“格式(Format)”属性设为 “$$” 及可,可以设置格式的对象有:字段(IGRField)、参数(IGRParameter)、系统变量(IGRSystemVarBox)与综合文字框(IGRMemoBox),其中综合文字框是在报表式上设格式。 问:能否实现自定义纸张与票据打印? 答:Grid++Report 完全支持自定义纸张的打印,只要在报表设定时在页面设置中选定自定义纸张,并指定准确的纸张尺寸。当然要在最终输出时得道合适的打印结果,输出打印机必须支持自定义纸张打印。Windows2000/XP/2003 操作系统上可以在打印机上定义自定义纸张,也可以采用这种方式实现自定义纸张打印。 问:怎样实现 0 值不打印? 答:直接设置格式串就可以,在“数字格式”设置对话框中选定“0 不显示”,就会得到合适的格式串。也可以通过直接录入格式串来指定 0 不显示,但格式串必须符合 Grid++Report 的规定格式。另一种实现办法是在报表获取明细记录数据时,在 BeforePostRecord 事件中将值为零的字段设为空,调用字段的 Clear 方法将字段置为空。 问:怎样实现多栏报表? 答:在明细网格上设‘页栏数(PageColumnCount)’属性值大于 1 即可。通过 Grid++Report 的“页栏输出顺序”还可以指定多栏报表的输出顺序是“先从上到下”还是“先从左到右”。 问:如何实现票据套打? 答:Grid++Report 为实现票据套打做了很多专门的安排:报表设计器提供了页面设计模式,按照设定的纸张尺寸显示设计面板,如果将空白票据的扫描图设为设计背景图,在定位报表内容的输出位置会非常方便。报表部件可以设定打印类别,非套打输出的内容在套打打印模式下就不会输出。 问:Grid++Report 有没有横向分页功能? 答:回答是肯定的,在列的总宽度超过打印页面的输出宽度时,Grid++Report 可以另起新页输出剩余的列,如果左边存在锁定列,锁定列可以在后面的新页中重复输出,这样可以保证关键数据列在每一页都有输出。仔细体会 Grid++Report 提供的多种打印适应策略,选用最合适的方式。Grid++Report 的多种打印适应策略为开发动态报表提供了很好的支持。 问:怎样实现报表本页小计功能? 答:定义一个报表分组,将本分组定义为页分组,在本分组的分组头与分组尾上定义统计。页分组就是在每页产生一个分组项,在每页的上端与下端都会分别显示页分组的分组头与分组尾,页分组不用定义分组依据字段。 报表运行 问:怎样与数据库建立连接? 答:如果在设计报表时指定了数据集的数据源连接串与查询 SQL 语句,Grid++Report 采用拉模式直接从数据源取得报表数据,Grid++Report 利用 OLE DB 从数据源取数,OLE DB 提供了广泛的数据源操作能力。如果 Grid++Report 的数据来源采用推模式,即 Grid++Report 不直接与数据库建立连接,各种编程语言/平台都提供了很好的数据库连接方式,并且易于操作,应用程序在报表主对象(IGridppReport)的 FetchRecord 事件中将数据传入,例子程序提供了各种编程语言填入数据的通用方法,对C++Builder 和 Delphi 还进行了专门的包装,直接关联 TDataSet 对象也可以将 TDataSet 对象中的数据传给报表。 问:打印时能否对打印纸张进行自适应?支持表格的折行打印吗? 答:Grid++Report 在打印时采用多种适应策略,通过设置明细网格(IGRDetailGrid)的‘打印策略(PrintAdaptMethod)’属性指定打印策略。(1)丢弃:按设计时列的宽度输出,超出范围的内容不显示。(2)绕行:按设计时列的宽度输出,如果在当前行不能完整输出,则另起新行进行输出。(3)缩放适应:对所有列的输出宽度进行按比例地缩放,使总宽度等于页面的输出宽度。(4)缩小适应:如果列的总宽度小于页面的输出宽度,对所有列的输出宽度进行按比例地缩小,使总宽度等于页面的输出宽度。(5)横向分页:超范围的列在新页中输出。(6)横向分页并重复锁定列。 问:如何改变缺省打印预览窗口的窗口标题? 答:改变报表主对象的‘标题(Title)’属性即可。 问:利用集合对象的编程接口取子对象的接口引用,但不是自己期望的结果。 答:Grid++Report中所有集合对象的下标索引都是从 1 开始,另按对象的名称查找对象的接口引用时,名称字符是不区分大小写的。 问:怎样在运行时控制报表中各个对象的可见性?即怎样在运行时显示或隐藏对象? 答:在报表主对象(GridppReport)的 SectionFormat 事件中设定相应报表子对象的可见(Visible)属性即可。 问:报表主对象重新载入数据,设计器中为什么没有反映新载入的数据? 答:应调用 IGRDesigner 的 Reload 方法。 问:怎样实现不进入打印预览界面,直接将报表打印出来?