当前位置:编程学习 > C#/ASP.NET >>

互联网软件工程浅谈 (摘自ChinaByet)

答案:互联网软件工程浅谈
   很高兴能看到阿捷的"网站工程浅谈",在交流中,阿捷强力向编辑推荐我所谈的一些内容。感谢阿捷和编辑!
   在互联网应用日益发展,规模和复杂度日益加深的今天,我非常同意阿捷的观点:应该开始重视工程和项目管理的知识和规范。很愿意与更多的朋友进行更多的交流,共同提高,共同发展。
   关于"怎样协调不同人员工作保证质量"的问题,我个人的观点和我们在实际中所使用的主要是从两个方面进行,即项目开发流程和在此基础上的项目管理,项目管理中主要采用了项目站点(project site)的方法,实际上就是一个使用互联网的项目管理工具。我在后面附上相关的一些信息。更具体的则需要更多时间整理。
   关于另外一个问题"关于客户需求怎样才能有控制的满足"我觉得更好的方法是采用案例分析的方法来讲,因为肯定不同的公司有很多成功和可以借鉴的方法。
   这里附上我关于web engineering的报告的一部分slides内容,希望能有用。这里选择了两个报告
   (1)互联网应用及其主要软件模型
   (2)互联网应用开发项目管理
   网站,在我的理解中,是互联网应用的用户界面。
   == 互联网应用及其主要软件模型
   什么是互联网应用(1)
   概括讲,互联网应用是一切使用互联网环境或媒介提供某种服务或
   实现某种功能的系统。
   严格讲,根据互联网的特点充分发挥其作用的在互联网环境中运行的系统。
   有两种互联网应用:web-enabled和web-based.
   互联网环境具有交互性、即时性、开放性、分布性等特点。
   互联网应用如果使用传统的软件开发方法进行开发,很容易产生问题。最重要的问题有两个:开发与维护期界限模糊、不能充分发挥
   互联易做图性。
   什么是互联网应用(2)
   示例
   信息管理系统。传统的信息管理系统都是基于典型的客户机/服务器结构。系统中只有不同的功能模块和有关数据库。可以将这样的系 统使用互联网技术实现,即基于浏览器/服务器结构的系统。这只能是称做web-enabled的系统。系统的设计和结构仍然是原来的。如果是根据互联易做图点(交互、开放)进行设计,则是web-based应用。
   什么是互联网应用(3)
   示例
   一个地区的招商引资项目管理系统 。传统的系统是基于普通数据库系统所建立的。对系统的管理必须要先集中再更新维护。通过互联网实现,可以使得项目承担人直接对数据库进行查询、更新和维护。是一个开放式的分布式应用系统。这其中对原来的数据库的结构并不需要改变,但对其使用则有很大的变化?quot;
   互联网软件(1)
   网上书店是不是互联网软件?
   --如果仅仅是后台有一些数据库系统,前台有一些页面,不能严格讲是。但这样的书店也没有很大的作用。
   --如果是帮助浏览者能够对书店的书籍进行方便的查找,甚至阅览,查找作者资料、阅读别人的评价,在线订购和交易,在线查找最新 进展等,则肯定是。
   互联网软件(2)
   办公室自动化系统可不可以成为互联网软件?
   --可以。
   --而且应该。
   互联网软件(3)
   互联网软件对软件行业的影响
   --如同八十年代初个人机软件对大型机软件
   --国外已经在过去三~四年中从互联网软件占新软件项目的30%上升到超过90%。
   --很快的将来,互联网软件就是软件业的主体。
   --例如,一个企业可以在互联网环境下建立办公自动化系统,对内衔接其MRP或ERP系统,对外衔接其电子商务平台和客户服务管理。
   网站与软件(1)
   什么是网站?
   --网站作为媒体。宣传作用。
   --网站作为交流渠道。信息发布和采集。
   --网站作为界面/窗口。企业或机构内部应用系统和外部应用系统的接口,互联网应用的界面。
   网站与软件(2)
   网站发展的四个阶段。
   --第一阶段:单纯页面,由超链接相连。
   --第二阶段:页面仍然是主体,但具有一定的信息发布、数据采集和交互功能。
   --第三阶段:页面系统和后台(服务器端)软件系统协同工作。
   --第四阶段:后台软件系统为主体,控制前台页面做为界面。页面已经完全变成动态生成。
   网站与软件(3)
   网站就是(互联网)软件
   --所处的环境是互联网环境(基于相关规范)
   --接受通过内部网或互联网浏览者发出的请求。通常以URL加参数表达。
   --通过处理后产生结果,再生成合适的页面表达形式返回(通过互联网)
   --个性化是一个重要需求。
   --页面生成和数据处理是一个问题。
   --访问者session管理和控制。
   --安全性。
   互联网对象模型(WOM)(1)
   早期互联网发展中,对页面是作为一个经过格式化的文本看待的。通过地址存取一个页面文档。
   随着互联网的发展,页面需要变成动态生成,需要对一个页面上不同的数据进行处理。有必要区别表达形式和数据格式。
   对一个页面的访问,看做是对一个对象发出一个请求。
   互联网对象模型(WOM)(2)
   互联网对象模型的核心是从页面及其所表达的数据和(间接或直接)所具有的功能使用对象模型进行描述。
   页面数据(对象数据)与表达形式(对象界面)的分离。
   页面数据(对象数据)的处理(对象语义)的联系。
   互联网对象模型(WOM)(3)
   在过去的五年中,逐渐成熟了一个共同接受的互联网对象模型。
   这一模型的关键点在于其数据表达的普遍性以及与页面表达的一致性。
   最重要的发展是对XML语言和相关语言例如DTD,XMLSchema语言,XSL语言的标准化。
   成百上千种基于XML标准的技术需要发展。
   互联网软件工程(1)
   软件工程是使用科学的方法对软件系统的建设、维护和使用的可控制、质量可保证的一整套方法。
   互联网工程具有与软件工程和其它工程领域一样的出发点,所不同的是其对象是互联网软件。
   互联网软件与传统软件的不同导致了需要对软件工程方法进行改进。
   互联网软件工程(2)
   分析和建立模型阶段
   --与软件工程一样,需要对客户需求进行分析。
   --所不同的是,其界面是网站形式。
   --更为不同的是,其工作方式以及能够提供的服务具有更开放、交互性更强等方面的因素。
   --尤其重要的是要与其它系统、机构和企业能够进行更方便的交流。数据交换的通用性。
   互联网软件工程(3)
   设计和实现
   --需要设计前台和后台两个部分。
   --需要区分数据与表达。
   --需要更多的特定考虑,例如安全和session。
   测试与维护
   --需要能够非技术人员进行维护。
   --需要能有可扩充性。
   --需要能够远程进行。
   以数据为中心的模型(1)
   以数据为中心的模型是目前互联网应用的主要方法的基础。其核心是将一个互联网软件看做是一个信息系统。数据库是这个系统的中心。
   目前主要使用的数据库系统仍然是关系数据库。对于许多应用来讲这种模型已经足够。
   以数据为中心的模型(2)
   随着互联网应用的不断发展,并非所有应用都是基于数据库的系统。与互联网对象模型有一定的不一致性。
   许多功能性模块只能作为系统外挂部分。对于大型和复杂系统,这并非是最好的方式。尤其重要的是数据库方式对于数据的语义表达是局限的。  
   以用户为中心的模型
   以用户为中心的模型更能适合与界面的设计以及间接对系统功能需求和流程的设计。但对于软件开发来讲并没有解决使用什么模型的问题。
   这种方法很适合于分析和用户模型建立。可以与其它模型结合使用。
   这种模型尤其适合于导航流程/工作流程的分析和设计。
   以内容构件为中心的模型(1)
   (注,所有关于内容构件技术的图示都将只在此报告中解释但不列入报告所提供的材料之中。)
   内容构件的核心是将数据、数据处理(语义)、以及数据的表达形式结合起来的方法。
   内容构件模型是互联网软件模型的基础。基于内容构件的互联网软件结构中内容构件与其它部分结合。
   其它部分包括基本支撑层(系统调用)、数据仓库管理、和界面表达生成等。

   以内容构件为中心的模型(2)
   基于内容构件模型在分析阶段可以集中分析应用的机构结构和工作流程。
   基于分析的结果,可以直接用来对软件的结构和界面进行设计。实现的方法是基于面向对象技术和构件技术。数据表达方法采用XML。 不再以数据为中心。
   为什么互联网应用不同(1)
   应用组成部分的不同
   --应用中软件的不同部分可能跨平台
   --应用中所需要的数据库可能不在本地
   --界面媒介与传统软件的不同
   --软件需要不同的界面

   为什么互联网应用不同(2)
   应用开发和运行环境的不同
   --开发所需要的环境比较复杂
   --开发不同部分需要不同的项目组
   --很难构造与运行环境一样的环境
   --运行环境需要考虑到开放性
   --性能方面的设计考虑目前没有很好的方法来保证

   为什么互联网应用不同(3)
   质量保证问题的不同
   --不仅仅是软件本身的问题
   --界面的质量保证是一个很重要的方面
   --界面与功能连接的质量保证很难控制
   --性能要求的测试很难系统化
   --测试本身需要考虑运行环境的开放性
   --安全测试不仅仅是应用系统的问题
   实例之一:企业内外网站系统(1)

上一个:转贴一篇CCBOY的好文——《专栏声音》转向面向对象的12个步骤
下一个:优秀的Architect之路(入门) ccBoy(转贴)

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,