软件工程实验指导书

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

昆明学院
软件工程课程实验指导书
(适用于计算机科学与技术专业软件方向)(学分:4 学时: 4学时)
信息技术学院
2012年8月
一、实验教学目的及任务
软件工程实验是为计算机相关专业本科《软件工程》课程配套设置的,是《软件工程》课程讲授中一个重要的、不可或缺的实践环节。

其目的是使学生能够针对具体软件工程项目,全面掌握软件工程管理、软件需求分析、软件初步设计、软件详细设计、软件测试等阶段的方法和技术,通过该课程设计使学生进一步理解和掌握软件开发模型、软件生命周期、软件过程等理论在软件项目开发过程中的意义和作用,培养学生按照软件工程的原理、方法、技术、标准和规范,进行软件开发的能力,培养学生的合作意识和团队精神,培养学生对技术文档的编写能力,从而使学生提高软件工程的综合能力,提高软件项目的管理能力。

二、实验课的基本理论与实验技术知识
按该课程的特点,实验内容包括软件开发的两大方法学的专题训练,即结构化(生命周期学)的方法学和面向对象的方法学,通过对一个简单项目,要求学生利用结构化软件开发技术或面向对象的软件开发技术完成对该项目的开发。

因此设置五个实验项目,从项目发的准备工作,系统分析过程,系统设计过程,软件测试到系统实施,覆盖软件开发的整个过程,此外又引入我国国家《计算机开发规范》,以规范技术文档的书写标准,提高实验教学质量。

三、考核方式及成绩评定标准
考核采用分组互评机制,由随机选定3个项目组长对待评文档进行评分,评定标准从可理解度、可描述度、规范度、准确度4个方面进行A、B、C、D,4个等级进行评分,最终评分是综合分数。

四、实验教材及主要参考资料
《软件工程实践者之路》【美】普瑞斯曼。

五、实验项目
实验一项目开发的准备工作
【实验目的】
(1)目的:确定课题,组织组员,合理分工,熟悉软件开发环境,培养团队精神。

【实验原理/实验基础知识】
根据各组选择的课题,实行项目经理制,各组推荐一名组长,统一管理整个项目的实施过程,并和理调整资源和负责项目全局;根据项目的难易合理分配组员的任务,对问题达成一直的看法;针对项目的实施,熟悉相应的软件开发工具的使用环境。

【实验环境】
StarUML。

【实验步骤】
(1)本实验为开放实验,各组可同时进行实验,每组3-5人。

(2)准备参考资料和阅读相关的国家有关软件开发的标准文档。

(3)学习StarUML使用。

【实验报告】
即:填写《信息技术学院学生上机实验报告》、《可行性报告》、《项目开发计划》。

【思考题】
1、项目开发首先要做的事是什么?
2、你认为该软件应具备的最重要的特性是什么。

3、你认为怎样分工是最合理的?
实验二需求分析
【实验目的】
(1)确定项目的可实施性,在此基础上完成系统的逻辑功能模型的建立。

【实验原理/实验基础知识】
明白项目的业务流程图,绘制数据流程图,功能分析图,编写数据字典,数据加工处理的描述,软件系统流程设想图(新系统模型),需求规格说明书。

【实验环境】
StarUML。

【实验步骤】
(1)本实验为开放实验,各组可同时进行实验,每组3-5人。

(2)阅读项目各种资料,分析《可行性报告》和《项目开发计划书》
(3)分析系统范围各种元素。

(4)绘制相关模型图形。

【实验报告】
填写《信息技术学院学生上机实验报告》、《软件需求说明书》、《数据需求说明书》。

【思考题】
1、需求分析在软件开发中真的有那么重要吗?
2、分析系统流程图,流程图和数据流图的区别和各自的特点。

3、怎样写合乎规范的数据流图和数据词典?
4、怎样组织对该工作的评审?
实验三系统设计
【实验目的】
(1)在实验二基础上完成系统的体系结构的建立和系统详细设计,并给出相应的规格说明书。

【实验原理/实验基础知识】
认真分析实验二的结果,给出系统合理的体系结构,描绘系统结构图,并合理划分系统的各组成模块,最后给出系统的各部分设计规格说明书。

【实验环境】
StarUML
【实验步骤】
(1)本实验为开放实验,各组可同时进行实验,每组3-5人。

