软件工程导论实验报告
软件工程导论总结报告

软件工程总结报告序言本期软件工程专业导论课程结束后,为圆满完结本期此课程的学习,特此总结个人学习所得以求些许回报先生无私教导。
主体第一节课主要讲述了软件工程各领域之间的联系以及贯穿始终的基础为何。
其中较为基础并相当重要使的应该是算法。
对于算法重要性与基础性的理解,我个人有比较切身的体验。
比如前不久的 ACM 竞赛,在比赛中我所在的小组以及当场几乎所有小组都遇到这样一个问题:超时—这无非就是个人设计的算法的效率不够高,这也证明我们对算法理论知识的匮乏(不清楚优化个人算法的方法)。
我对软件工程这一专业有了一个较为全面的把握,对我个人未来进取方向而言也起到了一定的指导作用。
第二节课老师带来了三位本专业的前辈向我们传授大学生活应如何度过以及对我等一些问题作出解答。
其中我个人印象深刻的是其中一位学姐 PPt 中引用李开复的那部分内容。
即试着记录下自己一整天做的所有事以及其所花费的时间,再仔细研究自己在哪些事上浪费了时间,应该如何整改。
我个人认为这方法可能有一定直观性,因为直观的数据更能深刻的反映真实和刺激一个人整改,但此法实施起来又太古板,中觉得生活有些教条化、章程化,缺乏新意与自由。
求上进,珍惜时间也无需以丧失人生情趣为代价。
还有就是学长再提潘老师曾讲过的那些重要、紧急优先次序。
他提到的个人的学习生活情况倒没什么深刻感,但我认为他引用的一番话较有道理,大概意思是比起个人兴趣更为优先的应该是谋生的本领,尤其是当自己感兴趣的正好是冷门时。
当掌握了一些实实在在有能保证自身良好发展前景后,再去做一些自己感兴趣的事也来得及。
于我而言,一个人尚不能独善其身,何求其兼济天下。
成己方成人就是如此道理。
第三节课主要讲解了大学学习生活中应着重的基础课以传递重基础的要旨。
据个人体会,其中英语科目实是基础中的基础,主要是为辨认单词(即代码变量以及注释)意义以达到理解他人算法并顺利接手他人接下来的工作。
企业和公司出于其本身利益主张雇方市场 -- 讲究项目的可接手性,而不希望对现有人员的过分依赖。
软件工程导论实验报告-白盒测试-黑盒测试

.《软件工程导论》实验报告学生姓名:学号:班级:指导老师:专业:实验日期:.白盒测试一、实验目的通过简单程序白盒测试,熟悉测试过程,对软件测试形成初步了解,并养成良好的测试习惯。
熟练掌握如何运用基路径测试方法进行测试用例设计,初步熟悉如何利用程序插装技术进行逻辑覆盖率分析。
二、实验内容: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. 引言在本次实验中,我们小组对软件工程的相关原理进行了实践探索。
通过实际操作,我们学习了软件开发的基本流程,并在此基础上完成了一个简单的软件项目。
本报告将详细介绍我们的实验方法、过程和结果。
2. 实验目标本实验的主要目标是让我们理解并熟悉软件工程的基本概念和方法,包括需求分析、设计、编码、测试和维护等环节。
通过完成一个小型软件项目,我们可以实际体验到软件工程的整个生命周期,并了解其中的各个环节的重要性。
3. 实验方法我们选择了一种敏捷开发方法作为实验的基本框架,并结合具体需求进行了适当的调整。
在产品规划和需求分析阶段,我们与客户进行了充分的沟通,并明确了软件的功能需求和非功能需求。
然后,我们进行了系统设计,并将设计方案转化为具体的软件模块。
接下来,我们进行了编码工作,并进行了单元测试和集成测试。
最后,我们对软件进行了系统测试,并进行了性能测试和用户验收测试。
4. 实验过程在实验过程中,我们按照敏捷开发的原则进行了任务的拆分和分配。
我们设立了每日的站立会议,用于协调各个团队成员的进展并解决可能出现的问题。
在每个迭代周期结束后,我们进行了迭代评审,并对下一轮迭代进行规划。
这样的循环持续进行,直到我们完成了整个软件项目。
期间,我们还进行了代码审查和用户反馈收集,以便及时改进。
5. 实验结果最终,我们成功地完成了目标软件的开发,并通过了用户的验收测试。
该软件可以实现用户的基本需求,且具备良好的性能和稳定性。
通过这次实验,我们更深入地了解了软件工程的实际应用,并掌握了一些常用的开发工具和技巧。
同时,我们也意识到在软件开发中,团队合作和迭代开发的重要性。
6. 实验总结通过这次实验,我们对软件工程的实践过程有了更为深刻的理解。
我们经历了需求分析、设计、编码、测试等各个环节,并成功地完成了一个小型软件项目。
通过实践,我们发现了软件工程方法在提高开发质量和效率方面的价值。
同时,我们也认识到软件开发是一个不断迭代、不断优化的过程,只有与团队紧密合作并且持续改进,才能实现最终的成功。
软件工程导论报告

