您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 纺织服装 > 企业级应用软件架构开发过程与实践》的第一章
©中国软件架构师网,2006Page1of31软件高端人才修炼系列企业级应用软件架构开发过程与实践第一章版本0.8胡协刚首席软件架构师szjinco@public.szptt.net.cn©中国软件架构师网,2006Page2of31目录第一章软件与软件的特性——从业务上下文出发的软件图景..............................................................4第一节软件的缘起与信息技术对传统行业的改造...............................................................................5软件的缘起............................................................................................................................................5传统的业务执行过程............................................................................................................................6信息技术对传统行业的改造.................................................................................................................7软件与硬件的分工协作.........................................................................................................................8软件是对现实世界的一种映像.............................................................................................................9第二节软件的特性及其意义.................................................................................................................12软件中的精确性与模糊性...................................................................................................................12软件的复杂性......................................................................................................................................14软件元素之间的关联复杂性...............................................................................................................16软件的不一致性、多样性...................................................................................................................17软件的不可视性与主观性...................................................................................................................18软件的易变性(可塑性)与不确定性...............................................................................................18软件的复制式生产..............................................................................................................................20第三节软件质量.....................................................................................................................................21软件的质量与质量保证.......................................................................................................................21软件功能性Functional要求...............................................................................................................23软件可用性Usability要求(易用性)..............................................................................................24软件可靠性Reliability要求................................................................................................................26软件性能Performance与效率Efficiency要求..................................................................................27软件可支持Supportability与维护性Maintainability要求...............................................................28移植适应性Portability与可扩展性Extensibility要求.....................................................................29软件开发阶段内部质量要求...............................................................................................................29©中国软件架构师网,2006Page3of31软件质量属性的相互关系...................................................................................................................30本章小节..............................................................................................................................................31©中国软件架构师网,2006Page4of31第一章软件与软件的特性——从业务上下文出发的软件图景软件是人类有史以来创造的一种非常特别的制品,它具备与传统制品完全不同的特性。由于软件最初的形态只是用于科学计算的简单程序,这使得人们(特别是刚刚学习编程的初学者)往往倾向于将软件看作是一种相对独立的事物。传统软件工程也是从软件需求开始来阐述软件的生命周期,并给人一种错觉,即软件需求早就存在于用户那里,我们要做的只是去发现它们(需求获取)。这使得人们常常忽略一个简单的事实——软件是为了支持客户的业务(或解决领域问题)而被开发的(需求规格是被开发出来的,换句话说是被设计出来的),其内在特性受其上下文的制约,甚至就是上下文的一种直接反映。我们在研究软件的时候,不能脱离于它的上下文,例如软件的复杂性根本上源至其问题域的复杂性。只有从业务(问题域)上下文入手,我们才能真正看到软件的真实图景。本章试图从一个更为广泛的视角,来分析软件、还有软件的特性;而软件及其架构的开发策略与方法的研究,则始于人们对软件自身特性所引发的固有问题的一种解决努力。©中国软件架构师网,2006Page5of31第一节软件的缘起与信息技术对传统行业的改造我们要构造软件,所以必须先要了解软件;而直接了解软件本身还不够,还应当从其上下文入手,理解它的缘起以及相关的来龙去脉。人们对软件往往充满了误解,倾向于将软件看作是一种特殊而相对独立的事物,这阻碍了人们更有效地开发和应用软件。软件技术并非独立的技术,它属于信息技术的一部分;它与硬件技术一道用来解决人类所面临的各种与信息有关的问题。信息技术的产生源自计算机技术的革命性发展;而信息技术的大规模运用,则要依赖于软件技术的成熟。我们在这里回顾一下软件的缘起,或许能让我们澄清以往的一些误区与模糊认识。软件的缘起计算机刚刚出现之时,其主要应用场景是替代人来承担那些复杂的数值计算;人们在计算机上编制一些昀终通过转化能让计算机识别的代码,来控制科学计算流程的执行,这便是编程programing的由来。数值计算本身其实也是一种信息的处理过程,但是非常初级和范围狭窄。这也使得人们倾向于忽略所关联的科学计算问题,而将程序当作一种相对独立的事物来看待。人类世界存在着海量的信息急待处理,人们使用手工方式来处理,其速度和工效已经远远满足不了要求。例如,随着银行业务的急剧膨胀,其资金账户的数量增长到千万甚至是亿万;银行柜员为了给储户取款,需要找到对应的账户记录,并核对其余额是否足够;虽然单个营业点的账户数量可能较少,在数万之间,但查找的难度仍然很大;而目前银行业已经转向了大集中的业务模式,所有账户都存放于一个数据中心,手工方式显然已经不可能应付这种处理量巨大的场景。人们于是自然地联想到计算机,它既然能够对简单的数值数据进行处理,那么它能否处理更为复杂的数据,乃至是富有领域意义的信息本身呢?随着计算机处理指令越来越强大(具备对数据进行排序、对比等复杂的处理),存储器的成本不断缩减(较低成本地保存海量信息),I/O设备的功能越来越丰富(方便人们使用计算机,和将现实世界的信息导入计算机),人们终于成功地实现了利用计算机来替代人处理信息的目标。另外,网络技术的完善,使得信息处理的模式首次打破了地域的界限。上文所述的银行大集中业务模式,便得益于网络技术的发展。为了处理不同业务所涉及的各类信息,人们需要改变原来面向科学计算的简单编程模式。编程的关注焦点从控制计算的执行顺序,转向如何处理各类代表了领域意义的数据(例如,银行的资金账户数据)。昀后,编程的实质已演变成为如何利用各类计算机资源来解决各种领域问题。此时,仍然使用程序program来称呼这些复杂度与规模提高了若干数量级的代码,显然已经不能真实地表达其背后的含义;于是,软件softw
本文标题:企业级应用软件架构开发过程与实践》的第一章
链接地址:https://www.777doc.com/doc-4285858 .html