2023年软件工程(B)教案_第1页
2023年软件工程(B)教案_第2页
2023年软件工程(B)教案_第3页
2023年软件工程(B)教案_第4页
2023年软件工程(B)教案_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件工程(B)教案

田萱2008-8-30

目录

课程说明..........................................................................1

一软件工程概述(理论3学时)....................................................1

1软件工程的起源和作用.......................................................1

附录(一)常用CASE工具介绍.....................................................4

附录(二)CASE工具的种类及应用特点.............................................10

附件(三)软件、软件危机、软件工程............................................16

附录(四)软件工程的七条基本原理...............................................20

课程说明

学时救:总学时40(理论30实验10习题。讲座0时论0实习0周)

-软件工程概述(理论3学时)

1软件工程的起源和作用

1)软件开发的发展历史

分为三个阶段:

程序设计阶段20世纪的50—60年代),手工作坊

软件设计阶段(20世纪的60—70年代),小组合作生产

软件工程阶段(20世纪的70年代一至今),工程化的生产

2)软件危机

软件危机的突出代表--IBM360操作系统的开发。

软件危机(softwarecrisis)指的是在计算机软件的开发和维护过程中所遇到的一系列严重问

题。

1968年北大西洋公约组织的计算机科学家在联邦德国召开的国际学术会议上第一次提出了

“软件危机”(softwarecrisis)这个名词。

概括来说,软件危机包含两方面问题:一、如何开发软件,以满足不断增长,口趋复杂的需

求;二、如何维护数量不断膨胀的软件产品。

具体来说,软件危机主要有以下表现:

(1)对软件开发成本和进度的估计常常不准确。开发成本超出预算,实际进度比预定

计划一再拖延的现象并不罕见。

(2)用户对“已完成”系统不满意的现象经常发生。

(3)软件产品的质量往往靠不住。Bug一大堆,Patch一个接一个。

(4)软件的可维护程度非常之低。

(5)软件通常没有适当的文档资料。

(6)软件的成本不断提高。

(7)软件开发生产率的提高赶不上硬件的发展和人们需求的增长。

软件危机的原因,一方面是与软件本身的特点有关;另一方面是由软件开发和维拧的方

法不正确有关。

软件开发和维护的不正确方法主要表现为忽视软件开发前期的需求分析;开发过程没有

统一的、规范的方法论的指导,文档资料不齐全,忽视人与人的交流;忽视测试阶段的工作,

提交用户的软件质量差;轿视软件的维护。这些大多数都足软件开发过程管理上的原因。

3)软件工程的作用

1968年秋季,NATO(北约)的科技委员会召集了近50名一流的编程人员、计算机科

学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。在那次会议上第一次提出了软件

工程(softwareengineering)这个概念。到今年(2008),软件工程整整走过了40年的历程。

软件工程用来解决在开发大型的复杂软件系统过程中遇到的问题。之所以称为软件工

程,是因为软件开发是一个_L程化的过程。软件工程的E标就是找到一种能指导大型复杂

的软件系统的开发原则,能指导软件开发过程,从而生产出高效可靠的软件产品。

在开发大型系统时,涉及到使用大量人工、时间,涉及到项目管理、人员管理等,因

而有许多内容与业务管理相关,而不只是和计算机科学有关。

为了理解软件工程中涉及的问题,可以先想象其它的大型复杂设施的构建(机械行业

和建筑行业等例如,汽车,办公大楼,水立方等。宜然会想到以下几个问题,这个项

目需要的人力、时间、资源、技术等;如何把项目分割成几个便于管理的模块?如何保证

模块间的协调?如何便于同一模块内外人员的沟通?如何检查进度?如何处理广泛存在

的细节?

软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的

开发和维护的学科。

是不是软件工程完全可以借鉴这些已经成熟的工程项目中工程技术呢?

4)软件工程和传统工程项目的区别

两个主要区别:难以复用现有的软件构件,因为软件往往是个性化的;难以对软件质量

进行评价和度量。

5)计算机辅助软件工程(CASE)

CASE(computer-aidedsoftwareengineering)帮助人们尽量使软件开发变得流程化,

帮助简化软件开发过程。

CASE工具涉及到软件开发过程中的各个方面,包括:

项目设计系统(辅助经费预算、项目调配以及人员分配等)

项目管理系统(辅助健康项目的开发进度)

文档工具(辅助编写和组织文档)

原型与仿真系统(辅助开发原型系统)

界面设计系统(辅助图形用户界面的开发)

编程系统(辅助编写程序和调试程序)

Bug系统(辅助测试)

(1)软件工程和软件生命周期,

(2)软件开发方法概述,结构化方法,面向对象方法。

(3)软件工程过程和开发模型。

(4)软件开发工具和环境。

(5)软件工程的作用。

附录(1)常用CASE工具介绍

转载自:/powerlc/archive/2C0^01/12/515959.html

一,概述

今天,代码变得日益简单,在Model的指导下,思想,设计,分析都变得异常重要。企业业务

建模工具,产品非常多,特别是在MDA日益流行的今天.WorkFlow是典型的业务及流程建

模。

二,软件开发CASE工具简介

(一)图稿绘制:

1,visi。:这是目前国内用得最多的case工具。它提供了日常使用中的绝大多数框图的

绘画功能(包括信息领域的各种原理图,设计图),同时提供了部分信息领域的实物图。visi。

的精华在于其使用方便,安装后的visio2UUU既可以单独运行,也可以在word中作为对象

插入,与word集成良好,其图生成后在没有安装visio的word仍然能够杳看。使用过其他

绘图工具的朋友肯定会感受到visi。在处理框和文字上的流畅,同时在文件管理上,visio提

供了分页、分组的管理方式。visi。支持UML的静态和动态建模,对UML的建模提供了单

独的组织管理。从2000版本后visio被Microsoft收购,正式成为Office大家庭的一员,目前

最新版是2002。纳入名门的visio2002被微软的风格所同化,样子出现了一些华而不实的东

西,但是功能上visio不减从前,各种器件模版有了许多增进。

