




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.软件技术综合实验指导教材 编辑: 张涛、武君胜、扬帆、郑炜1 实验一、软件项目管理与计划1.1 背景知识软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动。 其根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用。软件项目管理和其他的项目管理相比有相当的特殊性。首先,软件是纯知识产品,其开发进度和质量很难估计和度量,生产效率也难以预测和保证。其次,软件系统的复杂性也导致了开发过程中各种风险的难以预见和控制。Windows这样的操作系统有1500万行以上的代码,同时有数千个程序员在进行开发,项目经理都有上百个。这样庞大的系统如果没有很好的管理,其软件质量是难以想象的。 软件项目管理的内容主要包括如下几个方面:人员的组织与管理,软件度量,软件项目计划,风险管理,软件质量保证,软件过程能力评估,软件配置管理等。 这几个方面都是贯穿、交织于整个软件开发过程中的,其中人员的组织与管理把注意力集中在项目组人员的构成、优化;软件度量把关注用量化的方法评测软件开发中的费用、生产率、进度和产品质量等要素是否符合期望值,包括过程度量和产品度量两个方面;软件项目计划主要包括工作量、成本、开发时间的估计,并根据估计值制定和调整项目组的工作;风险管理预测未来可能出现的各种危害到软件产品质量的潜在因素并由此采取措施进行预防;质量保证是保证产品和服务充分满足消费者要求的质量而进行的有计划,有组织的活动;软件过程能力评估是对软件开发能力的高低进行衡量;软件配置管理针对开发过程中人员、工具的配置、使用提出管理策略。软件项目计划是一个软件项目进入系统实施的启动阶段,主要进行的工作包括:确定详细的项目实施范围、定义递交的工作成果、评估实施过程中主要的风险、制定项目实施的时间计划、成本和预算计划、人力资源计划等。 软件项目管理过程从项目计划活动开始,而第一项计划活动就是估算:需要多长时间、需要多少工作量、以及需要多少人员。此外,我们还必须估算所需要的资源(硬件及软件)和可能涉及到的风险。 为了估算软件项目的工作量和完成期限,首先需要预测软件规模。度量软件规模的常用方法有直接的方法LOC(代码行),间接的方法FP(功能点)。这两种方法各有优缺点,应该根据软件项目的特点选择适用的软件规模度量方法。 根据项目的规模可以估算出完成项目所需的工作量,可以使用一种或多种技术进行估算,这些技术主要分为两大类:分解和经验建模。分解技术需要划分出主要的软件功能,接着估算实现每一个功能所需的程序规模或人月数。经验技术的使用是根据经验导出的公式来预测工作量和时间。可以使用自动工具来实现某一特定的经验模型。 常用的制定进度计划的工具主要有Gantt图和工程网络两种。Gantt图具有悠久历史、直观简明、容易学习、容易绘制等优点,但是,它不能明显地表示各项任务彼此间的依赖关系,也不能明显地表示关键路径和关键任务,进度计划中的关键部分不明确。因此,在管理大型软件项目时,仅用Gantt图是不够的,不仅难于做出既节省资源又保证进度的计划,而且还容易发生差错。 工程网络不仅能描绘任务分解情况及每项作业的开始时间和结束时间,而且还能清楚地表示各个作业彼此间的依赖关系。从工程网络图中容易识别出关键路径和关键任务。因此,工程网络图是制定进度计划的强有力的工具。通常,联合使用Gantt图和工程网络这两种工具来制定和管理进度计划,使它们互相补充、取长补短。 进度安排是软件项目计划的首要任务,而项目计划则是软件项目管理的首要组成部分。与估算方法和风险分析相结合,进度安排将为项目管理者建立起一张计划图。 1.2 实验目的1) 组建项目团队,确定拟开放软件项目范围2) 制定科学、合理的软件项目开放计划3) 基于项目管理工具,编写规范的软件项目开发计划书。1.3 实验工具与环境准备Microsoft Project(或MSP) 是面向中小型项目的主流软件项目开发管理工具,能够协助软件项目经理制定计划、为任务分配资源、跟踪进度、管理预算和分析工作量等功能。Microsoft Project能够自动产生关键路径日程表。Microsoft Project(或MSP)的具体安装与使用请参考相关技术文档。1.4 实验内容与步骤第一步骤:确定项目目标第二步骤:项目工作包分解 第三步骤:借助project制定项目的进度计划(参考下表)识号任务名称 工期 开始时间 完成时间前置任务1项目范围规划2.5工作日 2001年6月20日2001年6月22日2确定项目范围4工时 2001年6月20日2001年6月20日3项目资源配备2工作日2001年6月20日2001年6月22日24项目范围规划阶段结束 0工作日2001年6月22日 2001年6月22日35软件需求分析10.38工作日 2001年6月22日 2001年7月6日。35文档20.5工作日2001年7月18日2001年8月15日36 制定“帮助”规范1工作日2001年7月18日2001年7月19日1640 审阅并修改用户文档2工作日2001年8月13日 2001年8月15日394l 文档阶段结束0工作日2001年8月15日 2001年8月15日4042项目总结2.38工作日2001年9月3日 2001年9月5日43 经验教训归档2工作日2001年9月3日 2001年9月5日3444 建立软件维护小组3工时2001年9月5日2001年9月5日4345 回顾完成0工作日2001年9月5日2001年9月5日44第四步骤:项目进度控制第五步骤:项目总结1.5 实验要求与结果1) 提交规范的软件项目开发计划书2 实验二、软件配置管理2.1 背景知识软件项目在其执行过程中产生了很多产品,包括各种文档、程序、数据和手册。所有这些产品都是易于改变的。为避免项目在变更时失控,正确控制和管理变更是很必要的。配置管理又称为软件配置管理,是项目管理中专用于关注系统地控制项目进行中发生的变更的那些部分,由用来识别机构软件产品并控制其修改的一系列活动。软件配置管理过程的主要阶段有:1) 计划和构建配置管理:为配置管理制定计划包括确定配置项、指定用于控制和实现对这些配置项的变更的规程。识别配置项是任何类型配置管理的基本活动。这个阶段的主要活动包括:识别配置项,定义为配置项命名和编号的计划,定义配置管理所需的目录结构,定义访问限制,定义变更控制规程,确定和定义配置管理委员会的责任和权利,定义跟踪配置项状态的方法、定义发布规程和定义归档规程等。2) 执行配置控制:要执行的配置控制活动主要有两个,一个涉及管理程序和文档的状态转移,另外一个是涉及管理必须实现的需求变更。3) 状态监督和审计:除了检查配置项的状态信息之外,还必须检查变更请求的状态。最后就是执行配置审计。 版本控制,是软件开发中一项必不可少的管理手段,也是软件配置管理(Software Configuration Management,SCM)的一个部分。而软件配置管理,在软件开发过程中占据着非常重要的地位,并且是CMM 2级的一个关键域。随着软件工程的发展,软件配置管理越来越成熟,从最初的仅仅实现版本控制,发展到现在的提供工作空间管理、并行开发支持、过程管理、权限控制、变更管理等一系列全面的管理能力,已经形成了一个完整的理论体系。同时在软件配置管理的工具方面,也出现了大批的产品,如:最著名的ClearCase;开源产品CVS;入门级工具Microsoft VSS;新秀Hansky Firefly。2.2 实验目的1) 安装和熟悉配置管理工具VSS2) 学习制定软件配置管理计划2.3 实验工具与环境准备VSS 的全称为 Visual Source Safe 。是微软公司开发的Microsoft Visual Studio产品系列中的一名成员,主要负责项目文件和配置管理,可以适用任何软件项目。 VSS提供良好的源代码版本控制机制,是现代软件开发中必要的管理机制之一。1)作为代码仓库有效的管理软件开发中各个不同版本的源代码和文档,占用空间小并且方便各个版本代码和文档的获取。 2)对开发小组中对源代码的访问进行有效的协调。 VSS安装和运行在Windows平台下,采用C/S架构。即开发小组的每个开发者在各自的Windows平台下利用开发工具(比如VC)开发项目中的各个模块,而配有专门的服务器集中控制开发过程中的文档和代码。服务器和开发人员的客户机分别装有VSS的服务器和客户端程序。 2.4 实验内容与步骤第一步骤:在服务器上安装VSS服务器软件,并进行配置;第二步骤:安装VSS客户端,并设置以便本地和异地进行配置管理;第三步骤:编写和制定配置管理计划。第四步骤:服务器上创建项目库,创建用户,并分配权限。 第五步骤:将VSS与VC、Eclipse等开发工具集成。 第六步骤:实践文档check in、check out、里程碑、版本分支等功能 2.5 实验要求与结果1) 掌握VSS软件安装、配置、以及与VC、Eclipse等工具集成方法2) 提交规范的软件配置管理计划书3) 构建配置管理项目库,掌握VSS的使用方法3 实验三、软件需求分析3.1 背景知识需求开发与管理是软件项目中一项十分重要的工作,据调查显示在众多失败的软件项目中,由于需求原因导致的约占到45%,因此,需求工作将对软件项目能否最终实现产生至关重要的影响。在IEEE软件工程标准词汇表(1997年)中定义软件需求为:(1)用户解决问题或达到目标所需的条件或能力。 (2)系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或能力。 (3)一种反映上面(1)或(2)所描述的条件或权能的文档说明。 “需求”就是用户的需要,它包括用户要解决的问题、达到的目标、以及实现这些目标所需要的条件,它是一个程序或系统开发工作的说明,表现形式一般为文档形式。 需求分析的过程,也叫做需求工程和需求阶段,包括了需求开发和需求管理两个部分。需求开发是指从情况收集、分析和评价到编写文档、评审等一系列产生需求的活动,分为四个阶段:需求获取、分析、制订规格说明和评审。这四个阶段不一定是遵循线性顺序的,他们的活动是相互独立和反复的。需求管理是软件项目开发过程中控制和维持需求约定的活动,它包括:变更控制、版本控制、需求跟踪、需求状态跟踪等工作。1) 需求获取需求获取是指收集和获取软件系统需求,需要收集问题域的描述,要求解决的问题列表,以及了解系统的行为或约束。需求获取的主要信息来源包括:客户(实际的和潜在的)、用户(实际的和潜在的)、已有系统及其文档 、领域专家 、相关技术标准和法规 。主要获取技术包括:阅读背景资料 ;用户访谈、调研 ;需求讨论会 ;现场观摩 。2) 需求分析需求分析是指通过对需求获取中获得的问题域的研究,获得对该领域特性及存在其中的问题特性的透彻理解并用文档说明。在“业务需求”充分理解下,并且收集了本质的“用户需求”之后就可以开始进行需求分析 。需求分析时,设计分析模型,成为开发人员之间、开发人员与客户之间达成共识的一个平台 分析的基础上,就会发现更多的不明确项,更多待捕获的信息,这时就可以生成第二次的需求调研计划、问题和素材 。3) 编写需求规约规格说明书是对需求分析结果的文档化过程 。需求规约必须与实际开发紧密结合,否则很容易造成与开发脱离 。为需求规约定义统一的格式是一个很重要的工作 ,规约内容必须严谨、正确、无歧义 。4) 需求验证不重视需求验证工作会在系统交付时,客户发现不是这样的,导致不期望的需求变更。提高需求质量的重要手段有:需求评审、需求确认和原型验证。 5) 需求管理需求管理活动包括:(1) 定义需求基线(迅速制定需求文档的主体)。 (2) 评审提出的需求变更、评估每项变更的可能影响从而决定是否实施它。 (3) 以一种可控制的方式将需求变更融入到项目中。 (4) 使当前的项目计划与需求一致。 (5) 估计变更需求所产生影响并在此基础上协商新的承诺(约定)。(6) 让每项需求都能与其对应的设计、源代码和测试用例联系起来以实现跟踪。 (7) 在整个项目过程中跟踪需求状态及其变更情况。 3.2 实验目的1) 掌握面向对象软件需求分析方法(用例模型、附加规格说明书、术语表)2) 掌握需求分析全过程,熟悉主要需求分析技术3) 学习编写需求规格说明书3.3 实验工具与环境准备 面向对象软件分析方法采用UML用例模型描述软件功能需求,支持UML建模工具,均可用于软件需求分析。其中工具包括:StarUML、Rational Rose。3.4 实验内容与步骤第一步骤:完成需求获取;第二步骤:进行需求分析;第三步骤:编写需求规格说明书、术语表、附加规格说明书。第四步骤:需求评审。 3.5 实验要求与结果1) 编写需求分析规格说明书2) 编写附加规格说明书3) 编写术语表4 实验四、软件系统概要设计4.1 背景知识(一) 概要设计任务1系统分析员审查软件计划、软件需求分析提供的文档,提出候选的最佳推荐方案,用系统流程图,组成系统物理元素清单,成本效益分析,系统的进度计划,供专家审定,审定后进入设计。2确定模块结构,划分功能模块,将软件功能需求分配给所划分的最小单元模块。确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略。3编写概要设计说明书,用户手册,测试计划,选用相关的软件工具来描述软件结构,结构图是经常使用的软件描述工具。选择分解功能与划分模块的设计原则,例如模块划分独立性原则,信息隐蔽原则等。4概要设计后转入详细设计(又称过程设计,算法设计),其主要任务,根据概要设计提供的文档,确定每一个模块的算法,内部的数据组织,选定工具清晰正确表达算法。编写详细设计说明书,详细测试用例与计划用到如何确定程序的复杂程度的程序图,算法流程图的表述工具,如PAD图,N-S图等。(二) 概要设计的过程在概要设计过程中要先进行系统设计,复审系统计划与需求分析,确定系统具体的实施方案;然后进行结构设计,确定软件结构。一般步骤如下:S1:设计系统方案S2:选取一组合理的方案S3:推荐最佳实施方案S4:功能分解S5:软件结构设计S6:数据库设计、文件结构的设计S7:制定测试计划S8:编写概要设计文档S9:审查与复审概要设计文档。(三) 软件设计的概念与原则主要内容包括有:(1) 将软件划分成若干独立成分的依据。(2) 怎样表示不同的成分内的功能细节和数据结构。(3) 怎样统一衡量软件设计的技术质量。(四) 模块化与模块独立性1) 模块化2) 模块是数据说明、可执行语句等程序对象的集合,模块可以单独被命名的而且可通过名字来访问,例如,过程、函数、子程序、宏等等都可作为模块。3) 抽象与逐步求精软件工程过程的每一步都是对软件解法的抽象层次的一次精化。逐步求精与抽象是紧密相关的。4) 信息隐蔽和局部化5) 模块独立性模块独立性是软件系统中每个模块只涉及软件要求的具体子功能,而和软件系统中其他的模块接口是简单的。模块独立的概念是模块化、抽象、信息隐蔽和局部化概念的直接结果。1模块独立性的重要性(1)具有独立的模块的软件比较容易开发出来。这是由于能够分割功能而且接口可以简化,当许多人分工合作开发同一个软件时,这个优点尤其重要。(2)独立的模块比较容易测试和维护。这是因为相对说来,修改设计和程序需要的工作量比较小,错误传播范围小,需要扩充功能时能够“插入”模块。总之,模块独立是优秀设计的关键,而设计又是决定软件质量的关键环节。模块的独立程度可以由两个定性标准度量,这两个标准分别称为内聚和耦合。耦合衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚衡量一个模块内部各个元素彼此结合的紧密程度。2耦合耦合是对一个软件结构内各个模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,调用模块的方式,以及通过接口的信息。具体区分模块间耦合程度的强弱的标准如下:(1)非直接耦合(2)数据耦合(3)控制耦合(4)公共环境耦合(5)内容耦合(6)标记耦合(7)外部耦合总之,耦合是影响软件复杂程度的一个重要因素。应该采取的原则是:尽量使用数据耦合,少用控制耦合,限制公共环境耦合的范围,完全不用内容耦合。2内聚内聚标志一个模块内各个元素彼此结合的紧密程度,它是信息隐蔽和局部化概念的自然扩展。简单地说,理想内聚的模块只做一件事情。(1)偶然内聚(2)逻辑内聚(3)时间内聚(4)过程内聚(5)通信内聚(6)信息内聚(7)功能内聚(五) 结构设计原则软件概要设计包括模块构成的程序结构和输入输出数据结构。其目标是产生一个模块化的程序结构,并明确模块间的控制关系,以及定义界面、说明程序的数据进一步调整程序结构和数据结构。改进软件设计、提高软件质量的原则。1显著改进软件结构提高模块独立性2模块规模应该适中3适当选择深度、宽度、扇出和扇入4 模块的作用域应该在控制域之内5力争降低模块接口的复杂程度6设计单入口单出口的模块7模块功能应该可以预测(六) 面向数据流的设计方法基本概念1变换流2事物流3设计过程系统结构图(SC图)的组成变换分析事务分析设计优化Jackson系统开发方法(JSD)Jackson系统开发方法(JSD,Jackson System Development)是一种典型的面向数据结构的分析设计方法。Jackson系统开发方法的系统模型就是相互通讯的一组进程的集合。进程间的通讯方式有以下三种:(1)进程同步发生。(2)通过数据通道发送/接收活动发生。(3)访问公用存储信息。1Jackson图(1)表达基本结构对于种类繁多的程序中使用的数据结构,各数据元素之间的逻辑关系只有顺序、选择、重复三种,所以逻辑数据结构也只有三种。顺序结构选择结构重复结构(2)改进的Jackson图Jackson图的缺点是:用这种图形工具表示选择或重复结构时,选择条件或循环结束条件不能直接在图上表示出来,影响了图的表达能力,也不易直接把图翻译成程序,此外,框间连线为斜线,不易在行式打印机上输出。(3)如何使用Jackson图表示数据结构用Jackson图表示下表所示的二维表格:表学生名册表头姓 名性 别班 级学 号表体.这个Jackson图首先声明了该学生名册表格由表头和表体两部分组成。其中表头又顺序包括表名和字段名。而表体可由任意行(0行或多行)组成,每行包括学生的姓名、性别、班级和学号。班级是本科的,学号项是本科生学号;班级是研究生的,学号项是研究生学号。表示程序结构例如要用Jackson图表示产生上面的学生名册文件的程序的程序结构:把学生名册生成为一个计算机文件,则该程序结构可以用下图的Jackson图来表示。学生名册表 头表 体表 名字段名 行*姓 名学 号性 别班 级本科生学号0研究生学号0Jackson伪代码顺序结构顺序结构的伪码如下,其中seq和end是关键字:A seqBCDA end选择结构select、or,和end是关键字,cond1、cond2和cond3分别是执行B、C或D的条件:选择结构对应的伪码如下:A select condIBA or cond2CA or cond3DA end重复结构iter、until、while和end是关键字(重复结构有until和while两种形式),cond是条件,重复结构对应的伪码图象:A iter until(或while) condBA end2Jackson系统开发方法步骤与实现Warnier方法Warnier程序设计方法另一种面向数据结构的设计方法,又称为逻辑地构造程序的方法,简称LCP(Logical Construction of Programs)方法。Warnier方法的原理和Jackson方法类似,也是从数据结构出发设计程序,但是这种方法的逻辑更严格。Warnier图在Warnier方法中使用的一种专用表达工具。1Warnier图2Warnier设计方法(七) 概要设计文档评审在概要设计阶段设计人员完成的主要文档是概要设计说明书,它主要规定软件的结构。概要设计说明书的主要内容及结构如下:概要设计说明书1、引言2、任务概述3、总体设计4、接口设计5、数据结构设计6、运行设计7、出错处理设计8、安全保密设计9、维护设计4.2 实验目的1) 掌握结构化/面向对象软件概要设计方法2) 掌握面向数据流设计、面向过程设计等典型结构化设计方法3) 掌握4+1视图的面向对象软件结构设计方法4) 学习编写概要设计说明书4.3 实验工具与环境准备Microsoft Visio 是微软公司生产的一个强大的图形设计软件,专门用于绘制比如数据库设计图、流程示意图、系统结构图的图形设计软件。如同其OFFICE系列软件一样,有着强大而繁多的功能,在程序和工程设计中被广泛的应用。面向对象概要设计采用UML用例模型描述软件功能需求,支持UML建模工具,均可用于软件概要设计。其中工具包括:StarUML、Rational Rose。主要的关系型数据库设计工具包括PowerDesigner和ERWin。其中,PowerDesigner采用基于Entiry-Relation的数据模型,分别从概念数据模型(Conceptual Data Model)和物理数据模型(Physical Data Model)两个层次对数据库进行设计。ERWin则界面简洁漂亮,所绘制E-R模型图清晰,关系明确,适合中小型项目。4.4 实验内容与步骤第一步骤:设计系统总体结构 第二步
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 北京市东城区北京市文汇中学2025-2026学年九年级上学期9月月考英语试题(含答案)
- 小米汽车课件
- 2025年国家公务员考试公共基础知识法律常识题500题及答案
- 高科技玩具市场的前景与发展挑战
- 2025年贵州省继续教育公需科目考试题(含答案)
- 2025年广西防城港市辅警招聘考试题库及答案
- 2025年辅警考试公安基础知识考试试题库及答案
- 2025年安徽省辅警招聘考试题题库(含参考答案)
- 2025辅警招聘考试全真模拟模拟题完整版附答案详解
- 2025年广东阳江市阳东区区内选调教师22人笔试备考题库含答案详解
- 成人雾化吸入护理团体标准
- 2025年彩焰蜡烛项目可行性研究报告
- 中医秋季养生宣讲
- 635MPa级热轧带肋高强钢筋应用技术规程
- 历年全国普通话考试真题50套
- 第三单元小数除法(单元复习讲义)教师版-2024-2025学年五年级上册(人教版)
- 人教版(2024新版)七年级上册英语Starter Unit1单元测试卷(含答案)
- 化粪池清底服务合同
- TGXAS-松阔混交林培育技术规程编制说明
- 幼儿园的食品安全工作计划
- (新教科版)科学五年级上册全册教学反思
评论
0/150
提交评论