《软件设计与体系结构论文》由会员分享,可在线阅读,更多相关《软件设计与体系结构论文(15页珍藏版)》请在金锄头文库上搜索。
1、.软件设计与体系结构非卷面试题设计题目 快餐店多功能点餐系统院 系 电子与信息工程学院专 业 计算机科学与技术学生姓名 学生学号 任课教师 倪 启 东快餐店多功能点餐系统摘 要随着计算机软件行业的发展和互联网的普及,软件进入到人们生活的各个行业之中。在这个软件爆炸的时代,软件系统有一个好的设计与结构显得尤为重要。通过快餐店多功能点餐系统的设计,将软件体系结构与设计的所学的知识,运用到实际系统中,是对知识、技术的巩固,也是能力的提升。本系统主要运用增量模型,随着知识的学习同步进行系统的开发。主要采用了策略模式、观察者模式、装饰者模式、工厂模式、单例模式。同时,伴随着设计原则的思想,使得系统更加稳
2、定而高效。关键词点餐系统;体系结构;设计模式;java目录第1章 绪论11.1引言11.2系统开发目标11.3开发环境1第2章 需求分析32.1项目概述32.2功能需求32.2.1用户需求32.2.2系统需求32.3非功能需求32.3.1产品需求32.3.2 外部需求42.4业务需求42.4.1业务要求42.4.2客户与用户42.4.3特性4第3章 结构设计53.1整体设计53.1.1普通用户活动图53.1.2会员活动图63.1.3管理员活动图73.2详细设计73.2.1模块划分73.2.2简单业务流程设计8第4章 设计模式94.1工厂模式94.1.1模式说明94.1.2模式类图104.1.3
3、所用原则104.2抽象工厂模式104.2.1模式说明104.2.2模式类图114.2.3所用原则114.3观察者模式124.3.1模式说明124.3.2模式类图134.3.3所用原则134.4策略模式134.4.1模式说明134.4.2模式类图144.4.3所用原则144.5单件模式154.5.1模式说明154.5.2模式类图154.5.3所用原则15结论16致17参考文献18. v.第1章 绪论1.1 引言当今世界已进入信息时代,Internet成为21世纪最受关注的行业之一,它的飞速发展和在全球范围的普及应用正在给人类生活带来革命性变化。网络技术的发展也取得了巨大的成就,为网站开发提供了很
4、好的技术支持。正基于这个背景,产生了快餐店多功能点餐系统。就我而言,主要是想通过快餐店多功能点餐系统的开发,让自身在软件开发的知识水平提升一个档次,特别是对软件开发形成一种概念。也正如Head First设计模式中所说,对象村里的每个人都在使用设计模式。对于刚刚入住对象村的我,需要有一个和大师交流的机会,而快餐店多功能点餐系统无疑是我跻身上流社会的一个桥梁。“把模式装进脑子里,然后在你的设计和已有的应用中,寻找何处可以使用他们。”使用设计模式的最好方法。把自己学到的模式和原则,套用到开发的系统之上,在开发系统的同时也掌握的设计模式的基本思想。在起初没有使用设计模式的系统中,更能明显的看出设计模
5、式的威力所在。1.2 系统开发目标为快餐行业的网互联化提供支持,使商家和定餐者都能便捷高效的完成自己的需求和响应。具体目标如下:用户能够在没有经过培训以及不了解原有系统的情况下使用系统;系统应将订单处理流程加快20%以上;用户可以节省一半的查看菜单详细信息;当用户在快餐店用餐时,可以仅用没有系统所用时间的30%来完成订餐;当用户叫外卖时,不需要再找外卖单以及订餐电话;会员得知优惠的效率提高90%以上。1.3 开发环境本系统采用目前最流行的web开发技术之一J2EE进行开发。主要开发语言采用Java,网页采用JSP、css以及javascript,后台处理采用servlet技术,数据库使用的是M
6、ySQL5.5,服务器使用的是Tomcat7。可以配置在Windows,Linux,Unix等常用操作系统平台。第2章 需求分析2.1 项目概述适用于快餐店的多功能点餐系统,实现会员记录的增、删、查、改、存、读、的基本功能,根据功能,指导系统的模式。分别对于普通用户、会员、管理员开设系统。对于普通用户,有管理个人信息、查看菜单、订餐、结帐四种操作。对于会员,在普通用户的基础上,可以查看优惠信息、使用优惠券。对于管理员,可以进行管理员管理、普通用户管理、会员管理、菜单管理。2.2 功能需求快餐店多功能点餐系统在功能上应满足三类用户的需求,使得用户使用更加方便而高效。2.2.1 用户需求管理员可以
7、通过网络进行菜单更新、会员管理、普通用户管理、发布优惠信息、查看选定时间段的营业情况;所有用户可以选定菜单的特定子集进行查看菜单;普通用户可以查看今日特价、查看菜单、查看菜目详情、预订菜目、查看消费金额;会员在普通用户功能的基础上能够查看会员优惠、使用优惠券;普通的浏览者可以浏览菜单。2.2.2 系统需求系统能将用户每次的消费设置唯一的标识符记录到用户的信息上;系统可以提供适当的浏览器供用户查看电子邮件等;2.3 非功能需求为了使用用户能够更好的使用系统,系统应具有的性能需求分为以下几个方面。2.3.1 产品需求系统应在30秒之内响应用户的所有请求;系统每周7天、每天24小时都可以使用;对于一
8、个没有使用经验的管理员而言,可以经过20分钟的培训使用系统;对于没有使用经验额普通用户和会员能够直接使用系统;系统的安全性、稳定性和可靠性可以让用户放心的使用;系统应具有良好的可移植性。2.3.2 外部需求系统的设计应具有较高道德用户体验度以及较高的互操作性。2.4 业务需求快餐店多功能点餐系统为快餐行业服务,需要为快餐店的管理员、会员与普通用户服务。2.4.1 业务要求具体业务要求如下:l 各种菜目的预订、查询和管理;l 使用计算机实现菜单的日常管理,提供工作效率和服务质量;l 用户通过网络来实现订餐,改变原有的预订方式;l 会员通过网络来进行优惠查询与管理,更加方便和高效;l 管理员可以更
9、直观的管理用户和会员,分析其数据,可以更好的辅助决策。2.4.2 客户与用户快餐店的所有者或者管理员、普通用户、快餐店的会员。2.4.3 特性能够在网络上完成订餐与优惠管理,使普通用户和会员更加方便。快餐店管理员可以通过电子邮件给会员发送优惠信息,大大节省了人力物力。第3章 结构设计3.1 整体设计通过分析整个系统的需求,结合UML建模语言,对系统整体用例图分析如图3.1.1所示。图3.1.1 系统用例图3.1.1 普通用户活动图普通用户可以进行菜单查看,点单,查看消费金额等活动,系统活动图如图3.1.2所示。图3.1.2 普通用户活动图3.1.2 会员活动图会员在普通用户的基础上可享受更多优
10、惠,系统活动图如图3.1.3所示。图3.1.3 会员活动图3.1.3 管理员活动图管理员可以进行菜单管理、普通用户管理、会员管理等活动,系统活动图如图3.1.4所示:图3.1.4 管理员活动图3.2 详细设计对于系统的设计,根据软件工程的相关理论,遵循模块化原则,使得系统在“高内聚、低耦合”的要求之下更加稳定、已扩展,在后期的维护方面可以更加方便。3.2.1 模块划分按照系统开发的要求,可以分为前台与后台。前台与用户交互的界面设计应满足简洁大方,以小清新为主题风格。后台代码实现应条理清晰,方便之后的扩展与管理。具体模块及关系如图3.2.1所示。图3.2.1 模块划分图3.2.2 简单业务流程设
11、计对于整个系统的业务流程,主要包括三个主要参与方。订餐者的点餐信息通过服务器的处理可以反馈给管理员,而管理员发布相关的优惠也是通过服务器的处理通知给会员。业务流程图如图3.2.2所示。图3.2.2 简单业务流程图第4章 设计模式4.1 工厂方法模式4.1.1 模式说明工厂方法模式,就是定义一个创建产品对象的工厂接口,让子类决定实例化哪一种实例对象,也就是将实际创建实例对象的工作推迟到子类当中,核心工厂类不在负责具体产品创建。实质上是通过继承的方式实现应用程序的解耦。应用在本系统中,有一个数据库的操作类工厂,名字叫DAOFactory,有四个数据库操作类,UserDAO、DishesDAO和Ta
12、bleDAO,分别对用户、菜单和餐桌消息进行管理。4.1.2 模式类图图4.1.1 工厂方法模式类图4.1.3 所用原则 “开闭”原则一个软件实体应对扩展开放,对修改关闭。在设计软件模块的时候应该使这个模块可以在不修改的前提下被扩展。在本系统中,将Dao类的实现推迟到对象子类中实现。 依赖倒置原则不论工厂还是产品都依赖于抽象,而不是具体的实现类。这样以来,无论底层组件怎么变化,只要抽象组件不变,高层组件就不会发生变化。4.2 抽象工厂模式4.2.1 模式说明抽象工厂模式提供了一个接口,用于创建相关或者依赖对象的家族,而不需要制定具体的实现类。抽象工厂模式允许客户使用抽象接口来创建一组相关的产品
13、,客户类和工厂类分开,客户需要任何产品的时候,只需要向工厂请求即可,客户无需修改就可以获得新产品,这样一来,客户就从具体产品中解耦。实质上是通过对象组合的方式实现应用程序的解耦。而这样的模式正好适用于订餐者的点餐:快餐店生产食物的工厂;各种食物工厂生产的产品;订餐者客户。角色关系如下图4.2.1所示。图4.2.1 抽象工厂模式角色关系图4.2.2 模式类图图4.2.2 抽象工厂模式类图4.2.3 所用原则(1) 多用对象组合,少用继承所谓对象组合,就是让对象作为类的成员变量,通过构造函数或者set方法给类的对象的实例变量赋值。在本系统中,在订餐者的类中存在一个FastFactory抽象工厂类型
14、的实例变量,订餐者类通过构造方法将对象传入。(2) 针对抽象编程,而不是针对实现编程当设计一个软件系统的时候,要尽可能的对软件系统中出现的事物进行抽象,从而建立基础的抽象底层,这样做的目的就是让软件的结构更加框架化、系统化,系统结构更加灵活,易维护、易扩展。(3) 产品对象通过对象暴露的方法创建一个软件系统要达到“高内聚、低耦合”的要求,应尽量避免在对象实例中使用new关键字创建其他对象实例。在客户类中,没有创建对象实例的语句,而是调用抽象工厂暴露的方法获得对象实例,创建对象实例的工作全部都是在具体工厂中实现的。4.3 观察者模式4.3.1 模式说明观察者模式(发布/订阅模式),定义了对象间的一种一对多的依赖关系,当一个对象的状态发生变化时,所有依赖他的对象都将得到通知并自动更新。在本系统中,会员与管理员之间便是这种关系:管理员被观察的对象,会员观察者。当管理员发布优惠信息的时候,主动发出对每个会员的通知。在具体的实现中,让被观察者管理观察者的对象的接口类型,然后调用接口方法更新观察者。4.3.2 模式类图图4.3.1 观察者模式类图4.3.3 所用原则(1) “开闭原则”观察者对象将自己注册到被观察者的容器中时,被观察者不过问观察者的具体类型,而是使用观察者的接口。(2) 单一职责原则在