它是最通用(MS的东西,意味着许多附带的通用的东西)的硬件、网络平台等图表设计软件。

好处是易用性高,特别是对不善于自己构造图的人。但是正因为很全,所以某个方面上会造

成专业程度较低。

有关工程管理类的显然不如PROJECT2000好用;

画IDEFO图显然不如BPWN好用;

画IDEF1X图显然无法与ERWIN相比;

画组织机构图WORD足够用了,且普遍适用;

画网络拓扑结构图只要有相应的图素,用什么画都行;

画有关图表类的显然不如EXCEL好用;

关键的是,VISIO的图只能以对象的方式插入你的主文档,只有在它本身环境下才能修改。

2,smartdraw:校园里比较流行的绘图软件。用惯了visio,感觉smartdraw有许多不一样的

地方。一开始就是提供你大堆模版,以目录树的形式放在左边。你的设计都可以纳入模版,

并且在某个目录组织。smartdraw也是大手笔,有许多visio没有的方便功能。比如插入表格。

smartdraw本身是独立提供图稿绘制的工具,因而工具齐全。而visio更多是与word集成在

一起,能够充分利用word的编排功能。有心者不妨一试,有了感觉我们再交流。

(二)原码浏览的工具:

1,Sourcelnsigt:不能不说这个东西是个好东东。以工程的方式管理原码,提供非常适合

再工程的浏览手段.整个面板分成三个部分.左边树提供工程内的所有变量,函数,宏定义右边

提供程序阅读和编辑,下边显示你鼠标在原码触及的函数或者变量定义.最让人佩服的是

Sourcelnsigt不仅高亮你的关键字,而且以近乎完美的板面编排让你看程序如果看报纸,好

极了。Sourcelnsigt提供函数交叉调用的分析,并以树状的形式显示调用关系。不过,速度

有些问题,我一般不用。我用的版本是3.02000产品。

2,SourceNavigator:这个是从RedhatLinux版本移植到Win32下的,与Sourcelnsigt相比,

样子土多了,处处透着Linux的乡土气息,不过是干实事的家伙。提供原码高亮显示和编辑,

提供头文件的包含关系分析,提供类的层次关系,这个东西最大的特点是把原码始终和文件

联系在一起,提供到文件的导航。当然不能说它使用很方便,我一般不用它,但是它的分

析速度有优势,这是Sourcelnsigt必须低头的。

3,Dia:(http:〃/projects/dia/)完全免费的东西,目前有Win32Port6MB

左右,画图足够用了.可惜不能生成代码.我在win2000ads上安装却有问题。

(三)配置管理工具

配置管理的重要意义在于维护文档的统一和可追溯性。尽管宏观的配置管理包括很多内

容,但是我们最常用到的是对程序代码的版本控制,至于变更的控制、管理和通知这里不多

介绍。下面将简要介绍国内几种常用的工具。

1,VirsualSourceSafe:

微软的studio企业版包含的版本管理工具。该工具包括•服务器和•通过网络可以连接服

务器的客户端。VSS提供了基本的认证安全和版本控制机制,包括Checkin(入库)、

Checkout(出库)、Branch(分支)、Label(标定)等功能:能够对文本,二进制,图形图象几乎任

何类型的文件进行控制;提供历史版本对比;可以集成在studio中。

VSS的客户端既可以连接服务器运行,也可以在本机运行,非常适合于个人程序开发的版本

管理。

(VSS的详情我以后还会贴出)

2,PVCS:

PVCS是世界领先的软件开发管理工具,市场占有率达70%以上,是公认的事实上的工业标

ffiolDC在1996年9月的报告中评述:“PVCS是软件开发管理工业领域遥遥领先的领导者”。

全球的著名企业、软件机构、银行等诸多行业及政府机构几乎无一例外地应用了PVCS.

PVCS包含多种工具。PVCSVersionManager会完整、详细地记录开发过程中出现的变更和修

改,并使修订版本自动升级,而PVCSTracker、PVCSNotify会自动地对上述变更和修改进行

追踪。另外,PVCSRequisitePro提供了一个独特的Micro$oftWord界面和需求数据库,从而

可以使开发机构实时、直观地对来自于最终用户的项目需求及需求变更进行追踪和管理,可

有效地避免重复开发,保证开发项目按期、按质、按原有的资金预算交付用户。

我比较喜欢的是PVCS基于WEB的应用比较方便,只要设定用户和权限,规划好目录结构,

项目组成员通过浏览器完成操作。

3,ClearCase:

ClearCase是rational公司的主要配置管理工具,可能大家对Rose熟悉一点,不过就我所知,

现在绝大多数企业已经从PVCS过渡到ClearCase来/,其原因在于ClearCase是整个rational

产品系列中的中枢(repository).

ClearCase提供了VOB的概念来进行配置管理,功能极其强大。同时ClearCase使用起来也

非常复杂,没有经过专门培训,自学还是有•定难度的。ClearCase目前国内流行版本是for

NT的4.1需要在NT主域控制器上安装。ClearCase的解密和安装比较复杂。

ClearCase是世界上目前最强大的配置管理工具之一,由于它采用许多新的配置管理思想,

使得相对于传统的CVS,VSS,PVCS等版本管理工具,ClearCase具有许多闪光点,目前正在为

世界上各大软件企业所使用(国内目前华为,先驱使用该系统)。ClearCase中有大量的新的

术语。其中比较重要的术语有:UCM(统一配置管理)VOB(版本对•象基础)View(版本观图)

Activity(更新活动)。ClearCase实现版本管理的基础是VOB,成员要更改受控资料,需要先设

置一个自己的View,这个View是你感兴趣的受控资料范围,然后可以CheckOut资料到本

地资料区,进行修改后再CheckIn提交。ClearCase极为有力的支持多版本、并行开发。

ClearCase不仅可以提供基于文件的版本历史,甚至可以对整个目录系统的演化进行跟踪记

录。

ClearCase目前支持的执行平台有UNIX"LINUX,WINNT。WINNT最新版木是Clea<ase