软件工程导论报告实验报告课程名称实验题目学生学号实验目的:本课程实验的教学目标在于通过绘制数据流图、实体关系图、用例图、状态图等实验,重点熟悉软件设计中的逻辑模型设计方法及其绘制工具软件,从软件工程角度理解和掌握软件设计开发过程。
实验条件:电脑一台、能上网查阅资料。
实验项目一熟悉软件工程工具 1.实验目的、任务:通过创建、编辑、保存一个简单的Visio图形文件,让学生学习掌握Microsoft Office Visio 的基本用法,掌握使用Microsoft Office Visio绘制业务流程图、数据流图、功能模块图、软件结构图和软件界面的方法。
2.实验基本要求:熟练应用Visio绘制软件开发图形的基本操作。
3.实验内容:打开Microsoft Office Visio,按照给出的业务流程图、数据流图、功能模块图、软件结构图和软件界面,绘制出相同的图形。
实验结果:软件工程姓名日期班级 2021-6-10 实验项目二绘制数据流图和实体关系图 1.实验目的、任务:能够根据业务描述,分析设计并绘制其数据流图和实体关系图。
2.实验基本要求:基本掌握数据流图和实体关系图的分析设计方法。
3.实验内容:银行计算机储蓄系统的工作过程大致如下:储户填写的存款单或取款单由业务员输入系统,如果是存款则系统记录存款人姓名、住址(或电话号码)、身份证号码、存款类型、存款日期、到期日期、利率及密码(可选)等信息,并印出存单给储户;如果是取款而且存款时留有密码,则系统首先核对储户密码,若密码正确或存款时未留密码,则系统计算利息并印出利息清单给储户。
要求用数据流图描绘本系统的功能,并用实体关系图描绘系统中的数据对象。
实验结果:数据流图: E-R图:实验项目三绘制用例图和状态图 1.实验目的、任务:掌握用例图分析方法和绘制方法,掌握状态分析方法和状态图的绘制方法。
2.实验基本要求:能够根据业务描述分析绘制用例图和状态图,能够熟练使用绘图工具软件绘制出用例图和状态图。
《软件工程导论》实验报告(推荐文档)

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)制定测试计划。
软件工程实验报告

软件工程实验报告软件工程实验报告一、实验目的本次实验的目的是通过实践,熟悉软件工程的基本知识和方法,掌握软件开发的流程和规范。
通过完成一个小规模的软件开发项目,培养学生的软件开发能力和团队合作能力。
二、实验步骤2.1 需求分析,我们需要明确软件的需求,确定软件的功能和特性。
通过与项目发起人的沟通,了解他们的需求和期望,进而进行需求分析和规划。
在这个阶段,我们需要明确软件的功能模块、用户界面设计等。
2.2 技术选型根据需求分析的结果,我们需要选择合适的技术栈来实现软件的开发。
我们需要评估各种技术的优缺点,选择适合自己团队的技术。
,我们还需要评估各种开发工具和框架,选择合适的工具来提高开发效率。
2.3 设计阶段在设计阶段,我们需要进行系统设计和详细设计。
系统设计阶段确定软件的整体框架和结构,包括软件的层次结构、模块划分和接口设计等。
详细设计阶段则重点关注各个模块的实现细节,包括算法设计和数据结构设计等。
2.4 编码实现在完成系统设计和详细设计后,我们就可以开始进行编码实现了。
在编码实现阶段,我们需要按照事先确定的设计进行代码编写,并进行代码的和调试。
,我们还需要关注代码的质量和可读性,使用一些良好的编码规范和设计模式。
2.5 阶段在编码实现完成后,我们需要对软件进行,确保软件的功能和性能都符合要求。
阶段包括单元、集成和系统等。
我们需要编写用例,并执行用例进行,发现并修复软件中的bug。
2.6 部署与维护在通过后,我们可以将软件部署到目标机器上进行运行。
在部署之前,我们需要进行一些配置和优化工作,确保软件能够在目标环境中正常运行。
,我们还需要进行软件的维护工作,及时修复bug和优化性能。
三、实验结果经过团队的共同努力,我们成功完成了本次实验的软件开发项目。
我们按照软件工程的流程和规范进行开发,保证了软件的质量和可维护性。
软件具备了项目发起人的需求,功能和性能都符合要求。
四、实验通过本次实验,我们对软件工程的基本知识和方法有了更深入的理解。
软件工程导论实验报告

