《软件工程》实验指导书.docx
《《软件工程》实验指导书.docx》由会员分享,可在线阅读,更多相关《《软件工程》实验指导书.docx(17页珍藏版)》请在冰豆网上搜索。
![《软件工程》实验指导书.docx](https://file1.bdocx.com/fileroot1/2023-6/18/e4f20903-b52e-4f9a-9db1-52b084b7c46c/e4f20903-b52e-4f9a-9db1-52b084b7c46c1.gif)
《软件工程》实验指导书
软件工程
实验指导书
重庆科技学院
2014年5月
课程名称:
软件工程(实践)课程编码:
2334
项目
内容
一、实验目的
《软件工程》是计算机应用专业非常重要的一门专业课,该课程包括笔试和试验两部分,并且也是课程设计的科目之一。
学习《软件工程》,考生不仅需要掌握至少一门程序设计语言,还需要对数据结构、数据库、操作系统等课程有一定的了解,综合性很强。
软件工程本身是一门实践性要求较高的课程,课程实践使学生能够在深入学习基本理论知识的基础上,对软件开发过程、软件开发的主要活动以及软件开发的主要成果有进一步的认识和理解,做到理论与实践相结合。
通过实践,让学生参与软件开发过程,融入项目团队,提高成员之间的协作意识,加强沟通与交流,最终提交一个软件作品,初步掌握软件开发过程与开发方法。
二、常用实验仪器设备
1WINDOWS计算机
2WindowsServer(2000、2003等)或者Linux/WindowsXP、Vista等,MSSQLServer2000以及适当的开发工具。
三、实验项目
实践项目可以自行拟定,也可以由实践指导老师制定,项目规模适中即可,要求目标系统实现之后有5—8个表即可。
在实验环节的安排和组织上,强调模拟公司化管理。
要求4~6名同学成立一个开发小组来模拟软件公司,并选择一个合适的应用项目,按照软件企业的正规开发流程组织实施,以开发实际可使用的软件作为目标,结合课程知识进行开发。
1制订项目开发计划,选定项目,确定项目实施内容、规模,初步安排项目进度计划、以及人员分工。
2目标系统的详细定义,确定系统的功能需求、性能需求以及其它约束需求,并利用各种描述工具表达需求定义,之后开发小组内部交流,形成对问题的统一认识。
要求做一定的人机界面原型。
3总体设计,制定问题的总体解决方案,包括总体架构设计、数据结构/数据库设计、接口设计,通过交流意见,改善总体设计。
4详细设计,设计详细的设计方案,主要内容为控制流设计、人机界面改善。
5编码实现,根据选定的开发环境、编程语言,实现详细设计的内容。
要求实现过程中遵循一般编程规则:
缩进格式、注释、规范等。
6测试,制定测试计划,搭建测试环境,设计测试方案、测试数据,并实施测试。
四、实验基本要求
考核主要内容为开发过程中的各类文档资料,重点在于文档内容是否齐全、前后之间是否一致。
1项目立项、计划书;
2项目需求规格说明书:
3项目总体设计说明书;
4项目详细设计说明书;
5项目源代码、可执行程序;
6项目测试计划书、项目测试设计、以及项目测试结果与统计信息。
五、实验报告
实验报告作为每个实验的总结,是学生科研素质培养的重要手段,是整个实验的完成情况、学生实验技能和数据处理能力的集中表现,是评定实验课成绩的最主要依据。
按照基本格式要求,分类列举实验目的和要求,描绘实验项目中各个模块的功能需求、过程及其实现方法,对功能有详细的阐述,对过程有较完善的流程图,章节安排合理、有完整的格式安排;内容用词准确,语句通顺,图表编号正确,图题表头格式正确;内容布局合理,代码量适中,能够对实验内容有较好的展示与分析。
实验报告考核时间要求:
2小时。
六、必读和参考书目
软件工程.王立福.机工工业出版社.2012.3
软件工程(第2版).李代平清华大学出版社.
软件工程(第4版).张海藩.人民邮电出版社.2013.9
软件工程——理论与实践.吕云翔.人民邮电出版社.2012.8
自编实验指导书。
七、评分标准
优:
能够完成所安排的任务,代码完整展现达到实验目的,实验报告格式正确,文字描述准确,语句通顺,有完整的模块状态图与流程图;
良:
能够完成所选择实验中的大部分项目,实验报告格式基本正确,文字描述准确,语句通顺,有较好的模块状态图与流程图;
中:
能够完成所选择实验的一半项目,实验报告格式基本正确,文字描述基本准确,语句通顺,有较好的模块状态图与流程图;
及格:
能够完成所选择实验的一个项目,实验报告格式基本正确,文字描述基本准确,语句通顺,有较好的模块状态图与流程图;
不及格:
没能完成所选择实验的一个项目,或者实验报告格式错误太多,文字描述不恰当,语句不通顺。
实验一客户管理系统需求分析说明书的撰写
1实验目的:
(1)通过撰写说明书掌握软件做需求分析说明书的一些基本方法和基本理念。
(2)掌握最优方案的筛选和需求分析说明书的书写过程。
(3)了解目前正规企业软件需求说明书的写法和需求说明书在软件开发周期过程中的重要性。
2实验内容和实验步骤:
(1)通过市场调研,从技术可行性、经济可行性、操作可行性、法律可行性等几方面写出开发该软件的意义。
(2)撰写出可行性报告。
(3)提供几个可行方案,选出最优的方案。
(4)写出系统的需求分析说明
(5)功能简介:
指出必须完成的功能;次要的功能;可以不必立刻实现的功能等,优先级明确。
(6)写出与客户沟通之后的需求规格说明。
(撰写时按照网上的ISO行业标准来写)
3软件需求分析报告书写模式
3.1引言
3.1.1项目名称
3.1.2项目背景和内容概要
项目的委托单位、开发单位、主管部门、与其它项目的关系,与其他机构的关系等。
3.1.3相关资料、缩略语、定义
相关项目计划、合同及上级机关批文,引用的文件、采用的标准等。
缩写词和名词定义。
3.2任务概述
3.2.1目标
项目的开发目标和应用目标。
如果是其他系统的一部分,则说明其关系。
3.2.2范围
包含的业务,不包含的业务。
3.2.3假定条件与约束限制
尽量列出开展本项目的假定和约束,例如:
经费限制,开发期限,设备条件,用户现场环境准备等。
3.3业务流程(以活动图、系统级状态迁移图描述)
3.4数据描述
3.4.1原始数据描述
●静态数据
●动态数据
3.4.2数据流图及数据词典
3.4.3数据概念模型和描述(以类图、类级别的状态迁移图描述)
3.5功能需求(以用例图、顺序图描述)
3.6界面要求
3.6.1报表格式
3.6.2图形要求
3.6.3输入输出要求
3.7接口要求
描述与本系统相连的系统的接口数据格式,数据交换协议,接口功能等。
3.8性能需求
3.8.1数据精确度(例如,数据内部精度,外部显示精度)
3.8.2数据量
3.8.3时间特性要求
根据所开发系统的特点,规定系统对时间的特性的要求。
例如:
系统响应时间、界面更新处理时间、数据转换与传输时间。
3.9运行环境需求
3.9.1网络和硬件设备平台(网络拓扑图及设备类型描述)、操作系统平台、数据库系统平台
3.9.2编程工具
3.9.3其它支撑软件
3.10其它专门需求
3.10.1安装和操作
3.10.2安全保密
3.10.3维护服务
实验二客户管理系统的总体设计
1实验目的:
(1)了解并初步掌握系统总体设计的一般流程。
(2)熟练运用软件结构图对软件进行抽象描述。
2实验内容和实验步骤:
(1)写出系统说明
(2)写出用户手册
(3)写出测试计划,测试方案
(4)画出系统的软件结构图
(5)数据库设计
3系统概要设计书写模式
3.1引言
3.1.1项目名称
3.1.2项目背景和内容概要
项目的委托单位、开发单位、主管部门、与其它项目的关系,与其他机构的关系等。
3.1.3相关资料、缩略语、定义
3.2概要设计
3.2.1软件体系结构
用图来表示软件系统的总体结构框架,并对其进行描述。
3.2.2基本设计概念和处理流程
3.2.3软件结构
1)子系统划分(以构件图描述)
A)子系统清单
B)各子系统功能描述
C)相关项目计划、合同及上级机关批文,引用的文件、采用的标准等。
D)缩写词和名词定义
2)程序模块划分和功能分配,包括前端程序模块和后端存储过程的划分和功能分配。
A)子系统及程序模块清单
B)各程序模块功能描述
C)功能-模块对照表
D)模块-数据实体对照表
3)人工处理过程
描述不能完全自动处理,需人工处理的过程。
3.3软件模块的物理分布(以部署图描述)
根据系统网络结构,描述软件模块在各个设备上的物理分布。
3.4接口设计
3.4.1与外系统的接口
3.4.2内部接口
3.5用户界面设计
和用户交互的最终界面在《详细设计说明书》中设计解释,在此应对系统的主界面和界面设计风格进行设计和描述。
3.6数据结构和算法设计(以构件设计描述+协作图)
3.6.1程序中数据结构描述
描述系统中主要数据结构和模块间共享的数据结构。
3.6.2主要算法设计
3.7出错处理设计
3.7.1出错信息
3.7.2出错处理措施
3.8安全保密设计
描述安全保密方案,权限的设置,保密算法,软件的实现方法等。
实验三客户管理系统的详细设计
1. 实验目的:
(1)深刻认识详细设计在软件开发流程过程中的重要地位,了解详细设计的一般流程。
(2)熟练运用PS,dreamweaver等前台软件工具制作出系统各功能模块实现后的效果图。
(3)能运用专业术语对整个系统进行功能性的描述。
2. 实验内容和实验步骤:
(1)设计出所有的前台界面
(2)从系统响应时间,出错信息处理,命令交互,设计过程方面考虑界面的设计
(3)根据需要画出杰克逊图
(4)设计算法
3. 系统详细设计书写模式
3.1引言
3.1.1项目名称
3.1.2项目背景和内容概要
项目的委托单位、开发单位、主管部门、与其它项目的关系,与其他机构的关系等。
3.1.3相关资料、缩略语、定义
相关项目计划、合同及上级机关批文,引用的文件、采用的标准等。
缩写词和名词定义。
3.2程序结构(调用返回结构)
3.2.1程序结构图
主要表示程序间的调用关系。
3.2.2程序文件清单
子系统名程序文件名运行平台编程语言简要描述
3.3程序设计说明
程序文件名、子系统名、编写者、编写日期
第次修改、修改人、修改日期。
程序名称、程序功能描述
输入/输出项、主要数据结构
存取的数据库表和字段
调用的其它程序、调用的公共函数库或公共函数
算法、逻辑流程图
测试要点
3.4用户界面设计说明
3.4.1用户界面图
可制作有关用户界面图集的附录参考。
3.4.2用户界面与模块关系表
用户界面名称用户界面编号隶属的子系统相关模块名称简要名称
实验四系统功能测试
1.实验目的:
(1)深刻理解系统功能测试在软件工程中的意义,掌握系统功能测试的基本方法和基本策略。
(2)熟练运用黑盒测试技术对系统进行测试,在测试的过程中注重重点和难点的反复练习。
(3)对等价划分、边界值分析、错误值推测等有深刻的学习和了解。
2.实验内容和实验步骤:
(1)根据系统概要设计所确定的系统模块设计集成测试的策略,并完成测试计划说明书。
(2)验证系统的所有功能,看看其是否正确或遗漏。
(3)测试所有的正确和错误数据。
把运行异常的地方进行记录。
(4)运用等价划分,边界值分析方法对所有数据进行测试。
3.技术测试规范(草案)
测试是程序设计的重要环节,为了进一步规范公司的测试工作,为软件测试工作提供详细的指引,以提高软件开发工作的质量,特制定本测试规范。
3.1测试流程
3.1.1开发结束后
开发人员将程序交系统集成部安排测试。
程序的开发者负责对软件测试人员进行安装、配置和使用培训,测试人员对安装、配置和使用方法进行记录,对程序不清楚的地方开发人员负责解释。
3.1.2开始正式测试前
测试负责人对软件主要模块版本进行详细记录。
对于测试过程中的版本的更新,测试负责人记录并通知所有参加测试人员进行版本更新,每次开始测试前测试人员应检查测试计算机上的版本是否为最新版本。
3.1.3测试中发现问题
填写《测试情况反馈表》(附表一),公司将根据反馈表对测试人员进行嘉奖,奖励方法见本规范第5条。
反馈表定期汇总反馈给开发部,原则上半天反馈一次。
开发人员负责解决问题,开发人员在反馈表上对解决方法和问题出现原因进行记录。
在测试过程中,测试人员认为重大问题,比如系统的内存冲突、非法操作,测试人员应争取保留现场,请开发人员来现场查看。
经解决的问题测试人员检查后不再出现,认可后在反馈表上签字,并记录下解决时间。
反馈表由测试者保留,定期汇总上报。
3.1.4系统集成部定期提交《测试工作报告》
对于软件产品的测试工作在每一版本的测试后提交测试总结报告,对于应用系统的软件测试则应根据项目大小,工期长短确定提交测试总结报告的周期和阶段。
3.2.测试内容
3.2.1安装与测试环境:
●将程序单位的所有程序以及用到的公共子程序安装到指定的多用户测试环境,该环境应与程序实际运行环境一致;
●将系统编译成可执行文件。
3.2.2程序代码检查:
●程序单位的首部应有程序说明和修改备注,内容包括编写或更改程序的人员、时间、程序的功能及调用关系等;
●变量、过程、函数应符合统一的命名规则;
●程序中不同的功能部分应有清楚的说明信息,较复杂的程序段落也应有说明信息;
●如果是修改,在修改的代码处应有修改注释,注释说明修改的人员、时间及内容。
3.2.3画面及报表格式检查:
●画面、报表的格式以及程序的命名应符合统一的规则;
●画面、报表的字段位置、长度、类型应与设计文档的要求一致。
3.2.4功能测试:
●如果有多个画面,多个画面之间切换正确;
●每一个画面的功能键、触发键、按钮、菜单、选择项功能正确;
●检查数据项的关联与限制功能是否正确;
●找出设计文档中要求的未被包含在上述几项测试中的功能,逐项测试,检查是否达到设计文档要求的功能。
3.2.5正确性测试:
●有写/删除操作的程序,写/删除操作的结果正确,测试时应手工打开数据库表,以检查写/删除的效果;
●有查询或报表操作时,检查在各种选择项的合理组合下,所产生的结果,对照数据库中的数据是否正确;
●对照设计文档的要求,测试程序是否正确。
3.2.6可靠性测试:
●非法键容错测试:
在不同的画面,不同的字段处输入非法键,被测试程序应有非法键容错能力;
●异常数据容错测试:
在不同的画面,不同的字段输入异常数据,被测试程序应有异常数据容错能力;
●程序负作用检查,退出被测试程序后应恢复到进入前的系统状态,不应影响其它程序的正确运行;
●残留文件检查,退出程式后在本地机和服务器的有关目录或TEMP目录
●下不应留下任何无用的文件。
3.2.7效率测试:
本项测试需分开单用户及多用户的情况下进行。
●画面操作效率测试:
逐项测试每一项操作,特别是读/写、翻页、滚屏等操作,记录延迟最长的操作及时间;
●报表及查询效率测试:
分别选择最小范围(非空)的数据及最大范围(根据实际情况定)的数据,记下机器型号及产生结果所花的时间;
●评价程序效率是否合理;
3.2.8多用户测试:
●随机测试:
在两个或以上的终端同时多次进入和退出被测试程序,程序应正确无误;
●共享测试:
在两个或以上的终端同时调用被测试程序做同样的工作,程序正确无误;
●同步测试:
就程序中使用到的同步机构,有针对性地组织数据进行测试,有关同步的命令包括对数据库表、文件的共享,互斥操作,文件程序或记录的加锁、解锁,对公共数据区域的操作等。
3.2.9测试报告:
●进行软件测试的同时需填写软件测试报告,软件测试报告格式见附页;
●每一项编程工作要经过程序员和测试工程师两级测试均合格后方可安装
●给用户;
●填表说明:
◆表中程序员、测试工程师等空格由测试人员自己签字,当有多次反复测试时,日期填第一次通过测试的日期;
◆测试结果有两种填写形式,第一种形式由两个小方块“□”提示,分别由程序员,测试工程师填写,当通过测试时填“√”。
第二种形式由长条提示,需填写测试内容;
◆测试工程师发现问题时,要在测试备忘中记录签字,若问题较多可另用A4纸记录,然后退回程序员更正;
◆不需要测试的项目用“\”号画去;
◆“其它测试”是为上八条未涉及的测试内容而设计的。
实验五系统单元测试
1.实验目的:
(1)重点掌握单元测试的5个方面以及代码审查过程中应该注意的事项。
(2)了解不同测试策略的优缺点,掌握集成测试的两种方法。
(3)通过系统单元测试练习,认识系统单元测试的关键性和重要性。
2.实验内容和实验步骤:
(1)模块接口的测试,使数据能正常进出。
(2)找到局部数据结构的错误来源。
(3)重要的执行通路
(4)出错处理通路
(5)边界条件
(6)代码审查
实验六系统维护
1.实验目的:
(1)通过学习了解系统维护的意义和维护方法及特点。
(2)了解一些系统维护过程中经常出现的问题及解决问题的方法策略。
(3)掌握软件维护的过程。
(4)了解预防性维护和软件再工程过程。
2.实验内容和实验步骤:
(1)改正性维护(纠正使用中的错误)
(2)适应性维护
(3)完善性维护
(4)预防性维护(仔细检查文档和程序代码的对应性)