(2)使用StarUML绘制功能结构图设计,软件处理流程设计,输出设计(主要指打印输出设计),存储文件格式设计(数据库结构设计),输入设计(主要指数据录入卡设计),
代码设计,程序设计说明书。

【实验报告】
填写《信息技术学院学生上机实验报告》、《概要设计说明书》、《详细设计说明书》、《数据库设计说明书》、《用户手册》、《操作手册》、《模块开发卷宗》。

【思考题】
1.系统设计和需求分析的关系是什么?两者必须先后关联吗?
需求分析是一个项目的开端,也是项目建设的基石。

是对用户需求的定义,对软件系统的描述。

在以往建设失败的项目中,80%是由于需求分析的不明确而造成的。


此一个项目成功的关键因素之一,就是对需求分析的把握程度。

而项目的整体风
险往往表现在需求分析不明确、业务流程不合理,用户不习惯或不愿意去用承建
方的软件。

作为第三方的监理公司,必须提醒承建方、客户方重视需求分析的重
要性。

系统分析的任务:将用户的业务逻辑转化为程序逻辑,计算时间和成
本。

根据开发人员的理论知识和实际的经验,人们会采用各种满足实际情况的系
统分析、开发方法、步骤以及文档等等
2.怎样描绘系统的体系结构?
系统体系结构是由许多结构要素及各种视图(或观点)(View)所组成的,而各种视图主要是基于各组成要素之间的联系与互操作而形成的。

所以,系统体系结构是一个
综合各种观点的模型,用来完整描述整个系统。

体系结构框架(Architecture
Framework)用于规定具体体系结构的定义及其文档所表达的意义。

体系结构框架
不需要包罗万象,通常只是针对特定的领域,可能更注重战略方面的问题,并为
体系结构的发展演变提供指导。

,“体系结构”指系统的组成结构及其相互关系,
是指导系统设计和发展的原则。

“体系结构框架”是用于规范体系结构设计的指南。

3.怎样绘制复合规范的流程图。

了解流程图的各个符号以及流程图的形式,根据需要来选择框,线等绘制出系统所要求的流程图。

4.怎样组织对设计阶段工作的评审?
实验四软件测试
【实验目的】
(1)在实验三的基础上,完成对系统的组装和测试。

【实验原理/实验基础知识】
正确运用软件测试技术和方法,完成系统的单元测试、综合测试、确认测试、系统测试的方法,掌握测试用例的设计方法,并给出测试报告。

【实验环境】
VS2008
【实验步骤】
(1)单元测试;
(2)综合测试;
(3)确认测试;
(4)系统测试的;
【实验报告】
填写《信息技术学院学生上机实验报告》、《测试计划》、《测试分析报告》。

【思考题】
1.怎样看待测试的重要性。

2.怎样选择测试的技术和方案。

3.比较逻辑测试和基本路径测试的不同和联系。

4.怎样组织对测试阶段工作的评审?
实验五系统实施
【实验目的】
(1)系统运行和软件后期制作。

(2)总结软件开发中的得失,正确书写软件说明书和用户手册。

【实验原理/实验基础知识】
结合系统实施方案完善系统所涉及的程序框图,源程序,模拟运行数据,打印报表,软件使用说明书和用户手册等。

【实验环境】
SartUML
【实验步骤】
(1)查阅项目全部文档资料;
(2)评审文档资料中存在的各种问题;
(3)评审开进度月报;
(4)对项目实施的总体环境进行全面评估和总结;
【实验报告】
填写《信息技术学院学生上机实验报告》、《开发进度月报》、《项目开发总结报告》
【思考题】
1、怎样合理选择软件开发的工具?
2、怎样进行用户说明手册和使用手册的编写。

3、总结项目实施中的得失。

附录一:
实验总体要求
软件工程实验要求学生采用“项目小组”的形式,结合具体的开发项目进行设计。

具体要求如下:
1.班级按项目小组进行分组,每组3-5人
2.每个项目小组选出项目负责人或项目经理,由项目经理召集项目组成员讨论、选定开发项目
3.项目中的每项任务要落实到人且规定该任务的起止日期和时间
4.每个项目小组必须按照《软件工程实验指导书》附录中给定的文档规范标准提供项目文档
5.题目自定或采用附录二中的题目
6.软件开发的方法自定(结构化或面向对象的方法学)
实验题目
1.物流管理系统
2.学生管理系统
3.图书借阅系统
4.人事管理系统
5.汽车导航系统
6.机房管理系统
7.工资管理系统
8.银行储蓄管理系统
9.商店管理系统
10.机票订购系统
11.图书分销系统
12.网络书店
13.网络商店
14.客户管理系统
15.设备管理系统
16.科研成果管理系统
17.大学排课系统
18.网络消息发布系统
19.电子表决系统
20.网上掀起系统
21.试题管理系统
软件开发文档指南
1 可行性研究报告
可行性研究报告的编写目的是:说明该软件开发项目的实现在技术、经济和社会条件方面的可行性;评述为了合理地达到开发目标而可能先择的各种方案;说明论证所选定的方案。

