Software 版 (精华区)

发信人: checcy (老巴夺), 信区: Software
标  题: PSEEs:下一代软件工程环境
发信站: 哈工大紫丁香 (Sat Apr 11 02:36:34 1998), 转信

         PSEEs:下一代软件工程环境
怎样用尽可能少的人力、尽可能短的时间和尽可能低的成本生产出高质量的软件产品,一直是软件开发者追求的目标。从60年代“软件危机”导致瀑布模型的产生,到70年代末Boehm
         
提出螺旋模型,以及80年代面向对象模型的兴起和CASE工具、软件环境概念的提出,都是人们不断努力的结果。如同其他生产部门一样,在技术日趋成熟的时候,人们会在提高技术水平的同时,注重管理水平的提高。从90年代初期开始,由于计算机软硬件技术的飞速发展,使管理软件的开发成为可能:软件开发技术的提高,如CASE工具的广泛使用、灵活性更好的开发模型的提出、软件体系结构的提出等;硬件技术的提高,尤其是台式机的普及以及网络的普及。另外,由于目前软件开发中呈现出许多新的特性,如软件规模更大、版本更新更快、用户界面要求更高、要求异地开发等,使软件开发中的管理显得更加重要。人们开始对软件过程(Software
         
Process)进行研究。通过控制软件过程中涉及的活动、人员和产品并协调它们间的关系,来达到提高软件质量的目的。以软件过程为中心建立软件工程环境就是PSEEs(Process-centered
Software Engineering Environments)。

          一、什么是PSEEs

         
在介绍PSEEs前,首先要了解什么是软件工程环境。软件工程环境,是指在软件制作中用到的硬件平台、软件工具和软件开发方法。软件工程环境不同于编程环境,编程环境是支持软件工程中编码阶段的环境,它只是软件工程环境的一个组成部分。软件工程环境也不同于操作系统,操作系统是所有应用程序的运行环境,是系统软件,可以把它看作是软件工程环境的底层软件环境,它支撑软件工程环境中的各种软件工具,并联系软件工具和硬件平台。

         
PSEEs是以过程为中心的软件工程环境。所谓以过程为中心,是指用软件过程为线索来组织软件开发任务中所有的活动、人员和资源(包括硬件平台、CASE工具和程序、文档等)并通过相应的机制,如CSCW和Workflow来尽可能自动地协调它们之间的关系。

         
PSEEs的目标是:①提高软件开发过程的自动化程度;②提高软件开发过程管理水平,尤其对于大型的软件项目;③提高软件开发过程的可控制性;④提高软件质量,缩短软件开发周期。

          二、PSEEs的特征

          PSEEs具有以下的一些特征。

         
①过程化。软件过程是PSEEs的核心。软件生产被过程化了,软件的生命周期中的每一个部分都被描述为软件过程中的一个活动。过程是一种描述复杂系统设计的有力工具。

         
②集成化。集成化指PSEEs是包含多种软件开发辅助工具的集成环境。集成化是软件过程复杂化的结果。集成的环境使工作人员节省了在不同工具间的交接上花费的开销。

         
③自动化。在PSEEs中许多本来要由人来完成的任务,如人与人之间的联系、任务的发布等等,都由计算机自动完成。当然要做到所有动作的自动化是很困难的,但对于在开发过程中例行的任务,如Microsoft的每日代码同步,是可以自动或半自动地完成的。

         
④分布性。PSEEs中涉及到的人和机器可以分布在不同场点,PSEEs来完成他们间的联系和交互。通过一个中央数据库可以更方便地实现数据共享和一致性检查等工作。⑤可控性。软件开发往往会因为种种原因而变得不可控制,从而延误软件产品的发布日期,PSEEs能通过一些机制来提高软件开发的可控制性,这些机制与软件开发方法有关,如使用改进螺旋模型的Micorsoft“同步和稳定”机制来控制软件产品的发布日期。因此PSEEs本身必须是可控的,否则只会使问题更难以解决。

         
⑥灵活性和适用性。PSEEs是对软件生产全过程的管理,它并不指定使用什么样的工具和方法,当然好的生产方法和工具将使产品的生产更为简单。不同的软件生产商可以根据各自的习惯和开发方法装入不同的部件和工具,来实现不同的PSEEs。

         
⑦复用性。对某个软件项目而言,无论对它的组织是否成功,其管理方法都是开发商的一笔财富:以后在碰到相似项目时,就可以利用其成功的经验或失败的教训。PSEEs形式化了软件开发的管理过程,可以将上述经验保存在PAL中以备复用。这比以往个人经验积累和零散的文档更有用处。

          三、PSEEs的体系结构

          1PSEEs的组成

         
