《软件工程》课程设计要求。
一、分组。3~5人一组,由班长负责分组,每组指定一名组长。
注:以j**a、.net方向的同学为主来分组,前台和信息技术方向的同学穿插在各组。j**a、.net这两个方向的同学不要放在一组。
二、选择题目。
可从附录三中选题,也可选j**a、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.面向对象的语言:j**a、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、判定表/树等工具。
二)建立数据库、录入数据。
六、面向对象实现。
一)编码算法→源**。
二)测试。参考案例:速快餐系统的开发。
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、判定表/树等工具进行详细设计。(可选)
二)建立数据库、录入数据。
六、实现。一)编码。
二)测试。附录二:文档撰写规范。
一、《关于软件性质、规模、目标的报告书》
内容:一)软件性质。
二)软件规模。
三)开发该软件要实现的目标。
四)题目**、选题背景。
二、《可行性研究报告》
内容:一)技术可行性:分析小组人员现有技术水平能否开发出该软件。
二)经济可行性:进行成本——效益分析,简单估算开发该软件须投入的成本(软件开发所需的软、硬件资源及人力资源的费用),简单估算软件投入使用后会带来的效益,比较成本和效益。
四)操作可行性:软件所预定的操作方式(如单机或网络方式)是否符合用户单位的实际情况,是否可被用户单位接受。
软件工程课程设计要求
编码清单 部分或全部 审查 测试问题清单。5 每个项目小组可以选择完成编码 测试等阶段的部分任务。考核方式。每个项目小组及其成员的成绩由三部分构成 1 项目小组基本任务完成情况,包括文档完成情况,占70 由教师评定 2 小组成员承担任务的情况占30 由项目经理评定 3 项目经理的成绩由教师根据其履行...
软件工程课程设计要求
课程设计名称 软件工程。学分 3学时 3周。一 目的与任务。软件工程 课程设计是一个综合性的设计型教学环节,是培养训练学生软件开发能力的重要实践性教学环节。通过软件工程课程设计,使学生认识到在软件系统实际开发中运用软件工程方法的意义,加深对软件工程所学知识的理解,初步掌握进行软件系统开发的基本方法,...
《软件工程》课程设计要求
软件工程 课程设计要求。一 课程设计目的。软件工程 是一门实践性极强的课程。课程设计通过一个实际的项目,培养学生分析问题和解决实际问题的能力,培养学生综合应用软件工程的基本原理,方法和技术的能力,做到学以致用。在教师的指导下,以实际应用中自选的中 小型题目为主,根据不同的题目类型选择一种开发模式,完...