软件工程导论实验报告

合集下载

软件工程专业课实验报告(一)2024

软件工程专业课实验报告(一)2024

软件工程专业课实验报告(一)引言:软件工程专业课实验报告(一)是关于软件工程领域中的某个具体实验或项目的报告。

本文将从概述、正文内容和总结几个方面详细介绍该实验报告的内容。

概述:本实验报告旨在通过具体实验或项目,让学生深入理解软件工程的相关原理和技术,并掌握软件开发过程中常用的工具和方法。

通过实践,学生能够提高分析、设计和实现软件系统的能力。

正文内容:1. 实验目的1.1 确定实验目标和预期成果1.2 建立实验环境和所需工具1.3 设定实验计划和时间安排2. 实验过程2.1 实验前的准备工作2.1.1 研究和理解实验要求和相关文献2.1.2 熟悉软件开发过程与方法2.1.3 确定实验所需的技术和工具2.2 实验设计与实施2.2.1 进行需求分析和系统设计2.2.2 编码和测试软件系统2.2.3 进行系统部署和验证2.3 实验结果和分析2.3.1 统计和总结实验中的数据和指标2.3.2 对实验结果进行分析和解释2.3.3 探讨实验中出现的问题和改进方法3. 实验总结和反思3.1 总结实验过程和结果3.2 分析实验中遇到的问题和挑战3.3 反思实验过程中的改进和优化方向4. 实验心得和体会4.1 对软件工程知识的理解和应用4.2 对工具和方法的熟悉和运用4.3 对团队合作和沟通的重要性的认识5. 实验成果和展望5.1 展示实验的成果和效果5.2 对未来的工作和学习方向的展望5.3 提出对实验的改进和拓展建议总结:通过本次实验报告的完成,我们深入学习了软件工程领域中的具体实践和应用。

实践中,我们掌握并应用了软件开发过程中的各种工具和技术,提高了我们的软件设计和开发能力。

此外,我们也认识到团队合作和良好的沟通是软件工程中不可忽视的重要因素。

通过实验的总结与反思,我们对未来的学习和工作有了更加明确的规划和展望。

结语:软件工程专业课实验报告(一)是一个重要的实践环节,通过实践帮助我们巩固学习知识、提高实践能力。

软件工程导论报告

软件工程导论报告

实验一结构化分析实验1实验目的:通过此实验了解结构化分析的特点和步骤,和结构化分析所采用的大体图形工具。

2.实验内容:假设你在一所职业高中工作,负责该校信息系统的建设和保护。

财务科长请你研究用学校拥有的pc机生成工资明细表和各类财务报表的可能性。

3.实验要求:1.问题概念:请在这个阶段描述你需要解决的问题。

包括用户面临的问题和预期的项目规模。

最后生成一份问题概念报告书。

2.可行性研究:在这个阶段产生处置工资事务的大致进程,画出高层逻辑模型,而且画出相应的数据流图,成立数据字典。

3.对此系统进行本钱效益分析。

4.实验步骤:问题概念报告书1.项目名称:工资支付2.问题描述:该校一直由会计人工计算工资并编制财务报表,随着学校规模扩大工作量也愈来愈大。

目前每一个月都需要两名会计紧张工作半个月才能完成,不仅效率低而且本钱高。

此后学校规模将进一步扩大,人工计算工资的本钱还会进一步提高。

3.项目目标:1)研究开发费用较低的新工资支付系统的可能性。

4项目规模:1)开发本钱应该不超过万元5.初步假想:1)用学校自己的计算机系统生成工资明细表和财务报表6.可行性研究:为了更全面地研究工资支付项目的可能性,建议进行大约历时两周的可行性研究。

这个研究的本钱不超过4000元。

可行性研究:1.处置工资事务的大致进程:1)每一个月月末教师把他们当月实际讲课时数记录在课时表上,由各系汇总后交给财务科,职工把他们当月完成承包任务的情况记录在任务表上,汇总后交给财务科。

2)两名会计按照这些原始数据计算每名教职工的工资,编制工资表、工资明细表和财务报表。

然后,把记有每名教职工工资总额的工资表报送银行。

3)由银行把钱打到每名教职工的工资存折上,同时把工资明细表发给每名教职工。

2高层逻辑模型:.数据流图:数据字典:1)名字:讲课情况记录表别名:描述:记录每一个教师的当月完成的课时及任务。

概念:讲课情况记录表=教职工编号+姓名+职务+职称+大体工资+生活补助+书报费+交通费+洗理费位置:输出到打印机2)名字:教职工编号别名:描述:唯一的标识一个教职工概念:教职工编号=8{字符}8位置:讲课情况记录表3)名字:每一个人当月的实发工资数别名:描述:记录每一个教师当月应发的工资数概念:每一个人当月的实发工资数=课时费+职位津贴-个人所得税-住房公积金-保险费位置:工资明细表4)名字:工资明细表别名:描述:记录每一个教职工每一个月应得的和应扣除的费用概念:工资明细表=每一个人当月的实发工资数+课时费+职位津贴+个人所得税+住房公积金+保险费位置:输出到打印机本钱效益分析:1.低本钱系统:解决方案:把每一个月发一次工资改成每两个月发一次工资,则人工计算工资的本钱大约可减少一半,即每一年可节省万元。

软件工程导论实验报告-白盒测试-黑盒测试

软件工程导论实验报告-白盒测试-黑盒测试

.《软件工程导论》实验报告学生姓名:学号:班级:指导老师:专业:实验日期:.白盒测试一、实验目的通过简单程序白盒测试,熟悉测试过程,对软件测试形成初步了解,并养成良好的测试习惯。

熟练掌握如何运用基路径测试方法进行测试用例设计,初步熟悉如何利用程序插装技术进行逻辑覆盖率分析。

二、实验内容:1、被测试程序功能:求解系数为整数的方程ax2+bx+c=02、程序定义:键盘输入 3 个数字 a,b ,c,求解方程 ax2 +bx+c=03、测试环境: Windows8.1 、Eclipse4、说明:本次测试采用插桩测试法,由于程序比较简单,手动输入测试用例。

