您好,欢迎访问三七文档
软件工程(B)教案田萱2008-8-30目录课程说明...........................................................................................................................................1一软件工程概述(理论3学时).................................................................................................11软件工程的起源和作用........................................................................................................1附录(一)常用CASE工具介绍....................................................................................................4附录(二)CASE工具的种类及应用特点....................................................................................10附件(三)软件、软件危机、软件工程...................................................................................16附录(四)软件工程的七条基本原理.........................................................................................20课程说明学时数:总学时40(理论30实验10习题0讲座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年的历程。软件工程用来解决在开发大型的复杂软件系统过程中遇到的问题。之所以称为软件工程,是因为软件开发是一个工程化的过程。软件工程的目标就是找到一种能指导大型复杂的软件系统的开发原则,能指导软件开发过程,从而生产出高效可靠的软件产品。在开发大型系统时,涉及到使用大量人工、时间,涉及到项目管理、人员管理等,因而有许多内容与业务管理相关,而不只是和计算机科学有关。为了理解软件工程中涉及的问题,可以先想象其它的大型复杂设施的构建(机械行业和建筑行业等)。例如,汽车,办公大楼,水立方等。自然会想到以下几个问题,这个项目需要的人力、时间、资源、技术等;如何把项目分割成几个便于管理的模块?如何保证模块间的协调?如何便于同一模块内外人员的沟通?如何检查进度?如何处理广泛存在的细节?软件工程是一门研究如何用系统化、规范化、数量化等工程原则和方法去进行软件的开发和维护的学科。是不是软件工程完全可以借鉴这些已经成熟的工程项目中工程技术呢?4)软件工程和传统工程项目的区别两个主要区别:难以复用现有的软件构件,因为软件往往是个性化的;难以对软件质量进行评价和度量。5)计算机辅助软件工程(CASE)CASE(computer-aidedsoftwareengineering)帮助人们尽量使软件开发变得流程化,帮助简化软件开发过程。CASE工具涉及到软件开发过程中的各个方面,包括:项目设计系统(辅助经费预算、项目调配以及人员分配等)项目管理系统(辅助健康项目的开发进度)文档工具(辅助编写和组织文档)原型与仿真系统(辅助开发原型系统)界面设计系统(辅助图形用户界面的开发)编程系统(辅助编写程序和调试程序)Bug系统(辅助测试)(1)软件工程和软件生命周期。(2)软件开发方法概述,结构化方法,面向对象方法。(3)软件工程过程和开发模型。(4)软件开发工具和环境。(5)软件工程的作用。附录(1)常用CASE工具介绍转载自:一,概述今天,代码变得日益简单,在Model的指导下,思想,设计,分析都变得异常重要。企业业务建模工具,产品非常多,特别是在MDA日益流行的今天.WorkFlow是典型的业务及流程建模。二,软件开发CASE工具简介(一)图稿绘制:1,visio:这是目前国内用得最多的case工具。它提供了日常使用中的绝大多数框图的绘画功能(包括信息领域的各种原理图,设计图),同时提供了部分信息领域的实物图。visio的精华在于其使用方便,安装后的visio2000既可以单独运行,也可以在word中作为对象插入,与word集成良好,其图生成后在没有安装visio的word仍然能够查看。使用过其他绘图工具的朋友肯定会感受到visio在处理框和文字上的流畅,同时在文件管理上,visio提供了分页、分组的管理方式。visio支持UML的静态和动态建模,对UML的建模提供了单独的组织管理。从2000版本后visio被Microsoft收购,正式成为Office大家庭的一员,目前最新版是2002。纳入名门的visio2002被微软的风格所同化,样子出现了一些华而不实的东西,但是功能上visio不减从前,各种器件模版有了许多增进。它是最通用(MS的东西,意味着许多附带的通用的东西)的硬件、网络平台等图表设计软件。好处是易用性高,特别是对不善于自己构造图的人。但是正因为很全,所以某个方面上会造成专业程度较低。有关工程管理类的显然不如PROJECT2000好用;画IDEF0图显然不如BPWIN好用;画IDEF1X图显然无法与ERWIN相比;画组织机构图WORD足够用了,且普遍适用;画网络拓扑结构图只要有相应的图素,用什么画都行;画有关图表类的显然不如EXCEL好用;关键的是,VISIO的图只能以对象的方式插入你的主文档,只有在它本身环境下才能修改。2,smartdraw:校园里比较流行的绘图软件。用惯了visio,感觉smartdraw有许多不一样的地方。一开始就是提供你大堆模版,以目录树的形式放在左边。你的设计都可以纳入模版,并且在某个目录组织。smartdraw也是大手笔,有许多visio没有的方便功能。比如插入表格。smartdraw本身是独立提供图稿绘制的工具,因而工具齐全。而visio更多是与word集成在一起,能够充分利用word的编排功能。有心者不妨一试,有了感觉我们再交流。(二)原码浏览的工具:1,SourceInsigt:不能不说这个东西是个好东东。以工程的方式管理原码,提供非常适合再工程的浏览手段.整个面板分成三个部分.左边树提供工程内的所有变量,函数,宏定义,右边提供程序阅读和编辑,下边显示你鼠标在原码触及的函数或者变量定义.最让人佩服的是SourceInsigt不仅高亮你的关键字,而且以近乎完美的板面编排让你看程序如果看报纸,好极了。SourceInsigt提供函数交叉调用的分析,并以树状的形式显示调用关系。不过,速度有些问题,我一般不用。我用的版本是3.02000产品。2,SourceNavigator:这个是从RedhatLinux版本移植到win32下的,与SourceInsigt相比,样子土多了,处处透着Linux的乡土气息,不过是干实事的家伙。提供原码高亮显示和编辑,提供头文件的包含关系分析,提供类的层次关系,这个东西最大的特点是把原码始终和文件联系在一起,提供到文件的导航。当然不能说它使用很方便,我一般不用它,但是它的分析速度有优势,这是SourceInsigt必须低头的。3,Dia:()完全免费的东西,目前有Win32Port了,6MB左右,画图足够用了.可惜不能生成代码.我在win2000ads上安装却有问题。(三)配置管理工具配置管理的重要意义在于维护文档的统一和可追溯性。尽管宏观的配置管理包括很多内容,但是我们最常用到的是对程序代码的版本控制,至于变更的控制、管理和通知这里不多介绍。下面将简要介绍国内几种常用的工具。1,VirsualSourceSafe:微软的studio企业版包含的版本管理工具。该工具包括一服务器和一通过网络可以连接服务器的客户端。VSS提供了基本的认证安全和版本控制机制,包括CheckIn(入库)、CheckOut(出库)、Branch(分支)、Label(标定)等功能;能够对文本,二进制,图形图象几乎任何类型的文件进行控制;提供历史版本对比;可以集成在studio中。VSS的客户端既可以连接服务器运行,也可以在本机运行,非常适合于个人程序开发的版本管理。(VSS的详情我以后还会贴出)2,PVCS:PVCS是世界领先的软件开发管理工具,市场占有率达70%以上,是公认的事实上的工业标准。IDC在1996年9月的报告中评述:“PVCS是软件开发管理工业领域遥遥领先的领导者”。全球的著名企业、软件机构、银行等诸多行业及政府机构几乎无一例外地应用了PVCS.PVCS包含多种工具。PVCSVersionManager会完整、详细地记录开发过程中出现的变更和修改,并使修订版本自动升级,而PVCSTracker、PVCSNotify会自动地对上述变更和修改进行追踪。另外,PVCSRequisitePro提供了一个独特的MicrosoftWord界面和需求数据库,从而可以使开发机构实时、直观地对来自于最终用户的项目需求及需求变更进行追踪和管理,可有效地避免重复开发,保证开发项目按期、按质、按原有的资金预算交付用户。我比较喜欢的是PVCS基于WEB的应用比较方便,只要设定用户和权限,规划好目录结构,项目组成员通过浏览器完成操作。3,ClearCase:ClearCase是rational公司的主要配置管理工具,可能大家对Rose熟悉一点,不过就我所知,现在绝大多数企业已经从PVCS过渡到ClearCa
本文标题:软件工程(B)教案
链接地址:https://www.777doc.com/doc-212963 .html