《软件工程项目实践教程》(第三版)全套课件_第1页
《软件工程项目实践教程》(第三版)全套课件_第2页
《软件工程项目实践教程》(第三版)全套课件_第3页
《软件工程项目实践教程》(第三版)全套课件_第4页
《软件工程项目实践教程》(第三版)全套课件_第5页
已阅读5页,还剩374页未读 继续免费阅读

下载本文档

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

文档简介

学习内容1.1软件工程背景知识1.2软件与软件危机1.3软件质量评价1.4软件开发方法1.5项目管理概述1.6VISIO2007的安装及应用1.7网上购书系统初步建模软件工程概述及VISIO建模工具简介项目一软件工程概述及VISIO建模工具简介项目一本章要点了解软件工程背景知识;掌握软件危机的产生、表现及原因;掌握软件生命周期概念及方法;掌握软件质量评价方法;理解软件开发模型及方法;掌握VISIO建模工具。1.1软件工程背景知识项目一1.软件的定义软件是一类特殊的智力产品,它的研发有一个特殊的过程,这个被称为“软件生命周期”的过程,是整个软件工程知识体系所体现的过程。准确的说软件(Software)是一系列按照特定顺序组织的计算机数据和指令的集合。我们把各种不同功能的程序,包括用户为自己的特定的目的编写的程序、检查和诊断机器系统的程序、支持用户应用程序的系统程序、管理和控制机器系统资源的程序及相关文档的完整集合,通常称为软件。软件由图1-1所示的三部分组成,一是计算机程序,二是数据,三是软件文档组成。图1-1软件基本组成1.软件不符合用户的实际需要2.软件开发生产率不高,不能满足客观需要3.软件产品质量差4.对软件开发成本和进度的估计不准确5.可维护性差6.软件的文档资料不完整和不合格7.软件成本逐年上升1.2软件与软件危机项目一1.2.1

软件危机主要表现1.实行分阶段的生命周期计划并严格管理,即将软件开发划分为多个阶段,对各个阶段实行严格的项目管理,并为每个阶段制定分阶段的计划及验收标准。2.坚持进行阶段评审,即在每个阶段都进行严格的评审,以便尽早发现软件开发中的错误,是一条必须遵循的重要原则。3.实行严格的产品控制,即进行合理的需求分析,并实行严格的版本控制。4.采用现代化程序设计技术,即采用最为现代化的开发技术,比如面向对象。5.结果应能清楚的审查,即为了提高软件开发过程的可见性,更好地进行管理,应该根据软件开发项目的总目标及完成期限,规定开发组织的责任和产品标准,从而使得所得到的结果能够清楚地审查,并用相关的文档体现。6.开发小组的人员应该少而精,即保证开发小组的人数少,但是素质高。7.不断改进软件工程实践,即软件从业人员应该不断的总结经验并学习新的软件技术。1.2软件与软件危机项目一1.2.2

软件工程七条基本管理原理

软件生命周期可以划分为6个阶段,制定计划、需求分析、设计、编码、测试、运行和维护,或按照“”的观点划分为7个阶段:问题定义、可行性研究、需求分析、软件设计、编码、软件测试和运行维护。目前,可将常见的软件开发模式大致分为4种类型。每种模式的代表模型有瀑布模型、快速原型模型、喷泉模型、基于构件的开发模型、敏捷开发模型等等,现对它们进行简要介绍如下:1.2软件与软件危机项目一1.2.3

软件生命周期

瀑布模型简称为“生命周期模型”或“线性顺序模型”。它的优点是:符合软件开发的思维过程,容易理解和运用;通过设置里程碑,明确每阶段的任务与目标;支持结构化软件开发,可为各阶段制定开发计划,进行成本预算;通过阶段评审,将开发过程纳入正确轨道;严格的计划性保证软件产品的按时交付。它的缺点主要是:缺乏灵活性,不能适应用户需求的变化;开始阶段的小错误被逐级放大,可能导致软件产品报废。它比较适合于功能和性能明确的小规模软件开发和生产。快速原型是快速建立起来的可以在计算机上运行的程序,它所能完成的功能往往是最终产品所能完成功能的一个子集。和瀑布模型比较而言,快速原型模型的优点是:用户参与了软件系统开发的所有阶段,从而使用户的需求可以及时、准确地得到满足,系统的实用性较强;用户可以及早地接触和使用未来系统的原型,有利于后期的使用和维护;使用快速原型模型开发软件,其周期大为缩短,开发费用较少,而瀑布模型则正好相反。和瀑布模型比较,快速原型模型更适用于解决有不确定因素的问题或用户界面要求较高的中型系统。1.2软件与软件危机项目一

喷泉模型认为软件开发过程自下而上周期进行的各阶段是相互迭代和无间隙的。“无间隙”是指在各项活动之间没有明显的边界,如分析和设计活动之间没有明显的界限。正像水喷上去可以落下来时,既可以落在中间,也可以落在最底部,类似于一个喷泉。喷泉模型不像瀑布模型的各个阶段有明显的界限,所以开发人员可以同步进行开发。它的优点是可以提高软件项目的开发效率,节省开发时间,适应于面向对象的软件开发过程。但它的缺点是:由于喷泉模型在各个开发阶段是重叠的,在开发过程中需要大量的开发人员,因此不利于项目的管理。

基于构件的开发模型融合了快速原型的特殊种类螺旋模型的许多特征。它本质上是演化的支持软件开发的迭代方法。但是,构件组装模型是利用预先包装好的软件构件(有时称为“类”)来构造应用程序的,面向对象技术为软件工程的基于构件的过程模型提供了技术框架。它的优点是构件组装模型导致了软件的复用,提高了软件开发的效率。它允许多个项目同时开发,降低了费用,提高了可维护性,可实现分步提交软件产品。

敏捷开发模式是一种从1990年开始逐渐引起广泛关注的一些新型开发模式。

1.2软件与软件危机项目一(1)制定计划(2)需求分析(3)软件设计(4)程序编写(5)软件测试(6)运行/维护1.2软件与软件危机项目一1.2.3

