340 likes | 508 Views
第 3 章 Web 应用项目的系统设计. 目 录. 3.1 什么是系统设计 3.2 分层架构 3.3 设计目标 3.4 Web 应用系统设计的过程 3.5 数据库设计 3.6 任务一:学期项目数据库设计 3.7 任务二:学期项目系统设计 3.8 任务三:撰写系统设计说明书 3.9 拓展训练与思考. 3.1 什么是系统设计. 需求分析是获取软件要“做什么”的过程; 系统设计是一个指导软件要“怎么做”的过程。. 3.2 分层架构. 3.2.1 软件为什么要分层 3.2.2 分层的原则 3.2.3 三层架构.
E N D
目 录 3.1 什么是系统设计 3.2 分层架构 3.3 设计目标 3.4 Web应用系统设计的过程 3.5 数据库设计 3.6 任务一:学期项目数据库设计 3.7 任务二:学期项目系统设计 3.8 任务三:撰写系统设计说明书 3.9 拓展训练与思考
3.1 什么是系统设计 需求分析是获取软件要“做什么”的过程; 系统设计是一个指导软件要“怎么做”的过程。
3.2 分层架构 3.2.1软件为什么要分层 3.2.2分层的原则 3.2.3三层架构 信息系统分层平台示意图
3.2.1软件为什么要分层 • 1.层次提升 • 2.隐藏细节 • 3.标准互换
3.2.2 分层的原则 • 1.实现和接口分离原则 • 2.单向性原则 • 3.服务接口的粒度提升原则
3.2.3三层架构 基本三层架构
为了更好地理解三层架构,我们拿养猪来做个例子进行对比,下图是养猪产业流水线的三层架构图。为了更好地理解三层架构,我们拿养猪来做个例子进行对比,下图是养猪产业流水线的三层架构图。 三层架构与养猪产业
3.3 设计目标 • 在进行系统设计时,应注意以下一组设计目标: • 1.简单性。 • 2.一致性。 • 3.相符性。 • 4.健壮性。 • 5.导航性。 • 6.视觉性。 • 7.兼容性。
3.4 Web应用系统设计的过程 • 3.4.1 概念架构设计 • 3.4.2 技术架构设计 • 3.4.3 功能设计 Web应用系统设计金字塔
3.4.1 概念架构设计 GWMS的概念架构示例(部分)
3.4.2 技术架构设计 • 概念架构为Web应用系统设计提供了总体结构,而技术架构负责显示全局架构如何映射到具体的技术组件。 • 组成技术架构的技术组件的具体选择不仅取决于概念架构所强加的特殊需求,而且还取决于组件的运行环境和开发团队的技能。
3.4.3 功能设计 • Web应用的功能设计比传统应用的功能设计更简单,Web应用的功能设计几乎总是划分成模块的。这使得许多功能能够被设计成简单的迭代,而不用太关注模块之间的耦合。然后,在其他方面,Web应用的功能设计会比传统应用的功能设计复杂得多。设计者必须考虑由Web基础架构所赋予的一些必不可少的约束——如分布式模型、安全问题、从浏览器继承来的受限的接口模型。
3.5 数据库设计 • 3.5.1 数据库设计的步骤 • 3.5.2 创建E-R模型 • 3.5.3 将E-R模型映射为表 • 3.5.4 物理数据库实现
3.5.1 数据库设计的步骤 • 数据库设计主要分成两个阶段:逻辑数据库设计和物理数据库设计。 • 逻辑数据库设计(Logical Database Design)是按照特定的数据模型,将需求分析中得到的概念结构转换为数据模型,并对转换结果进行优化的过程; • 物理数据库设计(Physical Database Design)是对数据库实现的描述,描述的内容包括基本表、文件组织、用户高效访问数据的索引和相关的完整性约束及安全性限制。 • 表3-1列出了数据库设计的主要步骤。
3.5.2 创建E-R模型 • 以某超市管理系统(Mart Management System, 简称MMS)的数据库设计为例。假设对超市管理工作过程的需求分析已经完成,并得出了以下的数据项和数据结构: • 员工信息,包括的数据项有:员工编号、姓名、性别、职务、口令、权限级别、身份证号、所属部门编号等。 • 部门信息,包括的数据项有:部门编号、部门名称。 • 供应商信息,包括的数据项有:供应商编号、供应商名称、地址、邮编、电话号码、税号、银行账户、开户银行、联系人、备注等。 • 会员信息,包括的数据项有:会员编号、姓名、性别、身份证号、消费总金额、积分等。 • 入库信息,包括的数据项有:入库编号、入库日期、商品编号、计量单位、入库价格、销售价格、数量、总金额、供应商编号、业务员编号等。 • 商品信息,包括的数据项有:商品编号、商品名称、所属类别、数量、单价等。 • 销售出货单主信息,包括的数据项有:出货单编号、销售日期、总金额、是否现金、是否会员、会员编号、收银员编号等。 • 销售出货单子信息,包括的数据项有:出货单编号、商品编号、数量、单价、折扣比例、金额等。
3.5.3 将E-R模型映射为表 • 表3-2至表3-9列出了超市管理系统的表结构。 • 表3-2 超市管理系统数据库部门表结构 • 表3-3 超市管理系统数据库员工表结构 • 表3-4 超市管理系统数据库会员表结构 • 表3-5 超市管理系统数据库商品表结构 • 表3-6 超市管理系统数据库供应商表结构 • 表3-7 超市管理系统数据库入库信息表结构 • 表3-8 超市管理系统数据库出货单主信息表结构 • 表3-9 超市管理系统数据库出货单子信息表结构
3.5.4 物理数据库实现 • 1.创建数据库MMS • 2.创建部门表Department • 3.创建员工表Employee • 4.创建会员表Member • 5.创建商品表Goods • 6.创建供应商表Provider • 7.创建入库信息表Storage • 8.创建出货单主信息表OrderMain • 9.创建出货单子信息表OrderDetails
3.6 任务一:学期项目数据库设计 • 3.6.1 任务书模板 • 3.6.2 工作流程及要点解析
表3-11至表3-14所示为学期项目数据库中部分表的逻辑结构参考模板(其他的表结构由项目组根据数据模型自行完成设计工作)。表3-11至表3-14所示为学期项目数据库中部分表的逻辑结构参考模板(其他的表结构由项目组根据数据模型自行完成设计工作)。 • 表3-11 GWMS数据库学生表结构 • 表3-12 GWMS数据库资料表结构 • 表3-13 GWMS数据库教师表结构 • 表3-14 GWMS数据库系统用户表结构
在进行数据库逻辑设计的工作过程中,为提高系统的健壮性和性能,一般还需要对设计好的逻辑结构进行关系模式规范化和关系模式优化工作。在进行数据库逻辑设计的工作过程中,为提高系统的健壮性和性能,一般还需要对设计好的逻辑结构进行关系模式规范化和关系模式优化工作。
3.7 任务二:学期项目系统设计 • 3.7.1 任务书模板 • 3.7.2 工作流程及要点解析
3.7.2 工作流程及要点解析 表:Web应用设计模式库和信息源 • 1.模式库
2.代码生成 • 专门针对Java代码生成的XDoclet • 专门针对.Net开发人员开发的一款基于模板的代码生成工具 CodeSmith
3.系统设计的使命 • 设计本身不是目的,只是手段,以够用为主是其基本原则。
3.8 任务三:撰写系统设计说明书 • 3.8.1 任务书模板 附录B中列出了系统设计说明书的模板,可供参考。
3.9 拓展训练与思考 • 软件系统设计时需要考虑以下几个因素。 • 经济价格 • 系统负载 • 部署方式 • 既有系统的集成 • 技术走向 • 市场走向 • 用户的偏好 • 开发团队的技术现实