四、实验步骤1、程序流程图开始输入 a, b, ca=0 Y Y Y无穷多解b=0 C=0NN NX= 无解N无解b2-4ac>=0.YX1=x2=结束2、代码:import java.util.Scanner;public class test {public static void main(String[]args ) {Scanner sc= new Scanner(System.in );System. out .println( "请输入 3个整数 a,b,c:" );String as;String bs ;String cs;int a=0;int b =0;int c=0;double x, x1 , x2 ;as= sc.nextLine();bs = sc.nextLine();cs= sc.nextLine();try {a=Integer.parseInt (as );b =Integer.parseInt (bs );c=Integer.parseInt (cs);}catch (Exception e){System. out .println( " 输入错误 ");System. exit (0);}if (a == 0){if (b == 0){if ( c == 0)System. out .println(" 无穷多解 " );elseSystem. out .println(" 无解 " );}else{x = -( c / b );System. out .println( "x=" + x);}}else{double h = b * b - 4 * a*c;if (h<0)System. out .println(" 无解 " );else{x1 = (- b + Math. sqrt (h )) / (2 * a);x2 = (- b - Math. sqrt (h )) / (2 * a); System. out .println( "x1=" + x1 + "\tx2="+ x2 );}}}}3、流图:.4、程序基本路径:(1) 1 2 3 4 5 11 预期输出:无穷多解(2) 1 2 3 4 6 11 预期输出:无解(3) 1 2 3 7 11 预期输出: x=(4) 1 2 8 9 11 预期输出: x1= x2=(5) 1 2 3 10 11 预期输出:无解5、测试实验用例:路径覆盖编号测试用例覆盖路径对应输出1a=0 ,b=0 , 1 2 3 4 5 11无穷多解c=02 a=0 ,b=0 ,c=1 1 234 6 11 无解3 a=0 ,b=1 ,c=1 1 2 3 7 11 x=-14 a=1 ,b=2 ,c=1 1 2 8 9 11 x1=-1x2=-15 a=1 ,b=1 ,c=1 1 2 3 10 11 无解黑盒测试一、实验目的黑盒测试是常用的软件测试的方法,用这种方法测试时,把被测试程序当作一个黑盒,在不考虑程序内部结构和内部特性,测试者只知道该程序的输入和输出之间的关系或程序的功能的情况下,依靠能反应这一关系和程序功能需求规格的说明书,来确定测试用例和推断测试结构的正确性。

软件工程试验报告

软件工程试验报告

软件工程试验报告第一篇:软件工程试验报告实验项目名称:需求分析(所属课程:软件工程概论)1.实验目的1.选择要设计的系统,使用UML进行需求分析,了解所要完成系统的功能需求,性能需求,接口需求等。

2.学习实使用Rational Rose 或其它软件工程工具绘制用例图、活动图。

2.实验内容使用Rose 绘制系统的用例图。

1.Rational Rose介绍Rational Rose是基于UML而产生的,是软件开发过程中的不可或缺的一个建模工具。

(1)Rational Rose的特点:λ支持多种语言,如Ada、CORBA、Visual Basic、Java等;λ支持模型的Internet发布;λ可以生成简单、清晰且定制灵活的文档;λ双向工程保证了模型和代码高度一致;λ支持逆向工程,建立代码框架;λ支持多种关系型数据库的建模;λ从需求分析到测试,在整个软件生命周期中,都为团队开发提供强有力的支持。

(2)Rational Rose的作用λ整个开发团队可以使用用例图,来获得一个系统高层次的视图,并且可以协商项目的范畴;λ项目经理可以使用用例图和文档,把项目分解成便于管理的多个模块;λ系统分析员和客户在看到用例规格描述文档的时候,就可以明白系统将会提供什么样的功能;λ技术编写者在看到用例规格描述文档时,就可以着手编写用户手册和培训计划;λ系统分析员和软件开发者在看到时序图和协作图时,就可以明白整个系统的逻辑流程、对象以及对象之间的消息2.安装Rational Rose ①双击Rational Rose 2007的安装程序,进入安装界面;按照系统提示一步一步完成系统的安装。

其中在选择安装产品时,选择“Rational Rose Enterprise Edition”;并且在设置创建程序位置时,选择创建一个本地的应用程序而非网络的,即选择“Desktop installation from CD”。

②安装成功,进入Rational Rose界面,如图1-1所示。

软件工程导论报告

软件工程导论报告

软件工程导论报告实验报告课程名称实验题目学生学号实验目的:本课程实验的教学目标在于通过绘制数据流图、实体关系图、用例图、状态图等实验,重点熟悉软件设计中的逻辑模型设计方法及其绘制工具软件,从软件工程角度理解和掌握软件设计开发过程。

实验条件:电脑一台、能上网查阅资料。

实验项目一熟悉软件工程工具 1.实验目的、任务:通过创建、编辑、保存一个简单的Visio图形文件,让学生学习掌握Microsoft Office Visio 的基本用法,掌握使用Microsoft Office Visio绘制业务流程图、数据流图、功能模块图、软件结构图和软件界面的方法。

2.实验基本要求:熟练应用Visio绘制软件开发图形的基本操作。

3.实验内容:打开Microsoft Office Visio,按照给出的业务流程图、数据流图、功能模块图、软件结构图和软件界面,绘制出相同的图形。

实验结果:软件工程姓名日期班级 2021-6-10 实验项目二绘制数据流图和实体关系图 1.实验目的、任务:能够根据业务描述,分析设计并绘制其数据流图和实体关系图。

2.实验基本要求:基本掌握数据流图和实体关系图的分析设计方法。

3.实验内容:银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员输入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。

要求用数据流图描绘本系统的功能,并用实体关系图描绘系统中的数据对象。

实验结果:数据流图: E-R图:实验项目三绘制用例图和状态图 1.实验目的、任务:掌握用例图分析方法和绘制方法,掌握状态分析方法和状态图的绘制方法。