可行性研究报告的编写内容要求如下:
1.1 引言
1.1.1 编写目的
1.1.2 背景
1.1.3 定义
1.1.4 参考资料
1.2 可行性研究的前提
1.2.1 要求
1.2.2 目标
1.2.3 条件、假定和限制
1.2.4 进行可行性研究的方法
1.2.5 评价尺度
1.3 对现有系统的分析
1.3.1 数据流程和处理流程
1.3.2 工作负荷
1.3.3 费用开支
1.3.4 人员
1.3.5 设备
1.3.6 局限性
1.4 所建议的系统
1.4.1 对所建议系统的说明
1.4.2 数据流程各处理流程
1.4.3 改进之处
1.4.4 影响
1.4.4.1 对象设备的影响
1.4.4.2 对软件的影响
1.4.4.3 对用户单位机构的影响
1.4.4.4 对系统动行的影响
1.4.4.5 对开发的影响
1.4.4.6 对地点和设施的影响
1.4.4.7 对经费开支的影响
1.4.5 局限性
1.4.6 技术条件方面的可行性
1.5 可选择其他系统方案
1.5.1 可选择的系统方案1
1.5.2 可选择的系统方案2
……
1.6 投资及收益分析
1.6.1 支出
1.6.1.1 基本建设投资
1.6.1.2 其他一次性支出
1.6.1.3 非一次性支出
1.6.2 收益
1.6.
2.1 一次性收益
1.6.
2.2 非一次性收益
1.6.
2.3 不可定量的收益
1.6.3 收益/投资比
1.6.4 投资回收周期
1.6.5 敏感性分析
1.7 社会条件方面的可行性
1.7.1 法律方面的可行性
1.7.2 使用方面的可行性
1.8 结论
2 项目开发计划
编制项目开发计划的目的是用文件的形式,把对于在开发过程中各项工作的负责人员、开发进度所需经费预算、所需软、硬件条件等问题作出安排记载下来,以便根据本计划开展和检查本项目的开发工作。

编制内容要求如下:
2.1 引言
2.1.1 编写目的
2.1.2 背景
2.1.3 定义
2.1.4 参考资料
2.2 项目概述
2.2.1 工作内容
2.2.2 主要参加人员
2.2.3 产品及成果
2.2.
3.1 程序
2.2.
3.2 文件
2.2.
3.3 服务
2.2.
3.4 非移交产品
2.2.4 验收标准
2.2.5 完成项目的最迟期限
2.2.6 本计划的审查者与批准者
2.3 实施总计划
2.3.1 工作任务的分解
2.3.2 接口人员
2.3.3 进度
2.3.4 预算
2.3.5 关键问题
2.4 支持条件
2.4.1 计算机系统支持
2.4.2 需要用户承担的工作
2.4.3 需由外单位提供的条件
2.5 专题计划要点
3 软件需求说明书
软件需求说明书的编制是为了使用户的软件开发者双方对该软件的起初规定有一个共同的理解,使之成为整个开发工作的基础。

编制软件需求说明书的内容要求如下:
3.1 引言
3.1.1 编写的目的
3.1.2 背景
3.1.3 定义
3.1.1 参考资料
3.2 任务概述
3.2.1 目标
3.2.2 用户的点
3.2.3 假定与约束
3.3 需求规定
3.3.1 对功能的规定
3.3.2 对性能的规定
3.3.2.1 精度
3.3.2.2 时间特性要求
3.3.2.3 灵活性
3.3.3 输入输出要求
3.3.4 数据管理能力的要求
3.3.5 故障处理要求
3.3.6 其它的专门的要求
3.4 运行环境规定
3.4.1 设备
3.4.2 支持软件
3.4.3 接口
3.4.4 控制
4 数据需求说明书
数据要求说明书的编制目的是为了向整个开发时期提供关于处理数据的描述和数据采集
要求的技术信息。

