软件工程课程设计指导书模板.docx
《软件工程课程设计指导书模板.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计指导书模板.docx(14页珍藏版)》请在冰点文库上搜索。
软件工程课程设计指导书模板
软件工程课程设计指导书
一、课程设计教学目的
《软件工程课程设计》是为计算机专业本科《软件工程》课程配套设置的,是《软件工程》课程的后继教学环节,是一个重要的、不可或缺的实践环节。
其目的是使学生能够针对具体软件工程项目,全面掌握软件工程管理、软件需求分析、软件总体设计、软件详细设计、软件测试等阶段的方法和技术。
通过该课程设计使学生进一步理解和掌握软件开发模型、软件生命周期、软件过程等理论在软件项目开发过程中的意义和作用,培养学生按照软件工程的原理、方法、技术、标准和规范,进行软件开发的能力,培养学生的合作意识和团队精神,培养学生对技术文档的编写能力,从而使学生提高软件工程的综合能力,提高软件项目的管理能力。
同时课程设计应充分体现“教师指导下的以学生为中心”的教学模式,以学生为认知主体,充分调动学生的积极性和能动性,重视学生自学能力的培养。
二、课程设计内容及要求
本课程设计要求学生采用“项目小组”的形式,结合具体的开发项目进行设计。
具体要求如下:
1.每个班级按项目小组进行分组,每组不得超过4人;
2.每个项目小组选出项目负责人或项目经理,由项目经理召集项目组成员讨论、选定开发项目。
项目经理负责制定“项目开发计划”、管理项目并根据项目进展情况对项目开发计划进行调整;
3.项目开发计划必须由粗到细通过GANTT图给出,每项任务要落实到人且规定该任务的起止日期和时间;明确每个阶段提交文档的日期和时间;每个项目小组必须明确指定文档的审查小组和审查人员以及审查结果的返回日期;审查小组和审查人员不得是完成被审查内容的完成者;审查结果至少包括:
存在的问题、出现问题的所在文档的位置及页码、具体建议等;
4.每个项目小组必须按照给定的文档规范标准提供下列文档,文档中必须注明执笔者、完成者(签名)和完成日期,其中完成需求分析和设计工作的人员不能相同,完成编码和审查/测试的人员不能相同;文档包括:
编码清单(部分或全部)、详细设计规格说明、概要设计规格说明、需求分析规格说明、项目开发计划(包括调整的项目开发计划)、测试报告等。
5.每个项目小组可以选择完成编码、测试等阶段的部分任务。
6.根据合理的进度安排,一步一步、踏踏实实地开展课程设计活动,按时完成每部分工作。
课程设计过程中,坚持独立完成,分成小组进行的要有明确的分工,并在报告中给以说明。
课程设计内容主要包括:
1.项目可行性研究
1)成立项目小组并选定项目经理或项目小组长
2)项目经理召集小组成员选择开发项目
3)项目经理召集小组成员开展项目可行性研究
4)按照《软件文档编写概要》的格式要求,由项目经理执笔完成《项目可行性研究报告》。
2.制定项目开发计划
1)项目经理召集小组成员针对所选项目讨论开发计划,进一步明确项目的大小、范围、复杂程度等。
2)项目经理召集小组成员进行任务分解与任务分配
3)确定任务进度
4)确定完成项目的环境和工具
5)按照《软件文档编写概要》的格式要求,项目经理执笔完成《项目开发计划书》
3.需求分析
1)按照项目任务分配结果和项目进度要求,由任务承担人开展项目的需求分析的主要工作,不得超越前述项目的大小、范围、复杂程度等
2)项目小组的其他成员配合任务承担人,完成项目的需求分析
3)按照《软件文档编写概要》的格式要求,由任务承担人执笔完成《项目需求分析规格说明书》
4)由评审人员完成对《项目需求分析规格说明书》的评审工作,并给出评审意见
4.总体设计
1)按照项目任务分配结果和项目进度要求,并依据《项目需求分析规格说明》,由任务承担人完成项目的初步设计任务,项目小组的其他成员配合任务承担人,完成项目的初步设计任务
2)按照《软件文档编写概要》的格式要求,由任务承担人执笔完成《项目初步设计规格说明书》
3)由评审人员完成对《项目初步设计规格说明书》的评审工作,并给出评审意见
5.详细设计
1)按照项目任务分配结果和项目进度要求,并依据由任务承担人完成项目的详细设计任务
2)项目小组的其他成员配合任务承担人,完成项目的详细设计任务。
按照《软件文档编写概要》的格式要求,由任务承担人执笔完成《项目详细设计规格说明书》
3)由评审人员完成对《项目详细设计规格说明书》的评审工作,并给出评审意见
6.实现
1)按照项目任务分配结果和项目进度要求,并依据《项目初步设计规格说明书》和《项目详细设计规格说明书》由任务承担人完成项目的具体实现任务
2)由任务承担人给出实现的源程序清单(打印或磁盘)
7.测试
1)按照项目任务分配结果和项目进度要求,并依据《项目需求分析规格说明书》、《项目总体设计规格说明书》和《项目详细设计规格说明书》,由任务承担人完成对已实现部分的软件或模块的测试任务
2)按照《软件文档编写概要》的格式要求,由任务承担人执笔完成《项目测试报告》。
三、课程设计时间及进度安排
设计内容
学时
课设选题,查阅资料,进行任务分配,确定项目计划
2
获取系统的需求,并由任务承担人执笔完成《项目需求分析规格说明书》
12
进行系统总体设计,并由任务承担人执笔完成《项目总体设计规格说明书》
12
进行系统详细设计,由任务承担人执笔完成《项目详细设计规格说明书》
12
按照项目任务分配结果和项目进度要求,并依据《项目需求分析规格说明书》、《项目总体设计规格说明书》和《项目详细设计规格说明书》,由任务承担人完成对已实现部分的软件或模块的测试任务
8
完善编码,编制《软件测试计划书》。
6
验收
2
四、课程设计的成绩评定
本课程设计必须提交正式的针对特定项目的完整的设计文档和报告书。
每个项目小组及其成员的成绩由三部分构成:
1)项目小组基本任务完成情况,包括文档完成情况,占70%,由教师评定,不完成者不得分,迟交或少交者,酌情处理;2)小组成员承担任务的情况占30%,由项目经理评定;3)项目经理的成绩由教师根据其履行的职责和全组完成任务情况可做加分处理,但不得超过总分的10%,由教师评定;4)课程设计的成绩单独记分,还将参照各项目组提交的开发计划进行核定。
五、课程设计报告撰写要求
本课程设计必须提交的上述第二部分所列的文档(报告),每份报告需在封面注明报告课题名称、班级、课题组成员姓名、学号及课程设计日期、地点。
报告撰写的要求:
关于各部分文档提交的方式每个参加课程设计的学生,必须以小组方式提交最后文档。
文档必须是打印稿,要求:
正文篇幅应不少于3000字,撰写规范及模版参见《河北大学本科生毕业论文(设计)撰写规范》、《河北大学本科生毕业论文(设计)模版》、《河北大学学年论文》要求。
六、参考的软件项目
可参考的项目名称如下:
题目一:
排课系统
1.系统简介
每个学期的期中,学校教务处向各个学院发出下各学期的教学计划,包括课程名称、课程代码、课时、班级类别(本科、专科、成人教育、研究生)、班号等;学院教学主管人员根据教学任务和要求给出各个课程的相关限制(如:
任课教师的职称、上课的班数、最高和最低周学时数等);任课教师自报本人授课计划,经所在教研室协调任可,将教学计划上交学院主管教学计划的人员,批准后上报学校教务处,最终由教务处给出下个学期全学院教师的教学任务书。
假设上述排课过程全部由人工操作,现要求为上述过程实现计算机自动处理过程。
2.限定条件
(1)每位教师的主讲课程门数不超过2门/学期:
讲师以下职称的教师不能承担学院定主课的主讲任务。
(2)学院中层干部的主讲课时不能超过4学时/周。
(3)本学期出现严重教学事故的教师不能承担下各学期的主讲任务。
(4)本系统的输入项至少包括:
教务处布置的教学计划,学院教师自报的授课计划和学院定的有关授课限制条件。
(5)本系统的输出项至少包括:
教务处最终下达全院教师的教学任务书和学院各个班级下各学期的课程表(可以不含上课地点)。
题目二:
“学校教材定购系统”
1.系统简介
本系统可以细化为两个子系统:
销售系统和采购系统。
销售系统的主要工作过程为:
首先由教师或学生提交购书单,经教材发行人员审核是有效购书单后,开发票、登记并返给教师或学生领书单,教师或学生可以到书库领书。
采购系统的主要工作过程为:
若是教材脱销,则登记缺书,发缺书单给书库采购人员;一旦新书入库后,即发进书通知给教材发行人员。
以上功能要求在计算机上实现。
2.技术要求和限制条件
(1)当书库中的各种书籍数量发生变化(包括进书和出书)时,都应修改相关的书库记录,如库存表或进/出库表。
(2)在实现上述销售和采购的工作过程时,需考虑有关的合法性验证。
(3)系统的外部项至少包括:
教师、学生和教材工作人员。
(4)系统的相关数据存储至少包括:
购书表、库存表、缺书登记表、待购教材表、进库表和出库表。
题目三:
“机票预定系统”
1.系统简介
航空公司为给旅客乘机提供方便,需要开发一个机票预定系统。
各个旅行社把预定机票的旅客信息(姓名、性别、工作单位、身份证号码(护照号码)、旅行时间、旅行始发地和目的地,航班舱位要求等)输入到系统中,系统为旅客安排航班。
当旅客交付了预订金后,系统打印出取票通知和帐单给旅客,旅客在飞机起飞前一天凭取票通知和帐单交款取票,系统核对无误即打印出机票给旅客。
此外航空公司为随时掌握各个航班飞机的乘载情况,需要定期进行查询统计,以便适当调整。
2.技术要求和限制条件
(1)在分析系统功能时要考虑有关证件的合法性验证(如身份证、取票通知和交款发票)等。
(2)对于本系统还应补充一下功能:
A.旅客延误了取票时间的处理
B.航班取消后的处理
C.旅客临时更改航班的处理
(3)系统的外部输入项至少包括:
旅客、旅行社和航空公司。
题目四:
出卷系统
1)系统支持人工辅助出卷和自动出卷。
自动出卷是指能够根据教师的出卷要求,自动合理地抽取题目,得到一份比较合理的试卷。
人工辅助出卷是指能够根据教师要求,自动提取符合要求的题目,供教师选择。
出卷要求包括总分,总难度及其比例,总题型及其比例,总知识点及其比例。
2)系统应能够进行题库管理,包括试题录入、修改、删除等。
题库至少有1000道不同类型的题目。
题库应能容纳足够多的试题,试题应包含有内容、答案、题型、难度、知识点和抽取时间、图形(若有的话)等信息。
3)系统能够进行试卷管理,应完成试卷修改、删除和打印等。
试卷能够按照给定的样式进行输入。
4)系统能够在所有流行的技术环境下允许,还应该有一个非常好的图形用户界面。
5)试卷符合要求的96%以上即可结束,允许教师调整。
6)应能进行试卷分析。
题目五:
成人教务管理系统
1.系统简介
系统的用户是成人教学主管教师、脱产成人学生、任课教师。
主管教师能够使用系统导入学生名单,能够对学生信息进行基本的添加、删除、修改功能,还可以按照特定格式打印学生成绩单并维护所开课程,分配每学期的成人课程。
任课教师能够察看并打印学生名单。
期末考试结束,任课教师可以通过该系统网上录入成绩。
学生可以查看课表、成绩以及给任课教师提出改进意见。
2.要求
(1)学生基本信息的查询和修改。
(2)学生本学期课表的查询和打印
(3)学生本学期和历史成绩单的查询和打印
(4)任课教师本学期课表查询、所授课程信息查询;本学期所授课程的成绩录入。
(5)主管教师对本学期所有任课信息的添加、修改、删除和备份;对所有学生基本信息的添加、修改、删除和备份,并能打印。
(6)主管教师对教务公告的发布、修改和删除。
软件需求说明书的编写提示
1引言
1.1编写目的
说明编写这份软件需求说明书的目的,指出预期的读者。
1.2背景
说明:
a.待开发的软件系统的名称;
b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;
c.该软件系统同其他系统或其他机构的基本的相互来往关系。
1.3定义
列出本文件中用到的专门术语的定义和外文首字母组词的原词组。
1.4参考资料
列出用得着的参考资料,如:
a.本项目的经核准的计划任务书或合同、上级机关的批文;
b.属于本项目的其他已发表的文件;
c.本文件中各处引用的文件、资料、包括所要用到的软件开发标准。
列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。
2任务概述
2.1目标
叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。
解释被开发软件与其他有关软件之间的关系。
如果本软件产品是一项独立的软件,而且全部内容自含,则说明这一点。
如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。
|
2.2用户的特点
列出本软件的最终用户的特点,充分说明操作人员、维护人员的教育水平和技术专长,以及本软件的预期使用频度。
这些是软件设计工作的重要约束
2.3假定和约束
列出进行本软件开发工作的假定和约束,例如经费限制、开发期限等。
3需求规定
3.1对功能的规定
用列表的方式(例如IPO表即输入、处理、输出表的形式),逐项定量和定性地叙述对软件所提出的功能要求,说明输入什么量、经怎样的处理、得到什么输出,说明软件应支持的终端数和应支持的并行操作的用户数。
3.2对性能的规定
3.2.1精度
说明对该软件的输入、输出数据精度的要求,可能包括传输过程中的精度。
3.2.2时间特性要求
说明对于该软件的时间特性要求,如对:
a.响应时间;
b.更新处理时间;
c.数据的转换和传送时间;
3.2.3灵活性
说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变化的适应能力,如:
a.操作方式上的变化;
b.运行环境的变化;
c.同其他软件的接口的变化;
d.精度的变化;
e.计划的变化或改进。
对于为了提供这些灵活性而进行的专门设计的部分应该加以标明。
3.3输人输出要求
解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。
对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。
3.4数据管理能力要求
说明需要管理的文件和记录的个数、表和文件的大小规模,要按可预见的增长对数据及其分量的存储要求作出估算。
3.5故障处理要求
列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。
3.6其他专门要求
如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性的特殊要求等。
4运行环境规定
4.1设备
列出运行该软件所需要的硬设备。
说明其中的新型设备及其专门功能,包括:
a.处理器型号及内存容量;
b.外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量;
c.输入及输出设备的型号和数量,联机或脱机;
d.数据通信设备的型号和数量;
e.功能键及其他专用硬件
4.2支持软件
列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。
4.3接口
说明该软件同其他软件之间的接口、数据通信协议等。
4.4控制
说明控制该软件的运行的方法和控制信号,并说明这些控制信号的来源。
概要设计说明书
1引言
1.1编写目的
说明编写这份概要设计说明书的目的,指出预期的读者。
1.2背景
说明:
a.待开发软件系统的名称;
b.列出此项目的任务提出者、开发者、用户以及将运行该软件的计算站(中心)。
1.3定义
列出本文件中用到的专门术语的定义和外文首字母组词的原词组。
1.4参考资料
列出有关的参考文件,如:
a.本项目的经核准的计划任务书或合同,上级机关的批文;
b.属于本项目的其他已发表文件;
c.本文件中各处引用的文件、资料,包括所要用到的软件开发标准。
列出这些文件的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。
2总体设计
2.1需求规定
说明对本系统的主要的输入输出项目、处理的功能性能要求。
2.2运行环境
简要地说明对本系统的运行环境(包括硬件环境和支持环境)的规定。
2.3基本设计概念和处理流程
说明本系统的基本设计概念和处理流程,尽量使用图表的形式。
2.4结构
用一览表及框图的形式说明本系统的系统元素(各层模块、子程序、公用程序等)的划分,扼要说明每个系统元素的标识符和功能,分层次地给出各元素之间的控制与被控制关系.
2.5功能需求与程序的关系
本条用一张如下的矩阵图说明各项功能需求的实现同各块程序的分配关系:
程序1
程序2
……
程序n
功能需求1
√
功能需求2
√
……
功能需求n
√
√
2.6人工处理过程
说明在本软件系统的工作过程中不得不包含的人工处理过程(如果有的话)。
3接口设计
3.1用户接口
说明将向用户提供的命令和它们的语法结构,以及软件的回答信息。
3.2外部接口
说明本系统同外界的所有接口的安排,包括软件与硬件之间的接口、本系统与各支持软件之间的接口关系。
3.3内部接口
说明本系统之内的各个系统元素之间的接口的安排。
4运行设计
4.1运行模块组合
说明对系统施加不同的外界运行控制时所引起的各种不同的运行模块组合,说明每种运行所历经的内部模块和支持软件。
4.2运行控制
说明每一种外界的运行控制的方式方法和操作步骤。
4.3运行时间
说明每种运行模块组合将占用各种资源的时间。
5系统数据结构设计
5.1逻辑结构设计要点
给出本系统内所使用的每个数据结构的名称、标识符以及它们之中每个数据项、记录的标识、定义、长度及它们之间的层次的或表格的相互关系。
5.2物理结构设计要点
给出本系统内所使用的每个数据结构中的每个数据项的存储要求,访问方法、存取单位、存取的物理
关系(索引、设备、存储区域)、设计考虑和保密条件。
5.3数据结构与程序的关系
说明各个数据结构与访问这些数据结构的形式:
6系统出错处理设计
6.1出错信息
用一览表的方式说朗每种可能的出错或故障情况出现时,系统输出信息的形式、含意及处理方法。
6.2补救措施
说明故障出现后可能采取的变通措施,包括:
a.后备技术说明准备采用的后备技术,当原始系统数据万一丢失时启用的副本的建立和启动的技术,例如周期性地把磁盘信息记录到磁带上去就是对于磁盘媒体的一种后备技术;
b. 降效技术说明准备采用的后备技术,使用另一个效率稍低的系统或方法来求得所需结果的某些
部分,例如一个自动系统的降效技术可以是手工操作和数据的人工记录;
c.恢复及再启动技术说明将使用的恢复再启动技术,使软件从故障点恢复执行或使软件从头开始重新运行的方法。
详细设计说明书
1引言
1.1编写目的
说明编写这份详细设计说明书的目的,指出预期的读者。
1.2背景
说明:
a.待开发软件系统的名称;
b.本项目的任务提出者、开发者、用户和运行该程序系统的计算中心。
1.3定义
列出本文件中用到专门术语的定义和外文首字母组词的原词组。
1.4参考资料
列出有关的参考资料,如:
a.本项目的经核准的计划任务书或合同、上级机关的批文;
b.属于本项目的其他已发表的文件;
c.本文件中各处引用到的文件资料,包括所要用到的软件开发标准。
列出这些文件的标题、文件编号、发表日期和出版单位,说明能够取得这些文件的来源。
2程序系统的结构
用一系列图表列出本程序系统内的每个程序(包括每个模块和子程序)的名称、标识符和它们之间的层次结构关系。
3程序1设计说明
从本章开始,逐个地给出各个层次中的每个程序的设计考虑。
以下给出的提纲是针对一般情况的。
对于一个具体的模块,尤其是层次比较低的模块或子程序,其很多条目的内容往往与它所隶属的上一层模块的对应条目的内容相同,在这种情况下,只要简单地说明这一点即可。
3.1程序描述
给出对该程序的简要描述,主要说明安排设计本程序的目的意义,并且还要说明本程序的特点(如是常驻内存还是非常驻?
是否子程序?
有无覆盖要求?
是顺序处理还是并发处理等)。
3.2功能
说明该程序应具有的功能,可采用IPO图(即输入一处理一输出图)的形式。
3.3性能
说明对该程序的全部性能要求,包括对精度、灵活性和时间特性的要求。
3.4输人项
给出对每一个输入项的特性,包括名称、标识、数据的类型和格式、数据值的有效范围、输入的方式。
数量和频度、输入媒体、输入数据的来源和安全保密条件等等。
3.5输出项
给出对每一个输出项的特性,包括名称、标识、数据的类型和格式,数据值的有效范围,输出的形式、数量和频度,输出媒体、对输出图形及符号的说明、安全保密条件等等。
3.6算法
详细说明本程序所选用的算法,具体的计算公式和计算步骤。
3.7流程逻辑
用图表(例如流程图、判定表等)辅以必要的说明来表示本程序的逻辑流程。
3.8接口
用图的形式说明本程序所隶属的上一层模块及隶属于本程序的下一层模块、子程序,说明参数赋值和调用方式,说明与本程序相直接关联的数据结构(数据库、数据文卷)。
3.9存储分配
根据需要,说明本程序的存储分配。
3.10测试计划
说明对本程序进行单元测试的计划,包括对测试的技术要求、输入数据、预期结果、驱动程序及桩模块等的规定。
4程序2(标识符)设计说明
用类似F.3的方式,说明第2个程序乃至第N个程序的设计考虑。
......