当前位置:文档之家› 《软件工程》课程设计要求()

《软件工程》课程设计要求()

《软件工程》课程设计要求一、分组3~5人一组,由班长负责分组,每组指定一名组长。

注:以java、.net方向的同学为主来分组,前台和信息技术方向的同学穿插在各组。

java、.net这两个方向的同学不要放在一组。

二、选择题目可从附录三中选题,也可选java、jsp、.net等课程设计中老师指定的题目,也可小组自选题目(应选小型软件:代码2000行左右,如小型数据库应用系统、小型网络应用软件等)。

三、选择软件开发方法从附录一中选择相应的软件开发办法,按相应方法的规范完成软件开发。

四、按照相应方法完成系统分析、设计,并完成相应文档。

1、《软件工程》课程设计结束,各小组须提交如下文档:若选择方法一、三,则需做完详细设计,需提交如下文档:1)《关于软件性质、规模、目标的报告书》2)《可行性研究报告》3)《项目开发计划》4)《需求规格说明书》5)《总体设计说明书》6)《详细设计说明书》若选择方法二,则需做完总体设计,需提交如下文档:1)《关于软件性质、规模、目标的报告书》2)《可行性研究报告》3)《项目开发计划》4)《需求规格说明书》5)《总体设计说明书》以上文档撰写规范见附录三。

2、《软件工程》课程设计结束时,个人须提交的文档:《课程设计报告》,其中详细叙述自己所完成的工作。

五、成绩评定《软件工程》课程设计成绩=文档成绩+浮动分注:文档成绩由教师根据各小组所提交的份文档的完整性、质量、规范性打分;浮动分由组长根据每人贡献所给参考分及教师根据每人课程设计报告所给分综合评定给出。

注:《软件工程》课程设计时间:19~20周若选择方法一、三完成系统分析与设计,小组每个成员都要参与功能分析、模块设计;若选择方法二完成系统分析与设计,小组每个成员都要参与功能分析、实体类类图的创建、用例分析模型或用例设计模型的建立(用例分析模型或用例设计模型二者选其一即可)。

(方法中标红部分)附录一:软件开发方法一、传统的软件开发方法(结构化的软件开发方法)适用于一般软件,特别适合于如下情况:1.数据结构+算法的程序设计思想。

2.非交互式软件(软件的执行过程主要不是由用户控制,而是由程序控制,并按序执行。

)如:大型工程计算软件、实时数据跟踪软件、自动化控制系统、系统软件、数据库应用系统……3.面向过程的结构化语言:C语言、Pascal语言……二、面向对象的软件开发方法适用于一般软件,特别适合于如下情况:1.类+消息的程序设计思想。

2.交互式软件(软件的执行过程完全用户交互控制,而不是由程序控制。

)如:基于网络的完全由用户交互控制程序执行过程的应用软件和系统软件。

3.面向对象的语言:Java、C++、C#……三、传统与面向对象方法相结合的实用方法适用于一般软件。

一、传统软件开发方法(瀑布模型)一、问题定义确定目标系统的性质、规模、目标。

二、可行性研究(一)从经济、技术、法律、操作角度分析系统可行性。

(二)若可行,则制订项目开发计划(项目成本、进度安排、分组情况……)三、需求分析(一)业务分析1.业务描述2.建立业务模型(SFD)(可选)(二)功能分析1.功能描述2.建立系统功能模型(DFD、数据字典)(三)数据分析建立系统的数据模型(E-R图)(可选)(四)建立系统的动态模型(STD、时序图、Petri网)(可选)四、总体设计(一)软件运行环境(二)软件架构模式(四)建立软件结构图(软件结构图反应模块及模块间的调用关系,每个模块为一个独立的功能)(五)设计数据库的表结构(每张表应规范到3NF,每张表应包含表名,字段,字段类型、主键、外键)(可选)五、详细设计(一)模块设计(设计每个模块的界面及算法)模块界面:可将所设计界面抓图。

模块算法:叙述模块功能。

模块的输入。

模块的处理。

模块的输出。

使用如下工具描述算法:流程图、N-S图、PAD图、活动图PDL判定表/树(可选)※一个功能模块的实现过程中可能包含多个函数、过程、类,应列出主要的函数、过程或类,对于其中的一些重要的、难度较大的函数、过程、类中的方法的实现算法可用流程图、N-S图、PAD图、活动图、PDL、判定表/树等工具进行详细设计。

(可选)(见例2)(二)建立数据库、录入数据六、实现(一)编码(算法→源代码)(二)测试参考案例:1、图书馆管理系统的开发2、网上商城管理系统的开发二、面向对象软件开发方法(喷泉模型)一、问题定义二、可行性研究三、面向对象分析(一)业务分析1、业务描述2、建立系统业务模型(可选)★可选择顺序图、活动图描述系统整体业务流程。

★可选择活动图描述系统参与者的行为。

(二)功能分析,建立系统功能模型(用例图、用例描述)1、建立需求结构2、建立功能模型为需求结构中每个最小的需求单元建立一个功能模型:(1)功能描述(2)用例图(3)用例叙述(三)对象分析,建立系统初步的对象模型(实体类的类图)(四)用例分析,建立用例分析模型确定用例的实现策略。

★可选择顺序图对用例进行分析。

(粗略的顺序图,图中的消息用粗略的方法表达)★可选择活动图对用例进行分析。

(五)扩充和完善,建立系统完整的对象模型(平台无关对象模型)确定系统的实现策略(系统中包含哪些类,不同的类起什么作用)。

★对于系统中重要的类,用状态图分析其状态变迁。