2002,Solaris上我使用的版本是4.3.需要指出的一点是ClearCase十分昂贵,普通企业难以购

买,另外由于其功能十分强大,对系统管理员和使用者要求较高,培训费用不匪。

4,CVS:

在linux和unix下系统自带的版本控制工具,是版本控制中工具的鼻祖,功能十分强大,但

是都得通过命令行的形式来操作,不便使用。目前,Internet上提供了基于Windows的客户

端,名字叫WinCVS,而且提供了原码。

(四)数据库建模

1,ERWin:CA公司出品的拳头产品,强大的老牌数据库建模工具。它有一个兄弟足

BPWin,这个是CASE工具的•个里程碑似的产品。目前的我使用的版本是4.0。ERWin界面

相当简洁漂亮,也是采用ER模型,如果你是开发中小型数据库,极力推荐ERWin,它的

Diagram给人的感觉十分清晰。在一个实体中,不同的属性类型采用可定制的图标显示,

实体与实体的关系也一目了然。当然ERWin不仅是花花公子,它提供的功能如PowerDesian

一样强大(不支持UML)。从我个人使用的感觉,ERWin不适合非常大的数据库的设计,因

为它对Diagram欠缺更多层次的组织,而且不知什么原因,我感觉它对内存要求较高,使用

到后期容易出现图标不能显示的情况,一如windows内存紧缺的表现。

erwin支持ideflx即信息建模,就是我们常说的er图、实体关系图,也就是数据库结构图。

bpwin支持idefO/idefVdfd,是功能与流程建模,主要用来描述企业的业务流程,比uml的

usecase/sequence更适合描述复杂逻辑。如果要全过程支持,请选择bpwin+

PowerDesigner7.5y^orerwin4+rationalrose2001(建议用广50~200个table的信息系统)

ERWin的不足:对中文支持不好。和Er/Studio比较:

<1>在权限/版本管理方面ERStudio和RationalRose有些

相似,允许分模块进行checkin/checkout,并发开发程度

高,ERWin这一点就不行了!!

<2>另外一个就是ERWin的逆向工程虽然和ERStudio一样提供一堆过滤条件,但却不能

指定的对象(如:指定的数据表/视图/触发器)进行逆向工程,但ERStudio却提供了这些

功能。

<3>此外ERStudio还提供了宏功能,把VB的一些功能以插件方式提供了用户,但ERWin中

却没有提供!!虽然这个功能一般的用户根本很少使用!

看到ERStudio的宏功能,很容易让人想到Winmap的一堆插件,两者的公司都向用户提供

了插件(宏)让用户下载使用!这种做法很值得很多软件公司参考!!

当然CA公司也不是个废物,提供了几个重要的功能:提供了自家开发的BPWin的接口,

以及Oracle这个数据库巨人的Designer的接口。另外同样提供了插件功能,只不过这个插

件的接口需要使用他的标桂,这一点有点象RationalRose的Addinmanager一样(例如:

delphilink)!!

ERStudio提供了针对XML的接口,但ERWin却没有!!

2,MSVisio:

3,CaseStudio:性价比最高

4,ER/Studio:很不错的数据库建模工具新势力,非常不错.结合Repository,可进行VSS式

的版本控制。erwin能做到的它都能做到..?

5,modelmake

6,DeZignforDatabases:如果你是软件工程师或是软件产品经理等常常需要规划系统的话,

势必会需要规划数据库的TableSchema。这套软件能够辅助你的规划,将各个Table之间Key

的关连性表达出来,也提供有资料库栏位异动时的版木控制纪录与统计报表等功能。

7,PowerDesign:Sybase推出的主打数据库设计工具。PowerDesign致力于采用基于

Entiry-Relation的数据模型,分别从概念数据模型(ConceptualDataModel)和物理数据模型

(PhysicalDataModel)两个层次对数据库进行设计。概念数据模型描述的是独立于数据库管理

系统(DBMS)的实体定义和实体关系定义。物理数据模型是在概念数据模型的基础上针对目

标数据库管理系统的具体化。Sybase数据库在国内知名度可能不及Oracle,但是Sybase的数

据库前端开发工具PowerBuilder却是无可匹敌,再力口上PowerDesign的确有过人之处,因而

它在国内得到相当广泛的使用。我手里使用的是2001的PowerDesign8。这个版本我感觉

上比早期的PowerDesign6.0-7.5都有了很大的改变。PowerDesign功能强大,使用非常方便。

首先它提供了概念模型和物理模型的分组,旱.现在使使用M左边的足树状的概念模型和物理

模型导航,你可以建立多个概念模型和物理模型,并且以Package的形式任意组织;它几

乎能够产生到所有常用数据库管理系统的SQL脚本,当然你完全可以不经过SQL脚本直接

在DBMS中生成数据库;它提供增量的数据库开发功发功能,支持局部更新,你可以在概

念模型,物理模型,实际数据库三者间完成设计的同步。还有逆向工程,再工程支持,目前

还支持UML建模.总体感觉PowerDesing发展到8。已经非常成熟,许多使用上细微的感觉

只有你用过它才好评价,我不多说了。

8,RationalRose

(五)UML建模

UML不算是个新名词,但是实际中还是用得很少(可能是因为都是做小项目的原因吧,

大项目就用得多了).

UML是个好东西,但是过分的依赖于UML也不是一件好事,因为有时候它会把简单的东

西亚杂化.即使是代码的优良结构和可重用性也不能作为强制使用UML借U,良好的算法

完全可以替代部分不必要的设计模块,或者说,其实有更好的UML设计你没有发现.

1,RationalRose:大恐龙,小项目中难以使用,虽然是UML设计者做的。虽然这是一个推

荐使用的高端工具,它使改进和维护设计、从模型生成报表、在平行协作环境中与他人共同

进行建模工作变得很方便,

尽管Rose这个名称跟英文中玫瑰单词一摸一样,但是这里他代表Rational公司的面向对象

分析和设计工具的一款力作。Rose目前在国内正被越来越多的公司所使用,其原因一方面

