项目名称:影院票务管理系统 项目编号:xxx_TTMS_2017
设置虚拟投资方、用户并设置本团队为开发方项目分析内容安排:
1 、设计决策
2 、逻辑架构设计
3 、接口设计
4 、数据存储设计
5 、开发架构设计
6 、物理架构设计
一、设计决策:
使用面向对象技术进行系统的分析与设计,并使用UML描述系统的设计模型;
使用Java语言进行软件开发;
逻辑架构采用分层体系结构;
物理架构采用胖客户端、瘦服务器模式的二层C/S架构,其中客户端为GUI桌面软件,服务器端为数据库服务 器;
数据采用集中式存储,数据库使用关系数据库SQL Server。
二、逻辑架构设计: 总体逻辑架构: 分层架构设计,分别包括界面层、业务逻辑层、数据库层、与模型层; 以下为本项目的各模块逻辑架构详细设计流程: 界面层:通过创建model层对象,然后通过对象调用set()方法设置对象属性,而方法参数则为界面层一些文本框等所设置的参数接收值,最后将已成功设置属性的对象作为参数传入业务逻辑层。 业务逻辑层(服务层):通过数据库层接口类创建数据库并利用接口类方法进行初始化和增删改查操作等(方法中数据库通过创建接口类对象调用接口类方法并传入属性对象(即数据库方法))。 数据库层(dao实现层与idao接口层):首先编写数据库增删改查初始化语句,接着通过model对象调用get()方法获取所传对象参数属性,然后使用数据库连接语言(jdbc)建立与数据库连接,最后对初始化的数据库进行建立连接后的增删改查操作,参数则为获取到的对象参数属性。 模型层:界面层关联(对象、参数及方法)、服务层关联(参数)、数据库层(参数及方法),界面层所创建对象作为参数将三个逻辑架构层系统关联起来进而应用于整体设计。 数据库层演出厅设计用例代码: private final String insertSql="insert into Studio(name,rowCount,colCount,seatnumber,introduction)values(?,?,?,?,?)";
public boolean execInsert(Studio studio) throws Exception{
String sql=insertSql;
Connection conn=null;
boolean flag=false;
PreparedStatement ps=null;
MyDBUtil db = new MyDBUtil();
conn=db.openConnection();
try {
if(null==conn)
throw new Exception("Database not connected!");
ps=conn.prepareStatement(sql);
ps.setString(1,studio.getName());
ps.setInt(2,studio.getRowCount());
ps.setInt(3,studio.getColCount());
ps.setInt(4,studio.getSeatnumber());
ps.setString(5,studio.getIntroduction());
flag=ps.execute();
/*
Statement stmt = conn.createStatement();
flag = stmt.execute(sql);*/
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return flag;
}
三、接口设计:
客户端与数据库接口: 定义接口(IDAO),实现业务逻辑与数据库链接的隔离。
实现对象(DAO),关系映射转换:或者将对象值转换为SQL;或者利用查询结果重构对象。 封装数据库链接组件(DBUtil),实现查询、更新数据库及执行存储过程。
四、数据存储设计:
内存数据结构:当前用户信息、当前用户权限。 所遇问题如何窗口间切换时保存数据,解决办法为将对象作为参数在窗口间传递。 数据库设计_概念模型
数据库设计_物理模型
五、开发架构设计:
通过DBMS与管理终端、验票终端、售票终端及查询终端建立连接进而实现交互与操作。
六、物理架构设计:
用例部署图(描述图)