四、面向对象的总体设计(一)扩充、完善功能模型(用例图)(二)软件运行环境(三)软件架构模型1、软件架构模式2、软件分层架构(反应了系统的实现策略)3、软件逻辑结构(子系统结构,每个子系统对应需求结构中一个最小的需求单元)(四)扩充和完善对象模型,建立平台相关对象模型。

(五)用例设计,建立用例设计模型★可选择顺序图对每个用例进行设计(详细的顺序图,图中的消息用准确的方法表达)。

★可选择活动图对每个用例进行设计。

(五)若某些类的对象须长期存储,则定义存储方式一般用数据库存储,建立数据库设计模型。

1、数据库的表结构(实体类→表→3NF(每张表应包含表名、字段、字段类型、主键、外键))2、数据库的逻辑结构(表之间的关系)(可选)(七)设计人机交互界面,建立界面设计模型(可选)1、界面结构模型2、屏幕界面模型(八)建立组件图(可选)(九)建立部署模型五、面向对象的详细设计(一)确定每个用例的实现算法(实现用例的类中服务的算法、关联的算法),描述算法可用流程图、N-S图、PAD图、活动图、PDL、判定表/树等工具。

(二)建立数据库、录入数据六、面向对象实现(一)编码算法→源代码(二)测试参考案例:1.e速快餐系统的开发2. 在线书店的开发3. C++类库管理系统的开发三、传统与面向对象方法相结合的实用方法一、问题定义二、可行性研究三、需求分析(一)业务分析方法一:业务描述方法二:业务描述、业务模型(系统流图)方法三:业务描述、业务模型(可选择顺序图、活动图描述系统整体业务流程;可选择活动图描述系统参与者的行为。

)方法一:功能描述、DFD、数据字典(二)功能分析方法二:功能描述、用例图、用例描述方法三:用语言详尽地叙述功能(三)数据分析方法一:E-R图方法二:实体类的类图(四)动态分析:建立系统动态模型(STD、时序图、Petri网)(可选)四、总体设计(一)软件运行环境(二)软件架构模式(三)建立软件结构图(功能模块图)(四)设计数据库的表结构方法一:E-R图→表→3NF方法二:实体类→表→3NF五、详细设计(一)模块设计:设计模块的界面及算法。

方法一:模块界面:可将所设计界面抓图。

模块算法:叙述模块功能。

模块的输入。

模块的处理。

模块的输出。

※一个功能模块的实现过程中可能包含多个函数、过程、类,应列出主要的函数、过程或类,对于其中的一些重要的、难度较大的函数、过程、类中的方法的实现算法可用流程图、N-S图、PAD图、活动图、PDL、判定表/树等工具进行详细设计。

(可选)方法二:模块界面:可将所设计界面抓图。

模块算法:叙述模块功能。

模块的输入。

模块的处理。

模块的输出。

使用如下工具描述算法:流程图、N-S图、PAD图、活动图PDL判定表/树(可选)※一个功能模块的实现过程中可能包含多个函数、过程、类,应列出主要的函数、过程或类,对于其中的一些重要的、难度较大的函数、过程、类中的方法的实现算法可用流程图、N-S图、PAD图、活动图、PDL、判定表/树等工具进行详细设计。

(可选)方法三:(特别适合于用面向对象的语言实现的软件)模块界面:可将所设计界面抓图。

模块算法:★可选择顺序图来分析、设计每个用例。

用顺序图粗略地描述用例(顺序图中的消息用粗略的方法表达)→用顺序图详细地描述用例(顺序图中的消息用准确地方法表达)★可选择活动图来分析、设计每个用例。

★可选择状态图描述关键类。

※一个功能模块的实现过程中可能包含多个函数、过程、类,应列出主要的函数、过程或类,对于其中的一些重要的、难度较大的函数、过程、类中的方法的实现算法可用流程图、N-S图、PAD图、活动图、PDL、判定表/树等工具进行详细设计。

(可选)(二)建立数据库、录入数据六、实现(一)编码(二)测试附录二:文档撰写规范一、《关于软件性质、规模、目标的报告书》内容:(一)软件性质。

(二)软件规模。

(三)开发该软件要实现的目标。

(四)题目来源、选题背景。

二、《可行性研究报告》内容:(一)技术可行性:分析小组人员现有技术水平能否开发出该软件。

(二)经济可行性:进行成本——效益分析,简单估算开发该软件须投入的成本(软件开发所需的软、硬件资源及人力资源的费用),简单估算软件投入使用后会带来的效益,比较成本和效益。

(三)法律可行性:该软件的选题、内容、开发所用的核心技术是否涉及到侵权、妨碍他人等法律及道义问题。

(四)操作可行性:软件所预定的操作方式(如单机或网络方式)是否符合用户单位的实际情况,是否可被用户单位接受。

(五)结论:根据上述四个方面可行性研究的结果,权衡该软件是否能在给定的时间及资源的限制下如期开发出来。

三、《项目开发计划》(一)系统概述:项目目标、主要功能、系统特点。

(二)系统资源:开发和运行该软件所需要的软、硬件资源及人力资源。

(注:人力资源须写明小组人数、组长、各小组成员的技术特长及责任)(三)成本预算:分阶段的人员费用,所须软、硬件资源费用、机时费用及其他费用。

(四)进度安排:各阶段起止时间,完成的文档,文档验证方式及要交付的产品清单。

四、《需求规格说明书》根据所选择的软件开发方法,完成方法中需求分析阶段所要求的内容。

五、《总体设计说明书》根据所选择的软件开发方法,完成方法中总体设计阶段所要求的内容。

六、《详细设计说明书》根据所选择的软件开发方法,完成方法中详细设计阶段所要求的内容。

注:文档中所涉及的图可用Microsoft Visio、Rational Rose等工具绘制,绘图后将图保存为.JPG文件,以图片形式插入文档中。

相关主题