是随着软件规模的扩大,面向对象分析和设计的优势突现出来,软件企业正在从面向过程向

面向对象过渡。另一方面,Rose集中体现了统一软件建模(UML)的先进设计思想,能够通过

一套统•的图形符号简洁有效地表达各种设计思想。当然,Rose本身在设计上的完善和与

RationalCASE家族的完美集成也是作为一款最成功的CASE产品的基础。

Rose2002功能上可以完成UML的9种标准建模,即静态建模(用例图类图对象图组件

图配置图)和动态建模(合作图序列图状态转移图活动图),为了使静态建模可以直接

作用于代码,Rose提供「类设计到多种程序语言代码自动产生的插件。

同时,作为一款优秀的分析和设计工具,Rose具有强大的正向和逆向工程能力。正向工程

这里指的是由设计产生代码,逆向工程指由代码归纳山设计。通过逆向工程Rose可以对历

史系统作出分析,然后进行改进,再通过正向工程产生新系统的代码,这样的设计方式我们

称之为再工程。

下载地址:Rose2000和破解:http:〃/

Rose2003:/2004/down_view.asp?action=download&id=14

Rose2003破解:/ASP/cdf_pic/20040S/reply_l_529068.rar

2,XDE,分别有4和4wsda的,很不错,值得使用.

3,BorlandTogether:有彳艮多版木,其中4VS.Net不推荐使用,用Jbuilder推荐使用,只是实

在不喜欢它的界面。(Java开发的大,慢恐龙,但是各项功能很爽,这也不能怪它,java做

的东西慢是正常的)。但它的功能还是很强大的。尤其是逆向工程用起来很方便,只不过当

时我们的EJB项目中EJB都非常大,动辄几千行,用它生成的sequence图实在太详细了,

只有不停地删掠细节,留下框架。建议非不得已不要使用这个庞然大物,对你的机器和你

的耐心都是个考验。它有foreclipse,等等插件,感觉也不错。

4,MSVisio2003forVisualStudio:VisioProfessional2000开始提供内建的UML支持。

Enterprise版更加完整。这是一个功能广泛强大的工具。和vs.net结合不错,只是仅限于

VS.NET的代码生成,没意思,各方面都不舒服。

5,PowerDesigner:足简练实用的建模工具、G.0支持数据流图,8.0支持UML的

UseCase/sequence/class视图;

6,VisualParadigm:(/vpuml.php)目前最合适也是最火的软

件/(从这一年来网站的设计变化就可以看出来好卖),强大,非Java.CommunityEditicn可

以免费使用,当然有功能限制.是一种UML建模和分析工具,出色的建模功能和代码同步。

7,WithClass2000:(http:〃/)界面不是很好看,而且也没有免费版本,不

过功能还不错,特别是代码生成的能力.

8,Poseidon(海神…):也是Java的,很漂亮,就是太慢。

9,Jude:一个号称中日xp合作开发出来的小uml工具,只有几m的大小,功能也还不错。

也是java做的,速度还是很快的。如果不需要使用逆向工程之类的高级功能的话,强烈推

荐这个uml工具,并且它是免费的。

10,MagicDraw:一个基于Java的廉价UML建模工具。

11,ObjecteeringUML:一个免费的个人UML产品。

12,SystemArchitect:一个很受欢迎的高端UML建模工具,支持双向工程(Round-trip

Engineering)o

RationalRose98教程

http://www.zsbs.eom/h/sdm/se_tool/rational/rose/rose98.ntm

偶用过的UML工具

/post-253978.html

又是UML

/sic/blog/blogview.asp?loglD=27

几类常用Case工具介绍⑴

/cndevforum/subject_view.asp?subject_id=2918&forum_id=61

MarkoBoger::XP、、UIVL和和Poseiidon

www.gentleware.corn/press/200V20030806_Chat_Umlchina_CHIN.pdf

Together应用之路(1)-我没有前世

/uestc9^archive/2004t)^09Z27118.aspx

附录(2)CASE工具的种类及应用特点

L引言

1.1CASE工具是什么

CASE即ComputerAidedSo代wareEngineering,中文意思是计算机辅助软件工程。CASE是一

套方法和工具,可使系统开发商规定的应用规则,并由计算机自动生成合适的计算机程序。

1.2我们为什么要使用CASE工具

今天,系统的构建变得越来越复杂,UML建模CASE工具为项目相关人员(如:项目经理,分

析员,设计者,构架师,开发者等)提供了许多的好处。UML建模CASE工具允许我们应用规

范的面向对象分析和设计的方法与理论,远离纠缠不清的源代码,达到构建和设计变得更直

观,更容易地理解与修改的层次。在大型项H中,通过使用CASE工具可以获得以下方便:

1)通过用例模型,业务/系统分析可以捕获到业务/系统需求。

2)设计者/构架师所作的设计模型能在不同层次的同一层内清晰表达对象或子系统之间

的交互(典型的UML图如类图和交互图).

3)开发者能快速地将模型转变为一个可运行的应用程序,寻找类和方法的子集,以及理解

它们如何交互。

出于这些动机,UMLCASE工具以及对应的方法论为我们提供了一种因系统太复杂而不能理

解F层源代码的描述系统的方法,同时允许我们更快更便宜地开发正确的软件解决方案。

当然,要考虑CASE工具在UML建模能力,项目生命周期支持,双向工程,数据建模,性能,

价格.可支持性,易使用性等方面的不同。

2.CASE工具的种类及各自特点

2.1.RationalRose

目前市面上最流行的UMLCase工具,绘制的图形简洁美观它支持Java,J2EE,C++,MCF等语言和

框架的建模.在加上他的Rational系列,RUP的方法论,是当之无愧的巨无衡.IBMRationalRose

是一个完整的可视建模方案,开发人员、项目经理、工程师和分析人员可以在提交编码之前

对需求和构架进行可视化、理解和改进。利用模型驱动的方法进行软件开发,可以保证系统

的可扩展性、灵活性和可靠性,使您更快更好地创建软件。

