软件工程基础实验三
- 格式:doc
- 大小:191.00 KB
- 文档页数:5
云大软件工程实验三软件设计云大软件工程实验三软件设计1.引言1.1 目的1.2 背景1.3 定义、缩略词和首字母缩略词的解释2.需求分析2.1 功能需求2.1.1 功能12.1.2 功能22.1.32.2 非功能需求2.2.1 性能需求2.2.2 可靠性需求2.2.3 安全性需求2.2.43.概要设计3.1 架构设计3.1.1 客户端-服务器架构3.1.2 分层架构3.1.33.2 模块划分3.2.1 模块13.2.2 模块23.2.33.3 接口设计3.3.1 外部接口3.3.2 内部接口3.3.33.4 数据库设计3.4.1 数据库结构3.4.2 数据库表设计3.4.34.详细设计4.1 模块1设计4.1.1 子模块1.1设计 4.1.2 子模块1.2设计 4.1.34.2 模块2设计4.2.1 子模块2.1设计 4.2.2 子模块2.2设计4.2.35.测试计划5.1 功能测试5.1.1 功能1测试用例 5.1.2 功能2测试用例 5.1.35.2 性能测试5.2.1 性能指标5.2.2 性能测试用例5.2.35.3 安全性测试5.3.1 安全漏洞测试用例5.3.2 安全性能测试用例5.3.36.上线计划6.1 部署步骤6.1.1 部署环境准备6.1.2 代码6.1.36.2 回滚计划6.3 验收标准附件:附件一:需求说明书附件二:设计图纸附件三:测试用例法律名词及注释:1.版权:对作品(例如文学、音乐、软件等)所赋予的法律上的保护,使其著作权人能够授权他人使用或复制作品。
2.专利:对发明的新技术、产品或方法的法律保护,使其专利持有人拥有独占使用或制造的权利。
3.商标:能够识别品牌或企业的标志、名称、符号或设计的法律保护,使其商标持有人能够独占使用。
4.涉密信息:指涉及国家安全、经济安全、社会公共利益和个人隐私安全等方面的机密信息。
软件工程试验报告三一、总体设计学生考勤管理系统包含五个大的功能,分别是:录入学生缺课信息、修改学生缺课信息、查询某个学生的缺课情况、统计某段时间内(以天为单位),旷课学生姓名及旷课节数和统计某段时间内,有学生旷课的课程及旷课人次。
学生的缺课信息主要包含缺课日期,第几节课、课程名称,学生姓名,缺课类型。
在录入学生缺课信息时根据系统提示逐一输入。
每输入完一条信息,系统会提示是否继续输入,用户可以选择继续或返回主菜单。
在修改学生缺课信息时,用户首先输入要修改的学生姓名,系统会检索如果系统中有该学生的相关信息则系统首先会提示用户修改该学生的那一部分信息,用户可自行选择。
如果系统中没有该学生的相关信息,则系统会给相关提示,用户可以选择继续输入要修改的学生姓名或选择退出返回主菜单。
在查询学生缺课信息时,用户先输入要查询的学生姓名,系统检索判断是否存在该学生的信息然后做出相应的提示。
总之,用户可以方便的在系统提示下进行使用。
学生考勤管理系统中功能模块图:二、详细设计1、学生缺课信息录用功能模块:2、修改某学生缺课信息功能的模块图:3 查询某学生缺课信息功能图:三、系统调试程序编写完成后,我进行了程序调试。
调试过程中,出现了以下问题:当录入学生缺课信息时,出现了无法退出录入函数的情况,主要原因是输入函数中while循环语句没有设置跳出循环的条件。
除此之外,修改某学生缺课信息时,如果没有该学生的缺课信息,系统没有提示要用户没有该学生信息,也没有建议用户重新输入要修改的学生姓名。
由此我发现了该系统修改学生缺课信息的不足。
于是,我对修改函数进行了修改与完善。
在该函数中,我设置了if 语句用来判断系统中是否存有用户要修改的学生缺课信息。
如果没有,则提示用户没有该学生的缺课信息,用户可以选择继续输入要修改的学生姓名或者退出修改环节,可以在循环语句中改变循环进行的条件从而终止循环。
至于在修改后显示该学生的缺课信息,运行时发现系统并没有做到这一点,对源代码检查之后发现是修改函数中显示函数的调用出了点问题,显示函数的实参有误,应该把要修改缺课信息的学生所在的信息类对象作为实参,然后用显示函数的形参引用实参对象,通过对象调用信息类的成员函数,从而实现显示功能。
《软件工程》实验报告====================================================================* 姓名: 班级学号:1220551====================================================================*实验三小组项目详细设计(一)系统需求实例:企业销售管理的描述如下:(1) 接受顾客的订单,检验订单。
若库存有货,则进行供货处理,即修改库存,给仓库开备货单,并且将订单留底;若库存量不足,则将缺货订单登入缺货记录。
(2) 根据缺货记录进行缺货处理,将缺货通知单发给采购部分,以便采购。
(3) 根据采购部门发来的进货通知单处理进货,即修改库存,并从缺货记录中取出缺货订单进行供货处理。
(4) 根据留底的订单进行销售统计,打印统计表给经理。
(二)实验目的:(1)根据所选定题目进行系统详细设计工作;(2)根据“检验订单”、“处理供货”、“处理缺货”、“处理进货”的伪码画出它们的盒图、PAD图(3)熟练使用画图工具“visio”绘制图形。
(三)实验步骤:(1)“检验订单”伪码PROCEDURE 检验订单输入订单;IF 订单有效THEN 进入“供货处理”;ELSE 重新输入订单;ENDIFRETURNEND(2)“处理供货”伪码PROCEDURE 处理供货读入订单中货物数量;读入库存记录;IF 货物数量<库存记录THEN 修改库存记录;IF 库存记录≤库存临界值THEN 生成缺货订单记录;ENDIF生成备货单;ELSE 生成缺货订单记录;ENDIFRETURNEND(3)“处理缺货”伪码PROCEDURE 处理缺货读入缺货订单记录;根据缺货订单生成缺货通知单;RETURNEND(4)“处理进货”伪码PROCEDURE 处理进货输入进货单;根据进货单修改库存;IF 缺货订单记录货物数量<库存记录THEN 处理缺货订单可以供货;修改缺货订单记录;ENDIFRETURNEND盒图:PAD图:。
淮海工学院计算机工程学院实验报告书课程名:软件工程A题目:软件测试班级:Z软件161学号:***********名:***一、目的与要求1.理解黑盒测试的含义以及基本的测试方法。
2.采用等价类划分法设计测试用例。
3.掌握用等价类划分法设计测试用例的方法。
4.掌握用边界值分析法设计测试用例的方法。
5.理解白盒测试的含义以及基本的测试方法。
6.掌握逻辑覆盖的语句覆盖、判定覆盖、条件覆盖等方法。
7.采用语句覆盖、判定覆盖、条件覆盖设计测试用例。
二、实验内容试画出:输入三条边,判断三条边组成的图形是一般三角形、等腰三角形、直角三角形、等边三角形,亦或不能构成三角形的流程图,给出详细设计结果与C语言代码,对其使用白盒和黑盒测试技术分别设计测试用例(包括所有白盒测试的覆盖、黑盒测试的边界值分析与等价类划分)。
然后,使用测试用例进行实际测试,并给出测试结果;三、实验步骤与源程序源程序判断三角形的流程图如图1所示源程序设计代码如下所示:#include<stdio.h>#include<math.h>void test(double x,double y,double z){if(x>0 && x<101 && y>0 && y<101 && z>0 && z<101){if(x+y>z && x+z>y && y+z>x) {if(x==y && y==z){printf("\n************\n等边三角形\n************\n");}else if(x==y || x==z || y==z){printf("\n************\n等腰三角形\n************\n");}else if(pow(x,2)==pow(y,2)+pow(z,2) || pow(z,2)==pow(x,2)+pow(y,2) ||pow(y,2)==pow(z,2)+pow(x,2)){printf("\n************\n直角三角形\n************\n");}else{printf("\n************\n一般三角形\n************\n");}}else{printf("\n************\n不构成三角形\n************\n");}}else{printf("\n************\n输入超范围\n************\n");}}int main(){double side1,side2,side3;while(side1!=1000||side2!=1000||side3!=1000){printf("\n请输入三角形的三边a,b,c的值:");scanf("%lf %lf %lf",&side1,&side2,&side3);test(side1,side2,side3);}return 0;}1.等价类划分输入3条边a、b、c必须满足以下条件:条件1 1≤a≤100 条件4 a<b+c条件2 1≤b≤100 条件5 b<a+c条件3 1≤c≤100 条件6 c<a+b如果输入值a、b、c满足条件1、条件2和条件3,则输出下列4种情况之一:(1)如果不同时满足条件4、条件5和条件6.则程序输出为“不构成三角形”。
《软件工程》实验教案一、实验目的1. 让学生了解软件工程的基本概念、原则和方法。
2. 培养学生运用软件工程知识分析和解决实际问题的能力。
3. 加深学生对软件开发过程的理解,提高团队协作和沟通能力。
二、实验内容1. 实验一:软件工程概述了解软件工程的定义、目的、历史和发展趋势。
掌握软件开发过程中的基本活动和相关工具。
2. 实验二:需求分析学习需求分析的基本方法,如问卷调查、访谈、观察等。
实践使用需求分析工具,如UseCase图、DFD图等。
3. 实验三:软件设计掌握软件设计的基本原则,如模块化、抽象、封装等。
学习软件设计的方法,如结构化设计、面向对象设计等。
4. 实验四:编码与实现熟悉编程语言的基本语法和编程规范。
5. 实验五:软件测试了解软件测试的目的、方法和过程。
学习使用测试工具进行单元测试、集成测试和系统测试。
三、实验步骤1. 实验一:软件工程概述讲解软件工程的定义、目的、历史和发展趋势。
介绍软件开发过程中的基本活动和相关工具。
2. 实验二:需求分析讲解需求分析的基本方法。
练习使用需求分析工具,如UseCase图、DFD图等。
3. 实验三:软件设计讲解软件设计的基本原则和方法。
练习进行结构化设计和面向对象设计。
4. 实验四:编码与实现讲解编程语言的基本语法和编程规范。
5. 实验五:软件测试讲解软件测试的目的、方法和过程。
练习使用测试工具进行单元测试、集成测试和系统测试。
四、实验要求1. 实验一:软件工程概述2. 实验二:需求分析完成一个简单的需求分析案例,绘制UseCase图和DFD图。
3. 实验三:软件设计完成一个简单的软件设计案例,包括结构化设计和面向对象设计。
4. 实验四:编码与实现5. 实验五:软件测试五、实验评价1. 实验一:软件工程概述评价学生对软件工程基本概念的理解程度。
2. 实验二:需求分析评价学生对需求分析方法的掌握程度。
3. 实验三:软件设计评价学生对软件设计原则和方法的掌握程度。
实验名称:软件基础实验实验日期:2023年4月15日实验地点:计算机实验室实验目的:1. 熟悉软件工程的基本概念和原则。
2. 掌握软件需求分析、设计、实现和测试的基本方法。
3. 培养团队协作和沟通能力。
实验内容:一、实验环境1. 操作系统:Windows 102. 编程语言:Java3. 开发工具:Eclipse4. 数据库:MySQL二、实验内容概述本次实验以一个简单的学生信息管理系统为例,通过实际操作,让学生了解软件开发的整个过程,包括需求分析、系统设计、编码实现和系统测试。
三、实验步骤1. 需求分析- 分析学生信息管理系统的功能需求,如学生信息录入、查询、修改、删除等。
- 分析非功能需求,如系统性能、安全性、易用性等。
2. 系统设计- 设计系统架构,包括前端界面和后端数据库。
- 设计数据库表结构,如学生信息表、课程信息表等。
- 设计界面布局和交互逻辑。
3. 编码实现- 使用Java语言实现学生信息管理系统的功能。
- 使用Eclipse开发工具进行编码。
- 使用MySQL数据库存储数据。
4. 系统测试- 进行单元测试,确保每个模块的功能正确。
- 进行集成测试,确保系统各模块之间能够正常工作。
- 进行性能测试,确保系统满足性能要求。
四、实验结果与分析1. 需求分析通过与用户沟通,明确了学生信息管理系统的功能需求和非功能需求,为后续开发奠定了基础。
2. 系统设计设计了合理的系统架构,包括前端界面和后端数据库,使得系统具有良好的可扩展性和易维护性。
3. 编码实现使用Java语言实现了学生信息管理系统的功能,包括学生信息录入、查询、修改、删除等,满足了需求分析中的功能需求。
4. 系统测试进行了单元测试、集成测试和性能测试,确保了系统的稳定性和性能。
五、实验总结通过本次实验,我们掌握了软件工程的基本概念和原则,熟悉了软件需求分析、设计、实现和测试的基本方法。
同时,培养了团队协作和沟通能力。
在实验过程中,我们遇到了一些问题,如数据库连接失败、界面布局不合理等。
软件工程实验三-概要设计人事工资管理系统概要设计目录1.导言 (3)1.1目的 (3)2.系统分析 (4)3.界面设计 (4)图2-5人事管理0层编号1的数据流图 (7)图2-6 人事管理0层编号2的1层数据流图 (8)图2-7 工资管理0层数据流图 (8)4.体系结构 (8)4.1体系结构 (9)4.1.1STRUCT体系结构 (9)4.1.2系统体系结构 (9)4.2系统运行环境 (10)4.2.1网络结构图........................................................................................... 错误!未定义书签。
4.2.2 硬件环境 (10)4.2.3软件环境 (10)5.数据模型 (11)5.1数据库的概念结构模型设计 (11)5.2数据库的逻辑结构模型设计 (11)5.3数据库管理物理结构模型设计 (11)6.模块设计 (12)6.1.1表示层设计 (12)6.1.2控制层 (12)6.1.3模型层 (12)6.2登录管理模块设计 (12)6.2.1表示层设计 (12)6.2.2控制层设计 (13)6.2.3模型层设计 (13)1.导言1.1目的该文档的目的是描述人事工资管理系统项目的概要设计,其主要内容包括:●系统功能简介●系统结构设计●系统接口设计●数据设计●模块设计●界面设计本文档的预期的读者是:●开发人员●项目管理人员●测试人员1.2范围该文档定义了系统的结构和单元接口,但未确定单元的实现方法,这部分内容将在详细设计/实现中确定。
1.3缩写说明UMLUnified Modeling Language(统一建模语言)的缩写,是一个标准的建模语言。
HRHuman resources management(人事工资管理管理)的缩写。
1.4引用标准[1] 《企业文档格式标准》北京长江软件有限公司[2] 《软件概要设计报告格式标准》北京长江软件有限公司软件工程过程化组织1.5参考资料[1] 《实战struct》〔美〕TedHusted机械工业出版社[2] 《软件重构》清华大学出版社2.系统分析本系统可以实现人事工资管理,人事管理者通过该系统进行人事工资管理。
云大软件工程实验三软件设计在软件工程的学习中,实验是帮助我们深入理解理论知识、掌握实际操作技能的重要环节。
实验三的软件设计,更是让我们亲身体验了从需求分析到架构搭建的整个过程,这不仅考验了我们的专业知识,也锻炼了我们的逻辑思维和创新能力。
软件设计,简单来说,就是根据用户的需求,确定软件系统的整体结构、模块划分、数据结构、算法流程等。
它就像是为一座即将建造的大楼绘制蓝图,只有设计得合理、完善,后续的施工(编码)才能顺利进行,最终建成的大楼(软件系统)才能坚固、美观、实用。
在本次实验中,我们首先进行了需求分析。
需求分析是软件设计的基础,就如同盖房子前要明确房子的用途、居住人数、功能需求等。
我们通过与用户的沟通、对业务流程的了解,收集了大量的需求信息,并对其进行整理、分类和优先级排序。
这其中,要特别注意需求的明确性和完整性,避免模糊不清或者遗漏重要需求,否则后续的设计和开发工作将会陷入困境。
接下来是总体设计。
在这个阶段,我们要确定软件系统的整体架构,比如是采用 C/S 架构还是 B/S 架构,是分层架构还是微服务架构等。
同时,还要划分出各个模块,并明确它们之间的关系。
这就像是把大楼划分成不同的区域,如客厅、卧室、厨房等,并确定它们之间的通道和连接方式。
在进行总体设计时,要充分考虑系统的可扩展性、可维护性和性能等方面的要求。
然后是详细设计。
详细设计是对总体设计的进一步细化,包括每个模块的内部结构、算法流程、数据结构、接口定义等。
这就好比是为每个房间确定具体的布局、装修风格、家具摆放等。
详细设计的好坏直接影响到代码的编写质量和效率,因此需要我们非常仔细和认真地对待。
在软件设计过程中,有几个关键的原则需要遵循。
首先是高内聚低耦合原则。
高内聚意味着一个模块内部的各个元素之间联系紧密,共同完成一个明确的功能;低耦合则表示模块之间的依赖关系尽量少,这样当一个模块发生变化时,对其他模块的影响最小。
其次是开闭原则,即软件实体(类、模块、函数等)应该对扩展开放,对修改关闭。
实验3 包图与序列图实验报告实验名称:包图与序列图实验课时:4 课时实验地点:知行楼306实验时间:2016年3 月26日星期日第5 周实验目的及要求:能根据前期的分析和设计绘制包图与序列图。
实验环境:硬件设备:PCPC机一台1)硬件设备:Windows 7操作系统:Windows 72)操作系统:应用工具:Rational Rose 2007Rational Rose 20073)应用工具:实验内容:(算法、程序、步骤和方法)第1题:在“远程网络教学系统”中,假设我们需要三个包,分别是Business包、DataAccess 包和Common包,其中Business包依赖DataAccess包和Common包,DataAccess包依赖Common包。
在类图中试着创建这些包,并绘制其依赖关系。
系统管理员需要登录系统才能进行系统维护工作,如添加教师信息、删除教师信息等。
根据系统管理员添加教师信息用例,创建相关序列图。
如果我们单独抽象出来一个数据访问类来进行数据访问。
那么,根据系统管理员添加教师信息用例,重新创建相关序列图。
师信息用例,重新创建相关序列图。
第2题:图书管理系统。
题:图书管理系统。
1.1.完成借阅者查找图书序列图。
完成借阅者查找图书序列图。
完成借阅者查找图书序列图。
工作流程如下:工作流程如下:(1)借阅者希望通过系统查询某本图书的信息。
)借阅者希望通过系统查询某本图书的信息。
(2)借阅者通过自助系统用户界面SearchBookWindow 录入图书的ISBN/ISSN 号请求查找图书信息。
找图书信息。
(3)用户界面SearchBookWindow 根据图书的ISBN/ISSN 号将Book 类实例化并请求图书信息。
书信息。
(4)Book 类实例化对象根据图书的ISBN/ISSN 号加载图书信息并提供给用户界面SearchBookWindow SearchBookWindow。
(5)用户界面SearchBookWindow 向读者显示图书信息。
软件工程实验三软件工程实验三1.引言1.1 目的本文档的目的是描述软件工程实验三的相关内容和要求。
本实验旨在通过设计和实现一个软件系统,应用软件工程的原理和技术,提高学生对软件工程过程和方法的理解和应用能力。
1.2 范围本实验将涉及以下内容:●需求分析和规约●系统设计和建模●软件系统实现●验证和测试2.需求分析和规约2.1 系统描述描述软件系统的功能和特性,包括用户需求和系统需求。
2.2 功能需求列出软件系统的必须功能和期望功能,明确功能的优先级和依赖关系。
2.3 非功能需求列出软件系统的性能需求、安全需求、可靠性需求、可用性需求等。
3.系统设计和建模3.1 系统架构设计描述系统的总体架构和组成模块,包括模块之间的通信和数据流。
3.2 数据模型设计设计系统使用的数据模型,包括实体关系模型、类图等。
3.3 功能模块设计对系统的每个功能模块进行详细设计,包括接口设计、数据结构设计等。
4.软件系统实现4.1 编程语言和开发环境确定使用的编程语言和开发环境,以及必要的开发工具和库。
4.2 模块实现按照设计要求,实现每个功能模块,编写代码并进行测试。
4.3 系统集成将各个功能模块进行集成测试,确保整个软件系统正常运行。
5.验证和测试5.1 单元测试对每个功能模块进行单元测试,确保模块的功能正确。
5.2 集成测试对整个系统进行集成测试,验证各个模块之间的协作和交互。
5.3 系统测试对系统进行系统级测试,模拟实际使用环境,测试系统的性能和稳定性。
6.附件附件1:需求规约文档附件2:系统设计图纸附件3:源代码7.法律名词及注释●著作权:指对于作品享有的法律权益,包括复制、发行和演绎等权利。
●许可证:指授权他人使用软件的一种形式,可以是开源许可证或商业许可证。
●维护费用:指使用软件时需要支付的额外费用,例如维护和支持服务。
实验3《系统设计》
实验学时: 2 实验地点:实验日期:
一、实验目的
掌握:结构化数据流设计技术、面向对象设计技术;
掌握:Visio工具绘制软件结构图;
掌握:Rose或Visio工具绘制UML模型图。
二、实验内容
1.试针对实验二的培训中心管理系统,试用结构化设计方法对其进行设计,并用Visio 绘制其对应的软件结构图。
(选做)
2.某室内保温系统的描述如下:
如果主开关置于“加热”状态,保温系统的控制器负责开关锅炉,监视锅炉系统的燃油流量和燃烧状态,进而调节进入房间的热流量。
当室内温度降至(T r-2)度以下,控制器启动锅炉。
这里T r是用户设定的理想室温。
锅炉启动过程如下:
(1)控制器向锅炉的马达发送信号;
(2)控制器监视马达速度。
马达达到正常操作速度时,启动点火并打开油阀;
(3)控制器监视水温,一旦水温达到预定值,发信号打开水流循环阀。
热水开始在室内循环。
(4)如果发生异常情况,燃油流量指示器和光感器向控制器发信号。
此时控制器发信号关闭系统。
(5)一旦室内温度达到(T r-2)度,控制器首先关闭油阀,延迟5秒钟后关闭锅炉马达。
系统须满足以下限制:
(1)锅炉停机后重启必须延迟5秒钟;
(2)在主开关关闭或油阀关闭5秒钟内应指示锅炉停机。
试据此对系统进行设计,采用Rational Rose绘制控制器的状态图,同时用顺序图描述锅炉启动过程。
三、实验方法
使用Visio画软件结构图,使用Rational Rose画UML图。
四、实验步骤
建立软件结构图的基本步骤:
1. 先添加函数/子例程;
2. 再添加有条件调用;
3. 然后添加调用连线;
4. 最后为调用线添加数据流或标志流。
Rose建立UML图的基本步骤:
1. 启动Rose,建立新模型,保存模型;
2. 在某视图下建立模型。
五、实验结果
1、软件结构图:
2.UML图:
3.状态图:
顺序图:
六、实验结论
以用Visio画出软件结构图、状态图、出UML图。
七、实验小结
通过本次实验又学会了用Visio画软件结构图,时间原因,因为Rose使用的不熟练,所以也用Visio画了UML图。
本次实验后,我意识到应该多多练习使用Rose来画UML图,而不能只单一掌握一种画图工具软件。