2.实验基本要求:能够根据业务描述分析绘制用例图和状态图,能够熟练使用绘图工具软件绘制出用例图和状态图。

软件工程导论实验报告航空订票系统设计

软件工程导论实验报告航空订票系统设计

“机票预订系统”的需求分析需求分析是开发软件系统的重要环节,是系统开发的第一步和基础环节。

通过需求分析充分认识系统的目标、系统的各个组成部分、各部分的任务职责、业务范畴、工作流程、工作中使用的各种数据及数据结构、各部门的业务关系和数据流程等,为系统设计打下基础。

需求分析的好坏往往决定了系统开发的成败。

需求分析从系统的调查研究入手,需求分析要对系统的各个方面有全面的了解,既包括系统内部的各个方面,也包括与系统有联系的各种外部因素。

通过调查研究和分析,对系统产生比较深刻的认识。

需求分析阶段的最终结果是“需求分析说明书”,它涵盖了对用户环境、事务处理和信息流程分析的一切成果,供项目开发小组和用户共同遵守。

如果采用瀑布模型,就要对“需求分析说明书”进行冻结,使它成为凝固可靠的基线。

万一要求变更基线,开发者和用户双方,都必须执行基线变更程序,此变更程序在合同中已做了明确规定。

现针对“机票预订系统”对机票预订部门的组织结构、业务流程、用户角色职能、系统数据流进行分析。

利用结构化分析和UML中的用例从大到小、从粗到细进行系统建模。

1、组织结构调查系统的组织结构,反映了单位内部各个部门的职责划分和它们之间的关系。

为了对系统有一个全貌性的了解,首先要对系统内部部门结构、人员组织及用户情况有所了解。

对系统组织结构的调查,是从总的方面对系统进行宏观了解和分析。

信息的流动关系是以组织结构为背景的,而且总是伴随着组织部门之间的资金流和物流的传递而产生。

机票预订系统的组织结构如图 1所示。

图1 系统组织结构图机票预订由机票预定部门全面负责,下设信息管理部、票务部、客服部三个部门的业务职责如下:●信息管理部:管理基本信息、主要包括旅客基本信息的查询、更改、删除;航班信息的添加、查询、更改、删除。

●票务部:管理各种票据,主要包括根据订票信息和航班信息打印账单和取票通知、核对账单和取票通知以及交款信息,无误则打印机票并发放。

●客服部:为订票旅客提供实时服务,主要包括投诉咨询受理,和售前售后支持。

软件工程导论实验报告材料

软件工程导论实验报告材料

软件工程导论实验报告一、实验题目:学生成绩管理系统、图书借阅管理系统、工资管理系统、网络订餐系统、招聘考试成绩管理系统二、实验目标通过独立完成项目开发,加深对软件开发分析过程的流程和方法的理解,建立软件工程的思想,同时,明确软件开发的成本和时间管理的相关概念。

实验一实验要求:①.在实验题目列出的几个系统中选择一个作为自己要开发的软件系统,要求该系统有明确的功能需求,并建立系统的分析模型。

②.对系统进行需求分析,掌握ER图、DFD、DD的设计与编写③.熟悉Visio环境和基本操作,制作一个简单的系统流程图和数据流图、主要数据项的数据字典描述及主要加工的逻辑说明(自己选择结构语言、判定树、判定表等)。

④.撰写需求分析规格说明书用户需求分析作为图书管理系统,其主要的需求人员是借阅者,借阅者对其的要求可以大体概括如下:1)能按各种方式,比如书名、编号、作者等查询图书馆的藏书情况;2)能熟悉使用图书管理系统;3)能方便地借阅图书、续借图书、归还图书;4)能查询自己的基本资料、借阅图书情况;5)能方便图书管理员对图书的录入登记、注销;6)能方便对新生的登记或注销已经毕业学生的信息;7)能及时发布一些学院学生借阅图书超期情况、馆内藏书情况等。

功能说明1)、读者管理系统(1)未注册者可以进入注册系统进行注册;(2)已注册借阅者可按姓名、编号或身份证号登陆进入借阅者检索系统查询借阅者情况;(3)、已注册借阅者可按书名、出版社或作者对图书信息进行检索查询或提出预约请求;2)、图书管理员管理系统(1)图书管理员通过图书管理员身份认证进入图书管理员管理系统;(2)读者可借阅在库图书;(3)在规定期限内借阅者归还借阅图书;(4)读者在不违规情况下可继续借阅已借阅图书;(5)读者可以预约图书。

3)、系统管理员管理系统(1)系统管理员通过系统管理员身份认证进入系统管理员管理系统;(2)系统管理员可以对图书进行图书管理(如:查询、删除、修改图书资料或图书分类查询修改、删除管理);(3)系统管理员可以对借阅者进行学生管理(如:查询、删除、修改借阅者信息或借阅者类别修改、删除管理,查询浏览借阅者详细资料,包括借阅次数,登陆次数,最后登陆时间);4)、罚款管理系统(1)罚款管理员通过罚款管理员身份认证进入罚款管理系统;(2)罚款处理可以读取借阅信息表再生成超时罚款信息表,通过超时罚款信息表可以生成罚款单给罚款管理员;(3)图书管理员告知罚款系统图书超时未还,经罚款管理员鉴定后,对图书进行注销处理且罚款管理员对借阅者进行罚款处理。

软件工程导论总结报告[最终定稿]

软件工程导论总结报告[最终定稿]

软件工程导论总结报告[最终定稿]第一篇:软件工程导论总结报告软件工程总结报告序言本期软件工程专业导论课程结束后,为圆满完结本期此课程的学习,特此总结个人学习所得以求些许回报先生无私教导。

主体第一节课主要讲述了软件工程各领域之间的联系以及贯穿始终的基础为何。

其中较为基础并相当重要使的应该是算法。

对于算法重要性与基础性的理解,我个人有比较切身的体验。