借助Rose,您可以创建一个强大可靠的、基于构件的构架,它可以帮助您将发生变更的地

方隔离开来。在您进行变更的时候,这个构架将软件的其它部分隔离,避免这些部分受到负

面影响。RationalRose帮助您以一种可预测的、受到良好控制的方式来实施变更,使您可以

迅速地开发可靠的代码。

UML模型为软件提供了可视化的表示方法,Rose正是利用UML模型来统一您的开发团队。

模型驱动的开发有助于整合您的设计和实施环境,使所有员工协同工作。

借助RationalRose,开发人员可以用一个建模工具开发所有项目。Rose提供了与所有主导的

IDE、编程语言、数据库系统和配套技术的无缝集成。一旦熟悉了RationalRose,员工们就

可以轻松自如地在项目间转换,工作更加有效,高效迅速地完成所有的开发任务。

如ROSEDataModeler软件它通过一个公共的工具和UML(统一建模语言)将数据库设计人

员与开发团队的其他人员我系起来,帮助加速开发过程。使用RationalRose软件,数据库设

计人员可以直观地了解应用程序访问数据库的方式,从而可以在部署之前发现并解决问题。

其功能包括:

1)支持对象模型、数据模型和数据存储模型的创建。

2)映射逻辑和物理模型,从而灵活地将数据库设计演变为应用程序逻辑。

3)支持数据模型、对象模型和已定义数据语言(DDL)文件/数据库管理系统(DBMS)之

间的双向工程。

4)变换同步选项(在变换期间对数据模型和对象模型进行同步)。

5)数据模型-对象模型比较向导。

6)支持一次性对整个数据库进行正向工程。

7)集成了其他IBMRationalSoftwareDevelopment生命周期工具。

8)能集成任何兼容SCC的版本控制系统,包括IBMRationalClearCase软件。

9)能够以Web页面的方式发布模型和报告,以此来提高整个团队的沟通效率。

其最突出特点就是通过使所有的团队成员独立开发、协作沟通和交付更好的软件来统一开发

团队,建立稳定、有弹性、基于构件的系统构架,以可控、可管理、可确认的方式进行开发,

从而降低成本,加快面市的速度。一个无缝集成所有领先的IDE与最新技术的工具可满足

您的所有技术需要,最大化开发工作的速度和简便性。

使用RationalRose对VC工程进行反向图,及其对JAVA反向工程创建使用界面如下图所示:

图2.1.1VC反向图

图2.1.2JAVA反向图

2.2ModelMaker

一个非常强大的软件工具,其功能与所有强大且具有多面性的产品一样。但ModelMaker的

复杂性却会让一个新手望而却步。

ModelMaker常被认为是一个UML图形工具或是DelphiCase工具燃而,它比一般的图形工

具和Case工具要快得多,有时,它可为你写一些人工智能式的代码。它是可扩展的,支持

UML图,设计模式,逆向生成与分解的双向代码管理工具等。

它的核心则为,它支持本地代码模型,你所有的类及其关联元素(单元,图,文档及事件类

型等等)都是模型内部的对象。ModelMaker为活动模型提供了多种视图,允许你在类列表,

元素列表或图集中进行操作,如果你已有准备,你即可从模型中生成源代码单元,并可由

Delphi来进行编译,以后生成的单元每次也可重新生成。你可对各种不同的设置进行修改(例

如代码注释选项,代码次序,方法使用等等),并且可为多种需求重新生成单元(调试代码,

自动生成的大量注释代码等)。

ModelMaker还是一个两路的面向类树的高效的、重构的以及UML方式的CASE工具。它有

两个版本:一个Pascal版本,一个C#版。两个版本都包含了ModelMaker认证。

1)Pascal版专门用于生成本地的Delphi代码。完全支持Delphi的ObjectPascal语

言,且包括了大部分的Delphi组件.ModelMakerPascalEdition具有完全反转工程的能

力,并且可以导入现存的Delphi代码。DelphiIDEIntegrationexperts考虑了同步

ModelMaker以及DelphiIDE编辑器。

2)C#版用于专门生成本地的C#代码。对于.NET框架语法,它完全支持2.0和

3.0三个版本.ModelMakerC#Edition具有完全反转工程的能力,并且可以导入现存的

C#代码。VisualStudioIDEIntegrationexperts和Delphi一样也考虑了同步ModelMaker。

Delphi以及VisualStudioIDE编辑器都包含ModelMaker的许可。

对于软件开发的整个过程,用户都可以使用ModelMaker实时、技术的开发包括数据库

类型在内的应用程序。并把它们导入到源代码中。可以使用自带的HelpFileGenerator■生成

HelpFiles.通过ModelMakerToolsAPI生成自己的报告。包括了XMLreporter范例。

其使用效果图如下所示:

图2.2界面图

2.3PowerDesigner

由Sybase公司开发的一套商业建模工具,它与ROSE、ERWin类似,主要是为数据库的建模

设计的,但与它们相比,具有更加突出的功能。

PD可以方便地对管理信息系统(MIS)进行分析设计,几乎包括了数据库模型模型设计

的全过程。利用PD可以制作数据流程图、概念数据模型、物理数据模型,,可以生成多种

客户端开发工具的应用程序,还可为数据仓库制作结构模型,也能对团队设计模型进行控制。

它可与许多流行的数据库设计软件,例如:PowerBuilder,Delphi,VB等相配合使用来缩短

开发时间和使系统设计更优化。

PowerDesigner包括以下六个模块:

1)ProcessAnalyst是数据流程图(DFD)逻辑设计工具

2)DataArchitect是概念数据模型与物理数据模型设计工具

3)WarehouseArchitect是数据仓库设计工具

4)AppModeler是客户端应用程序生成工具

5)MetaWorks是团队开发控制工具

6)Viewer是模型观察工具

PD同时还提供完整的UML建模支持,以及面向对象设计和代码的生成工具,可以满足复

杂的技术环境需求。所以可以说PD在数据库设计建模方面是做的最好的了。