软件生命周期6个阶段1.功能性:软件所实现的功能满足用户需求的程度。功能性反映了所开发的软件满足用户叙述的或蕴涵的需求的程度,即用户要求的功能是否全部实现了。2.可靠性:在规定的时间和条件下,软件所能维持其性能水平的程度。可靠性对某些软件是重要的质量要求,它除了反映软件满足用户需求正常运行的程度,且反映了在故障发生时能继续运行的程度。3.易使用性:对于一个软件,用户学习、操作、准备输入和理解输出时,所做努力的程度。易使用性反映了与用户的友善性,即用户在使用本软件时是否方便。4.效率:在指定的条件下,用软件实现某种功能所需的计算机资源(包括时间)的有效程度。效率反映了在完成功能要求时,有没有浪费资源,此外“资源”这个术语有比较广泛的含义,它包括了内存、外存的使用,通道能力及处理时间。5.可维修性:在一个可运行软件中,为了满足用户需求、环境改变或软件错误发生时,进行相应修改所做的努力程度。可维修性反映了在用户需求改变或软件环境发生变更时,对软件系统进行相应修改的容易程度。一个易于维护的软件系统也是一个易理解、易测试和易修改的软件,以便纠正或增加新的功能,或允许在不同软件环境上进行操作。6.可移植性:从一个计算机系统或环境转移到另一个计算机系统或环境的容易程度。1.3软件质量评价项目一软件质量可分解成六个要素,面向数据结构的软件开发方法主要有Jackson方法和Warnier方法,是一种面向数据结构的软件开发方法,该方法以数据结构为基础,通过一组映射或转换过程来建立程序的结构。这两者差别主要有三点:一是它们使用的图形工具不同,分别使用Warnier图和Jackson图;另一个差别是使用的伪码不同;最主要的差别是在构造程序框架时,Warnier方法仅考虑输入数据结构,而Jackson方法不仅考虑输入数据结构,而且还考虑输出数据结构。1.4软件开发方法项目一一、面向数据结构的软件开发方法面向对象技术是软件技术的一次革命,在软件开发史上具有里程碑的意义。随着OOP(面向对象编程)向OOD(面向对象设计)和OOA(面向对象分析)的发展,最终形成面向对象的软件开发方法OMT(ObjectModellingTechnique)。这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。所以OMT彻底实现了PAM(问题分析法)没有完全实现的目标。不仅如此,OO技术在需求分析、可维护性和可靠性这三个软件开发的关键环节和质量指标上有了实质性的突破,彻底地解决了在这些方面存在的严重问题,从而宣告了软件危机末日的来临。由于不再在原来的程序模块中引入修改,所以彻底解决了软件的可修改性,从而也彻底解决了软件的可维护性,同时还提高了软件的可靠性和健壮性。1.4软件开发方法项目一二、面向对象的软件开发方法在传统的软件工程方法中,主要使用瀑布式顺序开发方法,包括需求分析和定义、系统设计、实现和单元测试、系统集成测试、运行维护等多个阶段,这一方法的优点是全面、严谨,但最大的缺陷,就是过程一旦启动就难以适应变化。这一方法是基于一个重要的假设前提——能够提出明确的需求。当面对快速变化、甚至是根本不明确的需求时,这种假设根本上就不成立,因此这种传统的开发方法的缺点就越来越突出,特别是应用软件的开发,由于它与市场的联系更加紧密,使用这种传统的开发方法,已经难以为继。我们需要寻找一种更加快速、成本合理的软件开发方法。原型法就是这样一种开发更加迅速、更加成本合理的开发方法。在软件开发过程中,最关键的步骤就是确切定义出需求,明确软件要实现的功能是什么,而这恰恰也是最困难的过程,因为现在许多用户在初期只有一个隐约的、大致的考虑,根本不可能提出具体明确的需求。这种情况下,使用快速原型进行反复交流、细化需求,就成为一种更加有效的方法。1.4软件开发方法项目一三、原型法

1978年,E.Yourdon和L.L.Constantine提出了结构化方法,即SASD方法,也可称为面向功能的软件开发方法或面向数据流的软件开发方法。1979年TomDeMarco对此方法作了进一步的完善。Yourdon方法是80年代使用最广泛的软件开发方法。它首先用结构化分析(SA)对软件进行需求分析,然后用结构化设计(SD)方法进行总体设计,最后是结构化编程(SP)。这一方法不仅开发步骤明确,SA、SD、SP相辅相成,一气呵成,而且给出了两类典型的软件结构(变换型和事务型),便于参照,使软件开发的成功率大大提高,从而深受软件开发人员的青睐。。1.4软件开发方法项目一四、SASD方法问题分析法PAM(ProblemAnalysisMethod,PAM),是80年代末由日立公司提出的一种软件开发方法。PAM方法希望能兼顾Yourdon方法、Jackson方法和自底向上的软件开发方法的优点,而避免它们的缺陷。它的基本思想是:考虑到输入、输出数据结构,指导系统的分解,在系统分析指导下逐步综合。这一方法的具体步骤是:从输入、输出数据结构导出基本处理框;分析这些处理框之间的先后关系;按先后关系逐步综合处理框,直到画出整个系统的PAD图。从上述步骤中可以看出,这一方法本质上是综合的自底向上的方法,但在逐步综合之前已进行了有目的的分解,这个目的就是充分考虑系统的输入、输出数据结构。PAM方法的另一个优点是使用PAD图。这是一种二维树形结构图,是到目前为止最好的详细设计表示方法之一,远远优于N-S图和PDL语言。这一方法在日本较为流行,软件开发的成功率也很高。由于在输入、输出数据结构与整个系统之间同样存在着鸿沟,这一方法仍只适用于中小型问题。。1.4软件开发方法项目一五、问题分析法

可视化开发是90年代软件界最大的两个热点之一。随着图形用户界面的兴起,用户界面在软件系统中所占的比例也越来越大,有的甚至高达60~70%。可视化开发就是在可视开发工具提供的图形用户界面上,通过操作界面元素,诸如菜单、按钮、对话框、编辑框、单选框、复选框、列表框和滚动条等,由可视开发工具自动生成应用软件。这类应用软件的工作方式是事件驱动。对每一事件,由系统产生相应的消息,再传递给相应的消息响应函数。这些消息响应函数是由可视开发工具在生成软件时自动装入的。七、极限编程(ExtremeProgramming,XP)XP方法是一种经历过很多实践考验的一种软件开发的方法,它诞生于大约2003年。XP方法是敏捷开发模式的主流技术,其优点是开发者拥抱需求变化,XP使我们能够接受需求的变化。1.4软件开发方法项目一六、可视化开发方法软件产品与其他任何产业的产品不同,它是无形的,完全没有物理属性。对于这样看不见,摸不着的产品,难以理解,难于架驭。但它确实是把思想、概念、算法、流程、组织、效率、优化等融合在一起了。因此,要开发这样的产品,在许多情况下,用户一开始给不出明确的想法,提不出确切的要求。他说不清究竟他需要的是什么。在开发的过程中,程序与其相关的文档常常需要修改。在修改的过程中又可能产生新的问题,并且这些问题很可能在过了相当长的时间以后才会发现。文档编制的工作量在整个项目研制过程中占有很大的比重。但从实践中看出,人们对它不感兴趣、认为是不得不做的苦差事,不愿认真地去做。1.5项目管理概述项目一1.5.1项目的概念及特点

1)制定计划:规定待完成的任务、要求、资源、人力和进度等。

2)建立组织:为实施计划,保证任务的完成,需要建立分工明确的责任制机构。

3)配备人员:任用各种层次的技术人员和管理人员。

4)指导:鼓励和动员软件人员完成所分配的工作。

