10模块开发卷宗编写模板
- 格式:doc
- 大小:60.50 KB
- 文档页数:4
标准的软件开发过程需要编写的文档软件开发的标准过程包括六个阶段,而六个阶段需要编写的各类文件达 每个阶段需要编写哪些文件,以及这些文件的主要内容见下:1. 可行性与计划研究阶段1)可行性研究报告:在可行性研究与计划阶段内,要确定该软件的开发目标和总的要求,要进行可行性分析、投资一收益分析、制订开发计划,并完成应编制的文件。
2)项目开发计划:编制项目开发计划的目的是用文件的形式,把对于在开发过程中来,以便根据本计划开展和检查本项目的开发工作。
2. 需求分析阶段1)软件需求说明书:软件需求说明书的编制是为了使用户和软件开发者双方对该软性能的规定等。
2)数据要求说明书:数据要求说明书的编制目的是为了向整个开发时期提供关于被处理数据的描述和数据采集要求的技术信息。
3)初步的用户手册:用户手册的编制是要使用非专门术语的语言,充分地描述该软件系统所具有的功能及基本的使用方法。
使用户 (或潜在用户) 通过本手册能够了解该软件 的用途,并且能够确定在什么情况下,如何使用它。
3. 设计阶段1)概要设计说明书:概要设计说明书又可称系统设计说明书,这里所说的系统是指程序系统。
编制的目的是说明对程序系统的设计考虑, 包括程序系统的基本处理流程、 程序14 种之多,在各项工作的负责人员、开发进度、所需经费预算、所需软、硬件条件等问题作出的安排记载件的初始规定有一个共同的理解, 使之成为整个开发工作的基础。
内容包括对功能的规定对系统的组织结构、模块划分、功能分配、接口设计。
运行设计、数据结构设计和出错处理设 计等,为程序的详细设计提供基础。
2)详细设计说明书:详细设计说明书又可称程序设计说明书。
编制目的是说明一个 软件系统各个层次中的每一个程序 (每个模块或子程序) 的设计考虑, 如果一个软件系统比 较简单,层次很少,本文件可以不单独编写,有关内容合并入概要设计说明书。
3)数据库设计说明书:数据库设计说明书的编制目的是对于设计中的数据库的所有 标识、逻辑结构和物理结构作出具体的设计规定。
此处插入公司LOGO目录1.标题 (4)2.模块开发情况表 (4)3.功能说明 (4)4.设计说明 (5)5.原代码清单 (5)6.测试说明 (5)7.复审的结论 (5)使用说明:模块开发卷宗是在模块开发过程中逐步编写出来的,每完成一个模块或一组密切相关的模块的复审时编写一份,应该把所有的模块开发卷宗汇集在一起。
编写的目的是记录和汇总低层次开发的进度和结果,以便于对整个模块开发工作的管理和复审,并为将来的维护提供非常有用的技术信息。
(注意:蓝字部分在正式文档中删掉)1.标题提示:软件系统名称和标识符模块名称和标识符(如果本卷宗包含多于一个的模块,则用这组模块的功能标识代替模块名)程序编制员签名卷宗的修改文本序号修改完成日期卷宗序号(说明本卷宗在整个卷宗中的序号)编排日期(说明整个卷宗最近的一次编排日期)(此处填写正文,注意:蓝字部分在正式文档中删掉)2.模块开发情况表3.功能说明提示:扼要说明本模块(或本组模块)的功能,主要是输入、要求的处理、输出。
可以从系统设计说明书中摘录。
同时列出在软件需求说明书中对这些功能的说明的章、条、款。
(此处填写正文,注意:蓝字部分在正式文档中删掉)4.设计说明提示:说明本模块(或本组模块)的设计考虑,包括:a.在系统设计说明书中有关对本模块(或本组模块)设计考虑的叙述,包括本模块在软件系统中所处的层次,它同其他模块的接口;b.在程序设计说明书中有关对本模块(或本组模块)的设计考虑,包括本模块的算法、处理流程、牵涉到的数据文卷设计限制、驱动方式和出错信息等;c.在编制目前已通过全部测试的源代码时实际使用的设计考虑。
(此处填写正文,注意:蓝字部分在正式文档中删掉)5.原代码清单提示:要给出所产生的本模块(或本组模块)的第一份无语法错的源代码清单以及已通过全部测试的当前有效的源代码清单。
(此处填写正文,注意:蓝字部分在正式文档中删掉)6.测试说明提示:说明直接要经过本模块(或本组模块)的每一项测试,包括这些测试各自的标识符和编号、进行这些测试的目的、所用的配置和输入、预期的输出及实际的输出。
辽宁工程技术大学应用与技术学院实验指导书实验科目:软件工程及测试系别:计算机系专业:计算机应用编写人:包剑时间: 2013年2月前言《软件工程及测试实验》是为应用技术学院计算机应用专业《软件工程及测试》课程配套设置的,是《软件工程及测试》课程讲授中一个重要的、不可或缺的环节。
其目的是使学生能够针对具体软件工程项目,全面掌握软件工程管理、需求分析、概要设计、详细设计、软件测试等阶段的方法和技术,通过实验使学生进一步理解和掌握软件开发模型、软件生命周期、软件过程等理论在软件项目开发过程中的意义和作用,培养学生按照软件工程的原理、方法、技术、标准和规范,进行软件开发的能力,培养学生的合作意识和团队精神,培养学生对技术文档的编写能力,使学生提高软件工程的综合能力,提高软件项目的管理能力。
按该课程的特点,实验内容包括软件开发的两大方法学的专题训练,即结构化(生命周期学)的方法学和面向对象的方法学,通过分析一个简单项目,要求学生利用结构化软件开发技术或面向对象的软件开发技术完成对该项目的开发。
因此设置的实验项目,从项目开发的准备工作,系统分析过程,系统设计过程,软件测试到系统实施,覆盖软件开发的整个过程,此外又引入我国国家《计算机开发规范》,以规范技术文档的书写标准,提高实验教学质量。
通过实验训练,达到如下目的:使学生进一步了解和掌握软件工程原理,提高对实际项目的分析和设计能力,通过实验课程,熟悉和基本掌握软件工程方法学、软件开发的过程,文档资料的编写格式及规范,全面领会和贯通所学习的理论知识,从而培养学生综合运用所学课程知识,分析解决问题的能力,培养学生理论联系实际作风,实事求是,严肃认真的科学态度和良好的工作作风,为今后工作打下基础。
概述一、实验目的《软件工程及测试》是一门实践性很强的课程,上机实验是其重要的环节,实验配合《软件工程及测试》课程的学习而制订的,其实验目的和任务是:通过实验,熟悉和基本掌握软件的工程设计方法、软件工程设计的表达形式、以及实现工程设计的辅助软件工程工具的使用。
模块开发卷宗1标题软件系统名称:学生宿舍管理系统DMS(Dormitory Manegement System)模块名称和标识符:(1)登录模块:logmod(2)管理员用户模块:stainfocenmod包括个人信息子模块(stainfo),修改密码子模块(stachpwd),报修信息子模块(starep),意见建议子模块(stasug)和学生信息管理子模块(maninfo)。
(3)学生用户模块:stuinfocenrmod包括个人信息子模块(stuinfo),修改密码子模块(stuchpwd),报修信息子模块(sturep)和意见建议子模块(stusug)。
程序编制员签名:李剑、杨民岱、娄小敏、田海燕、沈大正卷宗的修改文本序号:修改完成日期:2011-12-22卷宗序号:5编排日期:2011-12-232模块开发情况表3功能说明(1)登录模块(logmod):实现用户登录,系统将提示用户输入的信息,包括用户名和密码。
(2)管理员用户模块(stainfocenmod):用户以管理员身份登录后,将进入管理员用户模块,进入管理员界面后可以看到可查看的信息或所拥有的权限。
包括:首页、个人信息、修改密码、报修信息、意见建议和学生信息。
a.首页:可以在此看到待处理的事项。
b.个人信息:可以查看登录者的本人信息。
c.修改密码:对本用户的密码进行修改,系统将提示输入旧密码和新密码并进行确认和提交。
d.报修信息:可以查看由普通用户即住宿学生提交的宿舍设施的报修信息,并进行处理。
在处理完毕后确认已报修,学生用户在登录后可以在相关界面看到已经处理的提示。
e.意见建议:可以查看学生用户对宿舍管理提出的意见和建议,并进行回复,也可以对已经处理或是不合理建议进行删除。
回复后学生用户可以在登录后查看到回复信息。
f.学生信息:可以查看已经注册的全部学生的住宿信息。
并且可以添加新的学生用户,以及对已有学生用户进行编辑,删除操作。
附录五国家标准《计算机软件产品开发文件编制指南》国家标准《计算机软件产品开发文件编制指南》(GB 8567—88)是一份指导性文件。
它建议在软件的开发过程申编下述14个文件:可行性研究报告、项目开发计划、软件需求说明书、数据要求说明书、总体设计说明书、详细设计说明、数据库设计说明书、用户手册、操作手册、模块开发卷、测试计划、测试分析报告、开发进度表、项目开发总结。
该指南给出了这14个文件的编制提示,它同时也是这14个文件编写质量的检验准则。
下面详细介绍这14种文件的编写目的与内容要求。
l、可行性研究报告可行性研究报告的目的是:说明该软件开发项目的实现在技术上、经济上和社会条上的可行性,论述为了合理地达到开发目标而可能选择的各种方案,说明并论证所选定的方案。
可行性研究报告的编写内容见表l。
表l 可行性研究报告2、项目开发计划编制项目开发计划的目的是用文件的形式,并在开发过程中各项工作的负责人员、开发进度、经费预算、所需软硬件条件等问题做出的安排记录下来,以便根据本计划开展和检查项目的开发工作。
编制内容要求如表2所示。
表 2 项目开发计划3、软件需求说明书软件需求说明书的编制是为了使用户和软件开发人员双方对该软件的初始规定有一个共同的理解,使之成为整个软件开发工作的基础。
其内容要求见表3。
表3 软件需求说明书4、数据要求说明书数据要求说明书的编制目的是为了向整个软件开发时期提供关于被处理数据的描述和数据采集要求的技术信息,其内容要求列于表4中。
表4 数据要求说明书5、概要设计说明书概要设计说明书又称为总体设计说明书,编制目的是说明对项目系统的设计考虑,包括基本处理流程、组织结构、模块结构、功能配置、接口设计、运行设计、系统配置、数据结构设计和出错处理设计等,为程序的详细设计提供基础。
其内容要求见表5。
表5 概要设计说明书6、详细设计说明书详细设计说明书又称为程序设计说明,编制目的是说明一个软件系统各个层次中的每一个程序(模块)的设计考虑。
卷宗侧面和卷内目录编写说明一、卷宗侧面编写说明1、流水号编写流水号———包含代码、指标序号、序列号代码———各部门名称大写拼音字母前两位指标序号———该支撑材料相对应的指标序号(为三位数)序列号———该盒材料在本部门所有材料中统一编号的具体位置(三位阿拉伯数字,各部门自编;黑体小初,居中排列,打印粘贴贴满)例如:第54条指标在服美系装袋的材料中,流水号表示为:FM054XXX 第54条指标在纺织系装袋的材料中,流水号表示为:FZ054XXX2、卷宗侧面的编号及卷内目录的编号的编写编号———一级指标、二级指标、主要观测点、与主要观测点相对应支撑材料出现的先后次序(注:卷宗侧面的编号及卷内目录的编号为同一编号)。
例如:指标体系中第38条指标“师资队伍建设/结构/专任教师结构/在职攻读硕士教师一览表”将表示为:2.1.2.33、案卷题名的编写案卷题名——相对应主要观测点名称和支撑材料的名称主要观测点名称横向排列(2号黑体,保留3行内容空间打印粘贴贴满)支撑材料名称中加粗的文字编排在主要观测点名称下纵向排列(小2号黑体字由左向右纵向居中排列,打印粘贴贴满)4、卷宗号的编写卷宗号———由指标序号(3位数)、该指标共有卷宗总量数、该卷宗在该指标卷宗总量中的位置组成例:服美系第54条指标共装有10袋材料,其中第二袋材料的卷宗号应为:卷054(2/10)二、卷内目录编写说明1、编号的编写与卷宗侧面编号格式相同(“编号”二字宋体16号,内容宋体14号)2、流水号编写与卷宗侧面编号格式相同(“流水号”三字宋体16号,内容14号)3、标题的编写标题———与该盒相对应评估指标体系中支撑材料名称中加粗的文字(“标题”二字宋体16号,内容14号)4、信息资料名称的编写信息资料名称———与支撑材料相对应的原始资料的名称5、资料序号的编写资料序号———该盒内装有的原始资料的先后顺序6、页码的编写页码———该信息资料在卷内所占的页码或页码区间(从头至尾统一编页,用铅笔标注在资料右下端中央)另:卷内目录用A4纸EXCEL表制作,并发送电子文档,卷内目录表格格式到评估办拷贝。
软件描述文档产品名称公司名称软件基本信息产品名称公司名称1、产品标识:×××软件标识:软件名称:×××软件型号及版本号:×××制造商:×××公司生产地址:×××2、安全性级别××是一种××软件,所以随之而来的软件安全性问题也极为重要。
(a)××软件是一种抽象的逻辑产品,其存在形式是虚拟和动态的……..(b)软件质量的测度十分困难,其质量的控制重点在软件的需求分析和设计阶段,开发过程中产生错误的难以追踪;……;(c)硬件有老化现象,失效曲线似浴盆,硬件的维护可通过纠错、修复或更换失效的系统重新恢复功能。
而软件的维护复杂,只有通过修改代码来排错。
同时软件可能在使用中随着缺陷的发现和消除,而使性能提高。
软件的修改看似比硬件容易,却比硬件更难于控制。
看上去无关紧要的软件代码修改会在软件的其他地方引起无法预测的、十分关键的问题;(d)软件的失效防护困难。
对硬件可采用预防性维护技术预防故障,采用断开失效部件的办法诊断故障,而软件则不能采用这些技术;但软件的失效会毫无征兆的出现,会因执行一条未经验证的路径而出现故障;而同一软件的冗余不能提高可靠性。
(e)软件的失效是系统性失效,其失效的条件有时比较复杂。
因此,可能会无法清晰地洞察其原因,而误归结其为系统中硬件的随机失效。
导致无法及时排除软件中的故障,造成隐患的长期存在。
以上论述了××软件的复杂性,以及出现问题无法预测性和软件的实效防护困难。
××软件一旦出现问题则很可能导致患者×××或者对患者造成严重的伤害,例如,×××软件一旦在运行过程中失效,机器停止工作则很可能导致患者由于××而变为×××,所以××软件安全性级别为××级。
模块开发卷宗(GB8567——88)1标题a.项目名称:企业管理平台b.企业人才管理系统分为两大模块:企业首页和企业后台c.项目参加人员:白璐、田放、刘保萍、贺晓利、翟金会,赵娜娜,张丽洁d.程序的修改完成日期为:2008年11月9日2模块开发情况表企业管理平台中的两大模块首页和后台如下:企业管理平台中的企业首页中的流程如下:企业管理平台的企业后台流程图入如下:3功能说明(1)企业首页模块中呈现的功能有企业首页、企业网站、企业内部网、企业招聘、企业多媒体教学、企业论坛等,企业的首页中有企业的产品图书可以供浏览者下载,可以使用产品下载,客户的反馈信息,添加留言;(2)企业内部网有用户的登录注册,员工的基本信息表;(3)企业招聘中有企业推荐信息,招聘信息、培训信息、公寓信息、家教信息、寻求合作等信息的浏览(4)企业多媒体教学中有发布教程、视频课堂、语音课堂、可查询最新的视频语音学习的相关知识,可提供浏览者下载视频等(5)企业论坛中可以发表自己的评语等(6) 企业管理平台的后台管理模块中有网站的管理、人才管理、招聘培训、媒体教程、系统管理(7)网站管理中有产品管理的搜索和添加产品,留言管理的添加、删除,修改留言等,上传管理的查看和添加企业的产品,产品类别管理的添加和删除等功能(8)人才管理中的公告管理,文件管理的接收、发送、删除文件等功能,投票管理中添加活动项目和活动投票数、考勤管理的上下班签到的制定、部门管理的添加和编辑部门、员工管理的删除和编辑员工的基本信息、规章制度中的基本信息管理等(9)企业招聘培训中的招聘管理可以查看、是否通过或者取消的功能,求职管理中的查询、求职的通过或取消等功能,家教管理的查看信息、是否通过或取消,公寓管理的信息查看、通过或取消信息,培训管理的信息查询、通过或者取消信息,寻求合作管理的查看信息、是否通过或者取消发布信息,发布信息管理中的管理员发布所需要的基本信息,编辑信息并发布在网站的首页(10)企业媒体教程的语音管理和视频管理,语音管理中的查询管理的基本信息和是否删除和查看语音留言管理等功能,在视频管理中可以查看视频的基本信息和是否删除视频教程,查看视频留言的管理等信息(11)企业系统管理中的添加用户,修改密码,数据备份,数据初始化,恢复数据,会员管理。
软件描述文档产品名称公司名称软件基本信息产品名称公司名称1、产品标识:×××软件标识:软件名称:×××软件型号及版本号:×××制造商:×××公司生产地址:×××2、安全性级别××是一种××软件,所以随之而来的软件安全性问题也极为重要。
(a)××软件是一种抽象的逻辑产品,其存在形式是虚拟和动态的……..(b)软件质量的测度十分困难,其质量的控制重点在软件的需求分析和设计阶段,开发过程中产生错误的难以追踪;……;(c)硬件有老化现象,失效曲线似浴盆,硬件的维护可通过纠错、修复或更换失效的系统重新恢复功能。
而软件的维护复杂,只有通过修改代码来排错。
同时软件可能在使用中随着缺陷的发现和消除,而使性能提高。
软件的修改看似比硬件容易,却比硬件更难于控制。
看上去无关紧要的软件代码修改会在软件的其他地方引起无法预测的、十分关键的问题;(d)软件的失效防护困难。
对硬件可采用预防性维护技术预防故障,采用断开失效部件的办法诊断故障,而软件则不能采用这些技术;但软件的失效会毫无征兆的出现,会因执行一条未经验证的路径而出现故障;而同一软件的冗余不能提高可靠性。
(e)软件的失效是系统性失效,其失效的条件有时比较复杂。
因此,可能会无法清晰地洞察其原因,而误归结其为系统中硬件的随机失效。
导致无法及时排除软件中的故障,造成隐患的长期存在。
以上论述了××软件的复杂性,以及出现问题无法预测性和软件的实效防护困难。
××软件一旦出现问题则很可能导致患者×××或者对患者造成严重的伤害,例如,×××软件一旦在运行过程中失效,机器停止工作则很可能导致患者由于××而变为×××,所以××软件安全性级别为××级。
5.模块开发卷宗5.1标题软件系统名称:网上购物系统标示符:BSOS5. 3功能说明5. 3.1前台功能1、新客户注册:普通用户必须先注册,才能进行图书的查询、浏览、定购、信息反馈等操作。
用户需要注册,并且要得到系统管理的审批和确认,主要功能是对用户个人基本信息的管理。
2、书籍分类搜索:用户可根据对书籍的分类浏览和输入关键字进行本站包含书籍的查找浏览。
3、新书籍上架:把本站最近入库的书籍显示出来方便客户知道本站书籍的更新。
4、实现购物车功能模块:实时显示用户当前所购书H,可以增加或删除5、订单查询功能:客户确认购买号即生成一个唯一的订单号,客户依此号码可以查询所购书目到书情况。
6、前台页面管理:注册会员对自己资料的修改,账户的管理和书籍收藏夹的管理,以及对于自己登陆界面风格的管理。
5. 3. 2后台管理实现功能1、管理员注册:网站管理人员注册,实现对系统后台的管理,对系统所有信息的控制。
还需要对系统进行维护,同时还对普通用户和商家的基本信息进行管理。
2、订单添加/删除/修改管理功能:对于用户提交的订单进行审核,并实现对订单的添加/删除/修改管理。
3、书籍信息管理:这主要分为出版社管理,类别设置和分类管理。
其中,出版社管理可以增加或修改删除相关信息,请确保此处信息的真实性;类别设置可对书LI 类别进行相应的操作(增加,删除,修改);分类管理可以对相关图书进行分类操作(注:此操作可以在图书入库的时候进行选择)5. 4设计说明1、页面模块化:系统界面的设计使用模块进行处理,如把页面的头、尾页面内容,数据库的连接等做成单独的文件,在其它页面设il•中需要时可以把其他页面的相应的内容包括进去了,这样有利于页面风格比较统一以及提高开发系统的效率。
2、图书信息模板的应用:本系统的图书信息代码的生成是基于模块的,更换图书信息内容时只要将图书新的一些必要的信息录入,然后自动修改图书信息的模板。
3、功能较完善,管理方便:功能方面包括图书产品的展示、用户注册及登录、图书的在线查询、定购等各个方面,完整地实现了网上书店的管理要求,同时由于应用了模板,对系统的管理维护非常方便。
模块开发卷宗1. 引言1.1 编写目的阐明编写本系统模块开发卷宗的目的,指出读者对象。
1.2 项目背景列出本项目的委托单位、开发单位和主管部门,说明该软件系统与其他系统的关系。
1.3 定义列出本文档中所用到的专门术语的定义和缩写词的原意。
1.4 参考资料列出有关资料的作者、标题、编号、发表日期、出版单位或资料来源。
包括本项目经核准的计划任务书、合同或上级机关的批文,项目开发计划,需求规格说明书,概要设计说明书,数据库设计说明书,详细设计说明书,本文档中所引用的资料、采用的标准和规范。
2.修改情况说明包括:软件系统名称和标识符、模块名称和标识符、卷宗序号、修改文本序号、修改完成日期、编排日期等。
3. 模块开发情况表可使用下表记录模块开发情况:4. 功能说明扼要说明本模块的功能,主要是输入、要求的处理、输出。
同时列出在软件需求说明书中对这些功能的说明的目录序号。
5.设计说明说明本模块的设计考虑:在设计说明书中有关对本模块设计考虑的叙述,包括本模块在软件系统中所处的层次,同其他模块的接口等。
其中,在设计说明书中有关对本模块的设计考虑,包括本模块的算法、处理流程、牵涉到的数据文卷设计限制、驱动方式和出错信息等以及目前已通过测试的源代码对设计的实际使用情况的说明等。
6. 源代码清单给出已通过测试的本模块无语法错误的源代码清单。
7. 测试说明说明需要针对本模块的每一项测试,包括测试标识号、测试目的、所用的配置、输入和预期的输出及实际的输出等。
8.复审结论可把实际测试的结果,同软件需求规格说明书、概要设计说明书、详细设计说明书中规定的要求进行比较,然后得出结论。
昆明学院软件工程课程实验指导书(适用于计算机科学与技术专业软件方向)(学分:4 学时: 4学时)信息技术学院2012年8月一、实验教学目的及任务软件工程实验是为计算机相关专业本科《软件工程》课程配套设置的,是《软件工程》课程讲授中一个重要的、不可或缺的实践环节。
其目的是使学生能够针对具体软件工程项目,全面掌握软件工程管理、软件需求分析、软件初步设计、软件详细设计、软件测试等阶段的方法和技术,通过该课程设计使学生进一步理解和掌握软件开发模型、软件生命周期、软件过程等理论在软件项目开发过程中的意义和作用,培养学生按照软件工程的原理、方法、技术、标准和规范,进行软件开发的能力,培养学生的合作意识和团队精神,培养学生对技术文档的编写能力,从而使学生提高软件工程的综合能力,提高软件项目的管理能力。
二、实验课的基本理论与实验技术知识按该课程的特点,实验内容包括软件开发的两大方法学的专题训练,即结构化(生命周期学)的方法学和面向对象的方法学,通过对一个简单项目,要求学生利用结构化软件开发技术或面向对象的软件开发技术完成对该项目的开发。
因此设置五个实验项目,从项目发的准备工作,系统分析过程,系统设计过程,软件测试到系统实施,覆盖软件开发的整个过程,此外又引入我国国家《计算机开发规范》,以规范技术文档的书写标准,提高实验教学质量。
三、考核方式及成绩评定标准考核采用分组互评机制,由随机选定3个项目组长对待评文档进行评分,评定标准从可理解度、可描述度、规范度、准确度4个方面进行A、B、C、D,4个等级进行评分,最终评分是综合分数。
四、实验教材及主要参考资料《软件工程实践者之路》【美】普瑞斯曼。
五、实验项目实验一项目开发的准备工作【实验目的】(1)目的:确定课题,组织组员,合理分工,熟悉软件开发环境,培养团队精神。
【实验原理/实验基础知识】根据各组选择的课题,实行项目经理制,各组推荐一名组长,统一管理整个项目的实施过程,并和理调整资源和负责项目全局;根据项目的难易合理分配组员的任务,对问题达成一直的看法;针对项目的实施,熟悉相应的软件开发工具的使用环境。
<项目名称>
模块开发卷宗
版本<1.0>修订历史记录
1引言 (1)
1.1编写目的 (1)
1.2适用范围 (1)
1.3定义 (1)
1.4参考资料 (1)
1.5概述 (1)
2 开发计划 (1)
3功能描述 (2)
4设计描述 (2)
5源代码清单 (2)
6测试描述 (2)
7审查结论 (2)
模块开发卷宗
1引言
1.1编写目的
说明:编写这份开发卷宗的目的,并指出预期的读者。
1.2适用范围
列出此文档适用的软件组件,以及受到此文档影响的任何其他产品。
1.3定义
列出本文件中用到的专门术语的定义和外文的首字母缩写词。
可以引用项目词汇表来提供。
1.4参考资料
列出本文中各处引用的文档资料,包括每个文档的标题、文档编号、发表日期和出版单位并列出能够得到这些文件资料的来源。
1.5概述
说明本文件中其他各部分包含的内容,与本文件的内容组织方式。
2 开发计划
列出开发该组件的计划于进展情况,包括以下内容:
1.参与人员与承担的任务
2. 开发前原始计划(包括开发、测试、检查各节点的时间)
3. 实际进度(各节点实际完成的时间)
3功能描述
1. 列出相关的用例
4设计描述
1. 对每一个待开发的组件,列出其属性、方法。
2. 给出相关的设计类图
5源代码清单
分文件给出相关的源代码
6测试描述
7审查结论
在该部分确认所列的测试是否通过,所开发完成的功能是否符合期望,所开发完成的代码是否符合设计要求。
附录五国家标准《计算机软件产品开发文件编制指南》国家标准《计算机软件产品开发文件编制指南》(GB 8567—88)是一份指导性文件。
它建议在软件的开发过程申编下述14个文件:可行性研究报告、项目开发计划、软件需求说明书、数据要求说明书、总体设计说明书、详细设计说明、数据库设计说明书、用户手册、操作手册、模块开发卷、测试计划、测试分析报告、开发进度表、项目开发总结。
该指南给出了这14个文件的编制提示,它同时也是这14个文件编写质量的检验准则。
下面详细介绍这14种文件的编写目的与内容要求。
l、可行性研究报告可行性研究报告的目的是:说明该软件开发项目的实现在技术上、经济上和社会条上的可行性,论述为了合理地达到开发目标而可能选择的各种方案,说明并论证所选定的方案。
可行性研究报告的编写内容见表l。
表l 可行性研究报告2、项目开发计划编制项目开发计划的目的是用文件的形式,并在开发过程中各项工作的负责人员、开发进度、经费预算、所需软硬件条件等问题做出的安排记录下来,以便根据本计划开展和检查项目的开发工作。
编制内容要求如表2所示。
表2 项目开发计划3、软件需求说明书软件需求说明书的编制是为了使用户和软件开发人员双方对该软件的初始规定有一个共同的理解,使之成为整个软件开发工作的基础。
其内容要求见表3。
表3 软件需求说明书4、数据要求说明书数据要求说明书的编制目的是为了向整个软件开发时期提供关于被处理数据的描述和数据采集要求的技术信息,其内容要求列于表4中。
表4 数据要求说明书5、概要设计说明书概要设计说明书又称为总体设计说明书,编制目的是说明对项目系统的设计考虑,包括基本处理流程、组织结构、模块结构、功能配置、接口设计、运行设计、系统配置、数据结构设计和出错处理设计等,为程序的详细设计提供基础。
其内容要求见表5。
表5 概要设计说明书6、详细设计说明书详细设计说明书又称为程序设计说明,编制目的是说明一个软件系统各个层次中的每一个程序(模块)的设计考虑。
模块开发卷宗(GB8567——88)1标题软件系统名称和标识符模块名称和标识符(如果本卷宗包含多于一个的模块,则用这组模块的功能标识代替模块名)程序编制员签名卷宗的修改文本序号修改完成日期卷宗序号(说明本卷宗在整个卷宗中的序号)编排日期(说明整个卷宗最近的一次编排日期)2模块开发情况表3功能说明扼要说明本模块(或本组模块)的功能,主要是输入、要求的处理、输出。
可以从系统设计说明书中摘录。
同时列出在软件需求说明书中对这些功能的说明的章、条、款。
4设计说明说明本模块(或本组模块)的设计考虑,包括:a.在系统设计说明书中有关对本模块(或本组模块)设计考虑的叙述,包括本模块在软件系统中所处的层次,它同其他模块的接口;b.在程序设计说明书中有关对本模块(或本组模块)的设计考虑,包括本模块的算法、处理流程、牵涉到的数据文卷设计限制、驱动方式和出错信息等;c.在编制目前已通过全部测试的源代码时实际使用的设计考虑。
5原代码清单要给出所产生的本模块(或本组模块)的第一份无语法错的源代码清单以及已通过全部测试的当前有效的源代码清单。
6测试说明说明直接要经过本模块(或本组模块)的每一项测试,包括这些测试各自的标识符和编号、进行这些测试的目的、所用的配置和输入、预期的输出及实际的输出。
7复审的结论把实际测试的结果,同软件需求说明书、系统设计说明书、程序设计说明书中规定的要求进行比较和给出结论。
一、上机目的:掌握黑盒测试中的基于系统级别的各种测试方法。
二、上机内容:1、不按班级,按小组的顺序排座位,一组的成员尽量坐在一块,分组情况和位置尽量保持连贯性。
1到10组在4B413,11到19组在4B414;2、参考和理解第4章第2节的内容,根据本小组之前选的或开发好的系统,进行更加充分的讨论和分工;3、进一步完善案例说明、测试分析和测试用例的设计。
在测试用例设计中,要求每小组分别完成基于模块的功能测试、基于场景的业务流程测试和基于界面的用户界面测试。
模块开发卷宗(GB8567——88)1标题软件系统名称:人事管理系统标示符:HMS程序编制员签名:卷宗修改文件序号:06修改完成日期:2013年4月21日卷宗序号:06编排日期:暂无2模块开发情况表模块标识符模块的描述性名称计划开始日期实际开始日期代码设计计划完成日期实际完成日期计划开始日期实际开始日期模块测试计划完成日期实际完成日期计划开始日期实际开始日期组装测试计划完成日期实际完成日期2013-04-21 2013-04-222013-04-162013-04-162013-04-172013-04-182013-04-122013-04-132013-04-132013-04-14HMS人事管理系统2013-04-082013-04-091代码复查日期预计源代码行数实际模块标识符2013-04-2313001353BIM3功能说明功能列表:1.人事管理模块1员工档案管理,包括档案数据外部导入,支持卡片式和表格式2奖惩管理3人员信息提醒2调动管理模块1员工就职2员工调动,批量调动3员工离职4员工复职5员工退休6员工离休7员工异动浏览8档案清除3.工资管理模块1.工资管理,可以自定义工资项目明细及其计算公式,数据导出生成银行转账盘2.帐套维护3.员工套帐设定(薪资福利)4.计件工资5.计时工资6.提成工资7.工资发放,包括每月应发,实发,补贴,代扣,四金8.保险福利管理9.第三方支付复选框,预留接口,定义付款方式,支付方法,要注意10.在此基础上的决策支持4.考勤管理模块注:跟工资管理挂钩由于功能相对独立,需要独立实现一个模块,数据实现兼容.能支持多种考勤设备,如考勤钟打卡考勤方式,刷卡考勤方式5.系统管理1.备份、恢复、压缩数据2.系统用户管理,支持多用户,分级授权24设计说明增加:员工各种信息的输入,包括员工基本信息,学历信息,职称等。
修改:员工的各种信息的修改。
删除:对于转出,辞职,退休员工信息的删除。
超市管理系统模块开发卷宗(一)销售管理模块1标题软件系统名称和标识符:超市管理系统模块名称和标示符:销售管理模块程序员编制签名:郭琦卷宗的修改文本序号:无修改完成日期:2012-12-17卷宗序号:1编排日期:2012-12-172模块开发情况表3功能说明3.1 程序描述超市管理系统下的一个子系统,记录售货员今日处理的商品信息和会员的购买情况,处理销售过程中的商品信息并作记录。
3.2 功能包括售货员登陆和会员登陆,以及售货员的售货处理、结账处理。
3.3 性能时间特殊性:系统的速度要在用户可接受的范围内。
可靠性:系统要有较高的可靠性,可恢复性。
灵活性:系统要有良好的接口。
3.4 输入项售货员账号密码:售货员登陆会员账号:会员登陆条形码:验证商品信息数量:计算金额3.5 输出项售货员信息:确保售货员符合资格会员信息:确保会员符合资格金额:结账时的商品总额4设计说明4.1算法startinput售货员信息examine 售货员信息input 会员信息examine 会员信息if(结账)input i=0do while (i<商品数量)input 条形码if(条形码无效)i=ibreakend ifprint 商品信息i=i+1end doprint 金额end ifend4.2 流程逻辑4.3接口商品条形码输入界面,会员信息输入界面。
调用数据库查询接口。
4.4存储分配顺序存储5原代码清单销售管理系统:(1)收银台<%@page language="java"import="java.util.*,com.supermarket.entity.*,com.supermarket.dao.*,ja va.text.*"pageEncoding="GBK"%><html><head><title>销售收银系统</title><script type="text/javascript">function showtime(){var timerID=null;var now=new Date();var year=now.getFullYear();//当前的年var month=now.getMonth()+1;//当前的月var date=now.getDate();//当前的号var hours=now.getHours();var minutes=now.getMinutes();var seconds=now.getSeconds();var day=now.getDay();//得到的是星期var days = new Array(7);days[0]="星期日";days[1]="星期一";days[2]="星期二";days[3]="星期三";days[4]="星期四";days[5]="星期五";days[6]="星期六";var timeValue="";timeValue+=year+"年";timeValue+=((month<10)?"0":"")+month+"月";timeValue+=date+"日";timeValue+=(days[day])+" ";timeValue+= hours+":";//这样的话是24小时((hours<=12)?hours:hours-12);timeValue+=((minutes<10)?":0":":")+minutes;timeValue+=((seconds<10)?":0":":")+seconds;document.jsfrm.face.value = timeValue;timerID = setTimeout("showtime()",1000);var p=document.getElementByIdx_x_x("p");p.innerHTML=timeValue;}function cancel(){alert("确定取消此次交易?");location="sale_initial.jsp"}</script><%Emp emp=(Emp)session.getAttribute("emp");String SaleID;if(session.getAttribute("SaleID")==null){Calendar ca = Calendar.getInstance();int year = ca.get(Calendar.YEAR);//获取年份int month=ca.get(Calendar.MONTH)+1;//获取月份int day=ca.get(Calendar.DATE);//获取日int minute=ca.get(Calendar.MINUTE);//分int hour=ca.get(Calendar.HOUR_OF_DAY);//小时int second=ca.get(Calendar.SECOND);//秒SaleID=year+""+month+""+day+""+hour+""+minute+""+second+""+emp.getEmp ID();}else{SaleID=session.getAttribute("SaleID").toString();}//获取应收价款float pay = 0;p ay=0;}else{List<Sale> slist = new ArrayList<Sale>();slist = (List<Sale>)session.getAttribute("slist");for(int i=0;i <slist.size();i++){p ay += slist.get(i).getSum();}}DecimalFormat df = new DecimalFormat("#0.00");//保留两位小数String str_pay = df.format(pay);//找零功能float zl=0;String str_zl = "";//找零String err = "";float sh;String str_sh = "";if(session.getAttribute("sh")==null){s h = 0;s tr_sh = df.format(sh);}else{s h = Float.parseFloat(session.getAttribute("sh").toString());s tr_sh = df.format(sh);}//System.out.println(sh);if(session.getAttribute("err")==null &&session.getAttribute("zl")!=null){//System.out.println("ssssssss");z l = Float.parseFloat(session.getAttribute("zl").toString());s tr_zl = df.format(zl);}else if(session.getAttribute("err")==null &&session.getAttribute("zl")==null){z l = 0;s tr_zl = df.format(zl);}else{e rr = session.getAttribute("err").toString();z l = 0;s tr_zl = df.format(zl);}//删除异常String delerr = "";delerr = "";}else{delerr = session.getAttribute("delerr").toString();}%></head><body onload="showtime()"><table width="100%"height="100%"border="1"><tr height="45px"><td style="font-size:35px"colspan="3"align="center">收银台</td> </tr><tr height ="45px"><form name="fb"action="sale_searchGoods.jsp"method="post"><td>条形码:<input type="text"name="barcode"><input type="submit"value="确认"></td><td>销售单号:<input style="border:0"type="text"name="SaleID" value="<%=SaleID %>"readonly size="25"></td></form><td valign="middle"><form name='jsfrm'style="margin-top:10px">时间:<input type=text name='face'size=34value=''style="border:0" readonly></form><p id="p"/></td></tr><tr><td colspan="3"valign="top"width="100%"><iframe width="100%" height="100%"name="w_center"src="sale_displayGoods.jsp"scrolling="auto"></iframe><br></td></tr><tr height="80px"><td rowspan="2"valign="middle"style="color:red;font-size:80px"><input style="border: 0;font-size:30px;"type="text"value="应收:" size="5"readonly><%=str_pay %></td><td colspan="2"><form name="PayForm"action="pay.do">实收:<input type="text"name="sh"value="<%=str_sh %>" style="color:red;font-size:50px"size="8"><%=err %><input type="hidden"name="ys"value="<%=pay %>"><!-- 将应收款隐藏传递过去 --></form></td></tr><tr height="40px"><td colspan="2">找零:<inputstyle="color:red;font-size:50px;border:0"type="text"value="<%=str_zl %>"readonly></td></tr><tr height="40px"><td>收银员:<%=emp.getEmpID()+" "+emp.getEmpName() %></td><td colspan="2"><%if(session.getAttribute("vip")==null||session.getAttribute("vip").equals(0)){//0为非会员事件%>非会员顾客光临,提醒成为会员!<%} else {VIP vip = new VIP();vip = (VIP)session.getAttribute("vip");%>有效会员:<%=vip.getVIPID() +" "+vip.getVIPName()%> 积分:<%=vip.getScore() %><% }%></td></tr><tr height ="30px"><td colspan="3"valign="middle"><form style="margin-top: 5px"action="sale_delete.jsp"method="post"> <input type="text"name="deleteID"size="3"style="height:30px"> <input type="submit"value="删除商品"style="height:30px"><%=delerr %>   ; <input type="button"value="结算打印"onclick="location='sale_checkorder.jsp'"style="height:30px"> &nb sp; <input type="button"value="取消此次交易"onclick="cancel()"style="height:30px"></form></td></tr></table></body></html><%//会员登录if(session.getAttribute("vip")==null){%><script type="text/javascript">window.showModalDialog('sale_VIPlogin.jsp',,'dialogWidth=500px;di alogHeight=400px;toolbar=no;center=yes;resizable=no')</script><%}%>(2)验证<%@page language="java"import="java.util.*"pageEncoding="GBK"%><html><head></head><body><%String viperr = "";if(session.getAttribute("viperr")==null){viperr = "";}else {viperr = session.getAttribute("viperr").toString();}if(session.getAttribute("vip")==null){%><h1align="center">会员登录</h1><hr/><form name="VIPForm"action="vip.do"method="post"style="margin-left:100px">会员编号:<input type="text"name="VIPID"><br/><br/>密 码:<input type="password" name="password"><br/><input type="submit"value="会员登录"style="height:30px;"><%=viperr %></form><hr/><h1align="center">还没加入会员?速速行动吧!优惠多多!</h1><input type="button"value="非会员购物"onclick="location='update_vipsession.jsp'"style="margin-left:100px;height:30px"><%}else{%><script type="text/javascript">window.opener.location.reload();self.close();</script><%}%></body></html>(3)查询商品<%@page language="java"import="java.util.*,com.supermarket.entity.*,com.supermarket.dao.*" pageEncoding="GBK"%><jsp:useBean id="daoGoods"class ="com.supermarket.dao.GoodsDao"></jsp:useBean><jsp:useBean id="daoPrice"class ="com.supermarket.dao.PriceDao"></jsp:useBean><%session.setAttribute("sh",null);session.setAttribute("zl",null);String barcode = request.getParameter("barcode");String SaleID = request.getParameter("SaleID");int count =Integer.parseInt(session.getAttribute("count").toString());session.setAttribute("SaleID",SaleID);if(session.getAttribute("vip")==null){session.setAttribute("vip",0);}List<Sale> slist = new ArrayList<Sale>();if(session.getAttribute("slist")==null){session.setAttribute("slist",slist);}else{slist = (List<Sale>)session.getAttribute("slist");}Goods g = new Goods();g = daoGoods.getByBarCode(barcode);if(g.getBarCode()==null){//System.out.println("########");%><script type="text/javascript">alert("不存在该商品!");location="sale.jsp";</script><%}else{count++;session.setAttribute("count",count);//glist.add(g);//System.out.println(g.getBarCode());Price p = new Price();p = daoPrice.getByBarCode(barcode);Sale s = new Sale();s.setSaleID(SaleID);s.setBarCode(barcode);s.setGoodsName(g.getGoodsName());s.setPrice(p.getPrice());if(session.getAttribute("vip").equals(0)){s.setDiscount(0);}else{s.setDiscount(p.getDiscount());}s.setSaleNum(1);float sum = (s.getPrice()-s.getDiscount())*s.getSaleNum();//计算本件商品总价(单价-折扣)*数量s.setSum(sum);Emp emp = new Emp();emp = (Emp)session.getAttribute("emp");s.setEmpID(emp.getEmpID());if(slist.size()==0){slist.add(s);}else{for(int j=0;j<slist.size();j++){if(slist.get(j).getBarCode().equals(barcode)){slist.get(j).setSaleNum(slist.get(j).getSaleNum()+1);sum =(slist.get(j).getPrice()-slist.get(j).getDiscount())*slist.get(j).get SaleNum();//计算本件商品总价slist.get(j).setSum(sum);break;}else if(j==(slist.size()-1)){slist.add(s);break;}else {continue;}}}}%><script>location="sale.jsp";</script>(4)显示商品<%@page language="java"import="java.util.*,com.supermarket.entity.*,java.text.*" pageEncoding="GBK"%><!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Transitional//EN""/TR/xhtml1/DTD/xhtml1-transitional.dtd"><%DecimalFormat df1 = new DecimalFormat("#0.00");//保留两位小数Emp emp = (Emp)session.getAttribute("emp");String EmpID = emp.getEmpID();String SaleID = session.getAttribute("SaleID").toString();int count =Integer.parseInt(session.getAttribute("count").toString());float ys = Float.parseFloat(session.getAttribute("ys").toString());String str_ys = df1.format(ys);float sh = Float.parseFloat(session.getAttribute("sh").toString());String str_sh = df1.format(sh);float zl = Float.parseFloat(session.getAttribute("zl").toString());String str_zl = df1.format(zl);SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式String now = df.format(new Date());%><html xmlns="/1999/xhtml"><head><title>购物小票</title></head><body><table width="100%"border="0"><tr><td colspan="2"align="center"><h1>超市购物小票</h1></td></tr><tr><td>收银员:<%=EmpID %></td><td>购物单号:<%=SaleID %></td></tr><tr><table width="100%"border="0"><tr><td> </td><td>条形码</td><td>商品名</td><td>单价</td><td>折扣</td><td>数量</td><td>小计</td></tr><%if(session.getAttribute("slist")==null){}else{//List<Goods> glist = new ArrayList<Goods>();//List<Price> plist = new ArrayList<Price>();List<Sale> slist = new ArrayList<Sale>();//glist = (List<Goods>)session.getAttribute("glist");//plist = (List<Price>)session.getAttribute("plist");slist = (List<Sale>)session.getAttribute("slist");for(int i = 0;i<slist.size();i++){%><tr><td><%=i+1 %></td><td><%=slist.get(i).getBarCode()%></td><td><%=slist.get(i).getGoodsName()%></td><td><%=slist.get(i).getPrice()%></td><td><%=slist.get(i).getDiscount()%></td><td><%=slist.get(i).getSaleNum()%></td><td><%=slist.get(i).getSum()%></td></tr><%}}%></table></tr><tr><td>数量合计:<%=count %></td></br><td>总价:<%=str_ys %></td></br></tr><tr><td>实收:<%=str_sh %></td></br><td>找零:<%=str_zl %></td></br></tr><tr><td>日期:<%=now %></td></br><td><%if(session.getAttribute("vip").equals(0)){%>欢迎成为会员,优惠多多哦!<%}else{i nt score =Integer.parseInt(session.getAttribute("score").toString());i nt addscore =Integer.parseInt(session.getAttribute("addscore").toString());V IP vip = (VIP)session.getAttribute("vip");S tring id = vip.getVIPID();S tring name = vip.getVIPName();%>会员:<%=id + " " + name+" "%>本次积分:<%=score %> 累计积分:<%=addscore%><%}%></td></tr></table><br/><hr/><input type="button"value="交易成功!"onclick="location='sale_initial.jsp'"></body></html>(6)写入数据库<%@page language="java"import="java.util.*,com.supermarket.entity.*,com.supermarket.dao.*,ja va.text.*"pageEncoding="GBK"%><jsp:useBean id="daoSale"class ="com.supermarket.dao.SaleDao"></jsp:useBean><jsp:useBean id="daoVIP"class ="com.supermarket.dao.VIPDao"></jsp:useBean><jsp:useBean id="daoGoods"class ="com.supermarket.dao.GoodsDao"></jsp:useBean><jsp:useBean id="daoOnSale"class ="com.supermarket.dao.OnSaleDao"></jsp:useBean><%//System.out.println("***********");List<Sale> slist = new ArrayList<Sale>();slist = (List<Sale>)session.getAttribute("slist");SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");//设置日期格式String now = df.format(new Date());String VIPID = "";if(session.getAttribute("vip").equals(0)){VIPID = "0";}else if(session.getAttribute("vip")!=null){VIP vip = new VIP();vip = (VIP)session.getAttribute("vip");VIPID = vip.getVIPID();}for(int i=0;i<slist.size();i++){//System.out.println("***********");Sale s = new Sale();s = slist.get(i);s.setVIPID(VIPID);s.setSaleTime(now);daoSale.add(s);OnSale os = new OnSale();String bc = s.getBarCode();Goods g = daoGoods.getByBarCode(bc);String id = g.getGoodsID();//System.out.println(id+"########");os = daoOnSale.getByID(id);int num = os.getOnSaleNum();num -= s.getSaleNum();os.setOnSaleNum(num);daoOnSale.update(os);//System.out.println(i);}//会员积分if(!session.getAttribute("vip").equals(0)){String ys = session.getAttribute("ys").toString();//System.out.println(ys);float sf = Float.parseFloat(ys);int score = (int)sf;session.setAttribute("score",score);VIP vip = new VIP();vip = (VIP)session.getAttribute("vip");score += vip.getScore();session.setAttribute("addscore",score);vip.setScore(score);daoVIP.update(vip);//System.out.println(vip.getPassword());}%><script>location = "sale_displayorder.jsp";</script>6测试说明通过测试检测该模块是否符合要求。
软件开发各阶段文档软件生存周期各阶段文档文档可行性研需求总体详细系统集成确认使用与究与计划分析设计设计实现测试测试维护1 可行性研究报告 Y N N N N N N N2 项目开发计划 Y Y N N N N N N3 软件需求说明书 N Y N N N N N N4 数据要求说明书 N Y N N N N N N5 测试计划 N Y Y N N N N N6 总体设计说明书 N N Y N N N N N7 详细设计说明书 N N N Y N N N N8 数据库设计说明书 N N Y N N N N N9 模块开发卷宗 N N N N Y Y N N10 用户手册 N Y Y Y Y N NY11 操作手册 N N Y Y Y N N Y12 测试分析报告 N N N N N Y Y N13 开发进度月报 Y YYY Y Y Y N14 项目开发总结 N N N N N N Y Y15 维护记录 N N N N N N N Y上表中前14中文件是国家标准《软件产品开发文件编制指南》所建议的。
1 可行性研究报告目的:说明软件开发项目的实现在技术上、经济上和社会条件上的可行性;论述为达到开发目的而可能选择的各种方案;说明并论证所选定的方案。
内容:引言(编写目的、背景、定义、参考资料等),可行性研究的前提(要求、目标、条件、假定、限制、进行可行性研究的方法、评价尺度),对现有系统的分析(数据流程和处理流程、工作负荷、费用开支、人员、设备、局限性),所建议的系统(对该系统的说明、数据流程和处理流程、改进之处、影响、局限性、技术条件方面的可行性),可选择的其它系统方案,投资以及收益分析(支出、收益、收益/投资比、投资回收周期、敏感性分析)、社会条件方面的可行性(法律方面的可行性,使用方面的可行性)以及结论。
2 项目开发计划目的:将开发过程中有关各项工作的负责人员、开发进度、经费预算、软硬件等问题做出的安排记载下来,以便根据本计划开展和检查本项目的开发工作。
<项目/产品名称>模块(任务)开发卷宗
修订历史记录
目录
1简介 (3)
2模块(任务)开发情况表 (3)
3功能说明 (3)
4设计说明 (3)
5源代码(文件)清单 (4)
6测试说明 (4)
7复审的结论 (4)
1简介
2模块(任务)开发情况表
3功能说明
【扼要说明本模块(任务)(或本组模块(任务))的功能,主要是输入、要求的处理、输出。
】
4设计说明
【说明本模块(任务)(或本组模块(任务))的设计考虑,包括:
a.在系统设计说明书中有关对本模块(任务)(或本组模块(任务))设计考虑的叙述,包括本模块(任务)在软件系统中所处的层次,它同其他模块(任务)的接口;
b.在程序设计说明书中有关对本模块(任务)(或本组模块(任务))的设计考虑,包括本模块(任务)的算法、处理流程、牵涉到的数据文卷设计限制、驱动方式和出错信息等;
c.在编制目前已通过全部测试的源代码时实际使用的设计考虑。
d.数据库设计说明】
5源代码(文件)清单
【给出该模块(任务)的文件列表和配置说明】
6测试说明
【说明直接要经过本模块(任务)(或本组模块(任务))的每一项测试,包括这些测试各自的标识符和编号、进行这些测试的目的、所用的配置和输入、预期的输出及实际的输出。
】
7复审的结论
【把实际测试的结果,同软件需求说明书、系统设计说明书、程序设计说明书中规定的要求进行比较和给出结论。
】。