当然,除此之外其在企业级建模上它的功能也很强大。很多公司现在在用三个不同的产品,

一个是做需求分析,企业流程:另外一个是数据库设计:另外一个是UML数据设计,三个

部分可能连不到一起。造成问题是比如需求改了,数据改了,对哪个类有关系,跟哪个流程

有关系看不出来,最后还得手工改。powerDesigner工具确可以把这些所有的建模工具连一

起,需求改了,数据模型改了都没关系。另外PowerDesigner对新的技术支持的也比较好。

它支持了所有的最新的数据库,不光支持Sybase本身的数据库,也支持IBM、微软、ORACLE

的数据库。其软件界面及UML建模图如下所示:

图2.3.1UML编辑器

图2.3.2UML图

2.4EnterpriseArchitect

以目标为导向的软件系统,它覆盖了系统开发的整个周期,除了开发类模型之外,还包括事

务进程分析,使用案例需求,动态模型,组件和布局,系统管理,非功能需求,用户界面设

计,测试和维护等。

其土要特点包恬:

1)为整个团队提供高级的UML2.0建模工具

EA为用户提供一个高性能、直观的工作界面,联合UML2.0最新规范,为桌面电脑工作人

员、开发和应用团队打造先进的软件建模方案。该产品不仅特性丰富,而且性价比极高,可

以用来配备您的整个工作出队,包括分析人员、测试人员、项目经理、品质控制和部署人员

等。

2)特性丰富系统设计

EnterpriseArchitect是一个完全的UML分析和设计工具,它能完成从需求收集经步骤分析、

模型设计到测试和维护的整个软件开发过程。它基于多用户Windows平台的图形工具可以

帮助您设计健全可维护的软件。除此,它还包含特性灵活的高品质文档输出。用户指南可以

在线获取。

3)端到端跟踪

EnterpriseArchitect提供了从需求分析、软件设计一直到执行和部署整个过程的全面可跟踪

性。结合内置的任务和资源分配,项目管理人员和QA团队能够及时获取他们需要的信息,

以便使项目按计划进行。

4)EA提供使用工具,能够跟踪依赖关系、支持大型模型,帮助您管理大型复杂的工程:含

有CVS或SCC提供工具,以时间快照为基线,通过比较来跟踪模型变动,从而实现版本控

制;含有类似explorer的项目视窗,为您提供直观高性能的工作界面。EA还含有一个所见

即所得形式的模板编辑器,提供强大的文档生成和报告工具,能够生成复杂详细的报告,报

告可以按照公司或客户要求的格式提供所需信息…

5)EA具备源代码的前向和反向工程能力,支持多种通用语言,包括C++,C#,Java,Delphi,

VB.Net,VisualBasicPHP,除此,还可以获取免费的CORBA和Python附加组件。EA提供

一个内置的源代码编辑器,含语法突出功能,确保能够在一致的工作环境中快速导航和杳找

您的模型源代码。对于Eclipse或VisualStudio.Net工作人员,SparxSystems还提供到这些IDE

的轻量链接工具,您可以在EA中进行建模,而后直接跳转到自己偏爱的编辑器中进行源代

码的进一步开发。代码生成模板还允许您对生成的源代码进行定制,使之同公司规范相符。

EA还提供对大多数软件开发语言和数据库架构的逆向工程支持,令您的应用程序可视化,

从源代码、Java.jar文件甚至是.Net二进制汇编语言中获取完整框架。通过导入框架和库代

码,实现对您已有投资重且利用的最大化。

6)EA还提供变换模板,编辑和开发均非常简单,支持先进的模型驱动结构体系(MDA)。

通过内置的DDL,C#,Java,EJB和XSD变换,您可以从简单的“平台独立模型”开始来构建复

杂的解决方案,并定位于“平台专门模型"(PSM)。一个PIM可以用来生成并同步多个PSM,

使工作效率得到显著提高,

利用该工具进行建模的界面如卜所示

图2.4工作界面

2.5MicrosoftVisualVisio

目前国内用得最多的case工具之一。它提供了日常使用中的绝大多数框图的绘画功能(包

括信息领域的各种原理图,设计图),同时提供了部分信息领域的实物图。它是最通用的硬

件、网络平台等图表设计软件。好处是易用性高,特别是对不善于自己构造图的人。但是正

因为很全,所以某个方面上会造成专业程度较低。

visio的精华在于其使用方便,安装后的visio2000既可以单独运行,也可以在word中作为对

象插入,与word集成良好,其图生成后在没有安装visio的word上仍可查看。使用过其他绘

图工具的朋友肯定会感受到visi。在处理框和文字上的流畅,同时在文件管理上,visi。提供

了分页、分组的管理方式。visi。支持UML的静态和动态建模,对UML的建模提供了单独的

组织管理。从2000版本后visi。被Microsoft收购,正式成为Office大家庭的一员,目前最新版

是2002。纳入名门的visio2002被微软的风格所同化,样子出现了一些华而不实的东西,但

是功能上visi。不减从前,各种器件模版有了许多增进。而且还实现了与其他CASE工具的集

成如下图所示:

图2.5VISIO图形转换为VP图

2.6VisualParadigm

是由一家香港公司开发的UML工具。功能的强大不次于rose等case工具。可以和其他工具

整合,包括Edipse/IBMWebSphere等并且支持多平台,所以在linux工作的朋友,要以选用

它来取代rose等在windows下的设计工具。VisualParadigm的开发公司不限制此软件的非

商业用途,在网站上提供了各组件企业和专业版木的KeyFile,

附件(3)软件、软件危机、软件工程

1、软件及其特性

第一个写软件的人是Ada(AugustaAdaLovelace),在1860年代他尝试为BabbageCCharles

Babbage)的机械式计算机写软件。尽管他们的努力失败了,但他们的名字永远载入了计算

机发展的史册。

在1950年代,软件作随着第一台电子计算机的问世诞生了。以写软件为职业的人也开

始出现,他们多是经过训练的数学家和电子工程师。1960年代美国大学里开始出现授予计