5)检验:对照计划或标准,监督和检查实施的情况。1.5项目管理概述项目一1.5.2项目管理内容与职能由于电子商务的迅猛发展,网上书店系统发展也已经达到一个较高的水准,现在的网上书店系统实现的功能也非常的多,最重要的当属图书的销售,也就是管理库房中的图书,以及管理用户的购物车,从而实现结账等一系列功能。另外网上书店系统还提供给用户查找数据库中图书相关记录的功能。在确认用户身份方面也已经比较完善,并且具有管理员的功能,管理员对整个数据库可以进行操作。现在拥有一些知名的网上书店系统如:当当,卓越等。就网上书店系统而言,由于网络已经覆盖全球,信息量大而独具优势。售书的理念也很简单,就是读者可以自己寻找自己喜爱的书及为替读者找寻他们想要的书。对于读者来说,网上书店近在咫尺,并且永不下班关门,读者可以随时随地自由地查询和订购图书,读者无需亲临书店,一档一档地找,一本一本地翻,只要坐在电脑前,开机上网即可买到所需书籍,而且读者的挑选余地也大多了,检索也很方便,同时还减少了书店销售过程中的支出,另外应当看到图书选购必得翻阅详看,耗时费力,特别是热衷书店者,几乎都是奋力开拓事业者和苦心求学深造者,时间对他们而言无比宝贵,网上书店节省了大量时间,这对于那些没有时间经常逛传统书店或其住所离传统书店较远的读者来说,具有实际意义。因此网上售书必将有长足的发展,开办网上购书系统也可以为在校大学生提供方便、廉价、高效的书店方式,促进文化传播,帮助国家和学校培养优秀的人才,具有长远的社会效益和经济效益。1.5项目管理概述项目一1.5.3网上购书系统项目调研分析电子商务——网上购书系统前台系统后台系统会员登录注册模块订单查询功能模块推荐图书模块图书分类列表模块图书搜索模块管理员管理模块订单销售管理模块购物车功能模块会员信息管理模块图1-1电子商务购书系统1.6.1Visio2007的下载与安装1.6.2Visio2007界面简介1.6.3利用Visio2007绘制用例图项目一1.6VISIO2007的安装及应用长期以来,该书店业务一直采用手工管理。图书采购、库存、销售和核算的手工信息管理存在工作量大、服务质量差、工作效率低、耗费人员多,图书的市场、库存、销售、读者反馈等信息不能及时提供等问题。为了彻底改善书店图书信息管理的落后局面,一方面方便书店工作人员的管理,另一方面用户网上浏览图书、购买图书和反馈信息,特提出开发本系统。“网上书店系统”的建设,对提高书店服务质量、提高工作效率、加快信息反馈、增强竞争实力有着重大意义。该系统主要要求对书店的图书信息和用户(书店工作人员,网站注册用户即潜在购书者)信息的进行有效的管理;对图书的进存销等环节进行信息化管理;实现读者网上浏览图书,网上购书的可能;通过论坛同读者进行有效的沟通;通过聊天室实现作者和读者的实时交流;处理读者网上的投诉和建议。在性能上能对数据库录入;图书检索;用户信息查询;图书信息查询;论坛和bbs互动;网上购书。在安全与保密要求对书店中所有的图书能够供用户随时查阅;用户的个人信息可以由用户自己修改、添加;书店图书的信息只能由书店管理人员添加、修改;所有注册用户信息只能由书店管理人员查询。本系统希望通过构建一个ASP架构的电子商务网站,利用日益繁荣的互联网,为传统的书店打造一个新的销售平台。本系统希望通过电子信息化的手段对书店的进存销等环节进行管理,以达到人力与设备费用的减少,服务能力的提高,管理信息服务的改进,工作人员利用率的提高等目标。1.7网上购书系统初步建模项目一1.7.1项目开发背景

此流程可参考1.6节完成,用图表即流程图的形式表示,并加以叙述。市场计划部的采购员首先要对图书市场进行分析,对供书商和购书计划进行管理,然后进行图书订购。图书到店后填写入库单,将图书入库。书库的库管员首先核对入库单是否正确,如果不正确要求采购员修改入库单,如果正确则登记库存帐,根据库存情况将图书出库。图书出库后由销售部的售书员上架。顾客进入书店后浏览书架上的各类图书,一旦找到想要购买的图书,就通知售书员开具售书单,顾客持售书单到收款台交款,由收款员开具购书存根和发票,顾客再将售书单和存根交回售书员处,售书员将存根保留一联后在图书上盖章,顾客即可取书离店了。售书员每隔一段时间还要根据存根的情况进行盘架,将缺货信息反馈给书库,如果书库中库存有缺货图书则出库上架,如果没有,则将信息反馈给市场计划部的采购员从而形成新的购书计划。收款员每天也要根据所收书款的情况进行资金结算。1.7网上购书系统初步建模项目一1.7.2系统数据流程图建模

随着计算机、网络通讯和信息技术。电子商务在国际上得到广泛的应用,取得了巨大的成功。我国也不例外,特别是各大电子商务网站从无到有,得到很大的发展,并取得成功。为了适应新环境下的新的销售模式和顾客销售方式的改变,我们小组开发这个网上书店电子商务网站。它是基于Internet/Intranet及Web技术,建立以Browser/Server为结构模式、以数据库为后台核心应用、以服务,销售为目的信息平台。该系统将实现实体书店的网络化,使顾客足不出户就能购买到满意的图书,并可以通过网上书店的信心平台对所购买的图书进行信息反馈,这些反馈来的信息不但为图书采购员提供了很好的购书依据,也为后来的顾客提供了有价值的参考意见。网上书店以数据库为后台,将用户的管理、供书商管理、图书管理和销售管理全部实现数字化,减少了手工盘点的工作量,提高了工作效率。1.7网上购书系统初步建模项目一1.7.3项目开发说明图1-2B/S系统结构实现流程图一、目的与任务目的:学会使用Visio2007,绘制各种软件工程图,侧重于结构化分析、设计、实现方面的建模。任务:掌握MicrosoftOfficeVisio2007的功能和使用方法。二、内容、要求与安排方式1、实验内容与要求:实验一网上购书系统调研(2课时)实验二系统数据流程图建模(2课时)实验三其他功能流程图建模(2课时)2、实验安排方式本实验为开放实验,各组可同时进行实验,每组5-8人。三、思考题

(1)以小组为单位进行讨论,分析一个软件系统会有哪些方面的不同建模图及系统调研结果。(2)MicrosoftOfficeVisio2007更适合结构化系统建模还是面向对象系统建模?【项目实训指导】项目一网上购书系统调研及Visio建模上机指南本章作为软件工程的开篇之章,注重软件工程学习的渐进性把握,对软件项目的整体性进行把握,对系统调研分析的讲解均主要围绕“网上购书系统”案例,按照基于工作过程的方式进行项目案例分解,采用“做中学、学中做、边学边练”的方式,从而完整地把握软件项目案例的前期调研,帮助读者达到学以致用的目的。此外,每节附有“课堂实践”操作习题,着重培养读者的动手能力,使读者在练习过程中能快速提高实际应用水平。MicrosoftOfficeVisio2007是系统建模最为简单的工具,它的应用领域宽,应用时间长,也较为成熟,使用简单,易学易用,能够在项目开发前期很好的应用它进行项目前期调研,并根据项目的市场前景进行项目的调研分析,根据调研结果进行数据流图的建模,并对其进行功能性描述。本章的教学重点是介绍软件工程的基本概念,包括软件、软件危机、软件工程的开发方法和质量评价体系等,讲解Visio2007的基本使用,以及利用Visio2007绘制网络拓扑结构图和用例图。侧重于利用MicrosoftOfficeVisio2007结合网上购书系统案例进行前期调研,教会学生学会项目的前期市场调研与分析,并结合项目的特点进行数据流图的建模,对项目的市场前景进行预估,最终形成书面报告。总之,在软件项目开发的前期过程中,软件设计人员要指明项目追求的和应该达到的标准,从软件的开发范型、设计方法、支持过程、管理过程等方面入手,保证软件工程的正确性、可用性、经济性。项目一本章小结谢谢观看学习内容2.1UML和RationalRose建模概述