比如前不久的ACM竞赛,在比赛中我所在的小组以及当场几乎所有小组都遇到这样一个问题:超时—这无非就是个人设计的算法的效率不够高,这也证明我们对算法理论知识的匮乏(不清楚优化个人算法的方法)。

我对软件工程这一专业有了一个较为全面的把握,对我个人未来进取方向而言也起到了一定的指导作用。

第二节课老师带来了三位本专业的前辈向我们传授大学生活应如何度过以及对我等一些问题作出解答。

其中我个人印象深刻的是其中一位学姐PPt中引用李开复的那部分内容。

即试着记录下自己一整天做的所有事以及其所花费的时间,再仔细研究自己在哪些事上浪费了时间,应该如何整改。

我个人认为这方法可能有一定直观性,因为直观的数据更能深刻的反映真实和刺激一个人整改,但此法实施起来又太古板,中觉得生活有些教条化、章程化,缺乏新意与自由。

求上进,珍惜时间也无需以丧失人生情趣为代价。

还有就是学长再提潘老师曾讲过的那些重要、紧急优先次序。

他提到的个人的学习生活情况倒没什么深刻感,但我认为他引用的一番话较有道理,大概意思是比起个人兴趣更为优先的应该是谋生的本领,尤其是当自己感兴趣的正好是冷门时。

当掌握了一些实实在在有能保证自身良好发展前景后,再去做一些自己感兴趣的事也来得及。

于我而言,一个人尚不能独善其身,何求其兼济天下。

成己方成人就是如此道理。

第三节课主要讲解了大学学习生活中应着重的基础课以传递重基础的要旨。

据个人体会,其中英语科目实是基础中的基础,主要是为辨认单词(即代码变量以及注释)意义以达到理解他人算法并顺利接手他人接下来的工作。

软件工程导论实验报告

软件工程导论实验报告

目录第一章可行性分析报告 (2)1.1 引言 (2)1.2 可行性研究的前提 (3)1.3技术可行性分析 (4)1.3.1系统简要描述 (4)1.3.2处理流程和数据流程 (4)1.4操作可行性分析 (4)1.5经济可行性分析 (4)1.5.1支出 (4)1.5.2效益 (5)1.5.3收益/投资比 (5)1.5.4投资回收周期 (5)1.5.5敏感性分析 (5)1.6法律可行性 (6)1.7结论 (6)第二章需求分析报告 (6)2.1引言 (6)2.1.1 编写目的 (6)2.1.2 项目背景 (6)2.1.3 定义 (6)2.1.4 参考资料 (6)2.2任务概述 (7)2.2.1 目标 (7)2.2.2 假定和约束 (6)2.2.3 人力、资金、时间的约束 (6)2.2.4技术发展规律的约束 (7)2.3需求规定 (8)2.3.1对功能的规定 (8)2.3.2对性能的规定 (8)2.3.3精度 (8)2.3.4时间特性要求 (9)2.3.5旅客信息 (9)2.4数据描述 (9)2.4.1数据特征 (9)2.4.2系统数据流图 (9)2.5 运行环境规定 (11)2.5.1服务器端子系统运行要求 (11)2.5.2客户端子系统运行要求 (11)第三章概要设计 (11)3.1引言 (11)3.1.1编写目的 (11)3.1.1项目背景 (11)3.1.1定义 (12)3.2任务概述 (12)3.2.1目标 (12)3.2.2运行环境 (12)3.2.3需求概述 (12)3.3总体设计 (13)3.3.1处理流程 (13)3.3.2客户机程序流程 (13)3.3.3总体结构设计 (14)3.3.4功能分配 (14)3.4 接口设计 (14)3.4.1外部接口 (14)3.4.2软件接口 (15)3.4.3硬件接口 (15)3.4.4内部接口 (15)3.5 数据结构设计 (15)3.5.1 数据库数据结构设计 (15)3.5.2物理结构设计 (16)3.5.3 数据结构与程序关系 (17)3.6 运行设计 (17)3.6.1 运行模块的组合 (17)3.6.2 运行控制 (17)3.6.3 运行时间 (17)3.7出错处理设计 (17)3.7.1出错输出信息 (18)3.7.2出错处理对策 (18)3.8安全保密设计 (19)3.9维护设计 (19)第四章详细设计 (19)4.1引言 (19)4.1.1编写目的 (19)4.1.2项目背景 (19)4.1.3文中定义和缩写 (20)4.1.4参考资料 (20)4.2总体设计 (20)4.2.1需求概述 (20)4.3程序描述 (21)4.4代码设计 (21)4.5测试项目说明 (22)4.5.1测试项目名称及测试内容 (22)4.5.2测试用例 (22)第五章基于面向对象技术的机票预订系统开发 (23)5.1引言 (23)5.2需求分析 (23)5.3UML系统建模 (24)5.3.1机票预订系统的用例分析 (24)5.3.2机票预订系统的域类分析 (24)5.3.3机票预订系统的功能设计 (25)5.4数据库分析 (25)5.4.1E-R图分析 (25)5.4.2创建数据库 (26)5.5界面设计 (26)5.6代码分析和实现 (26)5.7小结 (27)第六章测试 (27)6.1测试计划 (27)6.1.1 编写目的 (27)6.1.2任务概述 (27)6.1.3 计划 (28)6.1.4测试项目说明 (29)6.1.5 条件 (29)6.2 测试分析报告 (30)6.2.1编写目的 (30)6.2.2 测试计划执行情况 (30)6.2.3软件需求测试结论 (31)6.2.4评价 (31)6.2.5建议 (31)6.2.6 测试结论 (31)第七章程序维护手册 (31)7.1 引言 (31)7.2 系统说明 (33)7.2.1 系统用途 (33)7.2.2安全保密 (33)7.2.3总体说明 (33)7.3 维护过程 (33)7.3.1 规则 (33)7.3.2 验证过程 (34)7.3.3 出错及纠正方法 (34)7.3.4 专门维护过程 (34)7.3.5 程序清单及流程图 (34)第八章总结性报告 (35)8.1 过程 (35)8.2 总结 (35)第一章可行性分析报告1.1 引言航空公司为方便旅客乘机,需要开发一个新机票预定系统。