算机专业的学位,教人们写软件。

本世纪中叶软件产业从零开始起步,在短短的50年的时间里迅速发展成为推动人类社

会发展的龙头产业,并造就了一批百万、亿万富翁。随着信息产业的发展,软件对人类社会

性越来越重要。

那么,如何给软件定义哪?软件是什么?

首先要说明的是,软件对于人类而言是一个全新的东西,其发展历史不过四、五十年。

人们对软件的认识经历了一个由浅到深的过程。

在计算机系统发展的初期,硬件通常用来执行一个单一的程序,而这个程序又是为一个

特定的目的而编制的。早期当通用硬件成为平常事情的时候,软件的通用性却是很有限的。

大多数软件是由使用该软件的个人或机构研制的,软件往往带有强烈的个人色彩。早期的软

件开发也没有什么系统的方法可以遵循,软件设计是在某个人的头脑中完成的一个隐藏的过

程。而且,除了源代码往往没有软件说明书等文档。

从60年代中期到70年代中期是计算机系统发展的第二个时期,在这一时期软件开始作

为一种产品被广泛使用,出现了“软件作坊”专职应别人的需求写软件。这一软件开发的方

法基本上仍然沿用早期的个体化软件开发方式,但软件的数量急剧膨胀,软件需求日趋复杂,

维护的难度越来越大,开发成本令人吃惊地高,而失败的软件开发项目却屡见不鲜。“软件

危机”就这样开始了!

“软件危机”使得人们开始对软件及其特性进行更深一步的研究,人们改变了早期对软

件的不正确看法。早期那些被认为是优秀的程序常常很难被别人看懂,通篇充满了程序技巧。

现在人们普遍认为优秀的程序除了功能正确,性能优良之外,还应该容易看懂、容易使用、

容易修改和扩充。

现在,被普遍接受的软件的定义是:

软件(software)是计算机系统中与硬件(hardware)相互依存的另一部分,它包括程序

(program)>相关数据(data)及其说明文档(document)。

其中程序是按照事先设计的功能和性能要求执行的指令序列;数据是是程序能正常操纵

信息的数据结构;文档是与程序开发维护和使用有关的各种图文资料。

软件同传统的工业产品相比,有其独特的特性:

1)软件是i种逻辑实体,具有抽象性。这个特点使它与其它工程对象有着明显的差异。

人们可以把它记录在纸上、内存、和磁盘、光盘上,但却无法看到软件本身的形态,必须通

过观察、分析、思考、判断,才能了解它的功能、性能等特性。

2)软件没有明显的制造过程。一旦研制开发成功,就可以大量拷贝同一内容的副本。

所以对软件的质量控制,必须着重在软件开发方面下工夫。

3)软件在使用过程中,没有磨损、老化的问题。软件在生存周期后期不会因为磨损而

老化,但会为了适应硬件、环境以及需求的变化而进行修改,而这些修改有不可避免的引入

错误,导致软件失效率升高,从而似的软件退化。当修改的成本变得难以接受时,软件就被

抛弃。

4)软件对硬件和环境有着不同程度的依赖性。这导致了软件移植的问题。

5)软件的开发至今尚未完全摆脱手工作坊式的开发方式,生产效率低。

6)软件是复杂的,而且以后会更加复杂。软件是人类有史以来生产的复杂度最高的工

业产品。软件涉及人类社会的各行各业、方方面面,软件开发常常涉及其它领域的专门知识,

这对软件工程师提出了很高的要求。

7)软件的成本相当昂贵。软件开发需要投入大量、高强度的脑力劳动,成本非常高,

风险也大。现在软件的开销已大大超过了硬件的开销。

8)软件工作牵涉到很多社会因素。许多软件的开发和运行涉及机构、体制和管理方式

等问题,还会设计到人们的观念和心理。这些人的因素,常常成为软件开发的困难所在,直

接影响到项目的成败。

2、软件危机及其原因

软件危机指的是在计算机软件的开发和维护过程中所遇到的一系列严重问题。

1968年北大西洋公约组织的计算机科学家在联邦德国召开的国际学术会议上第一次提

出了"软件危机"(softwarecrisis)这个名词。

概括来说,软件危机包含两方面问题:一、如何开发软件,以满足不断增长,日趋复杂

的需求;二、如何维护数量不断膨胀的软件产品。

具体地说,软件危机主要有以下表现:

(1)对软件开发成本和进度的估计常常不准确。开发成本超出预算,实际进度比预定

计划一再拖延的现象并不罕见。

(2)用户对“已完成”系统不满意的现象经常发生。

(3)软件产品的质量往往靠不住。Bug一大堆,Patch一个接一个。

(4)软件的可维护程度非常之低。

(5)软件通常没有适当的文档资料。

(6)软件的成本不断提高。

(7)软件开发生产率的提高赶不上硬件的发展和人们需求的增长。

软件危机的原因,一方面是与软件本身的特点有关:另一方面是由软件开发和维护的方

法不正确有关。

软件的特点前面已经有一个简单介绍。软件开发和维护的不正确方法主要表现为忽视软

件开发前期的需求分折;开发过程没有统一的、规范的方法论的指导,文档资料不齐全,忽

视人与人的交流:忽视测试阶段的工作,提交用户的软件质量差;轻视软件的维护。这些大

多数都是软件开发过程管理上的原因。

3、软件工程

1968年秋季,NATO(北约)的科技委员会召集了近50名一流的编程人员、计算机科

学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。在那次会议上第一次提出了软件

工程(softwareengineering)这个概念。到今年(1998),软件工程整整走过了30年的历程。

在这30年的发展中,人们针对软件危机的表现和原因,经过不断的实践和总结,越来

越认识到:按照工程化的原则和方法组织软件开发工作,是摆脱软件危机的一个主要出路。

今天,尽管“软件危机”并未被彻底解决,但软件工程30年的发展仍可以说是硕果累

累。

下面我们给出一个软件工程的定义,然后简单讨论一下软件工程所包括的内容:

软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开