2.2用例图建模方法2.3类图和对象图建模方法2.4用Rose设计动态模型2.5组件图和配置图UML和RationalRose建模实践指南UML和RationalRose建模实践指南本章要点掌握Rose安装和使用方法;掌握用例图建模方法;掌握类图的基本概念及类图建模方法;了解对象图和包图建模方法;掌握时序图和协作图建模方法;掌握状态图和活动图建模方法;了解组件图和配置图建模方法;结合案例——网络教学系统,用Rose能实现面向对象的建模。UML的中文含意是统一建模语言(UnifiedModelingLanguage),它是一种通用的可视化的建模语言,用于对软件系统进行描述、可视化处理及构造和建立软件系统的工作文档。UML包括语义概念、表示法和指导规范,提供了静态、动态、系统环境及组织结构的模型。Rose(RationalObject-orientedSoftwareEngineering)是由美国Rational公司推出的面向对象分析与设计的最好建模工具,利用它可以建立用UML描述的软件系统的各种模型,而且可以自动生成和维护像C++、Java、VB和Oracle等语言和系统的代码,RationalRose包括了统一建模语言(UML),面向对象的软件工程(OOSE)及对象模型技术(OMT)。2.1UML和Rose建模概述1.UML的内容UML的内容结构组成如图2.1所示:

2.1.1UML概述

图2.1UML的内容结构构成图UML中基本事物的图形表示如图2.2所示

图2.2UML的事物元素2.1.1UML概述2.UML的主要特点(1)UML是一种可视化建模语言,它遵循特定的规则,允许创建各种静态模型和动态模型。(2)UML所用的语言元素基本都是图形化的,便于理解和沟通,不但开发人员之间可以用来交流,客户和开发人员之间也可以用它作为交流的工具。(3)UML是一种图形化语言,图形的优点是直观性好,便于交流,一幅图通常能抵上成千上万个文字,图能说明很多问题。(4)UML是用于构造系统或理解系统的语言,然而,UML通常并不提供软件的开发过程,它是一种建模语言。(5)UML可应用于任何软件开发过程、任何语言和工具平台,它支持OOP中出现的高级概念(如模板、线程、协作、框架、模式和组件等),并强调在软件开发中对架构、框架、模式和组件等的重用。(6)UML支持双向工程,既支持正向工程,也支持反向工程。(7)UML是一种文档化的语言,它能将所建造的系统记录下来,便于新程序员跟进。同时,UML对于开发产品新版本时很有用处。(8)UML概念明确,建模表示方法简洁明了,图形结构清晰,所以易于掌握和使用2.1.1UML概述3.UML的主要用途:通常,在需求分析阶段:采用用例图来描述系统功能需求;在系统分析阶段:采用类图来描述系统静态结构;在设计阶段:采用类图、包图对类的接口进行设计;在系统实现阶段:将类用某个面向对象的语言编码实现;在集成与交付阶段:要用到组件图、包图、部署图;在测试阶段:单元测试使用类图和类的规格说明书,集成测试阶段使用类图、包图、组件图和协作图,系统测试使用用例图来分别测试系统功能。2.1.1UML概述模型是对现实的一种简化表示。它可以是一个对象的微缩表示、是一种用于产生某事物的模式,也可以是一种设计或一个类型,还可以是一个待模仿或仿真的样例。模型不一定是可视化的,模型也可以用文字来描述,但是可视化模型可以更准确的展示模型所代表的含义。软件系统建模的主要目的是为了能够更好的理解我们正在开发的系统。RationalRose是一套可视化的建模工具,它可用于在C/S分布式企业环境下开发健壮的、有效的解决方案以满足真正的业务需求。本项目通过指导你一步步地进行一个复杂的业务问题——网络教学系统的真正实现和解决,来教会你如何正确地使用Rose为一个实际的软件系统进行面向对象的分析和业务建模。2.1UML和Rose建模概述1.安装前的准备(1)安装Rationalrose,需要支持包括Windows2000或WindowsXP及其以上版本的全系列Windows操作系统。(2)安装Rationalrose,必须先得到rose的安装包。建议从网址:/smzy/down429855.html(RationalRose2018特别版(355MB),本软件来自——数码资源网),读者可自行下载安装一下。2.安装步骤

首先打开Rose的压缩包,再双击启动IBMRationalRose2007的Setup.exe程序,安装过程开始,然后依照安装程序向导的提示操作即可。

2.1.2Rose2007的安装

Rose是菜单驱动式的建模工具,可以通过Rose界面的工具栏使用其常用功能,Rose共支持8种不同类型的UML图:用例图(UseCaseDiagram)和类图(ClassDiagram)时序图(SequenceDiagram)和活动图(ActivityDiagram)协作图(CollaborationDiagram)和状态图(StatechartDiagram)组件图(ComponentDiagram)和配置图(DeploymentDiagram)2.1.3RationalRose的使用

完成系统安装后,我们就可以用Rose建立软件模型了。启动RationalRose的作法是:单击【开始】|【程序】,打开【程序】菜单,找到【IBMRational】后,运行【IBMRationalRoseEnterpriseEdition】,出现IBMRationalRose2007的引导界面,然后,弹出的是如下图2-13所示的“新建模型”对话框。这个对话框用来设置本次启动的初始动作,分为New(新建模型)、Existing(打开现有模型)、Recent(最近打开模型)3个选项卡。

图2-13“新建模型”选项卡1.Rose主界面介绍2.1.3RationalRose的使用其中,第一个选项卡是New,用来选择新建模型时采用的模板。目前ROSE2007所支持的模板有J2EE(Java2EnterpriseEdition)、J2SE(Java2StandardEdition)的1.2、1.3和1.4版,JDK(JavaDevelopmentKit)的1.16版和1.2版,JFC(JavaFundamentalClasses)的1.1版,Oracle8-datatypes(Oracle8的数据类型),RUP(RationalUnifiedProcess),VB6Standard(VB6标准程序),VC6ATL(VC6ActiveTemplatesLibrary,VC6活动模板库)3.0版,以及VC6MFC(VC6MicrosoftFundamentalClasses)的3.0版。由于是暂时不需要任何模板,只需要新建一个空白模板,所以直接单击【Cancel(取消)】按钮,进入RationalRose2007的主界面,如下图2-14所示。2.1.3RationalRose的使用图2-14Rose主界面2.1.3RationalRose的使用Rose的主界面主要由六部分组成:菜单栏——包含了所有可以进行的操作,有File(文件),Edit(编辑),View(视图),Format(格式),Browse(浏览),Report(报告),Query(查询),Tools(工具),Add-Ins(插件),Window(窗口)和Help(帮助)。工具栏——包括了Rose最常用的一些操作,用户可以通过工具栏的按钮快速的进行Rose的操作。同时,用户也可以自行添加或删除工具栏上的按钮。浏览器窗口——作用是把当前模型项目的角色、用例、类、组件以树型视图的方式显示给用户。并允许用户对这些对象进行管理和快速启动模型。文档区窗口——用户可以通过文档区查看或更新模型元素的文档。主要编辑区窗口——可以打开模型中的任何一张图,并利用左边的工具栏对图进行浏览和修改。2.1.3RationalRose的使用使用Rose创建的模型文件后缀名为.mdl,模型的创建的一般步骤分为以下三个步骤:(1)创建模型单击菜单栏中【File】项,选择【New】选项,或者直接单击标准菜单栏中的实现“CreateNewModelorFile”功能的【New】按钮。(2)保存模型ROSE模型的保存类似其它应用程序,可以通过菜单或工具栏来实现。

