1《软件工程实践》实验指导书学院:数学与计算机学院专业:计算机专业年级:指导教师:汪璟玢系主任(或教研室主任):2本课程实验教学目的和基本要求:知识方面:通过本课程设计,让学生进一步了解软件项目管理、需求分析、系统设计和软件测试的基本原理和方法,在软件开发的各个阶段熟悉并掌握一种表达工具,实现一个小规模的系统开发。能力方面:在本课程设计过程中,注重培养学生分析问题和独立解决问题的能力。素质方面:通过本课程设计,着重培养学生具备以下两方面的良好素质:一是针对实际系统中存在的问题,能够善于运用所学基本理论知识分析问题;二是规范地表达分析和设计方案。本课程设计要求学生3-6人一组完成一个系统,并按照软件工程的规范形成相关文档资料。参考资料:1.《软件工程实践者的研究方法》(第六版)(美)RogerS.Pressman著,郑人杰马素霞白晓颖译,机械工业出版社2.《软件工程实践者的研究方法》(第五版)(美)RogerS.Pressman著,梅宏译,机械工业出版社3.《软件工程》(第六版)(英)IanSommerville著,程一剑陈霞译,机械工业出版社4.《软件工程》郑人杰主编,清华大学出版社5.《软件工程—理论、方法与实践》孙家广主编,刘强编著,高等教育出版社3实验一:项目选择与用例图表达目的:结合具体的项目,要求学生结合用例图和用例文本的方法将系统功能表达清楚。内容:项目选择、参与者确定、用例识别、用例间的关系表达,用例文本的表达要求:能够发现任务与用例的关系、用例间的关系并准确表达、用规范的用例文本描述用例。开发环境和工具要求掌握:Windows200AdvancedServer、RationalRose2003、MSvisio2003实验二:系统需求分析报告—类图目的:通过本次实验掌握对具体项目进行类的识别和分析,并完成系统类图。内容:识别类、确定类的属性和操作、分析类间的关系完成类图要求:调查工作要深入,对系统的业务流程要充分了解;结合系统的功能进行类的分析。开发环境和工具要求掌握:Windows200AdvancedServer、MSvisio2003、RationalRose2003实验三:系统需求分析报告—数据流图目的:结合具体项目,训练学生的抽象分析及分层描述问题的能力,联系数据和功能,分层次表达系统的功能。内容:任务分解;识别外部实体、加工、数据存储和数据流;分层次表达的方法。要求:调查工作要深入,对系统的业务流程要充分了解;结合系统的功能分解进行数据流图的绘制。开发环境和工具要求掌握:Windows200AdvancedServer、MSvisio20034实验四:系统需求分析报告—状态图目的:结合案例,训练学生的动态分析能力,寻找系统的状态及类的状态、通过状态迁移的条件和动作表达系统的动态变化。内容:状态的确定和状态迁移的方向;系统状态图的绘制;类状态图的绘制;要求:调查工作要深入,对系统的业务流程要充分了解;结合系统的功能进行状态的分析。开发环境和工具要求掌握:Windows200AdvancedServer、MSvisio2003、RationalRose2003实验五:系统需求分析报告—小组评审目的:结合具体项目,要求学生掌握系统的范围、功能建模的方法、数据流图、数据字典、类图、功能的描述、系统需求分析报告的内容,通过训练提高系统分析与建模的能力。内容:对新系统的功能进行细致的分析,并建立一个新系统的逻辑模型:系统数据流程图、概况表、数据字典、E-R图、处理逻辑表达式及有关说明组成;用例图、类图、状态图、序列图。最后要完成系统分析报告。要求:调查工作要深入,对系统的业务流程要充分了解;系统的数据流图、数据字典、用例图、类图、状态图、序列图要详细并体现系统所要达到的功能;E-R图准确合理。开发环境和工具要求掌握:Windows200AdvancedServer、MSvisio2003、RationalRose2003实验六:系统概要设计报告—小组评审目的:通过实验掌握根据需求建立设计的方法,运用RationalRose2003工具对前一阶段的模型进行扩充和设计,完成相应面向实现的设计方案,掌握基本的BCED设计方法。内容:根据系统分析所确定的系统目标及逻辑模型,用结构化系统设计方法或面向对象设计方法,将系统划分为若干个物理单元,绘制出系统及各个物理单元的结构图,并按一定格式编写出模块说明书。要求:按照处理功能划分模块;遵从“模块独立性原则”;模块结构图的层次清晰合理;面向对象设计遵从BCED原则。5开发环境和工具要求掌握:Windows200AdvancedServer、MSvisio2003、RationalRose2003实验七:系统详细设计报告—设计模式与交互图目的:结合案例,要求学生运用适合的设计模式设计类;明确完成一个功能所需的类之间的协作关系和发送消息的顺序,完成顺序图与协作图。内容:介绍几种常用的设计模式;结合具体案例,合理地运用设计模式;结合“高内聚、低耦合”的思路,确定协作类;完成类间协作的顺序图和协作图。要求:设计应围绕着重用、独立性、易于扩展等设计原则。开发环境和工具要求掌握:Windows200AdvancedServer、MSvisio2003、RationalRose2003实验八:系统数据库设计与详细设计报告—小组评审目的:通过实验分析特定项目中所涉及的数据,以及数据之间的关系,按照数据库系统的规范进行数据库设计;完成特定系统的面向实现的详细设计方案。内容:将E-R模型转换为一般的数据模型或某种数据库管理系统支持的数据库模型;设计数据库的物理结构,包括:数据库名称、数据库的组织形式、存储介质的分配、数据存取路径的选择、数据的安全性与完整性、数据库的恢复等。要求:安全、有效、可靠地存取数据开发环境和工具要求掌握:Windows200AdvancedServer、Oracle9i、SQLServer2005实验九:代码编制目的:根据前面实验所完成的设计方案进行代码的编制,要求按照软件工程的规范进行。(自行完成)开发环境和工具要求掌握:Windows200AdvancedServer、ASP、JaveScript、VBScript、Jbuilder等6实验十:软件测试计划目的:按照软件测试的原理和方法,对所完成的系统进行测试,提交测试方案和测试结果,并能根据结果进行简单的分析。内容:根据系统概要设计所确定的系统模块设计集成测试的策略,并完成测试计划说明书。要求:尽量采用独立测试,尽量与系统构造并行。开发环境和工具要求掌握:Windows200AdvancedServer、Word实验十一:项目计划目的:通过本次实验掌握对特定项目范围的分析、描述,并能根据项目范围分解出任务网络图,定义里程碑,运用项目估算技术进行估算,借助MSProject2003工具完成项目计划。内容:项目范围定义、任务分解、任务估算、进度安排要求:能够发现关键问题,并对问题准确描述。开发环境和工具要求掌握:Windows200AdvancedServer、MSProject2003、MSvisio20037附录一:软件需求分析报告书写模式1.引言1.1项目名称1.2项目背景和内容概要项目的委托单位、开发单位、主管部门、与其它项目的关系,与其他机构的关系等。1.3相关资料、缩略语、定义相关项目计划、合同及上级机关批文,引用的文件、采用的标准等。缩写词和名词定义。2.任务概述2.1目标项目的开发目标和应用目标。如果是其他系统的一部分,则说明其关系。2.2范围包含的业务,不包含的业务。2.3假定条件与约束限制尽量列出开展本项目的假定和约束,例如:经费限制,开发期限,设备条件,用户现场环境准备等。3.业务流程(以活动图、系统级状态迁移图描述)4.数据描述4.1原始数据描述a.静态数据b.动态数据4.2数据流图及数据词典4.3数据概念模型和描述(以类图、类级别的状态迁移图描述)5.功能需求(以用例图、顺序图描述)5.1功能描述6.界面要求6.1报表格式6.2图形要求6.3输入输出要求7.接口要求描述与本系统相连的系统的接口数据格式,数据交换协议,接口功能等。8.性能需求8.1数据精确度(例如,数据内部精度,外部显示精度)8.2数据量8.3时间特性要求根据所开发系统的特点,规定系统对时间的特性的要求。例如:系统响应时间、界面更新处理时间、数据转换与传输时间。9.运行环境需求89.1网络和硬件设备平台(网络拓扑图及设备类型描述)、操作系统平台、数据库系统平台9.2编程工具9.3其它支撑软件10.其它专门需求10.1安装和操作10.2安全保密10.3维护服务附录二:系统概要设计书写模式1.引言1.1项目名称1.2项目背景和内容概要项目的委托单位、开发单位、主管部门、与其它项目的关系,与其他机构的关系等。1.3相关资料、缩略语、定义2.概要设计2.1软件体系结构用图来表示软件系统的总体结构框架,并对其进行描述。2.2基本设计概念和处理流程2.3软件结构1)子系统划分(以构件图描述)A)子系统清单B)各子系统功能描述C)相关项目计划、合同及上级机关批文,引用的文件、采用的标准等。D)缩写词和名词定义2)程序模块划分和功能分配包括前端程序模块和后端存储过程的划分和功能分配。A)子系统及程序模块清单B)各程序模块功能描述C)功能-模块对照表D)模块-数据实体对照表3)人工处理过程描述不能完全自动处理,需人工处理的过程。3.软件模块的物理分布(以部署图描述)根据系统网络结构,描述软件模块在各个设备上的物理分布。4.接口设计4.1与外系统的接口4.2内部接口95.用户界面设计和用户交互的最终界面在《详细设计说明书》中设计解释,在此应对系统的主界面和界面设计风格进行设计和描述。6.数据结构和算法设计(以构件设计描述+协作图)6.1程序中数据结构描述描述系统中主要数据结构和模块间共享的数据结构。6.2主要算法设计7.出错处理设计7.1出错信息7.2出错处理措施8.安全保密设计描述安全保密方案,权限的设置,保密算法,软件的实现方法等。附录三:系统数据库设计书写模式1.引言1.1项目名称1.2项目背景和内容概要项目的委托单位、开发单位、主管部门、与其它项目的关系,与其他机构的关系等。1.3相关资料、缩略语、定义相关项目计划、合同及上级机关批文,引用的文件、采用的标准等。缩写词和名词定义。2.约定数据库中各种元素的命名约定。例如表名,字段名的命名约定。3.数据库概念模型设计3.1数据实体-关系图3.2数据实体描述数据实体中文名,数据库表名数据实体描述3.3实体关系描述描述每个实体间的关系实体1:实体2(1:1,1:n,m:n)关系描述:4.数据库逻辑模型设计4.1实体-关系图(不含多-多关系)(以ER图描述)4.2关系模型描述数据库表名(别名)、主键、外键、索引、约束中文名称数据属性名数据类型数据长度约束范围是否为空注解4.3数据视图描述用标准SQL语言中创建数据视图的语句描述。104.4数据库一致性设计用标准SQL语言中创建表的语句描述。5.物理实现5.1数据库的安排。说明是否采用分布式数据库,数据库表如何分布。每个数据库服务器上建立几个数据库,其存储空间等安排。数据库表的的分配方法,例如:如何创建段,或表空间5.2安全保密设计用户角色划分方法,每个角色的权限附录四:系统详细设计书写模式1.引言1.1项目名称1.2项目背景和内容概要项目的委托单位、开发单位、主管部门、与其它项目的关系,与其他机构的关系等。1.3相关资料、缩略语、定义相关项目计划、合同及上级机关批文,引用的文件、采用的标准等。缩写词和名词定义。2.程序结构(调用返回结构)2.1程序结构图主要表示程序间的调用关系。2.2程序文件清单子系统名程序文件名运行平台编程语言简要描述3.程序设计说明程序文件名、子系统名、编写者、编写日期第次修改、修改人、修改日期。程序名称、程序功能描述输入/输出项、主要数据结构存取的数据库表和字段调用的其它程序、调用的公共函数库或公共函数算法、逻辑