软件工程导论实验报告

软件工程导论实验报告
.
.
ER模型图
程序流程图
.
.
数据字典
图书管理系统数据流图中,数据信息和处理过程需要通过数据字典才能描述 清楚。在定义的图书管理系统数据字典中, 主要对数据流图中的数据项、 数据流、 数据存储和处理过程进行说明。 (1)数据项描述
1)数据项名称:借书证号 含义说明:惟一标识一个借书证 类型:字符型 长度: 50
.
.
逻辑关系:不允许为空 2)数据项名称:用户名 含义说明:读者的名称 类型:字符型 长度: 20 逻辑关系:不允许为空 3)数据项名称:密码 含义说明:对用户名和操作员管理员进行加密 类型:字符型 长度: 10 逻辑关系:允许为空 4)数据项名称:性别 类型:字符型 长度: 10 逻辑关系:允许为空 5)数据项名称:所在系别 类型:字符型 长度: 10 逻辑关系:允许为空 6)数据项名称:所在班级 类型:字符型 长度: 10 逻辑关系:允许为空 7)数据项名称:操作员名称 类型:字符型 长度: 30 逻辑关系:不允许为空 8)数据项名称:操作员简称 含义说明:惟一标识一个操作员 类型:字符型 长度: 10 逻辑关系:不允许为空 9)数据项名称:操作员级别 含义说明:对操作员和管理员进行区分 类型:字符型 长度: 10 逻辑关系:不允许为空 10)数据项名称:图书编号 含义说明:惟一标识一个图书 类型:字符型 长度: 10 逻辑关系:不允许为空 11)数据项名称:图书名称 类型:字符型
( 2)读者可借阅在库图书; ( 3)在规定期限内借阅者归还借阅图书; ( 4)读者在不违规情况下可继续借阅已借阅图 书; ( 5)读者可以预约图书。 3)、系统管理员管理系统 ( 1)系统管理员通过系统管理员身份认证进入 系统管理员管理系统; ( 2)系统管理员可以对图书进行图书管理 (如:查询、删除、修改图书资料或图书分类查询 修改、删除管理); ( 3)系统管理员可以对借阅者进行学生管理 (如:查询、删除、修改借阅者信息或借阅者类别 修改、删除管理,查询浏览借阅者详细资料,包括借 阅次数,登陆次数,最后登陆时间); 4)、罚款管理系统

《软件工程导论》实验报告(推荐文档)

《软件工程导论》实验报告(推荐文档)

2011-2012(2)《软件工程导论》实验报告学院:计算机学院班级:软件工程114姓名:黄芳恺学号:119074258目录实验1:项目计划、分析和设计实验2;编码实验3:代码复查、编译实验4:项目测试总结软件工程导论实验一:项目计划、分析和设计[ 实验日期 ] 2012 年 4 月 20 日[ 实验目的 ]初步了解结构化分析、设计方法的原理、步骤以及各阶段的文档,练习撰写简要的需求文档、设计文档。

[ 实验内容 ]贪吃蛇程序:贪吃蛇游戏是一个深受人们喜爱的游戏,一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过按键盘上的四个光标键控制蛇向上下左右四个方向移动,蛇头撞到食物则表示食物被蛇吃掉,这时蛇的身体长一节,同时计1分,接着又出现食物,等待被蛇吃掉,如果蛇在移动过程中,撞到墙壁或身体交叉蛇头撞到自己的身体,游戏结束。

根据编写贪吃蛇的游戏规则,我们利用c语言来进行编辑具体步骤,从而使游戏能够运行,根据编写贪吃蛇程序,掌握软件工程思想及要领,进一步巩固编程思想和掌握画图函数底层,依据项目可行性研究的结果,进行需求分析和设计,编写简要的需求规格说明书,绘制程序流程图。

[ 实验原理和步骤]当前的建模方法主要有传统的结构化分析、设计方法(SA/D)和面向对象分析、设计方法(OOA/D)两种。

分析阶段:结构化分析(SA)是一种建模技术,它通过一定方法帮助开发人员定义系统需要什么功能,系统需要存储和使用哪些数据,以及为完成这些功能,系统需要什么样的输入和输出以及如何把这些功能结合在一起来完成任务。

设计阶段:分总体设计和详细设计两阶段。

总体设计阶段的任务主要是确定系统由哪些模块组成,以及这些模块之间的相互关系;详细设计阶段的任务主要是设计每个模块的处理过程。

常用的结构化设计(SD)方法有面向数据流分析(DFA)的设计方法和面向数据的设计方法。

DFA设计技术实施的通用步骤:(1)复查并精化DFD;(2)确定DFD类型;(3)把DFD映射到系统模块结构,设计出模块结构的上层;(4)基于DFD逐步分解高层模块,设计出下层模块〈初步结构〉;(5)根据模块独立性原理,精化模块结构,得到更为合理的软件结构;(6)模块接口描述;(7)修改和补充数据词典;(8)制定测试计划。

软件工程导论实验报告

软件工程导论实验报告

软件工程导论实验报告软件工程导论实验报告导论软件工程是一门涉及软件开发、测试和维护的学科,它的目标是提高软件开发的效率和质量。

为了更好地理解软件工程的概念和实践,我们进行了一系列的实验。

本报告将介绍我们在软件工程导论实验中所学到的知识和经验。

实验一:需求分析在软件开发过程中,需求分析是至关重要的一步。

我们的第一个实验是对一个虚拟的在线购物系统进行需求分析。

通过与团队成员的合作,我们学习了如何收集用户需求、分析需求的重要性和优先级,并将其转化为软件功能和特性。

实验二:软件设计软件设计是软件工程的核心环节之一。

在第二个实验中,我们学习了不同的软件设计模式和架构,如MVC(Model-View-Controller)和微服务架构。

