版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/授课专业:信息与计算科学授课教师:江志华实验学时:16学时数学与信息科学学院2012年2月实验1软件工程概念与相关工具1.1 软件工程的计算环境(实验估计时间:90分钟)1.1.1背景知识软件工程学主要研究如何以较少的代价获得高质量的软件,而要到达这个目的,就必须研究软件开发方法和软件开发工具。软件开发方法就是开发软件的标准化方法。软件工具是指能支持软件生存周期中某一阶段(如系统定义、需求分析、设计、编码、测试或维护等)的需要而使用的软件系统;软件开发环境则是面向软件整个生存周期,为支持各个阶段的需要,在根本硬件和宿主软件的基础上使用的一组软件系统。软件工具和软件开发环境都是软件工程的重要支柱,对于提高软件生产率,改良软件质量,以及适应计算机技术的迅速开展有着越来越大的作用。从20世纪70年代末开始,专家们就致力于软件开发自动化工具的研究,并逐步形成了应用于软件过程的集成的工程支撑环境(IntegratedProjectSupportEnvironment)和计算机辅助软件工程(CASE,Computer-AidedSoftwareEngineering)工具。在此基础上建立集成式软件开发环境,全面支持软件开发过程,以期实现软件设计过程的自动化或半自动化。1.1.2实验目的1)理解软件工程的根本概念,熟悉软件、软件生存周期、软件生存周期过程和软件生存周期各阶段的定义和内容。2)通过Internet搜索与浏览,了解网络环境中主流的软件工程技术网站,掌握通过专业网站不断丰富软件工程最新知识的学习方法,尝试通过专业网站的辅助与支持来开展软件工程应用实践。1.1.3工具/准备工作在开始本实验之前,请预习教科书第一章的相关内容。需要准备一台带有浏览器、能够访问因特网的计算机。1.1.4实验内容与步骤1)请查阅有关资料,给“软件〞下一个权威性的定义:这个定义的来源是:2)“软件生存周期〞是软件工程技术的重要基础,是对软件的长远开展的看法,这种看法把软件开始开发之前和软件交付使用之后的一切活动都包括在软件生存周期之内。请查阅有关资料,给出“软件生存周期〞的定义:这个定义的来源是:3)“软件生存周期过程〞概念进一步完善了关于软件生存周期的定义,其主要内容是:这个定义内容的来源是:4)由于工作对象和范围的不同以及经验的不同,对软件生存周期过程中各阶段的划分也不尽相同。但是,这些不同划分中有许多相同之处。相关的软件工程国家标准把软件生存周期划分为8个阶段,这8个阶段是:①②③④⑤⑥⑦⑧你认为把软件生存周期划分为不同阶段的意义何在:5)上网搜索和浏览,了解软件工程技术的应用情况,看看哪些网站在做着软件工程的技术支持工作?并将搜索结果记录下来。提示:一些软件工程专业网站的例子包括(软件工程专家网)(系统分析&软件工程网)(软件工程研究中心)(火龙果软件工程-UML软件工程组织)你习惯使用的网络搜索引擎是:你在本次搜索中使用的关键词主要是:表1-1软件工程专业网站实验记录网站名称网 址内容描述在本实验中将你感觉比较重要的2个软件工程专业网站记录下来:①网站名称:②网站名称:综合分析,你认为各软件工程专业网站当前的技术(如培训内容)热点是:①名称:主要内容:②名称:主要内容:③名称:主要内容:1.2 工具、环境与CASE(实验估计时间:90分钟)1.2.1背景知识软件工程的主要目标是提高软件生产率,改善软件质量和降低软件本钱,而这些目标的实现必须依靠软件工具、软件开发环境和计算机辅助软件工程(CASE)的广泛应用。1.软件工具软件工具是“可用来帮助和支持软件需求分析、软件开发、测试、维护、模拟、移植或管理等目的而编制的计算机程序或软件。〞它一般是为专门应用而开发,其主要目的是为了提高软件生产率和改善软件的质量。如今,软件工具重视用户界面的设计,不断地采取新理论和新技术,正由单个工具向多个工具集成的方向开展,且注重工具间的平滑过渡和互操作性。软件工具的商品化推动着软件产业的开展,而软件产业的开展,又增加了对软件工具的需求,促进了软件工具的商品化进程。软件工具的范围很广,它既包括比较成熟的传统工具,如操作系统、编译程序、解释程序和汇编程序等,又包括支持软件生存周期各阶段,如需求分析、设计、编码、测试、维护等的开发和管理工具。例如,一项分类标准把软件工具分为13类,它们是系统模拟和模型工具、需求追踪工具、需求分析工具、设计工具、编码和单元测试工具、测试和集成工具、文档工具、工程管理工具、配置管理工具、质量保证工具、度量工具、软件再用工具、其他工具。2.软件开发环境软件开发环境是指在计算机根本软件的基础上,为了支持软件的开发而提供的一组工具软件系统。1985年第八届国际软件工程会议提出的关于“软件开发环境〞的定义是:“软件开发环境是相关的一组软件工具集合,它支持一定的软件开发方法或按照一定的软件开发模型组织而成。〞一般说来,软件开发环境都具有层次式的结构,例如可区分为四层:1)宿主层:它包括根本宿主硬件和根本宿主软件。2)核心层:包括工具组、环境数据库、通信设施和运行时刻支持设施。3)根本层:包括一组工具,如编译程序、编辑程序、调试程序、连接程序和装配程序等。这些工具都是由核心层来支持的。4)应用层:以特定的根本层为基础,包括一些补充工具,借以更好地支持各种应用软件的研制。按内容分,软件开发环境一般由环境数据库、接口软件和工具组等构成。1)环境数据库。这是软件开发环境的核心,其中存放的信息有被研制软件在其生存周期中所必需的信息和软件研制工具的有关信息等。例如,它把经过各种软件工具加工后的软件产品和半成品(如各种文件、源代码及测试数据)存入库内,以便根据需要进行查询、修改或输出等。在环境数据库中,可以分别标识的信息组称为对象;作为一组相关的版本而存在的一组对象称为版本组。把一个工程中各个不同的“对象组〞组合起来,就可以构成各种不同的软件配置。2)接口软件。包括系统与用户的接口、子系统和子系统之间的接口。开发环境要求所有的接口都具有统一性。例如,为了实现用户和各种系统的通信,要求有统一调用方式。3)工具组。软件开发环境中的工具彼此有交互作用。工具组中的各个工具被设计成由一些根本功能成分组成。这些成分可以组合,供用户选用,并且可通过环境数据库进行通信。语言工具。它一般提供编译(或解释)程序、连接装配程序、调试程序、静态及动态分析程序等一系列语言支撑工具。也有的系统支持非过程语言的运行。质量保证工具。目前大量使用的仍是静态、动态测试技术以及各种形式的评审技术。与形式方法相联系的程序证明和验证技术已为许多专家所重视。需求分析及设计工具。主要由文本编辑工具、图形工具及一致性检验工具等支持。配置管理工具。对于不同用户或不同的硬件配置,一个系统往往需不同的软件配置;即使同一软件也有不同的版本;加上软件产品的修改需要进行严格的管理等原因,软件的配置管理已成为软件生产管理的重要课题。软件开发环境的开展方向是集成化的软件工程环境,即软件生存周期中各个阶段的开发环境(工具与支持系统)集成为一致的用户接口,包括制定各种标准接口。以下一些名称具有相同或类似的含义:软件开发环境(SDE)、软件工程环境(SEE)、软件支持环境(SSE)、工程支持环境(PSE)、自动开发环境(ADE)、集成化程序设计环境(IPE)、工具盒(Toolbox)、工具箱(Toolkit)。3.计算机辅助软件工程(CASE)CASE是一组工具和方法的集合,用来辅助软件开发生命周期各阶段进行软件开发,它是软件开发管理、软件开发方法、软件开发环境和软件工具等方面研究和开展的产物,CASE把软件开发技术、软件工具和软件开发方法集成到一个统一的框架中,并且吸取了计算机辅助设计(CAD)、软件工程、操作系统、数据库、网络和许多其他计算机领域的原理和技术。因而,从产业角度讲,CASE是种类繁多的软件开发和系统集成的产品及软件工具的集合。CASE可以简单到单个工具,它支持某个特定的软件工程活动,或者复杂到一个完整的环境,包含了工具、数据库、人员、硬件、网络、操作系统、标准以及许多其他部件。CASE的构造积木块如图1-1所示。每个构造积木块是形成其上一层的基础,而CASE工具位于构造积木块的顶部。环境体系结构由硬件平台和操作系统(包括网络和数据库管理软件)构成,铺设了CASE的基石。但是,CASE环境本身要求其他的构造积木块。一组可移植效劳提供了CASE工具及其集成框架与环境体系结构间的连接桥梁。集成框架是一组专用程序,它们使得单个的CASE工具可以和其他工具相互通信,能够创立工程数据库,以及使终端用户(软件工程师)看到同样的软件界面。可移植效劳允许CASE工具及其集成框架能够跨越不同的硬件平台和操作系统使用,而不需要大量的相应修改。某些CASE工具保持“点解决方案〞,即工具被用于辅助某个特定的软件工程活动(如分析建模),但并不直接和其他工具通信,不关联到一个工程数据库,也不是某个集成CASE环境的一局部。这种方案虽然不很理想,但CASE工具仍可以被有效地使用。对CASE工具的分类,可以根据功能、它们被作为管理工具还是技术工具、它们在软件工程过程各个步骤中的使用、支撑它们的环境体系结构(硬件和软件)、或者它们的起源或价格来划分。按使用的功能来进行分类,主要有:信息工程工具。过程建模和管理工具。工程方案工具。风险分析工具。工程管理工具。需求跟踪工具。度量和管理工具。文档工具。系统软件工具。质量保证工具。数据库管理工具。软件配置管理工具。分析和设计工具。原型和仿真工具。界面设计和开发工具。原型工具。编程工具。集成和测试工具。静态分析工具。动态分析工具。测试管理工具。客户/效劳器测试工具。再工程工具。4.GB/T15853—1995软件支持环境GB/T15853—1995《软件支持环境》规定了软件支持环境(softwaresupportenvironment)的根本要求,软件开发支持环境的内容及实现方法,以及对软件生存期支持部门软件支持能力的具体要求,适用于软件支持环境的设计、建立、管理和评价。GB/T15853—1995定义的软件支持环境由一个宿主机系统,加上其他有关的设备和规程而构成。它能对目标机系统(或对功能和物理上相关的一组目标机系统)的软件提供全面的支持,包括性能评价、系统与软件生成、开发与修改测试、模拟与仿真、培训、软件集成、配置管理、软件的运行分配。软件支持环境又分为软件开发支持环境和软件生存期支持环境两种类型。前者是由软件开发单位确定、并经任务委托单位认可的资源,用于支持合同工程中的软件需求;而后者是由软件生存期支持部门使用的(属于任务委托单位的)资源,用于为指定的目标机系统提供整个生存期内的软件支持。1.2.2实验目的1)熟悉软件工具、软件开发环境以及CASE工具的根本概念及其分类。2)了解主流的软件工具和软件开发环境产品。3)通过Internet搜索与浏览,了解软件工具、软件开发环境和CASE工具的开展与应用状况,进一步掌握通过专业网站丰富软件工程最新知识的学习方法,尝试通过专业网站的辅助与支持来开展软件工程应用实践。4)了解GB/T15853-1995《软件支持环境》的相关内容。1.2.3工具/准备工作在开始本实验之前,请预习教科书第一章的相关内容。请联系指导老师或者熟识软件工程技术的人士,如软件企业的职员和具有丰富开发经验的老师等,了解他(她)们所在的企业或开发团队在软件研发活动中,是否使用以及使用了哪些软件工程的工具和开发支持环境,在什么地方可以找到关于这些软件工具、开发环境和CASE工具的技术资料和信息。需要准备一台带有浏览器、能够访问因特网的计算机。1.2.4实验内容与步骤在本实验中,我们复习相关的技术概念,列举并简单介绍一些主流和优秀的软件工具、软件开发环境和CASE工具产品。1.软件工具、开发环境和CASE的概念在软件工程技术中,无论采用哪一种开发方法,重要的是要尽可能地使用自动化工具来提高系统开发工作的速度和质量。1)请查阅有关资料(例如教材、本实验的“背景知识〞和专业网站等),结合自己的理解,给出“软件工具〞、“软件开发环境〞和“CASE工具〞的定义:①软件工具:②软件开发环境:③CASE工具:提示:在实际应用中,并不是所有支持系统开发的工具都被供给商称为CASE工具,如今的供给商有可能把他们的工具称为可视化建模工具、集成应用开发工具或往返工程工具等。2)请填写以下术语的英文缩写,并思考、理解其含义。①软件开发环境:②软件工程环境:③软件支持环境:④工程支持环境:⑤自动开发环境:⑥集成化程序设计环境:⑦工具盒:⑧工具箱:3)GB/T15853—1995《软件支持环境》规定的软件支持环境的根本要求是:2.MicrosoftVisioVisio实际上只是一个绘图工具。但是,由于其所具有的强大的专业绘图功能,系统分析员可以用Visio来创立CASE应用中所需要的任何系统模型。Visio带有一个绘图模板集,包含了用于各种商业和工程应用的符号。其中的软件和系统开发模板提供了流程图、数据流图、实体-联系(E-R)图、UML图以及其他许多图形符号。模板提供了一个用于存储图表元素的定义和描述信息的有限资料库。尽管Visio并没有提供用于系统工程开发的完整资料库,但许多系统开发人员还是喜欢Visio所提供的绘制必要图表的灵活性。请通过网络搜索,简单了解和体会Visio工具的应用状况:3.VisibleAnalyst集成应用程序开发工具VisibleAnalyst是可视系统公司()的产品。这种工具使得绘制典型的传统模型如数据流图和E-R图更加容易,同时也能支持面向对象UML模型。VisibleAnalyst包含了一个用于定义系统组件并提供错误检测以及一致性检验支持的资料库。请通过网络搜索,简单了解和体会VisibleAnalyst工具的应用状况:4.OracleDesignerOracle公司()将OracleDesigner描述成—个工具集。该工具集用来记录定义并快速构造灵活、图形化的客户-效劳器应用。它常常与OracleDeveloper集成在一起。而OracleDeveloper是一个用于在Oracle关系数据库上创立GUI应用的开发工具。OracleDesigner包括一个完整的资料库,具有图形表示功能和代码生成功能,是一个支持传统的系统开发方法的集成CASE工具。用于分析的系统模型程序包括一个过程模型程序、功能等级绘图程序、数据流绘图程序以及E-R绘图程序。DesignTransformer以及DesignEditor使用它所生成的图表以及资料库中的详细定义来创立数据库和应用逻辑。请通过网络搜索,简单了解和体会OracleDesigner工具的应用状况:5.RationalRose作为UML支撑环境的RationalRose可视化建模工具,如今已是IBM公司的专门用来支持面向对象方法的工具。RationalRose可用于Rational统一过程(RUP)或使用UML图表的任何方法。该工具除提供资料档案库外还提供逆向工程和代码生成能力,同时也能和其他工具结合使用,从而提供一个完整的系统开发环境。UML是一种面向对象分析与设计(OOA&D)方法的可视化建模语言,适用于以面向对象技术来描述任何类型工程,适用于系统开发的不同阶段,包括需求规格描述直至系统实现后的测试、维护和发布等。而RationalRose则是实现这种建模语言的工具,相当于UML的编译与解释系统。Rose是一个以UML语言为基础的软件支撑环境,即面向对象的CASE工具。请通过网络搜索,简单了解和体会RationalRose工具的应用状况:6.TogetherSoft往返工程是软件工程工具中的一个新概念。由于系统开发是经常反复的过程,尤其在面向对象方法中。因此,对图形模型(例如类图)和生成程序代码进行同步操作是很重要的。比方,如果分析员改变了程序代码,那么类图也需要更新。同样地,如果类图改变了,那么程序代码也要更新。往返工具将自动地完成两个方向上(往返)的同步过程。TogetherSoft公司()在其称为Together的工具中首先采用了往返工程。Together使用UML图表和几种不同的面向对象编程语言来对往返工程提供支持。如果开发人员喜欢书写代码来定义类,则类图会自动更新。如果开发人员喜欢先绘制类图,则定义类的代码会自动随之更新。请通过网络搜索,简单了解和体会TogetherSoft工具的应用状况:7.EmbarcaderoDescribeEmbarcaderoDescribe()是包含面向对象建模以及往返工程特征的一个新产品。Describe企业版的一个很重要的特征就是为分析和设计提供灵活的UML建模功能,包括基于Java的往返工程。Describe开发工具可以将包括JBuilder和SunForte在内的几个Java开发工具集成进来。请通过网络搜索,简单了解和体会EmbarcaderoDescribe工具的应用状况:8.CASEStudioCASEStudio是一个专业的数据库设计工具。它可以透过E-R图、数据流程图来设计各种数据库系统(如MSSQL,Oracle,Sybase等),另外,程序还提供了各种各样的管理单元来提供设计帮助。请通过网络搜索,简单了解和体会CASEStudio工具的应用状况:9.SybasePowerDesignerSybasePowerDesigner提供了一个完整的建模解决方案,业务人员、系统分析人员、设计人员、数据库管理员和开发人员等可以对其裁剪以满足他们的特定需要;而其模块化的结构提供了极大的灵活性,从而使开发单位可以根据其工程的规模和范围来使用他们所需要的工具。PowerDesigner灵活的分析和设计特性允许使用一种结构化的方法有效地创立数据库或数据仓库,而不要求严格遵循一个特定的方法学。PowerDesigner提供了直观的符号表示使数据库的创立更加容易,并使工程组内的交流和通信标准化,同时能更加简单地向非技术人员展示数据库和应用的设计。请通过网络搜索,简单了解和体会PowerDesigner工具的应用状况:10.MIWinRunner和LoadRunner如果没有一个完善的测试管理解决方案作为有力保障,那么软件工程的筹划、开发、实施、推广都将非常困难。为此,MercuryInteractive公司(美科利(中国)公司,)提供了被称为“应用实施方案(AD,applicationdelivery)〞的软件测试套件,通过测试管理提供工作效率,通过功能测试和压力测试实现对软件质量的严格控制,通过软件更新流程来控制软件更新的风险。Mercury的BTO(businesstechnologyoptimization,业务优化科技)行业创新战略提出“从商业的角度管理IT〞,自顶而下地使用户能够从一开始就把IT与商务流程紧密联系起来,从而最大化商业运作,而不是把目光集中在类似于路由器、效劳器、数据库这样的IT根本元素上。Mercury公司的自动化测试应用实施方案主要采用了该公司BTO技术中的3个重要产品,即测试管理软件TestDirector、功能测试工具WinRunner和性能测试工具LoadRunner。请通过网络搜索,简单了解和体会测试工具WinRunner和LoadRunner的应用状况:11.MicrosoftProject一般而言,如果没有工程管理软件系统的支持,工程管理的技术和方法的实现是比较困难的,因为不仅需要用模型来描述它们,还需要进行大量的计算。MicrosoftProject和Excel都是实现工程管理技术应用的很好的工具。一项统计调查显示,Project是最常用的计算机工程管理工具。人们使用Project的目的是进行以下工作:工程控制和跟踪、详细的时间安排、早期的工程方案、沟通、报告、高级方案、甘特图、CPM和PERT;而人们使用Excel的主要目的,是为了进行本钱预算、本钱分析、方差分析、跟踪和报表,以及创立工作分解结构(WBS)。Project可以从工程管理所有9个知识领域的角度来帮助用户辅助实施工程管理,但它主要还是用来辅助工程范围、时间、本钱、人力资源和沟通的管理。而用户能用好Project的条件是,他必须理解工程管理的根本概念。请通过网络搜索,简单了解和体会Project工具的应用状况:12.MicrosoftVisualSourceSafe(VSS)VSS版本控制系统是Microsoft开发的配置管理软件,可用于管理软件和Web站点的开发,它可以同VisualBasic、VisualC++、VisualJ++、VisualInterDev、VisualFoxPro开发环境以及MicrosoftOffice应用程序集成在一起,提供了方便易用、面向工程的版本控制功能。VSS可以处理由各种开发语言、创作工具或应用程序所创立的任何文件类型。VSS面向工程的特性能更有效地管理工作组应用程序或Web站点开发工作中的日常任务。请通过网络搜索,简单了解和体会VSS工具的应用状况:13.工具搜索除了上面简单介绍的内容之外,实际上还有许多优秀的软件工具、开发环境和CASE工具。请通过网络进行搜索,更为全面地了解这方面的产品及其应用与研究信息。请列举其版本、支持厂商和主要技术内容,填入表1-2中。表1-2实验记录名称和版本支持厂商主要内容14.应用搜索请收集一些招募IT专业毕业生的企业的信息,并对其企业资料进行分析。能够从中找到一些关于系统开发方法的信息吗?其中提到任何软件工具、软件开发环境和CASE工具了吗?进一步访问该公司的网站,看看能否找到更多的相关信息。1)在本实验中,你关注的相关企业是:①②③④其他:综合分析:2)访问一些重要或著名的IT公司网站,试着找到他们所使用的系统开发方法的信息?其中提到任何软件工具、软件开发环境和CASE工具吗?1.2.5实例研究(选做)借助于软件工程的一些思想方法,我们来研究一个“完成大学教育〞的实例。作为一位完成学历、攻读学位的在校大学生,考虑把完成大学学业当成是一个工程,这个大工程将持续很多年,并且所花费的甚至将远远多于你和你的家庭的承受能力;一些学生在管理“完成大学学业〞这个工程上比其他人做得更好;有不少学生却会完全失败;有些学生则利用学籍管理制度的有关规定延期完成学业并且超出了预算。像任何其他工程一样,为了获得成功,你应该遵循某些“完成大学教育〞的方法,即应该遵循完成从方案开始到成功完成等一系列的活动和任务的准则。尝试规划:1)你的个人大学教育完成生命周期的各个阶段是什么?2)每个阶段的主要活动有哪些?3)有助于你完成这些活动的技术有哪些?在完成大学教育的过程中,你可能会创立什么模型?请注意区分你建立的那些使你完成大学教育的模型和那些有助于你方案和控制完成大学教育的过程的模型。4)有助于你创立这些模型的工具有哪些?试就上述问题,以“完成大学学业〞为题目编写规划报告。实验2MicrosoftVisio使用入门实验目的:了解Visio工具软件的功能、特色及安装步骤;熟悉Visio的工作环境及组成;掌握Visio软件绘制系统流程图、数据流图、软件结构图的根本方法;熟练使用Visio的图形模板绘制出专业图表。实验学时:2学时知识背景:1.Visio2003简介1999年,Microsoft并购了Visio公司,不久便推出了新版的Visio,并让Visio成为MicrosoftOffice家族的一员。Visio2003是一个图表绘制软件。它可以帮助使用者创立包含复杂设想、过程与系统的业务图表和技术图表。使用Visio2003创立图表,用户能够将信息形象化,并能够以清楚简明的方式进行有效的交流,这是仅仅使用文字和数字所无法表现的。Visio2003还可通过与数据源直接同步自动形象化数据,以提供最新的图表。用户还可以对Visio2003进行自定义,以满足组织的需要。2.Visio2003的使用Visio2003的文件主要有4种类型,即绘图文件(.VSD)、模具文件(.VSS)、模板文件(.VST)、工作环境文件(.VSW)。绘图文件(.VSD):用于存储绘制的各种图形。一个绘图文件中可以有多个绘图页,它是Visio中最常用的文件。模具文件(.VSS):用于存放绘图过程中生成各种图形的“母体〞,即形状(图形)。Visio自带了大量对应于不同绘图场合的模具文件,给绘图带来了很大的方便。用户还可以根据自己的需要,生成自己的模具文件。模板文件(.VST):用于同时存放绘图文件和模具文件,并定义了相应的工作环境。Visio自带了许多模板文件。用户可以利用Visio自带的或自己生成的模具文件,对操作环境加以改造,进而生成自己的模板文件。工作环境文件(.VSW):用于存储绘图窗口、各组件的位置和排列方式等。使用户可根据自己的需要将绘图文件与模具文件结合起来,定义最适合自己的工作环境,在下次翻开时,可以直接进入预设的工作环境。此外,Visio还支持其他多种格式的文件,可以在Visio的翻开或保存操作中使用这些文件类型。根本的Visio绘图流程如下:使用模板开始创立图表。添加、处理图表中的形状。连接图表中的形状。在图表中添加和更改文本。设置图表中形状的格式。在绘图文件中添加和处理页。保存和打印图表。共享图表。注意:关于Visio更多的使用手册,请参考课件主页提供的“Visio2003用户指南.pdf〞。实验要求:要求能够学会运用Visio软件所提供的菜单、工具、模型等制作图形或图表。能用Visio软件所提供专业图形模板,来自行绘制出专业化、高质量的图形或图表。特别是要熟练掌握系统流程图、数据流图和软件结构图的绘制方法和过程。实验内容和步骤:MicrosoftVisio2003的下载与安装(略)。利用Visio绘制系统流程图(建议使用【流程图】【根本流程图形状】)。系统流程图:是描绘物理系统的传统工具。它的根本思想是用图形符号以黑盒子形式描绘系统里面的每个部件(程序、文件、数据库、表格、人工过程等)。【例2-1】某装配厂有一个存放零件的仓库,仓库中现有的各种零件的数量及每种零件的库存量临界值等数据记录在库存清单主文件中。当仓库中零件数量有变化时,应该及时修改库存清单主文件;如果哪种零件的库存量少于它的库存量临界值,则应该报告给采购部门以便订货,规定每天向采购部门送一次订货报告。该装配厂使用一台小型机处理更新库存清单主文件和产生订货报告的任务。零件库存量的每一次变化称为一个事务,由放在仓库中的CRT终端输入到计算机中;系统中的库存清单程序对事务进行处理,更新存储在磁盘上的库存清单主文件,并且把必要的订货信息写在磁带上。最后,每天由报告生成程序读一次磁带,并且打印出订货报告。图2-1所示的系统流程图描绘了上述系统的概貌。图2-1装配厂库存系统流程图利用Visio绘制数据流图(建议使用【软件】【Gane-Sarson】)。数据流图(DataFlowDiagram):简称DFD,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。DFD根本元素有四种:【例2-2】在【例2-1】的基础上,设计出相应的数据流图,如图2-2。图2-2装配厂库存系统数据流图利用Visio绘制软件结构图(建议使用【组织结构图】【组织结构图形状】)。软件结构图:为了反映软件系统中组件之间相互关系和约束的体系结构设计图,一般通过分层次或分时间段等方式说明体系结构的各个组成局部的组合关系。【例2-3】某新闻稿加工系统的软件体系结构如图2-3所示。图2-3新闻稿加工系统软件体系结构图实验作业:在Visio2003中绘制本实验中的图2-1、图2-2、图2-3的图形,完成后上交Visio源文件。基于自身经历或通过查阅资料,设计一个基于网上购物系统(如淘宝网)的数据流图,完成后上交Visio源文件。实验思考:认真总结使用Visio绘制图形的根本方法和步骤。除了上述提到的系统流程图、数据流图和软件结构图之外,请讨论使用Visio还可以绘制其他哪些图形。对于需要经常使用但在Visio的模具中没有的图形,试分析和讨论如何处理。实验3MicrosoftProject使用入门实验目的:了解Project工具软件的功能、特色及安装步骤;熟悉Project的工作环境及组成;了解IT工程管理的根本概念和工程管理核心领域的一般知识;掌握运用Project来设计和管理工程的根本方法。实验学时:2学时知识背景:随着信息技术的开展,软件产品的规模越来越大,个人作坊式的软件开发方式已经完全不能适应开展的需要,因而有必要将软件工程管理的概念引入开发活动中,对开发过程实行有效的管理。从概念的角度看,软件工程管理是使软件工程能够按照预定的本钱、进度、质量顺利完成,对本钱、人员、进度、质量、风险等进行分析和管理的活动。从软件工程的角度看,软件开发过程主要分为几个大的阶段:系统工程、需求工程、设计工程、编码工程、测试工程、运行和维护工程。目前常用的工程管理工具是MSProject2003。Project2003是Microsoft公司发布的集使用性、功能性和灵活性于一体的工程管理工具。工程管理者依靠Project2003方案和管理工程,可以快速、准确地建立工程方案,使工程管理者从大量烦琐的计算绘图中解脱出来;可以有效地组织和跟踪任务与资源,使工程符合工期和预算,降低本钱,提高竞争力。Project2003可以帮助用户提高在工程中进行日程安排、资源协作、进度跟踪和信息交流的能力;同时,在设计上与MicrosoftOffice中的产品,包括Excel2003、PowerPoint2003、Visio2003协同工作,管理者可以更有效地共享工程信息,与办公自动化系统集成。注意:关于Project更多的使用手册,请参考课件主页提供的“利用Project2003管理工程.ppt〞。实验要求:要求通过使用MicrosoftProject完成工程管理的大致流程,目的是了解MicrosoftProject工具的使用和工程管理的相关知识。实验内容和步骤:1.建立工程管理文件在开始制定工程方案之前,要明确定义工程的一些根本属性信息,或者对工程有一个根本的定义,例如工程的名称、内容、开始时间、结束时间等。例如有一个《校园网站》工程,内容是通过网站介绍学校的根本情况,发布一些及时的信息,同时有论坛等讨论区域。然后开始在Project2003中创立工程方案,实验步骤如下:(1)、新建工程启动Project2003。选择[文件][新建]菜单命令,翻开Project的“新建工程〞向导,如图3-1,单击“空白工程〞将出现“任务〞导向,如图3-2。图3-1新建工程图3-2文件向导(2)、定义工程工程创立完成之后,需要定义工程。单击图3-2中的“定义工程〞,将显示“定义工程〞向导,利用向导可以很容易完成定义工程的操作。分三步:1)
输入工程的开始时间,如图3-3,将日期调整为工程的预计开始日期;2)
输入工程工作组选项,如图3-4,询问是否使用ProjectServer和ProjectWebAccess,本工程比较小,不需要ProjectServer的协调,选择“否〞;3)
保存文件,将文件保存为SchoolWebsite.mpp。图3-3定义工程-a图3-4定义工程-b图3-5文件保存(3)、设置环境信息工程的环境信息包括工期、工程的日历等。选择[工具][选项],弹出“选项〞对话框,选择“选项〞对话框中的“日历〞选项卡可以输入、查看或者修改日期、时间等设置,如图3-6。选择“日程〞选项卡可以输入、查看和修改排定任务日程的首选项。如图3-7。图3-6“日历〞选项卡图3-7“日程〞选项卡2.创立工程任务创立一个新的工程文件后,接下来需要进行任务的创立,任务是构成工程的根本单元,所有的任务完成了,工程才可以完成。实验步骤如下:(1)、任务建立
翻开工程文件SchoolWebsite.mpp;
选择[视图][甘特图]菜单命令切换到“甘特图〞视图,默认的视图就是甘特图;
在“任务名称〞域中输入工程的任务名称,例如“需求分析〞、“系统设计〞、“编码〞、“测试〞、“提交〞等;
输入所有的任务直到最后,如图3-8。
提示:任务也可以通过“导入〞的方式从Excel文件中一次性自动输入。图3-8建立任务(2)、
里程碑建立可以将编码完成后的任务设置为里程碑任务,双击“编码〞任务,弹出如图3-9的对话框,选择“高级〞选项卡,在左下角选中“标记为里程碑〞复选框。图3-9设置里程碑(3)、增加任务,建立大纲结构前面建立的任务根本上是摘要任务,除此之外还需要增加任务,为了很好的组织和管理任务,最好是采用大纲结构,即通过创立摘要任务和子任务来组织工程结构,摘要任务是由子任务组成并对子任务进行汇总的任务。1)
在“任务名称〞域中选择“编码〞任务,选择[插入][新任务],建立新任务“界面设计〞,同样插入其他任务,如“结构设计〞、“数据设计〞等;2)重复上步,直到参加所有的任务;3)
在“任务名称〞域中选择“界面设计〞,“结构设计〞、“数据设计〞,单击[工程][大纲][降级]命令,进行降级,如图3-10;4)
同理,完成其他任务的升级或者降级。图3-10建立大纲结构设置好工程任务的分级结构以后,可以很容易看清楚任务之间的顺序。(4)、任务的移动、复制和显示当对任务和资源进行复制或者移动时,将重新建立任务链接关系,通常还包括与任务相关的子任务、备注信息和链接或者嵌入对象。3.任务分解可以将创立好的任务进一步分解,完成WBS(WorkBreakdownStructure)。在Project中可以为每项任务建立WBS。实验步骤如下:(1)、在SchoolWebsite.mpp工程中,切换到“甘特图〞视图;(2)、单击“任务名称〞域的列标题;(3)、选择[插入][列]命令,启动“列定义对话框〞,如图3-11;(4)、在“域名称〞列表框中选择WBS,“标题〞文本框中自行取名(如WBS);(5)、在“对齐数据〞列表框中选择“居中〞选项;(6)、单击“最正确匹配〞按钮,生成图3-12所示的具有WBS的甘特图图3-11列定义对话框图3-12创立WBS4.安排任务工期任务创立和分解后,需要为所有的任务安排工期,以便确定工程的完成时间,首先确定任务的类型,包括固定单位任务、固定工期任务和固定工时任务。实验步骤如下:(1)、安排任务的进度可以采用三种方法为任务制定工期:1)在甘特图表中的“工期〞域直接输入工期;2)用鼠标左键拖动甘特图的任务条形图,通过改变其长度来改变其工期;3)使用“任务信息〞对话框设置工期。
双击甘特图中“任务名称〞域中“需求讨论〞子任务,出现图3-13对话框,设置子任务的工期,摘要任务的工期自动计算为其下所有子任务的时间总和。
单击“工期〞微调框中的箭头可以修改工期
单击[确定]按钮,甘特图的长度反映了任务工期的长度。如图3-14图3-13设置子任务的工期图3-14调整任务工期后的工程甘特图(2)、周期性任务通过[插入][周期性任务]在工程的任务中插入周期性任务,例如每周五的周例会,如图3-15。图3-15插入周期性任务5.任务的链接任务的链接是将任务与其他任务的时间安排联系在一起,通过任务的链接而得到任务的开始或者完成时间,特点是任务之间始终被这种特定的关系约束着。实验步骤如下:(1)、建立链接
在“任务名称〞域选择“需求讨论〞、“编写需求规格〞、“需求评审〞三个任务。
单击“常用〞工具栏中的[链接任务]按钮或者[编辑][链接任务]命令,即可以完成设置三个任务的“结束-开始〞的关系。如图3-16。图3-16建立任务之间的链接(2)、删除链接
选择要取消链接的任务,如“需求讨论〞和“编写需求规格〞。
单击“常用〞工具栏取消任务链接按钮或者[编辑][取消任务链接]命令。6.资源分配为了完成任务必须为工程中的任务分配资源,在Project中可以建立资源库,然后将资源库中的资源与工程的任务联系起来,也就是说分配具体的人员、设备等来完成工作。实验步骤如下:(1)、建立资源库
选择[视图][资源工作表]命令,切换到“资源工作表〞视图;
在视图表中输入工程所有资源的相关信息,例如:i.
输入资源“张三〞,设置其标准费率为100元/小时,加班费120元/小时;ii.
输入资源“李四〞,设置其标准费率为90元/小时,加班费120元/小时;iii.
输入资源“王五〞,设置其标准费率为110元/小时,加班费120元/小时;iiii.
输入资源“传真机〞,设置其每次使用本钱2元。如图3-17
双击资源名称“张三〞,设置其资源日历,在资源信息对话框中的“工作时间〞选项卡设置资源日历,将“2010-10-2”周六改为非默认工作时间,如图3-18。图3-17设置资源库图3-18:修改资源的工作时间(2)、为任务分配资源合理地向任务分配资源才能有效地完成工程任务:1)
切换到“甘特图〞视图;2)
选择第一个任务“需求讨论〞,选择[工具][分配资源]菜单命令;3)
在“分配资源〞对话框,选择分配该任务的资源,如:张三、李四;4)
单击[分配]按钮,完成该任务的分配工作;5)
依次选中其他的任务,重复2)到4)直到所有的任务都分配了资源,见图3-19。图3-19分配了资源后的甘特图7.工程管理建立一个工程后需要对工程进行管理,查看工程进展情况,实验步骤如下:(1)查看工程的各种视图,熟悉使用各种视图:1)
甘特图,甘特图是默认视图,是工程进度管理中最常用的,通过[视图][甘特图]进入;2)
日历视图通过[视图][日历]菜单命令可以进入“日历〞视图,如图3-20:图3-20:日历视图3)
网络图通过[视图][网络图]菜单命令可以进入“网络图〞视图,如图3-21:图3-21:网络图视图(2)查看工程本钱:给任务分配资源后,可以查看各任务的本钱:1)翻开SchoolWebsite.mpp工程;2)
选择[视图][甘特图]命令,切换到“甘特图〞视图;3)
选择[视图][表][本钱]命令,显示工程的各个任务的本钱信息。如图3-22。图3-22:工程本钱查看工程总本钱:选择[工程][工程信息],点击“统计信息〞按钮,如图3-23。图3-23:工程统计信息实验作业:假设你是工程经理,请根据自己的想法,在Project2003中制定本实验中的《校园网站》的工程方案,完成后上交Project源文件。假定你已经毕业并顺利就业,经过若干年的积累,终于拥有了属于自己的一套清水房。很明显,你迫不及待地想要住进去,但装修资金的短缺导致你没钱聘请专业的装修公司,所以只能考虑DIY(自己想方法去雇佣各种装修游击队),也就是说,你亲自担当整个装修工程的负责人。请上网查阅装修根本流程,再根据自己的想法在Project2003中制定一个《装修DIY》工程方案,完成后上交Project源文件。实验思考:认真总结使用Project制定工程方案的根本方法和步骤。分析在软件开发中实施工程管理的意义,讨论工程管理软件在软件工程中的作用和地位。实验4可行性分析实验目的:通过对“沫若图书馆管理系统〞进行可行性研究,掌握在软件工程立项时可行性研究的内容、方法和步骤,掌握可行性研究报告的编写方法,明确可行性研究报告的内容和格式,学会借助使用Project来进行工程的方案安排。实验学时:2学时知识背景:可行性研究是软件工程在正式立项前必须进行的分析,目的不是解决问题,而是确定软件工程是否值得去做,以及能否用尽可能小的代价在尽可能短的时间内完成。可行性研究最根本的任务是对以后的行动方针提出建议,如果问题没有可行的解,应建议停止这项开发工程,以防止时间、资源、人力和金钱的浪费;如果问题值得解,则推荐一个好的解决方案,并制定一个初步的工程方案。可行性研究的内容一般包括:技术可行性、经济可行性、操作可行性、法律和社会可行性、开发方案的选择及进度方案。《可行性分析报告》(FARFeasibilityanalysisReport)是工程初期筹划的结果,它分析了工程的要求、目标和环境;提出了几种可选方案;并从技术、经济和法律各方面进行了可行性分析。可作为工程决策的依据,也可作为工程建议书、投标书等文件的基础。实验内容和步骤:1.问题提出乐山师范学院图书馆创立于1978年,“沫若图书馆〞建成于2005年11月,现有馆舍面积近2.3万平方米,馆藏文献总量已达132.5万册(件),其中纸质文献82.9万册,电子图书近50万种,拥有各类型中外文文献数据库24种,每年订购中、外文期刊1600余种,已积累了丰富的馆藏,形成了以我校12个系(院)的教学参考文献、中等教育文献和地方文献为主,其他学科专业文献为辅的藏书体系。图书馆工作人员约110人,图书馆读者对象主要是该校的教师和学生,共计16000人左右。“沫若图书馆〞实行“藏、阅、借、查、咨、研、管〞一体化全开放效劳,每天开放14.5小时,周开馆时间达100小时以上,所有书刊实行开架借阅。针对教学科研骨干和重点读者对象,开展个性特色效劳,实行群体效劳与个性效劳相结合;开展网络信息的收集、整理、开发、利用、提供等专题效劳;开展了文献外借、阅览、信息咨询、查新、文献检索、电子阅览、信息导航、网络咨询、馆际互借、文献复印、磁带翻录等效劳。虽然图书馆在某些局部工作中使用了计算机,但尚未建立起真正的集成自动化信息系统,大局部业务工作仍靠手工完成。为了能更好地利用现代信息技术的成果,提高图书馆的工作效率和水平,更好地为读者效劳,决定开发“沫若图书馆管理系统〞。2.主要内容确定“沫若图书馆管理系统〞必须完成的总目标;软件总体包含那几局部功能;确定工程的可行性;估计完成该项工程需要的资源和本钱;确定该软件要替代现实世界中的哪些流程;要解决的问题是什么;所确定的问题是否有行得通的解决方法;用最小的代价在尽可能短的时间里确定问题是否可以解决;写出问题定义和可行性研究报告。3.主要步骤问题的初步认识了解系统应解决的问题,这些问题是如何提出的。设想这些问题如何解决才能满足要求。了解问题的结构。市场调查了解市场对待开发软件的需求情况。调查市场上已有的类似软件系统的功能、性能、价格情况。分析准备确立分析方案。规定由谁参加分析作业,任务分配。对参加分析的人员进行必要的培训。环境分析明确系统的目的和限制条件。使用单位的状况、经营方针和组织机构。使用单位的计算机利用情况。相关的硬件、软件及其它接口局部。用户的操作环境及操作要求。习惯、法律、制度上对软件的制约。开发能具备的基数条件和设备条件。物理分析了解实际业务活动状况,特别对一些活动要点进行分析。明确在这些要点之间什么东西在流动,如何进行流动。对物理流量进行分析。对其模型化,得到实际业务系统(当前系统)的物理模型。确立系统方案大概确定方案。粗略地估算本钱。估算可能取得的效益。提出可能需要的资源,包括人员、硬件、软件等。提出大概的进度安排。实验作业:依据国标GB/T8567-1988《计算机软件产品开发文件编制指南》中“可行性研究报告〞的内容结构和编写提示,完成并提交“沫若图书馆管理系统〞可行性分析报告。依据国标GB/T8567-1988《计算机软件产品开发文件编制指南》中“工程开发方案〞的内容结构和编写提示,完成并提交“沫若图书馆管理系统〞工程开发方案。注意:关于国家标准《计算机软件产品开发文件编制指南》中的16个文档模板,请自行从课程教学资源网站下载。外网地址:国家标准软件设计文档.rar内网地址:xiangwei/teach/softwareengineering/down/GB8567-1988国家标准软件设计文档.rar实验思考可行性研究的任务是什么?为什么工程工程都需要进行可行性研究?工程开发方案主要有些什么内容?总结可行性研究的要点、步骤、效益分析的方法。实验5需求分析实验目的:通过对“沫若图书馆管理系统〞进行需求分析,掌握软件需求结构化分析方法;掌握使用Visio建立分析模型的方法;掌握软件需求说明书的撰写。实验学时:2学时。知识背景:需求分析的根本要点传统软件工程使用结构化分析方法完成分析用户需求的工作。需求分析是发现、求精、建模、说明规格和复审的过程。需求分析的第一步是进一步了解用户当前所处的情况,发现用户所面临的问题和对目标系统的根本需求:接下来应该与用户深入交流,对用户的根本需求反复细化逐步求精,以得出对目标系统的完整、准确和具体的需求。具体地说,应该确定系统必须具有的功能、性能、可靠性和可用性,必须实现的出错处理需求、接口需求和逆向需求,必须满足的约束条件,并且预测系统的开展前景。为了详细了解并正确理解用户的需求,必须使用适当的方法与用户沟通。访谈是与用户沟通的历史悠久的技术,至今仍被许多系统分析员所采用。从可行性研究阶段得到的数据流图出发,在用户的协助下,面向数据流自顶向下逐步求精,是与用户沟通获取需求的一个有效的方法。为了促使用户与分析员齐心协力共同分析需求,人们研究出一种面向团队的需求收集法,称为简易的应用规格说明技术,现在这种技术已经成为信息系统领域使用的主流技术。实践说明,快速建立软件原型是最准确、最有效和最强大的需求分析技术。快速原型应该具备的根本特性是“快速〞和“容易修改〞,因此,必须采用适当的软件工具支持快速原型技术。通常使用第四代技术、可重用的软件构件及形式化规格说明与原型环境,快速地构建和修改原型。为了更好地理解问题,人们常常采用建立模型的方法。结构化分析实质上就是一种建模活动。在需求分析阶段通常建立数据模型、功能模型和行为模型。除了创立分析模型之外,在需求分析阶段还应该写出软件需求说明书,经过严格评审并得到用户确认之后,作为这个阶段的最终成果。通常主要从一致性、完整性、现实性和有效性等4个方面复审软件需求说明书。多数人习惯于使用E-R图建立数据模型,使用数据流图建立功能模型,使用状态图建立行为模型。同学们应该掌握这些图形的根本符号,并能正确地使用这些符号以建立软件系统的模型。数据字典描述在数据模型、功能模型和行为模型中出现的数据对象及控制信息的特性,给出它们的准确定义。因此,数据字典成为把3种分析模型粘合在一起的“粘合剂〞,是分析模型的“核心〞。为了提高可理解性,还可以用层次方框图或Warnier图等图形工具辅助描述系统中的数据结构。为了减少冗余,简化修改步骤,往往需要标准数据的存储结构。算法也是重要的,分析的根本目的是确定系统必须做什么,算法定义了转变的规则。没有对算法的了解就不能确切知道系统的功能。IPO图是描述算法的有效工具。分析建模与软件需求规格说明分析建模为了更好地理解复杂事物,人们通常采用建立事物模型的方法。所谓模型,就是为了理解事物而对事物做出的一种抽象,根据模型的形态可分为物理模型和逻辑模型。逻辑模型是对事物的一种无歧义的书面描述。通常,逻辑模型由一组图形符号和组织这些符号的规则组成。尽管目前有许多不同的用于需求分析的结构化分析方法,但是,多数方法都遵守下述准则:必须理解并描述问题的信息域,这条准则要求建立数据模型;必须定义软件应完成的功能,这条准则要求建立功能模型;必须描述作为外部事件结果的软件行为,这条准则要求建立行为模型;必须对描述目标系统信息、功能和行为的模型进行分解,用层次的方式展示细节。软件需求说明通过需求分析除了创立分析模型之外,还应该写出软件需求说明书,它是需求分析阶段得出的最主要的文档。软件需求说明书通常用自然语言完整、准确、具体地描述对目标系统的需求,这样的规格说明书具有容易书写、容易理解的优点。注意:请充分利用Internet和相关书籍资料来进一步了解需求分析方法和步骤。可参考课件主页提供的“高校医院管理信息系统需求说明书.pdf〞。实验内容和步骤:在完成“沫若图书馆管理系统〞的系统工程(可行性分析)阶段之后,进入到需求工程(需求分析)阶段:导出系统的详细逻辑模型。通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述等来共同表示这个逻辑模型。撰写软件需求说明书。可参考如下实验步骤:问题背景及描述功能分析建立系统流程图建立数据流图建立数据字典算法描述建立E-R图建立状态图撰写软件需求说明书实验作业:依据国标GB/T8567-1988《计算机软件产品开发文件编制指南》中“软件需求说明书〞的内容结构和编写提示,完成并提交“沫若图书馆管理系统〞软件需求说明书。实验思考:针对不同规模的软件工程,如何合并和展开国家标准中“软件需求说明书〞规定的具体条目。分析讨论Visio对需求分析有何帮助。总结需求获取和分析建模的方法,说明可以采用哪些图表来描述软件需求。实验6概要设计(软件体系结构设计)实验目的:了解软件体系结构模型;掌握面向数据流的设计方法;掌握概要设计说明书的撰写。实验学时:2学时。知识背景:软件概要设计的根本要点概要设计也称总体设计或初步设计,根本目的是用比较抽象概括的方式确定系统如何完成预定的任务,确定系统的物理配置方案,确定组成系统的每个程序的结构。概要设计主要由两个阶段组成,首先进行系统设计或方案设计,从数据流图出发设想完成系统功能的若干种合理的物理方案,仔细分析和比较这些方案,并且和用户共同选定一个最正确方案。然后进行软件的结构设计,确定软件由哪些模块组成及这些模块之间的动态调用关系。层次图和结构图是描绘软件结构的常用工具。进行软件结构设计时应该遵循的最主要的原则是模块独立,也就是说,软件应该由一组完成相对独立的子功能的模块组成,这些模块彼此之间的接口关系应该尽量简单。抽象和求精是一对互补的概念,也是人类解决复杂问题时最常用、最有效的方法。在进行软件结构设计时一种有效的方法就是由抽象到具体地构造出软件的层次结构。自顶向下、逐步求精是进行软件结构设计的常用途径。但是,如果已经有了详细的数据流图,也可以使用面向数据流的设计方法,用形式化的方法由数据流图映射出软件结构。应该记住,这样映射出来的只是软件的初步结构,还必须根据设计原理并且参考启发式规则,认真分析和改良软件的初步结构,以得到质量更高的模块和更合理的软件结构。在进行详细的过程设计和程序编写之前,首先进行结构设计,其好处是可以在软件开发的早期站在全局的高度对软件结构进行优化。在这个时期进行优化付出的代价不高,却可以使软件质量得到重大改良。系统分析与设计的关系系统分析的根本任务是定义用户所需要的软件任务,也就是答复系统必须“做什么〞这个问题。系统设计的根本任务是设计实现目标系统的具体方案,也就是答复“怎样做〞这个问题。虽然分析和设计的任务性质不同,但是两者之间却有着非常密切的关系。软件工程师必须依靠用户对软件的需求来设计软件,因此,结构化分析的结果是进行结构化设计的最根本、最重要的输入信息。结构设计的任务是确定程序由哪些模块组成及这些模块相互之间的关系。在需求分析阶段画出的数据流图是进行结构设计的主要依据,为结构设计提供了最根本的输入信息。数据设计把需求分析阶段创立的信息模型转变成实现软件所需要的数据结构。在实体-联系图中定义的数据和数据之间的关系,以及数据字典中给出的详细的数据定义,共同为数据设计活动奠定了坚实的基础。接口设计的结果描绘了软件内部、软件与协作系统之间,以及软件与使用它的人之间的通信方式。接口意味着信息的流动(数据流或控制流),因此数据流提供了进行接口设计所需要的根本信息。过程设计决定程序中包含的每个模块的实现算法,需求分析阶段画出的IPO图(表)为过程设计奠定了基础。虽然结构化分析为结构化设计提供了最根本、最重要的输入信息。但并不是说可以简单地把结构化分析的结果映射成结构化设计的结果。实际上,结构化设计过程综合了下述诸多因素:从以往开发类似软件的经验中获得的直觉和判断力、指导软件模型演化的一组原理(也称为准则)和启发规则、评价软件质量的一组标准、以及导出最终的设计结果的迭代过程。软件工程师在软件设计过程中所作出的决策,将最终决定软件开发能否成功,更重要的是,这些设计决策将决定软件维护的难易程度。软件设计之所以如此重要,是因为设计是软件开发过程中决定软件产品质量的关键阶段。设计为我们提供了可以进行质量评估的软件表示(即软件模型),设计是把用户需求准确地转变为最终的软件产品的唯一方法。软件设计是后续的一切软件开发和维护步骤的基础,如果不进行设计,就会产生构造出不稳定的软件系统的风险,稍作改动就可能崩溃。这样的系统很难维护、很难测试。直到软件工程过程的后期(例如,编码结束),才能评价系统的质量,但是,此时才发现软件的质量问题已经太晚了。面向数据流的设计方法面向数据流的设计方法的目标是给出设计软件结构的一个系统化的途径,这种设计方法定义了一些“映射〞规则,利用这些映射可以把数据流图变换成软件结构。数据流的类型面向数据流的设计方法把信息流映射成软件结构,信息流的类型决定了映射的方法。信息流有下述两种类型。变换流如果信息沿输入通路进入系统,同时由外部形式变换成内部形式,进入系统的信息通过变换中心,经加工处理以后再沿输出通路变换成外部形式离开软件系统。当信息流具有这些特征时,就叫做变换流。事务流原则上所有信息流都可以归结为变换流,但是,如果信息沿输入通路到达一个称为事务中心的处理T,这个处理根据输入数据的类型在若干个候选的动作序列中选取出一个来执行,则这类数据流应该划为一类特殊的数据流,称为事务流。设计步骤面向数据流的设计方法主要由下述七个设计步骤。第一步,复查根本系统模型。复查经结构化分析过程画出的根本系统模型,以确保系统的输入数据和输出数据符合实际。第二步,复查并精化数据流图。认真复查需求分析阶段得出的数据流图,并在必要时进行精化。不仅要确保数据流图给出了目标系统的正确的逻辑模型,而且应该使数据流图中的每个处理都代表一个规模适中、相对独立的子功能。第三步,确定数据流图是具有变换特性还是事务特性。一般地,一个系统中的所有信息流都可以认为是变换流,但是,当遇到有明显事务特性的信息流时,建议采用事务分析方法进行设计。在这一步,设计人员应该根据数据流图中占优势的属性,确定数据流的全局特性。此外还应该把具有和全局特性不同的特点的局部区域孤立出来,以后可以按照这些子数据流的特点精化根据全局特性得出的软件结构。第四步,确定数据流的边界。对于变换流,分析确定输入流和输出流的边界,从而孤立出变换中心;对于事务流,分析确定输入流的边界,从而孤立出事务中心。第五步,完成“第一级分解〞。软件结构代表对控制的自顶向下的分配,所谓分解就是分配控制的过程,而“第一级分解〞就是分配顶层控制。对于变换流,位于软件结构最顶层的控制模块协调下述3个附属模块的控制功能:输入信息处理控制模块,此模块协调对所有输入数据的接收;变换中心控制模块,此模块管理对内部形式的数据的所有操作;输出信息处理控制模块,此模块协调输出信息的产生过程。对于事务流,位于软件结构最顶层的总控制模块管理下属的接收分支和发送分支的工作。接收分支由输入流映射而成;发送分支的顶层是一个调度模块,它根据输入数据的类型调用相应的活动分支。机械地遵循上述映射规则很可能会得出一些不必要的控制模块,如果它们确实用处不大,那么可以而且应该把它们合并。反之,如果控制模块功能过分复杂,则应该把它分解为两个或多个控制模块,或者适当地增加中间层次的控制模块。第六步,完成“第二级分解〞。所谓“第二级分解〞就是把数据流图中的每个处理映射成软件结构中一个适当的模块。对于变换流,完成“第二级分解〞的方法是从变换中心的边界开始沿着输入通路向外移动,把输入通路中每个处理依次映射成软件结构中“输入信息处理控制模块〞控制下的一个低层模块;然后从变换中心的边界沿着输出通路向外移动,把输出通路中每个处理依次映射成直接或间接受“输出信息处理控制模块〞控制的一个低层模块;最后把变换中心内的每个处理映射成接受“变换中心控制模块〞控制的一个模块。第七步,优化对第一次分割得到的软件结构,总可以根据模块独立原理和启发式设计规则进行优化。为了产生合理的分解,得到尽可能高的内聚,尽可能松散的耦合,最重要的是,为了得到一个易于实现、易于测试和易于维护的软件结构,应该对初步分割得到的模块进行再分解或合并。实验内容和步骤:在完成“沫若图书馆管理系统〞需求分析阶段之后,进入设计工程的概要设计阶段:使用面向数据流的方法设计软件系统的结构(方法可参考教材及本实验第3点“知识背景:〞);撰写概要设计说明书。实验作业:依据国标GB/T8567-1988《计算机软件产品开发文件编制指南》中“概要设计说明书〞的内容结构和编写提示,完成并提交“沫若图书馆
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度农村自建房承建与农村新能源利用合作合同
- 二零二五年度形婚双方婚姻关系协议及婚后财产分割与子女抚养安排3篇
- 二零二五年度文化创意产业园区场地转租合同3篇
- 2025年度高新技术研发贷款担保协议3篇
- 2025年度消防安全设施设备安装与验收协议3篇
- 2025年度内墙粉刷施工与室内空气净化技术合作合同3篇
- 二零二五年度生猪养殖与农产品市场销售合作合同范本3篇
- 2025年度公司对个人创业团队对赌合同3篇
- 二零二五年度企业车辆共享平台使用服务合同3篇
- 2025年度公司与公司签订的体育产业合作发展协议2篇
- (2024年)电击伤的急救与护理ppt课件完整版
- 国开《当代中国政治制度》机考复习题汇总
- (2024年)数据分析PPT图片
- 燃气热水锅炉操作规程培训
- 中医院医院设备科工作总结
- JC/T 414-2017 硅藻土行业标准
- 网络传播概论(第5版) 课件 第一章 网络媒介的演变
- 2023-2024学年江西省鹰潭市余江区八年级(上)期末数学试卷(含解析)
- 2023北京西城六年级(上)期末英语试卷含答案
- 京东五力模型分析报告
- XX学校2024年校长务虚会讲话稿范文
评论
0/150
提交评论