从不同的层次上看,PSEEs有不同的组成情况。下面从大环境、系统和基本元素三个层次上讨论PSEEs的组成。

          从环境层次上看,PSEEs由PCE(Process Centered
Environment)和SEE(Software Engineering
Environment)组成。其中PCE完成软件过程的建模及其它的管理功能;SEE是软件过程的执行者。SEE中可能已经包含了一些活动间的控制信息,在与PCE集成时就必须从属于PCE对SEE的控制要求。

         
从系统层次上看,PSEEs中包含了这样几个子系统:工作流管理系统(WMS),协同工作系统(CSCW),配置管理系统(CMS)和辅助设计系统(CASE)。这四个系统的底层是操作系统、人机交互系统(UIMS)、数据库管理系统(DBMS)和通信管理系统。工作流管理系统完成过程运行管理;协同工作系统通过计算机完成人与人之间的交互;配置管理完成所有数据,包括静态数据和动态数据的管理;辅助设计系统完成所有数据的设计工作,包括过程设计和程序设计。图1显示了这些系统之间的关系。

          图1 PSEEs中系统间关系

          2.PSEEs 体系结构

         
关于PSEEs的体系结构有许多人给出了不同的描述,这些体系结构或以过程为主,或以集成为主,但并没有结合软件开发模型的特点。考虑软件开发的特点,PSEEs有如下的体系结构。

         
图中以类似ER图的形式表示出在PSEEs中各个部分之间的关系,对于PSEEs的动态修改问题由过程引擎来完成:当需要修改过程的某个部分时,如人事变动或时间更改等,由过程引擎对过程数据库来进行修改,不同的改动对过程其他部分有不同程度的影响,这需要有相应的算法来完成更新整个过程数据库。

         
过程监督通过对过程数据库数据的分析来汇报当前项目的进展情况,在过程状态不正常时,需要人工对过程进行干预。这时的修改和前面讨论的一样,也需要过程引擎来处理。

         
过程评估是在项目结束后进行的,对过程研究和改进后将优化的软件过程模型保存在过程资源库中,以备后用。四、PSEEs与其他软件工程

          环境的比较

         
PSEEs是一种计算机辅助环境。所谓计算机辅助环境,是指支持基于计算机产品开发的环境,它支持软件产品的生成。还有一些与PSEEs类似的软件工程环境,下面主要比较它们之间的异同。

          1PSEEs与其他软件工程环境的比较

         
在PSEEs之前有其他一些软件工程环境,根据它们核心的不同可以分为下列三种:①以语言为中心的环境:以某种特定编程语言为中心。如适用于LISP语言的InterLisp;适用于Ada语言的Rational
Environment等。

         
②以方法为中心的环境:围绕某种软件开发方法建立环境。如以Booch方法为核心的Rose
C++。

          ③以产品为中心的环境:以软件产品为中心,如传统的CASE环境。

          这三种环境都各有其优点,但在灵活性和适用性方面不如PSEEs。

         
①与语言为中心的环境相比。PSEEs与语言无关,适用于所有的语言。PSEEs可以根据不同的配置,适用于不同的语言,但在保证通用性的同时,可能会损失一些原有语言的优势。②与方法为中心的环境相比。PSEEs并不依赖于某种特定的方法,它根据不同方法的特点,组织软件开发过程中的各种资源,生产出高质量的软件产品。

         
③与产品为中心的环境相比。PSEEs从软件生产本身的特点来管理软件开发,而不局限于用什么工具来生产软件。

          2PSEEs 与传统CASE环境的比较

         
传统CASE环境是一种以产品为中心的软件工程环境。由于CASE环境是目前流行的开发环境,下面将仔细地分析它和PSEEs的联系和主要区别。

         
PSEEs与以往的CASE环境既相似又有区别。它们都采用计算机技术来更好地支持软件开发;都是一个集成的环境;都从提高软件生产效率出发;均包含了多种技术,如数据库技术、图形化方法、4GL、专家系统和知识库等。但它们有以下几个重要区别:

          ①核心不同:CASE 环境以产品为中心,其核心是中心数据库;PSEEs