通过实际操作,我们掌握了如何将需求转化为软件设计图,并理解了设计决策对软件开发的影响。

实验三:编码与测试编码和测试是软件开发的具体实施阶段。

在第三个实验中,我们使用了常见的编程语言和开发工具,如Java和Eclipse,来实现我们的软件设计。

同时,我们还学习了测试的重要性,并使用JUnit等测试框架进行单元测试和集成测试。

实验四:软件项目管理软件项目管理是确保软件开发项目按时、按质量完成的关键。

在第四个实验中,我们学习了项目管理的基本原理和方法,如项目计划、进度跟踪和风险管理。

通过实践,我们意识到合理的项目管理可以极大地提高团队的工作效率和项目的成功率。

实验五:软件质量保证软件质量保证是确保软件产品符合用户需求和质量标准的重要环节。

在最后一个实验中,我们学习了软件测试的不同方法和技术,如黑盒测试和白盒测试。

我们还了解了软件质量标准和认证,如ISO 9001和CMMI。

总结通过这一系列的实验,我们深入了解了软件工程的各个方面。

我们学会了如何分析用户需求、设计软件系统、实施编码和测试,并掌握了软件项目管理和质量保证的方法。

这些实验不仅提高了我们的理论知识,也培养了我们的团队合作和问题解决能力。

软件工程导论实验报告

软件工程导论实验报告

一、实验目的本次实验旨在通过实践操作,加深对软件工程基本概念、原理和方法的理解,掌握软件生命周期各个阶段的基本知识和技能。

通过实验,培养学生运用软件工程理论分析和解决实际问题的能力。

二、实验内容1. 软件生命周期概述- 软件生命周期:软件从提出需求、设计、开发、测试、部署到维护的整个过程。

- 软件生命周期模型:常见的软件生命周期模型包括瀑布模型、螺旋模型、敏捷开发模型等。

2. 需求分析- 需求分析:分析用户需求,明确软件功能、性能、接口等方面的要求。

- 需求分析方法:常用的需求分析方法包括结构化分析、面向对象分析等。

- 实验任务:分析某学生信息管理系统的需求,撰写需求分析报告。

3. 软件设计- 软件设计:根据需求分析结果,设计软件的架构、模块、接口等。

- 设计方法:常用的设计方法包括面向对象设计、结构化设计等。

- 实验任务:设计某学生信息管理系统的架构和模块,绘制类图、序列图等。

4. 编码- 编码:根据设计文档,编写软件代码。

- 编程语言:选择合适的编程语言进行编码,如Java、C++、Python等。

- 实验任务:根据设计文档,使用Java语言实现某学生信息管理系统的主要功能。

5. 测试- 测试:对软件进行测试,验证其功能、性能、可靠性等方面是否符合要求。

- 测试方法:常用的测试方法包括单元测试、集成测试、系统测试等。

- 实验任务:对某学生信息管理系统进行测试,编写测试用例,验证其功能。

三、实验过程1. 需求分析- 分析某学生信息管理系统的需求,包括学生基本信息、课程信息、成绩信息等。

- 撰写需求分析报告,明确系统功能、性能、接口等方面的要求。

2. 软件设计- 设计某学生信息管理系统的架构和模块,包括学生管理模块、课程管理模块、成绩管理模块等。

- 绘制类图、序列图等,展示系统模块之间的关系和功能。

3. 编码- 使用Java语言实现某学生信息管理系统的主要功能,包括学生信息的增删改查、课程信息的增删改查、成绩信息的增删改查等。

《软件工程导论》实验报告(小组)

《软件工程导论》实验报告(小组)

《软件工程导论》实验报告学院:计算机科学与技术学院专业班级:软件1702指导教师:辛雨璇项目成员:张玉、秦飞虎、徐连成项目课题:学生签到系统时间:2019年3月目录《软件工程导论》 (I)小组情况 (1)一、可行性分析报告 (2)1.1 引言 (2)1.2 可行性分析的前提 (3)1.3 技术可行性 (4)1.4 经济可行性 (4)1.5 社会因素可行性分析 (5)1.6 结论意见 (5)二、软件需求规格说明书 (6)2.1 背景材料 (6)2.2 功能需求分析 (6)2.4 数据流图 (9)2.5 数据字典 (11)2.6 加工说明 (17)2.7 E-R图 (22)三、总体设计-结构图 sc图 (23)四、详细设计说明书 (23)4.1 编写目的 (23)4.2 背景 (23)4.3 系统的结构 (24)4.4 程序流程图 (24)4.5 程序部分代码 (27)五、测试报告 (36)5.1 单元测试 (36)5.2 黑盒测试 (42)5.3 测试总结 (44)小组情况项目题目:学生签到系统项目成员:张玉、秦飞虎、徐连成项目负责人:张玉任务分配表一、可行性分析报告1.1 引言1.1.1 编写目的可行性研究的目的是为了对问题进行研究,以最小的代价在最短的时间内确定问题是否可解。

经过对此项目进行详细调查研究,初拟系统实现报告,对软件开发中将要面临的问题及其解决方案进行初步设计及合理安排,明确开发风险及其所带来的经济效益。

本报告经审核后,交项目负责人审查。

1.1.2 背景随着教育事业的飞速发展,我国教育水平已经跃上了一个更高的平台:普及九年义务教育,本科生,硕士研究生的大量扩招,各高等院校及地州院校的新建与升级,越来越多的学子走进了大学的殿堂,这意味着学生的考勤签到管理信息越来越复杂、繁重,传统的签到系统已无法承担当前的信息量,快速、高效的完成学生签到考勤系统的任务,无法减轻签到考勤管理人员的工作量与工作压力。

软件工程导论,数据流图实验报告

软件工程导论,数据流图实验报告