目录第一章可行性分析报告 (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 引言航空公司为方便旅客乘机,需要开发一个新机票预定系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
<<软件工程概论>>实验报告姓名:李治学号:100511210班级:网工1001指导教师:桂兵祥实验一“图书馆系统”结构化需求分析上机任务:用结构化需求分析方法完成下列任务:(1)对“图书馆系统”问题进行描述; (2)对该系统进行功能分析; (3)建立数据流图;(4)建立实体 - 关系图; (5)建立数据字典;一、图书馆系统的问题描述:① 一个图书馆藏有图书和期刊杂志两大类书籍,每种图书/杂志可以有多册。
② 图书馆可以维护(注册、更新和删除)图书资料。
③ 图书馆管理员负责与借书者打交道。
④ 借书者可以预约目前借不到的书或杂志。
⑤ 所有人员都可以浏览图书馆的图书信息和各种告示。
⑥ 系统能在流行的技术环境下运行,有一个良好的图形交互界面。
⑦ 系统应具有良好的可扩展性。
二、图书馆系统功能分析:① 浏览功能:所有人员都可以浏览图书馆的图书信息。
② 借还功能:借书者可以借/续借、还、预约图书。
③ 图书管理功能:图书管理人员可以做录入、更新和销毁等图书信息维护工作。
④ 借书者管理:系统管理人员可进行注册、更改、注销借书者信息等维护工作。
三、建立数据流图:1、图书馆系统的基本逻辑模型:浏览图书浏览者图书信息浏览信息2、借/还功能数据流图:(1)借/还功能(第一步)DFD :借书还书续借预约书目号和借书证号书目号书目号标题号和借书证号管理员借书者借书者显示信息(2)借/还功能(修改)DFD :借书还书续借预约书目号和借书证号书目号书目号标题号和借书证号管理员借书者3、维护功能数据流图:(1)维护功能(第一步)DFD :更改借者注销借书者录入新书更新图书管理员注册借书者销毁图书处理罚金管理员(2)维护功能(修改) DFD :录入标题修改标题删除标题录入新书管理员销毁书目修改书目标题信息标题号标题号书目信息书目号书目号4、借书功能细化的数据流图:验证借书者和图书创建借书记录更新借书者更新图书信息管理员借书者书号和借书证号允许借书者图书信息显示借书成功不允许借书记录显示失败信息四、建立实体 - 关系图: 图书馆系统实体-关系图:姓名性别地址身份借书数罚金借书证号借书者书目借条码号分类号ISBN还续借借书记录包含借书证号条码号借书日期归还日期续借次数标题可借数书名作者出版社馆藏数价格ISBN预约借书证号预约天数图书号预约日期注册/更改/注册系统管理录入/更新/删除工号姓名性别权限密码五、建立数据字典: 建立数据字典:名称:标题别名:抽象的图书描述:描述一个抽象的图书的信息定义:标题=ISBN+书名+作者+出版社+出版日期版次+价格+目录+内容简介+馆藏数+可借数+预约数位置:图书查询,借书,还书,预约名称:书目别名:具体的书描述:对应标题的具体的一本书定义:书目=条码号+分类号+ISBN 位置:借书、还书、更新六、实验总结:通过这次实验对Rational Rose和Visio两款画图软件有些认识,这两个软件在以前从来没有见过也没有听过,第一次打开的时候完全不知道怎么操作。
不知道怎么做出指导书里面的画图,不知道一些功能打开。
但是自己慢慢的百度慢慢的摸索之后这个软件的基本功能还是会使用了,在试验的同时对于需求分析的整个过程也有了更多的了解,同时在一些问题的解决上依靠课本,对于课本也更加的熟悉了。
实验二“图书馆系统”OOA需求分析上机要求:(1)首先对该系统进行非形式化描述、并进行功能需求分析;(2)采用面向对象分析(OOA)的方法,用可视建模语言UML,给出该系统的用例视图、类图、借/还书功能的时序图和协作图、以及借/还书业务层的活动图;一、对该系统进行非形式化描述、并进行功能需求分析:(1)问题描述:①一个图书馆藏有图书和期刊杂志两大类书籍,每种图书、杂志可以有多册。
②图书馆可以维护(注册、更新和删除)图书资料。
③图书管理员在系统的支持下,负责与借书者打交道。
④借书者可以预约目前借不到的书或杂志。
⑤所有人员都可以浏览图书馆的图书信息和各种告示。
⑥系统能够在所有流行的技术环境下运行,有一个良好的图形交互界面。
⑦系统应该具有良好的可扩展性。
(2)功能需求分析:①浏览功能:所有人员都可以浏览图书馆的图书信息。
②借还功能:借书者可以借/续借、还、预约图书。
③图书管理功能:图书管理人员可以做录入、更新和销毁等图书信息维护工作。
④借书者管理:系统管理人员可进行注册、更改、注销借书者信息等维护工作。
二、采用面向对象分析(OOA)的方法,用可视建模语言UML:(1)图书馆系统的用例视图借书还书预约普通管理者续借查询账户借书者查询图书一般浏览者查询系统信息录入题目更新标题删除标题更新书目删除书目录入书目注册借书更新借书注销借书管理标题管理借书系统管理员管理书目(2)图书馆系统的CRC 卡借书者责任:维护借的书目的数据和罚金,请求借、还、续借书目功能协作者:图书书目类图书书目类责任:维护一个具体书目数据,通知相应的图书标题完成相应的图书标题完成借、还功能协作者:图书标题类图书标题类责任:维护一个抽象书的数据,知道该书的可借数、预约数协作者:图书书目类(3)图书馆系统的类图预约借书者图书标题图书书目借/还借/还/续借预约/删除预约(4)图书馆系统的时序图借书者借书者图书书目图书标题借/还借书1、验证可借性2借书3、创建借书记录4、更新图书标题2.1验证可借(5)图书馆系统的协作图借书者借书者1、验证可借性借书6、更新借书者图书标题图书书目借/还(new )2.1验证可借2、借书5、更新图书书目4、更新图书标题3、创建借书记录(6)图书馆系统的活动图查找图书排队等待【借书者】【还书者】记录借书记录还书图书回架准备为下一个成员服务【借书】【还书】图书馆成员图书馆管理员三、实验总结:这次的实验让我对面向对象分析(OOA )的方法有了深入的认识,对OOA 方法的过程以及步骤也比较清楚。
实验过程中,加深了我对书本中知识点的复习,让我获益良多。
同时,这次的实验使我对Rational Rose和Visio这两款画图软件有了更深入的认识。
实验五 电梯控制系统OOD 设计一、电梯控制系统的OOD : (1)确定类的行为(方法):◆电梯系统有7个类模型,即按钮、电梯、电梯按钮、电梯门、电梯控制器、楼层按钮、请求。
◆电梯系统的功能模型必须包含设计的各种行为描述,反映行为的数据如何流动,而不反映行为的次序。
一个行为可以分配给一个对象,也可以分配给向这个对象发送消息的客户。
分配行为的方法:一是基于信息隐蔽原则,二是使用责任驱动的设计。
◆把行为(方法)分配给不同的类,可得到电梯控制系统的类列表。
A )、电梯系统的功能模型:按钮类按下按钮用户按下按下登录请求开/关灯命令请求灯操作命令请求类检测待处理请求更新请求电梯控制器类请求查询电梯到达数灯操作命令查询电梯到达数移动/等待命令开/关门命令电梯命令门操作命令电梯类电梯门类电梯命令门操作命令B )、电梯系统的类列表 :类按钮楼层按钮电梯按钮电梯门电梯电梯控制器电梯应用电梯实用程序请求属性指示灯指示灯指示灯开门(待定)请求请求行为(方法)关闭按钮,打开按钮关闭按钮,打开按钮关闭按钮,打开按钮关闭电梯门,打开电梯门上行一层楼,下行一层楼(以后加一个方法)Main (待定)判断是否有请求等待处理,登录请求,更新请求(2)根据对象的客户设计产品:◆面向对象产品的结构通常是由一个简单的主程序来启动一个产品,然后所有的工作由各个对象来接管。
◆必须找出不是其他对象的客户的那些对象进行初始化,这由main 方法完成。
◆使用电梯系统类模型和类列表,画出对象的客户图。
◆电梯控制器对象向其他5个对象发送信息。
启动时,main 方法必须先调用电梯控制器对象。
显然,电梯控制器类需要一个方法,以便main 方法调用。
于是电梯控制器对象增加一个电梯控制器循环方法。
A )、电梯系统的客户-对象关系图: 电梯应用楼层按钮电梯门电梯控制器电梯按钮电梯应用程序请求电梯(3)对象的详细设计:◆使用任何合适的技术,例如,逐步求精设计方法,对main 方法和各个对象进行详细设计。
二、实验总结:通过这次实验,让我对电梯控制系统OOD 设计有了很好的了解,在书本知识的基础之上,也有了更好的体会。