(3)发布模型使用ROSE可以将所建立的模型直接发布到Web上,使更多的人能浏览模型。作法是:单击菜单栏中的【Tools】项,选择【WebPublisher...】选项。

2ROSE建模简介2.1.3RationalRose的使用

3设置全局选项字体和颜色等选项用于所有模型对象——类、用例、接口、包等。我们可以通过设置全局选项来进行字体和颜色的设置。全局选项可以通过单击菜单中的【Tools】|【Options】进行设置,如图2-19所示的属性设置界面。图2-19属性设置界面2.1.3RationalRose的使用需求是系统必须符合的条件或具备的功能。需求问题是引起软件项目的高风险率的最主要原因,例如:缺乏对需求的分析;对需求的不正确理解;需求的不完整性及需求的变化等等。而引入用例图建模则是由软件需求分析到最终实现的第一步。用例图(UseCaseDiagram)描述人们如何使用一个系统。用例模型也称需求模型,是软件需求分析结果的可视化表示,它是所有用例、参与者以及相关关系的集合,是关于系统功能和环境的模型。2.2.1用例图中的元素用例图包含六个元素,分别是:参与者(Actor)、用例(UseCase)、关联关系(Association)、包含关系(Include)、扩展关系(Extend)以及泛化关系(Generalization)。用例图模型如下图2-22所示,在UML中,参与者用名字写在下面的人形图标来标识,用例用椭圆来表示,连线表示它们之间的关系。图2-22用例模型元素2.2用例图建模方法

1.用例图(UseCaseDiagram)确定系统中所包含的参与者、用例及参与者与用例之间的关系,用例图是基于系统要实现的功能的一个可视化描述。

(1)参与者(Actor)(2)用例(UseCase)2.角色,用例之间的关系在用例模型中,其关系主要包括三种:参与者与用例之间存在关联关系参与者之间的关系用例之间的关系2.2.1用例图中的元素

图2-23参与者与用例之间的关联关系图2-24角色间的泛化关系1

图2-25角色之间的泛化关系2图2-26用例之间的泛化关系2.2.1用例图中的元素

图2-27用例间的包含关系图2-28用例间的扩展关系2.2.1用例图中的元素在UML建模中,可以使用用例图对系统的语境和需求进行建模。1.对语境建模

对系统语境建模应当遵循以下的方法:(1)用以下几组事物来识别系统外部的参与者:需要从系统中得到帮助的组;执行系统功能时所必须的组;与外部硬件或其它软件系统进行交互的组;为了管理和维护而执行某些辅助功能的组。(2)将类似的参与者组织成泛化或特殊化的结构层次。(3)在需要加深理解的地方,为每个参与者提供一个构造型。(4)将参与者放入到用例图中,并说明参与者与用例之间的通信路径。例如:某大学的图书管理信息系统的语境图,见下面图2-29所示。图2-29对系统语境建模2.2.2用例图建模技术2.对需求建模对系统需求建模可以参考以下的方法。(1)识别系统外部的参与者来建立系统的语境。(2)考虑每一个参与者期望的行为或需要系统提供的行为。(3)把公共的行为命名为用例(4)确定供其他用例使用的用例和扩展其他用例的用例。(5)在用例视图中对用例、参与者和它们之间的关系进行建模。例如:软件工程课程项目教学的用例图,参考图2-30所示。图2-30项目教学用例图2.2.2用例图建模技术任务1.创建角色任务2.删除角色任务3.创建用例任务4.删除用例任务5.设置编辑区工具栏2.2.2用例图建模技术画好用例图(UseCaseDiagrams)是软件需求到实现的第一步。用例图显示系统中的用例与角色及其相互关系。用例是系统提供的高级功能块,角色是与所建系统交互的对象。1.确定系统的功能需求和角色2.“网络教学系统”中用例建模分析从分析可以看出,本系统的参与者主要有三个:学生、教师、系统管理员,根据每个角色参与的功能,我们可以针对每个功能模块建立用例图如下。学生可以登录网站浏览信息、查找信息和下载文件。用例建模如下图2-34所示:图2-34学生参与的用例图2.2.3“网络教学系统”中用例图分析教师可以登录网站输入课程简介、上传课件文件、发布消息、修改和更新消息。用例建模如图2-35所示:系统管理员可以对页面维护以及批准用户的注册申请。用例建模如下图2-36所示:对系统总体功能进行用例建模,如图2-37所示:图2-35教师参与的用例图图2-36系统管理员参与的用例图图2-37系统用户参与的总的用例图2.2.3“网络教学系统”中用例图分析3.建立用例规约(UseCaseSpecification)

当建立了系统总体用例模型之后,还需要对用例添加说明信息(即用例规约),定义其属性。下面以网络教学系统学生模块中的“学生注册确认”用例为例,创建它的用例规约。提示:尤其注意用例图不是用例模型的全部,用例模型是由用例图和每一个用例的详细描述构成的。

在用例“学生注册确认”上单击鼠标右键,选择菜单【OpenSpecification...】,从而打开相应的对话框(参考图2-38所示)。用户可以在用例属性设置标签中对一些属性进行设置:如:Name(名称):设置用例的名称;Stereotype(类型):用例的类型;Rank(级别):对用例进行层次划分;Documentation(文档):用例规约描述。图2-38用例属性设置窗口2.2.3“网络教学系统”中用例图分析1.操作要求(1)分析学生管理信息系统的需求,确定系统中的参与者和主要用例,画出用例视图,并试着对不同角色所实现的功能进行描述(参照书中的提示)。(2)自己选定一个面向对象系统绘制其角色用例图,并试着对不同角色所实现的功能进行描述(参照书中的提示)。2.操作提示(1)学生管理信息系统可以从网上搜集或从其他参考书上查找。(2)也可以选择自己熟悉或感兴趣的面向对象系统分角色完成上面操作要求。2.2.3“网络教学系统”中用例图分析类图(Classdiagram)、对象图(ObjectDiagram)和包图显示了系统模型的静态结构,特别是模型中存在的类、类的内部结构以及它们与其他类的关系等。类图由许多静态说明性的模型元素(例如一组类及其它们之间的关系)组成。类图可以组织在包中,并属于包,仅显示特定包中的相关内容。本节我们将介绍如何在RationalRose的逻辑视图中,创建类图、对象图以及如何将类组织成包。2.3.1类图建模方法类(class)是对一组具有相同属性、操作、关系和语义的对象的描述。类是对事物的抽象。类主要是由名称、属性和操作组成。类的表示,如图2-39所示:图2-39类的表示2.3类图和对象图建模方法类和类之间的关系常用的有6种:依赖关系(Dependency),泛化关系(Generalization),关联关系(Association),聚合关系(Aggregation),组成关系(Composition),实现(Realization)。如上图2-40所示:图2-40类之间的关系符号图2.3.1类图建模方法任务1:创建类图任务2:添加和删除类任务3:类属性的设置任务4:类图建模方法1.为系统词汇建模(图2-42

)2.为简单的协作建模3.为一个逻辑数据库模式建模图2-42为系统词汇建模2.3.1类图建模方法对象是现实世界中可以区别的存在。类是现实世界中一个或多个对象的行为和属性的抽象,对象是类的实例。对象图(objectdiagram)则显示了一组对象和他们之间的关系。使用对象图来说明数据结构,类图中的类或组件等实例的静态快照。对象图的表示方法:对于对象图来说无需提供单独的形式。类图中就包含了对象,所以只有对象而无类的类图就是一个“对象图”。对象图也是一种结构图,如图2-43所示,用来呈现系统在特定时刻的对象(object),以及对象与对象之间的链接(link)。