软件工程导论,数据流图实验报告软件工程导论实验报告实验项目名称: Microsoft Visio 软件的使用实验项目名称:软件概要设计实验项目名称: 软件详细设计日期11月16日地点实验中心404实验项目名称:UML用例图的设计和制作日期地点实验项目名称:UML类图的设计与实现篇二:软件工程上机实验报告(1-10)SHANGHAI UNIVERSITY软件工程实验总结学学姓院计算机工程与科学学院号名10122050 王杰陈圣波 2014.03指导老师日期实验一软件工程标准化文档一、实验目的1(了解国家标准GB/T8567-20062(熟悉软件产品开发文件的基本内容二、实验内容1. 搜索和下载国家标准GB/T8567-2006。

2. 通过阅读国家标准GB/T8567-2006,将以下文字填写完整:3. 通过阅读国家标准GB/T8567-2006,填写以下表格:实验2 数据流分析【说明】某直达列车车票预售系统接受顾客的订票和取票业务。

1(顾客为了提前订票,可向系统提供个人信息及其预订购的车次和日期,系统根据个人信息是否齐全和车次是否正确来判断订票单是否合格。

对于合格的订票单,系统通过查找座位表审核相应的车次是否有剩余票。

如果有剩余票,则记录顾客个人信息以及订票信息,并向顾客提供取票单。

2(到了可以取票的时间,顾客向系统提供取票单,在检查单据合格的情况下,系统想顾客提供火车票。

3(售票员可以利用系统查询各车次车票的已订购、已售出和剩余情况。

【问题1】画出系统的顶层数据流图。

【问题2】对问题1的结果进行分解,画出0层和1层数据流图。

(1) 系统的顶层数据流图(2)0层数据流图篇三:软件工程实验报告本科实验报告课程名称: 软件工程实验项目: 机票预订系统实验地点: 软件实验楼专业班级:学生姓名:指导教师:2015年 5月10日太原理工大学学生实验报告机票预订系统需求规格说明书实验报告一、实验目的与任务目的:确定项目要做什么及其可实施性,在此基础上完成系统的逻辑功能模型的建立。

软件工程导论实验报告

软件工程导论实验报告

软件工程导论实验报告摘要本实验主要是通过学习软件工程导论中的基本概念和方法,以及软件项目管理的过程和方法,来实现一个简单的面向对象程序。

本报告主要介绍了本实验的背景和意义、实验过程和结果、以及实验的评估和总结。

背景和意义软件工程作为计算机科学的一个重要分支,已经成为了当今信息化时代的支撑和基础。

因此,对于软件工程的学习和实践尤其重要。

本实验作为软件工程导论的一部分,旨在通过实践操作来加深对软件工程基础知识的理解和应用,并在操作中锻炼编程和协作能力。

实验过程和结果本实验分为三个主要的步骤:需求分析、设计和编码、以及测试和维护。

在需求分析阶段,我们先明确了该程序的功能和性能,以及其面向的用户和运行环境。

在设计和编码阶段,我们采用UML模型设计方法,完成了类图、用例图和时序图等建模工作,并在此基础上进行了程序的编写和调试。

在测试和维护阶段,我们进行了功能和性能测试,并根据测试结果对程序进行了调整和优化。

经过以上的实验过程,我们达到了以下的实验结果:1.程序实现了预期的功能和性能,基本满足了用户的需求。

2.程序的设计和编码遵循了UML建模的规范和约束,易于理解和维护。

3.测试结果表明,程序的稳定性和可靠性较高,在运行过程中没有出现过重大的错误或问题。

评估和总结本实验是一个比较成功的实验,对于我们的学习和实践都具有一定的帮助和意义。

通过这个实验,我们掌握了一些基本的软件工程知识和方法,比如需求分析、UML建模、编码和测试等,并将其应用到了实际的软件开发中。

同时,我们还学习到了一些编程和协作的技巧和方法。

然而,本实验还存在一些不足之处,比如时间的紧迫性、人员的不足和指导的不够到位等。

这些问题对于实验结果的影响并不太大,但对于我们自身的学习和提高还是需要加以改进和完善。

总之,本实验是一个有益而有意义的实践活动,相信在今后的学习和实践中,我们将会更好地运用所学知识和方法,为软件工程的发展和应用做出更大的贡献。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验项目:选修课管理系统
姓名:张景东 学号:129074282 学院:计算机学院
班级:软124
实验一:项目计划、分析和设计
[ 实验日期 ] 2013 年 4月 23 日 [ 实验目的 ]
初步了解结构化分析、设计方法的原理、步骤以及各阶段的文档,练 习撰写简要的需求文档、设计文档。 [ 实验内容 ] 选择选修课管理系统这个小的C语言程序,依据项目可行性研究的结 果,进行需求分析和设计,编写简要的需求文档、设计文档。 [ 实验原理和步骤 ]
浏览 删除 录入 修改
4.程序处理流程 选修课管理系统处理流程图:
主菜单界面 结束
主菜单界面 开始
6修改学生记录 5学生成绩录入 4删除学生记录 3查询选课学生 2插入选课学生 1浏览选课情况 9 系统初始化 0退出 8保存选课情况 7导入选课情况
系统的执行应从系统菜单的选择开始,允许用户输入0~9之间的数值 来选择要进行的操作,输入其他的字符都是无效的,系统会给出错误的 提示信息。
输入平时成绩在总评成绩中所占的百分比;
while(p!=NULL)
{
printf("%2d%10s %8s %10s\n",++th,p->num,p->name,p->class);
printf("平时成绩期末成绩:");
输入平时成绩与期末成绩;
计算出总评成绩;
输出平时成绩、期末成绩与总评成绩;
p=p->next;
}
查找函数模块伪码:
stud *search(stud * head,int * th)
{
int xz;
/*xz表示以后的选择的查找方式代号*/
char xuehao[10],xingming[9];
stud *p;
/*工作指针*/
使P指向首结点;
*th=1;
选择按姓名还是按学号查找;
if(选择按姓名查找)
删除函数模块伪码: void deletel(struct student * head) {
int th,xz,n; char c,xingming[9],xuehao[10]; struct student *p,*q; p=head; if(p->next!=NULL) {
选择删除方式; switch(xz) { case 1: 输入学生学号;
if(tolower(c)=='y')
{
把结点从链表中删除
释放P内
}
成绩录入函数模块伪码:
void input(stud * head)
{
int th=0,ps,qm; /*ps为平时成绩的比重,qm为期末成绩的比重*/
stud *p;
/*工作指针*/
p=head->next;
要求的基本功能已经全部具备了。在伪码部分,没有急于求成,一 次性写出整个程序的伪码,而是采取分步攻克的方法,我觉得这样 做还是比较的合理的,可以在一定程度上提高编程时所花费的时间 与精力。另外,部分函数模块可能写的比较粗糙,不容易看懂,这 里仍然有进步的空间。我认为,可以在函数模块伪码下画出函数模 块的流程图,这样把伪码和流程图组合起来看,清楚明白,使人一
详细设计 这个阶段的任务主要是确定每个模块的处理过程,包括(1)确定 每个模块的算法。(2)确定每一个模块的数据组织。(3)为每个模块 设计一组测试用例。(4)编写详细设计说明书。 [ 实验结果 ] 1.主要功能陈述:在这个选修课管理系统中,每个学生的信息由:学 号、姓名、班级、成绩等几项数据构成。因为选修课的学生人数不能预 知,故采用链表来进行数据管理,要求实现以下基本功能:插入、删 除、查询、浏览、初始化、导入、导出等。 2.选修课管理系统主要由以下几个模块组成: menu():选单函数,显示菜单并接受选择; show();浏览函数,将链表中各结点的数据依次输出; insert();插入函数,向链表中插入新结点,并使链表的各结点按学号 升序排列; search();查找函数,在链表中按姓名或学号进行查找; deletel();删除函数,在链表按学号、姓名或序号删除结点; input();成绩录入函数,依次给链表中各结点的数据录入成绩;
/*删除*/
目了然。 3. 收获与体会:别看流程图与功能模块图比较小,实际上在这个上我
花了很多的时间与精力。每次画的时候,都要注意画的图形的大小 与位置,而且线条要笔直,画线条的时候,手不能有一点点的抖 动,这个是非常困难的。后来,我发现,我们在一开始画各个部分 的时候不需要去过度在意每个图形的大小与位置,仅需画个大概即 可。等到把所有模块都画好之后,再慢慢调整各个图形的大小与位 置。这样做的话,会方便很多。
change();修改函数,对链表中指定结点的数据进行修改; load();读入函数,从文件中将选课情况导入到链表; save();保存函数,将链表中的选课情况保存到文件。
3.选修课管理系统的功能模块如图所示: 选修课管理系统
改姓名 按学号 按序号 按姓名 按学号 按姓名 改班级 改学号 插入 查找 保存 读入
查找输入学号在链表中的位置; break; case 2: 输入学生姓名; 查找输入姓名在链表中的位置; break; case 3: 输入学生学号; 查找输入学号在链表中的位置; break; default: 选择错误; } q指向p的直接后继; if(q等于NULL) { 则未找到结点; } 输出学号与姓名; c=getchar(); getchar();
/*指向首结点*/
输出“序号 学号 姓名 班级 平时成绩期末成绩总评成绩”;
while(若P不为空)
{
输出学号、姓名、班级;
输出平时成绩、期末成绩与总评成绩;
使P移动到链表下一个位置;
}
}
插入函数模块伪码:
void insert(stud * stud)
{
char an,xuehao[10],xingming[9],banji[11];
实验二:编码
[ 实验日期 ]
2013 年
[ 实验目的 ]
培养良好的编码风格。
4月
26 日
[ 实验内容 ] 根据详细设计的结果,按结构化思想编写代码,并对程序进行注释。 [ 实验原理和步骤 ]
注意变量或函数的名字要有意义,表达式和语句要一目了然,排版风 格、循环语句风格要保持一致,函数宏的定义,常数的定义,注释要全
}
gecthar();
}
修改函数模块伪码: void change(stud * head) {
int th=0,xz; float x,y; /*x,y分别代表平时成绩和期末成绩占最终成绩的比重*/ stud *p; do {
p=search(head,&th); if(p)
{ 输出学号、姓名与班级; 输出平时成绩、期末成绩与总评成绩;
break; case 5: 输入修改后的平时成绩并计算总评成绩;
break; } 输出学号、班级、姓名; 输出平时成绩、期末成绩与总评成绩; }
[ 实验总结 ]
1.在写程序伪码的时候,我们并不需要写的多么合理,只要符合要求, 自己可以看得懂就可以了的。在写这个选修课管理之前首先要清楚这个 管理系统所需要的功能,再根据这个设计不同的模块来满足此管理系统 要求的功能。通过写管理系统的伪码,我们能对写此管理系统的代码有 了更加深刻的认识与了解,为我们写选修课管理系统这个程序作了一定 的铺垫,起到了很好的指导作用。 2. 实验中的问题和提高:我觉得自己的设计仍然有不足之处,但系统
{
char num[10];
char name[10];
char class[10];
float commonscore;
float finalscore;
float score;
struct student *next;
}stud;
/*typedef来定义struct student*/
char menu();
{
输入学生姓名;
while(p!=NULL&&strcmp(xingming,p->name)!=0)
{
p=p->next;
(*th)++;
}
}
else
{
输入学生学号;
while(p!=NULL&&strcmp(xuehao,p->num)!=0)
{
p=p->next;
(*th)++; } } 返回要查找的学生信息所在结构体的地址; }
} Else 未找到!!!! }while(!p); 选择要修改部分的信息; switch(xz) { case 1: 输入修改后的学号;
break; case 2: 输入修改后的姓名;
break; case 3: 输入修改后的班级;
break; case 4: 输入修改后的平时成绩并计算总评成绩;
*
* 时间:2013.4.30
*
***********************************************
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define NULL 0
/*定义结构体类型*/
typedef struct student
/*选单*/
stud * load();
/*导入*/
stud * search(stud *,int *);
/*查询*/
void save(stud *);
/*导出*/
void input(stud *);
相关文档
最新文档