编制数据要求说明书的内容要求如下:
4.1 引言
4.1.1 编写目的
4.1.2 背景
4.1.3 定义
4.1.4 参考资料
4.2 数据的逻辑描述
4.2.1 静态数据
4.2.2 动态输入数据
4.2.3 动态输出数据
4.2.4 内部生成数据
4.2.5 数据约定
4.3 数据的采集
4.3.1 要求和范围
4.3.2 输入的承担者
4.3.3 处理
4.3.4 影响
5 概要设计说明书
概要设计说明书可称作系统设计说明书,这里说的系统是指程序系统,编制的目的是说明对程序的系统的设计考虑,包括程序系统的基本处理流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。

编制概要设计说明书的内容要求如下:
5.1 引言
5.1.1 编写目的
5.1.2 背景
5.1.3 定义
5.1.4 参考资料
5.2 总体设计
5.2.1 需求规定
5.2.2 运行环境
5.2.3 基本设计概念和处理流程
5.2.4 结构
5.2.5 功能需求与程序的关系
5.2.6 人工处理过程
5.2.7 尚未解决的问题
5.3 接口设计
5.3.1 用户接口
5.3.2 内部接口
5.3.3 外部接口
5.4 运行设计
5.4.1 运行模块组合
5.4.2 运行控制
5.4.3 运行时间
5.5 系统数据结构设计
5.5.1 逻辑结构设计要点
5.5.2 物理结构设计要点
5.5.3 数据结构与程序的关系
5.6 系统出错处理设计
5.6.1 出错信息
5.6.2 补救措施
5.6.3 系统维护设计
6 详细设计说明书
详细说明书可称作程序设计说明书。

编制目的是说明一个软件系统各个层次中的每一个程序(每个模块或子程序)的设计考虑,如果一个软件系统比较简单,层次很少,本文件可以不单独编写,有关内容合并概要设计说明书。

对详细设计说明书的内容要不得要求如下:
6.1 引言
6.1.1 编写目的
6.1.2 背景
6.1.3 定义
6.1.4 参考资料
6.2 程序系统的组织结构
6.3 程序1(标识符)设计说明
6.3.1 程序描述
6.3.2 功能
6.3.3 性能
6.3.4 输入项
6.3.5 输出项
6.3.6 算法
6.3.7 流程逻辑
6.3.8 接口
6.3.9 存储分配
6.3.10 注释设计
6.3.11 限制条件
6.3.12 测试计划
6.3.13 尚未解决的问题
6.4 程序2(标识符)设计说明
……
7 数据库设计说明书
数据库设计说明书的编制目的是对于设计中的数据库所有标识、逻辑结构和理结构作出具体的设计规定。

其内容要求如下:
7.1 引言
7.1.1 编写目的
7.1.2 背景
7.1.3 定义
7.1.4 参考资料
7.2 外部设计
7.2.1 标识符和状态
7.2.2 使用它的程序
7.2.3 约定
7.2.4 专门指导
7.2.5 支持软件
7.3 结构设计
7.3.1 概念结构设计
7.3.2 逻辑结构设计
7.3.3 理结构设计
7.4 运用设计
7.4.1 数据字典设计
7.4.2 安全保密设计
8 用户手册
用户手册的编制是要使用非专门术语的语言,充分地描述该软件系统工程所具有的功能及基本的使用方法。

使用户(或潜在用户)通过本手册能够了解该软件的用途,并且能够确定在什么情况下,如何使用它。

具体的内容要求如下:
8.1 引言
8.1.1 编写目的
8.1.2 背景
8.1.3 定义
8.1.4 参考资料
8.2 用途
8.2.1 功能
8.2.2 性能
8.2.2.1 精度
8.2.2.2 时间特性
8.2.2.3 灵活性
8.2.3 安全保密
8.3 运行环境
8.3.1 硬设备
8.3.2 支持软件
8.3.3 数据结构
8.4 使用过程
8.4.1 安装与初始化
8.4.2 输入
8.4.2.1 输入数据的现实背景
8.4.2.2 输入格式
8.4.2.3 输入举例
8.4.3 输出
8.4.3.1 输出数据的现实背景
8.4.3.2 输出格式
8.4.3.3 输出举例
8.4.4 文卷查询
8.4.5 出错处理与恢复
8.4.6 终端操作
9 操作手册
操作手册的编制是为了向操作人中提供该软件每一个运行的具体过程和有关知识,包括操作方法的细节。