发和维护的学科。

软件工程包括两方面内容:软件开发技术和软件项目管理。

软件开发技术包括软件开发方法学、软件工具和软件工程环境。

软件项目管理包括软件度量、项目估算、进度控制、人员组织、配置管理、项目计划等。

统计数据表明,大多数软件开发项H的失败,并不是由于软件开发技术方面的原因。它

们的失败是由于不适当的管理造成的。遗憾的是,尽管人们对软件项目管理重要性的认识有

所提高,但在软件管理方面的进步远比在设计方法学和实现方法学上的进步小,至今还提不

出一套管理软件开发的通用指导原则。

附录(4)软件工程的七条基本原理

自从1968年提出“软件工程”这一术语以来,研究软件工程的专家学者们陆续提

出了100多条关于软件工程的准则或信条。美国著名的软件工程专家Boehm综合这些专

家的意见,并总结了TRW公司多年的开发软件的经验,于1983年提出了软件工程的七条基

本原理。

Boehm认为,这七条原理是确保软件产品质量和开发效率的原理的最小集合。它

们是相互独立的,是缺一不可的最小集合;同时,它们又是相当完备的。

人们当然不能用数学方法严格证明它们是一个完备的集合,但是可以证明,在此之

前已经提出的100多条软件工程准则都可以有这七条原理的任意组合蕴含或派生。

卜.面简要介绍软件工程的七条原理:

1用分阶段的生命周期计划严格管理

这一条是吸取前人的教训而提出来的。统计表明,50%以上的失败项目是由于计划

不周而造成的。在软件开发与维护的漫长生命周期中,需要完成许多性质各异的工作。这条

原理意味着,应该把软件牛.命周期分成若干阶段,并相应制定出切实可行的计划,然后严格

按照计划对软件的开发和维护进行管理。Boehm认为,在整个软件生命周期中应指定并严

格执行6类计划:项目概要计划、里程碑计划、项目控制计戈k产品控制计戈I、验证计划、

运行维护计划。

2坚持进行阶段评审

统计结果显示:大部分错误是在编码之前造成的,大约占63%;<2>错误发现的越

晚,改正它要付出的代价就越大,要差2到3个数最级。因此,软件的质量保证工作不能

等到编码结束之后再进行,应坚持进行严格的阶段评审,以便尽早发现错误。

3实行严格的产品控制

开发人员最痛恨的事情之一就是改动需求。但是实践告诉我们,需求的改动往往是

不可避免的。这就要求我们要采用科学的产品控制技术来顺应这种要求。也就是要采用变动

控制,又叫基准配置管理。当需求变动时,其它各个阶段的文档或代码随之相应变动,以保

证软件的一致性。

4采纳现代程序设计技术

从六、七时年代的结构化软件开发技术,到最近的面向对象技术,从第一、第二代

语言,到第四代语言,人们已经充分认识到:方法大似气力。采用先进的技术即可以提高软

件开发的效率,又可以减少软件维护的成本。

5结果应能清楚地审查

软件是一种看不见、摸不着的逻辑产品。软件开发小组的工作进展情况可见性差,

难于评价和管理。为更好地进行管理,应根据软件开发的总目标及完成期限,尽量明确地规

定开发小组的责任和产品标准,从而使所得到的标准能清楚地审查。

6开发小组的人员应少而精

开发人员的素质和数量是影响软件质量和开发效率的重要因素,应该少而粘。这一

条基于两点原因:高素质开发人员的效率比低素质开发人员的效率要高几倍到几十倍,开发

工作中犯的错误也要少的多;当开发小组为N人时,可能的通讯信道为N(N-1)2可见随

着人数N的增大,通讯开销将急剧增大。

7承认不断改进软件工程实践的必要性

遵从上述六条基本原理,就能够较好地实现软件的工程化生产。但是,它们只是对

现有的经验的总结和归纳,并不能保证赶上技术不断前进发展的步伐。因此,Boehm提出

应把承认不断改进软件工程实践的必要性作为软件工程的第七条原理。根据这条原理,不仅

要积极采纳新的软件开发技术,还要注意不断总结经验,收集进度和消耗等数据,进行出错

类型和问题报告统计。这些数据既可以用来评估新的软件技术的效果,也可以用来指明必须

着重注意的问题和应该优先进行研究的工具和技术。

附录(5)软件模型设计基础(1)

一.UML简史

面向对象的分析与设计(OOA&D)方法的发展在80年代末至90年代中出现了一个高

潮,UML是这个高潮的产物。它不仅统一了Booch、Rumbaugh和Jacobson(UML之父:三人)

的表示方法,而且对其作了进一步的发展,并最终统一为业界所接受的标准建模语言。

统一建模语言(UML)的出现公认的面向对象建模语言出现于70年代中期。从1989

年到1994年,其数量从不到十种增加到了五十多种,哎,百家争鸣。在众多的建模语言中,语

言的创造者努力推崇自己的产品,并在实践中不断完善。但是,面向对象(00)方法的用户并

不了解不同建模语言的优缺点及其差异,因而很难根据自身应用特点选择合适的建模语言。

90年代中,一批新方法出现了,其中最引人注H的是Booch1993、OOSE和0MT-2等(看下图)。

Booch是面向对象方法最早的倡导者之一,他提出了面向对象软件工程的概念。1991

年,他将以前面向Ada的工作扩展到整个面向对象设计领域。Booch1993比较适合于系统的

设计和构造。Rumbaugh等人提出了面向对象的建模技术(0MT)方法,采用了面向对象的概念,

并引入各种独立于语言的表示符。这种方法用对象模型、动态模型、功能模型和用例模型,

共同完成对整个系统的建模,所定义的概念和符号可用于软件开发的分析、设计和实现的全

过程,软件开发人员不必在开发过程的不同阶段进行概念和符号的转换。0MT-2特别适用于

分析和描述以数据为中心的信息系统。

Jacobson于1994年提出了OOSE方法淇最大特点是面向用例(Use-Case),并在用例的

描述中引入了外部角色的概念

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论