图2-43链接2.3.2对象图建模方法对象和类共用矩形图示,不过对象名称下方有底线,类名称下方没有底线,如上图2-44所示。对象名称经常被省略,所以常见带有冒号的类名称,这其实是个缺省类名的对象。图2-44类与对象任务1:对象图建模方法(1)确定参与交互的各个对象的类,可以参照相应的类图或交互图。(2)确定类之间的关系(依赖、关联、泛化和实现等)。(3)针对交互在某特定时刻各个对象的状态,建立相应的对象模型。(4)绘制对象的关键状态及关键对象之间的连接关系,并精化对象模型图。例如,参考图2-42的建模方法,分析图2-45银行网络系统中对象,建立对象模型。2.3.2对象图建模方法图2-45银行网络管理系统图2-46银行网络系统对象图2.3.2对象图建模方法当为较复杂的系统建模时,使用包是最为有效的建模方法。包在很多方面与类相似,但在对大系统建模时,特别要注意区别包与类。类是对问题领域或解决方案的事物的抽象,包是把这些事物组织成模型的一种机制。任务1:包图的添加任务2:包图的删除

任务3:包图建模方法(1)进行系统分析,把概念上和语义上相近的模型元素融入一个包中。(2)对于每一个包,标出其模型元素的可见性(和类一样主要包括:Public、Private和Protected三种访问方式,它们分别用“+”、“-”和“#”来表示)。(3)确定包与包之间的依赖和泛化关系等。(4)绘制并精化包图。2.3.3包图概念及建模例如:图书管理系统的包图如图2-49所示:图2-49图书管理系统的包图提示:标识和建立包间的相关联系规则是使得包间不存在双方相关性,即避免包紧密耦合在一起,独立性要强。2.3.3包图概念及建模

1.类图的生成类图是系统设计的核心部分,明确系统中基本的类以及相互的关系有助于用户分析系统下一步的工作——即创建系统中的包图,而且建立好类图是进入系统编码阶段的重要基础。(1)参与者相关的类:如图2-50所示。图2-50参与者相关的类图2.3.4“网络教学系统”静态视图分析(2)一些其他的类及各个类之间的关系:一些其他的类:如图2-51所示。图2-51其它类图

2.3.4“网络教学系统”静态视图分析各个类之间的关系:

如图2-52所示。图2-52各实体类之间的关系2.3.4“网络教学系统”静态视图分析(3)数据库实体类:图2-53数据库实体类图2.3.4“网络教学系统”静态视图分析(4)网络教学系统类图和包图案例分析

图2-54网络教学系统包图2.类与代码的对应关系在RationalRose中,根据实体类可以使用正向工程生成与之对应的代码。正向工程是指从Rose模型中的一个或多个类图生成Java源代码的过程。逆向工程(ReverseEngineer)是分析现有系统的代码(如Java代码等),然后将其转换成Rose模型的类和组件的过程。2.3.4“网络教学系统”静态视图分析1.操作要求(1)寻找并抽象出学生管理信息系统的参与者相关的类图和实体类关系图,并试着对不同角色所实现的类功能进行描述(参照书中的提示)。(2)寻找并抽象出学生管理信息系统的数据库实体类图,然后绘制出系统包图。(3)通过分析学生管理信息系统的用例图,试着寻找该系统的边界类和控制类。2.操作提示(1)以小组为单位进行讨论,分析系统的实体类、边界类和控制类。(2)也可以选择自己熟悉或感兴趣的面向对象系统分角色类和其他实体类完成上面操作要求。2.3.4“网络教学系统”静态视图分析在UML的表现上,动态模型主要是建立系统的交互图(InteractionDiagram)和行为图。交互图包括时序图和协作图;行为图包括状态图和活动图。交互图描述了一个交互,它由一组对象和它们之间的关系组成,并且还包括在对象之间传递的消息。2.4.1时序图建模及案例分析时序图(SequenceDiagram),也被称为顺序图,是显示(强调)对象之间消息按时间顺序排列的交互作用的图。任务1:一个简单实例:任务2:时序图建模技术要点

(1)设置交互的语境,这些语境可以是系统、子系统、操作、类、用例和协作的一个脚本。(2)通过识别对象在交互中扮演的角色,根据对象的重要性,将其从左向右的方向放在时序图中。(3)设置每个对象的生命线。一般情况下,对象存在于交互的整个过程,但它也可以在交互过程中创建和撤销。2.4用Rose设计动态模型(4)从引发某个交互的消息开始,在生命线之间按自上而下的顺序画出随后的消息。(5)设置对象的激活期,这可以可视化实际计算发生时的时间点、可视化消息的嵌套。(6)如果需要设置时间或者空间的约束,可以为每个消息附上合适的时间和空间的约束。(7)给某控制流的每个消息附上前置条件或者后置条件,这可以更详细地说明这个控制流。任务3:网络教学系统的时序图建模:(1)系统管理人员管理网站的时序图,如图2-58所示:图2-58系统管理人员管理网站的时序图2.4用Rose设计动态模型(2)用户登录系统的时序图,如上图2-59所示:(3)学生下载文件的时序图,如下图2-60所示:图2-59用户登录系统的时序图图2-60学生下载文件的时序图2.4用Rose设计动态模型2.4.2协作图建模及案例分析协作图(CollaborationDiagram)是描述对象交互作用相关的信息的图。协作图的一个用途是表示类操作的实现。任务1:时序图与协作图的比较:任务2:时序图与协作图的互换:任务3:协作图建模要点:(1)设置交互的语境,语境可以是系统、子系统、操作、类、用例或用例的脚本。(2)通过识别对象在交互中所扮演的角色,开始绘制协作图,把这些对象作为图的顶点放在协作图中。(3)在识别了协作图对象之后,为每个对象设置初始值,如果某对象的属性值、标记值、状态或角色在交互期发生变化,则在图中链的末路上附上一个路径构造型,以便了说明一个对象如何与另一个对象连接,例如构造型<<local>>,表示指定对象对发送方而言是局部的。

(4)根据对象间的关系开始确定对象间的链接。一般先确定关联的链接,因为这是最主要的,它代表了对象之间结构的链接。2.4用Rose设计动态模型(5)从引起交互的消息开始,适当地设置其顺序号,然后将随后的每个消息附到适当的链上。(6)如果需要说明时间或空间的约束,可以用适当的时间或空间约束来修饰每个消息。(7)在建模中,如果想更详细地描述这个控制流,可以为交互过程的每个消息附上前置条件和后置条件。任务4:网络教学系统的协作图建模:(1)系统管理人员管理网站的协作图,如图2-62所示:图2-62系统管理人员管理网站的协作图2.4用Rose设计动态模型(2)系统管理人员管理网站的协作图,如上图2-63所示:(3)学生下载文件的协作图,如图2-64所示:图2-63用户登录系统的协作图图2-64学生下载文件的协作图1.操作要求(1)绘制学生管理信息系统的学生登录系统的时序图和协作图,并对不同对象(类)的时序及协作情况进行描述(参照书中的提示)。(2)绘制自选面向对象系统的时序图和协作图,并对不同对象(类)的时序及协作情况进行描述(参照书中的提示)。2.4用Rose设计动态模型2.4.3状态图建模及案例分析状态图(StatechartDiagram),也称为状态机,描述了特定类或组件在其整个生命周期中不断变化时的行为。状态机是展示状态与状态转换的图。

任务1:一个简单实例:任务2:状态图建模要点:

(1)识别一个要对其生命周期进行描述的参与行为的类;(2)对状态建模,即确定对象可能存在的状态;(3)对事件建模,即确定对象可能存在的事件;(4)对动作建模,即确定当转变被激活时,相应被执行的动作;(5)对建模结果进行精化和细化。任务3:网络教学系统的状态图建模:网络教学系统的系统状态图,如图2-69所示2.4用Rose设计动态模型图2-69网络教学系统的系统状态图2.4用Rose设计动态模型2.4.4活动图建模及案例分析活动图(ActivityDiagram)用来显示活动动作及其结果,主要描述操作(方法)实现中所完成的工作及用例实例或对象中的活动。活动是某件事情正在进行的状态。它在状态机中表现为一个由一系列动作组成的非原子的执行过程。任务1:一个简单实例:用RationalRose建立羽毛球馆打羽毛球的活动图,如上面图2-71所示。任务2:活动图建模要点:在建模的过程中,我们通常通过以下步骤实现:识别要对其工作流描述的类或对象。确定工作流的初始状态和终止状态,明确工作流的边界。对动作状态或活动状态建模。对动作流建模。对对象流建模。对建立的模型进行精化和细化。2.4用Rose设计动态模型任务3:网络教学系统的活动图建模:(1)用户登录系统的活动图,如图2-72所示:(2)教师上传课件的活动图,如上图2-73所示:(3)系统管理员进行网站维护的活动图,如图2-74所示:

图2-72用户登录系统的活动图图2-73

教师上传课件的活动图2.4用Rose设计动态模型图2-74系统管理员进行网站维护的活动图1.操作要求(1)阅读如图2-69所示的网络教学系统的系统状态图,试着对不同状态间的转换及状态进行描述(参照书中的提示)。(2)阅读如图2-72所示的网络教学系统的用户登录系统的活动图,试着对不同活动间的转换及活动进行描述(参照书中的提示)。(3)绘制学生管理信息系统的用户登录的状态图和活动图,并对不同状态间的转换及活动进行描述(参照书中的提示)。2.4用Rose设计动态模型2.5.1组件图组件图(componentdiagram)也称为构件图,它描述了软件的各种组件和它们之间的依赖关系。组件图是用来建立系统构件组织实际结构和它们之间依赖关系的模型,组件之间的依赖关系用带箭头的虚线表示。组件(component)是具有一致的、定义良好的界面的可执行软件模块。例如,进程内组件(.dll)、进程外组件(.exe)、C++中的源代码:头文件(.h)和实现文件(.cpp)、Activex、Applet和可执行程序、物理数据库等。组件图中通常包含3个元素:组件(Component)、接口(interface)、依赖关系(dependency)。组件可以通过组件中的类实现接口。组件之间的依赖关系的模型如图2-76所示,表示客户端组件依赖于提供者组件。2.5组件图和配置图2.5组件图和配置图

图2-75组件之间的依赖关系

组件图表示系统的静态实现视图,即类图和包图对软件的逻辑设计建模,而组件图用于对系统的实现视图建模。例如:图2-76所示是图书馆业务对象的组件图。图2-76图书馆业务对象组件图2.5.2配置图配置图(deploymentdiagram)也称为部署图,是描述系统中硬件和软件的物理配置情况的图形,显示系统运行阶段的物理硬件(节点)以及节点上的组件、进程和对象的配置情况。其中组件表示运行阶段的代码单元,进程是一个正在执行的程序,配置情况展示系统运行时刻的系统体系结构。在UML中,配置图中通常包含3个元素:节点(Node)、组件和连接(关系)。节点是系统运行时代表处理或计算资源的物理元素。在实际的建模过程中,可以把节点分为两种类型:(1)处理器(processor):是指能够执行软件组件、具有计算能力的节点,如工作站和各种服务器,如图2-77(a)所示。(2)设备(device):设备是没有计算能力的节点,通常情况下都是通过其接口为外部提供某种服务。例如打印机、扫描仪或各种终端等都是设备,如图2-77(b)所示。2.5组件图和配置图在UML中,节点用一个立方体来表示,每一个节点都必须有一个区别于其他节点的名称。节点的名称是一个字符串,位于节点图标的内部,节点的名称通常有3种:简单名、路径名和细节名(如Server:IS服务器)。【例2-5】客户机/服务器系统配置图如图2-78所示。2.5组件图和配置图图2-77节点图图2-78客户机/服务器系统配置图一、目的与任务二、内容、要求与安排方式1、实验内容与要求:实验一RationalRose建模入门(2课时)实验二类图和对象图建模(2课时)实验三动态模型建模(4课时)实验四Rose其它模型建模(2课时)2、实验安排方式本实验为开放实验,各组可同时进行实验,每组5-8人。三、思考题 (1)以小组为单位进行讨论和建模,分析系统会有哪些方面的不同建模图。(2)也可以选择自己熟悉或感兴趣的面向对象系统绘制出系统的各种建模图。Rose2007建模工具上机指南【项目实训指导】

本章注重学习的渐进性和实践性,对UML每一种图的讲解均主要围绕“网络教学系统”案例,采用“图的用途——图的概念——图的组成——图的创建技术——图的建模实例及分析”的方式进行,从而完整地把握每一种UML图,并通过建模的具体案例,帮助读者达到学以致用的目的。此外,每节附有“课堂实践”操作习题,着重培养读者的动手能力,使读者在练习过程中能快速提高实际应用水平。本章小结谢谢观看学习内容3.1项目的可行性分析

3.2系统流程图3.3项目的需求分析3.4结构化分析方法3.5案例分析——网上购书系统的可行性分析报告及需求分析报告软件项目的定义项目三软件项目的定义项目三本章要点理解可行性分析的任务;了解成本/效益分析;熟悉需求分析的步骤;理解结构化分析法的基本思想;掌握E-R图、数据流图和数据字典的使用。3.1项目的可行性分析项目三在对软件项目进行开发之前,我们必须明确该软件项目开发的任务、以及完成任务的价值,以此制定出完成任务的计划,从而避免软件开发中可能出现的时间、人力、资源和经费的浪费。因此,对软件项目进行可行性分析是软件开发前的必要步骤。软件生存周期的第一个时期是软件定义时期,它包括问题的定义和可行性分析两个阶段。其工作流程见图3-1所示。3.1项目的可行性分析项目三图3-1软件定义时期的工作流程3.1项目的可行性分析项目三问题定义是软件定义时期的第一个阶段,其目的是要弄清楚用户需要计算机解决什么样的问题,以及实现该软件项目所需的资源和经费。该阶段的主要任务是在向用户调查的基础上,形成问题定义报告,该报告被用户认可后,即可作为下一步工作的依据。问题定义的内容包括:问题的背景,开发系统的现状,开发系统的条件和理由,总体要求,环境要求等。问题定义报告应描述的简洁易懂,通常包括以下几项内容:项目名称、问题描述、项目目标(解决现行系统存在的问题)、项目范围和可行性分析。3.1.1问题定义3.1项目的可行性分析项目三问题定义结束后,就进入了软件定义时期的第二个阶段,可行性分析。可行性分析的目的在于用最小的代价在尽可能短的时间内确定该软件项目是否能够开发,是否值得开发。一般情况下,主要从四个方面论证系统开发的可行性。3.1.2可行性分析的任务3.1项目的可行性分析项目三1. 技术可行性技术可行性即分析技术方面的各种因素,分析现有技术是否能够实现该系统的各项功能,能否解决系统中的各种难题;分析相关技术的发展是否支持该系统;现有的技术人员是否能胜任;开发所需要的软件与硬件资源是否具备;开发的风险,在给定的时间、功能、技术性能和经费的约束范围内,能否设计并实现系统的功能和性能。3.1.2可行性分析的任务3.1项目的可行性分析项目三2. 经济可行性所谓经济可行性,是指分析开发该软件项目有没有合理的经济效益,多久能收回成本,因此要对经济的合理性进行评价。3. 运行可行性运行可行性是指为新系统规定的运行方案是否可行。如果新系统是建立在原来已担负其它计算机系统上的,就不能要求它在实时在线状态下运行,以免与原来的任务相矛盾;软件能否被有效的使用;开发过程中能否得到用户方的必要支持;软件使用所带来的影响用户是否能接受。3.1.2可行性分析的任务3.1项目的可行性分析项目三4. 法律可行性法律可行性主要分析包括该软件项目是否存在侵权、妨碍等责任问题,该软件项目的运行方式在用户组织内是否行得通,现有管理制度、人员素质和操作方式是否可行等。3.1.2可行性分析的任务3.1项目的可行性分析项目三可行性分析一般可按照以下步骤进行:1.确定项目规模和目标2.分析目前使用的系统3.建立新系统的高层逻辑模型4.导出和评价各种方案5.推荐可行的方案6.编写可行性分析报告3.1.3可行性分析的步骤3.1项目的可行性分析项目三1. 成本分析软件开发的过程中,会不断的产生成本。若成本估算错误,会导致实际成本远远超出预算,从而导致软件项目开发失败。(1)人员成本①代码行法([例题3.2])软件成本=每行代码的平均成本×代码行数②任务分解法([例题3.3])成本/单独任务=完成该项任务所需人力(人月)×每人每月平均工资③自动估计成本法采用自动估计成本的软件工具,以大量历史数据为基础,估计出比较客观的结果。(2)资源成本(3)其他成本3.1.4成本/效益分析3.1项目的可行性分析项目三2. 效益分析(1)货币的时间价值设年利率为i,现已存入P元,则n年后可得到货币为F=P(1+i)n即为P元钱在n年后的价值。反之,若n年后收入F元,则现在投资的货币为P=F/(1+i)n(2)投资回收期(3)纯收入纯收入=总收入折现值-总成本折现值3.1.4成本/效益分析3.2系统流程图项目三3.2.1系统流程图的作用系统流程图是描述物理系统的工具。所谓物理系统,就是一个具体实现的系统,也就是描述一个单位、组织的信息处理的具体实现的系统。在可行性分析中,可以通过画出系统流程图来了解要开发的项目的大概处理流程、范围和功能等。系统流程图不仅能用于可行性分析,还能用于需求分析阶段。系统流程图用图形符号以黑盒子形式描绘系统里面的每个部件。系统流程图表达的是信息在系统各部件之间流动的情况,而不是对信息进行加工处理的控制过程。3.2系统流程图项目三3.2.2系统流程图的符号3.2系统流程图项目三3.2.2系统流程图的符号3.2系统流程图项目三3.2.3系统流程图示例例3.4某校教务处的教师排课和学生选课的系统流程图如图3-2所示,教师先根据课程信息排课,学生根据选课信息进行选课,课程信息经过教务处审核后生成选课信息表,学生、辅导员可以通过选课查询来确认选课结果。3.3项目的需求分析项目三软件需求分析就是分析该软件用户的需求是什么,完全理解用户对软件需求的完整功能,确认用户软件功能需求,建立可确认的、可验证的一个基本依据。软件需求分析的主要实现目标:1.对实现软件的功能做全面的描述,帮助用户判断实现功能的正确性、一致性和完整性,促使用户在软件设计启动之前尽可能周密、全面的思考软件需求。2.了解和描述软件实现所需的全部信息,为软件设计、确认和验证提供一个基准。3.为软件管理人员进行软件成本计价和编制软件开发计划书提供依据。3.3.1需求分析的概念3.3项目的需求分析项目三需求分析的基本任务是准确的回答“系统必须做什么”这个问题,也就是对目标系统提出完整、准确、清晰、具体的要求。在需求分析阶段结束之前,系统分析员应写出软件需求规格说明书,以书面的形式准确的描述软件需求。需求分析的具体内容可以归纳为六个方面:软件的功能需求,软件与硬件或其他外部系统接口,软件的非功能性需求,软件的反向需求,软件设计和实现上的限制,阅读支持信息。3.3.2需求分析的任务3.3项目的需求分析项目三3.3.3需求分析的步骤3.3项目的需求分析项目三3.3.3需求分析的步骤1.获取需求需求获取是在问题及其最终解决方案之间架设桥梁的第一步。获取需求的一个必不可少的结果是对项目中描述的客户需求的普遍理解。一旦理解了需求,分析人员、开发人员和客户就能探索出描述这些需求的多种解决方案。(1)与用户进行交流。(2)现有产品或竞争产品的描述文档。(3)当前系统的问题报告和改进要求。(4)市场调查和用户问卷调查。(5)观察用户如何工作。3.3项目的需求分析项目三3.3.3需求分析的步骤2.分析需求,建立模型系统分析员对获取到的需求进行分析和综合,建立系统的逻辑模型。逻辑模型通常由数据流图、E-R图表示,使我们更清楚的认识用户的需求。3.编写需求规格说明书将已经过分析的需求清晰、全面、系统、准确地描述成为正式的文档,这一步定义需求的工作就是编写需求规格说明书。为用户、设计人员的交流提供方便,还可作为控制软件开发进程的依据。4.需求评审、验证为了确保已定义的需求(需求规格说明)准确无误,并能为客户(或用户)理解和接受,需要对其进行严格的评审和验证,以保证其正确性、一致性、完备性、准确性和清晰性。3.4结构化分析方法项目三结构化分析(StructuredAnalysis,简称SA法)是面向数据流进行需求分析的方法,采用自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。3.4.1结构化分析概述3.4结构化分析方法项目三3.4.2结构化分析步骤3.4结构化分析方法项目三

温馨提示

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

评论

0/150

提交评论