具体的内容要求如下:
9.1 引言
9.1.1 编写目的
9.1.2 背景
9.1.3 定义
9.1.2 参考资料
9.2 软件概述
9.2.1 软件的结构
9.2.2 程序表
9.2.3 文卷表
9.3 安装与初始化
9.4 运行说明
9.4.1 运行表
9.4.2 运行步骤
9.4.3 运行1(标识符)说明
9.4.3.1 运行控制
9.4.3.2 操作信息
9.4.3.3 输入-输出文卷
9.4.3.4 输出文段
9.4.3.5 输出文段的复制
9.4.3.6 启动恢复过程
9.4.4 运行2(标识符)说明
9.5 非常规过程
9.6 远程操作
10 模块开发卷宗
模块开发卷宗是在模块开发过程中逐步编写出来的,每完成一个模块或一级密切相关的模块的复审时编写一份,应该把所有的模块开发卷宗汇集在一起。

编写的目的是记录和汇总
低层次开发的进度和结果,以便于对整个模块开发工作的管理和复审,并为将来的维护提供非常有用的技术信息。

具体的内容要求如下:
10.1 标题
10.2 模块开发情况表
10.3 功能说明
10.4 设计说明
10.5 源代码清单
10.6 测试说明
10.7 复审的结论
11 测试计划
11.1 引言
11.1.1 编写目的
11.1.2 背景
11.1.3 定义
11.1.4 参考资料
11.2 计划
11.2.1 软件说明
11.2.2 测试内容
11.2.3 测试1(标识符)
11.2.3.1 进度安排
11.2.3.2 条件
11.2.3.3 测试资料
11.2.3.4 测试培训
11.2.4 测试2(标识符)
……
11.3 测试设计说明
11.3.1 测试1(标识符)
11.3.1.1 控制
11.3.1.2 输入
11.3.1.3 输出
11.3.1.4 过程
11.3.2 测试2(标识符)
……
11.4 评价准则
11.4.1 范围
11.4.2 数据整理
11.4.3 尺度
12 测试分析报告
测试分析报告的编写是为了把组装测试和确认测试的结果、发现及分析写成文件加发记载,具体的编写内容要求如下:
12.1 引言
12.1.1 编写目的
12.1.2 背景
12.1.3 定义
12.1.4 参考资料
12.2 测度概要
12.3 测试结果及发现
12.3.1 测试1(标识符)
12.3.2 测试2(标识符)
……
12.4 对软件功能的结论
12.4.1 功能1(标识符)
12.4.1.1 能力
12.4.1.2 限制
12.4.2 功能2(标识符)
……
12.5 分析摘要
12.5.1 能力
12.5.2 缺陷和限制
12.5.3 建议
12.5.4 评价
12.6 测试资源消耗
13 开发进度月报
开发进度月报的编制目的是及时向有关管理部门汇报项目开发的进展和情况,以便函及时发现或处理开发过程中出现的问题。

一般地,开发进度月报是以项目组为单位每月编写的。

如果被开发的软件系统规模比较大,整个工程项目被划分给若干个分项目组承担,开发进度月报将以项目组为单位按月编写。

具体的内容要求如下:
13.1 标题
13.2 工程进度与状态
13.2.1 进度
13.2.2 状态
13.3 资源耗用与状态
13.3.1 资源耗用
13.3.1.1 工时
13.3.1.2 机时
13.3.2 状态
13.4 经费支出与状态
13.4.1 经费支出
13.4.1.1 支持性费用
13.4.1.2 设备购置费
13.4.2 状态
13.5 下个月的工作计划
13.6 建议
14 项目开发总结报告
项目开发总结报告的编制是为了总结本项目开发工作的经验,说明实际取得的开发结果以及对整个开发工作的各个方面的评价。

具体的内容要求如下:
14.1 引言
14.1.1 编写目的
14.1.2 背景
14.1.3 定义
14.1.4 参考资料
14.2 实际开发结果
14.2.1 产品
14.2.2 主要功能和性能
14.2.3 基本流程
14.2.4 进度
14.2.5 费用
14.3 开发工作评价
14.3.1 对生产效率的评价
14.3.2 对产品质量的评价
14.3.3 对技术方法的评价
14.3.4 出错原因的分析。

相关文档
最新文档