以过程为中心,核心是软件过程。

          ②层次不同:CASE
环境中强调软件开发过程中每个部分的自动化;而PSEEs
则注重软件开发的整个过程,尤其是在人机交互方面提供了过程化的管理方法。

          ③软件开发方法不同:最高境界的CASE
环境将完成从规格说明书到软件产品的自动转换,实际上采用了形式转换开发方法(Formal
Transformation);而PSEEs不依赖于特定的开发方法。

          ④集成策略不同:CASE 环境集成是数据为主的;PSEEs以控制为主。

          ⑤设计方法不同:CASE 环境采用结构化设计方法,PSEEs
不依赖于具体的设计方法。CASE方法是对原始工厂式软件开发的改进,CASE环境的尾声是所谓的“软件工厂”,它充分利用了各种集成的软件开发工具来支持开发过程,就像其他产品生产中的流水线那样。PSEEs环境是对CASE环境的自然发展,如I-CASE和C-CASE就具有某些PSEEs的特性,并将软件生产的管理提到重要位置上。PSEEs环境对应了其他行业中的管理技术软环境。下表比较了传统开发、软件自动化和软件过程化在几个核心问题上的区别。

          表1 传统开发、CASE环境和PSEEs的比较

          五、国内外对PSEEs的研究工作

         
由于软件生产的特殊性,至今没有可以替代人脑来生产软件的可行方法,它过多地依赖于人的创造性,所以技术成分在软件生产过程中的比重一直很大,使人们没有很多精力来从事软件开发管理的研究工作。直到近年来各种软件开发模型、OO技术和软件复用技术及相应的CASE工具较为成熟时,软件开发管理才被重视起来,PSEEs也就应运而生。因为过程化管理在其他行业已经被证明是提高劳动生产率和提高质量的一种有力手段。PSEEs还是一个较新的概念,虽然国内外都对PSEEs有一定程度的研究,但目前还没有形成标准。

         
国外PSEEs的研究比较多。在过程方面的研究主要包括对过程本身的性质,过程与CSCW、Workflow的关系,过程改进的五级模型(SEI
CMM)等。在软件过程方面,提出了ISO/IEC 12207 软件生命周期过程的初步标准。

         
在应用方面,部分大学和研究机构开发出了一些研究性系统,如SEI的Process
Weaver、Syner Vision和PSP(Personal Software Process),Columbia
大学的Oz系统等。还有一些机构利用一些大项目来做研究工作,如BOOST项目中对工具集成的研究工作等。有一些软件开发商,如Motorola,已经在开发中使用人工实施的过程管理。

         
国内现在主要从事CASE环境的研究较多,对于PSEEs的研究工作还处于初级阶段,主要集中在软件过程模型的建立和软件工程环境中的集成。

          六、PSEEs的发展前景

         
虽然有一些实验性的PSEEs系统问世,但PSEEs真正应用到软件开发中还有很大的距离。大致有以下几个原因。首先,对于将软件开发方法和软件体系结构与软件过程相结合,还需要更进一步的研究。其次,实用的PSEEs必须具有高度的灵活性,不仅适用于大的软件项目,也要适用于中小型项目;不仅适用于商业软件开发,也要适用于系统软件和信息系统的开发,保证这一点是比较困难的。另外,由于开发人员习惯使用熟悉的软件工具而不喜欢再学习新的工具;有能力使用PSEEs的大型软件开发机构也由于公司的传统而不可能一下子改变过来,因此使得新的环境和工具不能够顺利地得以推广。

         
总的说来,PSEEs今后的发展方向主要包括:紧密结合软件开发本身的性质;提高灵活性和适用性;改进人机交互方式,提高可操作性;保证PSEEs与以往CASE工具的兼容性,以最少的改动将CASE工具集成到PSEEs环境中。另外,要想真正提高PSEEs的可用性,还需要提高PSEEs的自动化程度。



-- 
Chengyan Che - Software Freelancer, Harbin, P.R.China
-----------------------------------------------------------
Do you need a software developer for your project or just
for your killer money-making idea? Drop me a line and let
me know how I can help you out! 
mailto:checcy@public.hr.hl.cn
ICQ:5116726

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: checcy@public.hr.hl.]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:4.173毫秒