目录
【软件设计过程】
-
设计过程
-
软件交互设计:用户、UI
-
系统总体设计:软件体系、API
-
模块设计与实现:算法、数据结构
-
-
结构:软件体系结构很重要,体系结构决定软件规模
-
数据库设计:是大脑、存储、加工数据。 大型数据库:Oracle;中型数据库:SQL Server;小型数据库:MySQL
【软件体系结构】
【软件体系结构风格】
概述
管道-过滤风格
事件风格
以数据为中心的风格(仓库体系结构)
客户机/服务器结构 (Client/Server,CS)
CS概述
两层CS(胖客户端模型)
-
客户机 ←→ 数据库
-
是一个胖客户端模型
-
Server处理数据的管理,Client实现应用逻辑和用户的交互
三层CS(有很多种)
-
MVC将应用程序的数据模型、业务逻辑和用户界面分别放在独立构件中,这样对用户界面的修改不会对数据模型/业务逻辑造成太大影响
-
MVC的流程:
-
MVC每次请求必须经过"控制器->模型->视图"过程,才能看到最终展现的界面
-
视图是依赖于模型的
-
渲染视图在服务端完成,呈现给浏览器的是带有模型的视图页面,性能难优化
-
-
Web前后端分离思想下的结构如下
4.三层CS之 P2P(Peer-to-peer)结构
-
P2P:网络的参与者共享他们所拥有的一部分硬件资源,这些共享资源通过网络提供服务和内容,能被其它对等节点(Peer)直接访问而无需经过中间实体。
-
在P2P结构中,参与者既是资源提供者(Server),又是资源获取者(Client)。
【软件体系结构风格选择】
简单地判断某一个具体的应用应该采取何种体系结构是非常困难的,需要借助于丰富的经验。
绝大多数实际运行的系统都是几种体系结构的复合。
【软件体系结构 VS 设计模式 VS 框架】
概念
-
体系结构风格:用于描述某一特定应用领域中 系统组织的惯用模式 ,反映了领域中 众多系统所共有的结构和语义特性。
-
设计模式:
广义定义:可解决一类软件问题并能重复使用的软件设计方案
狭义定义:设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。是在类和对象的层次描述的可重复使用的软件设计问题解决方案。
-
软件框架:由开发人员定制的 应用系统的骨架,是整个或部分系统的 可重用设计,由一组抽象构件和构件实例间的交互方式组成。
区别
-
体系结构:呈现形式是一个设计规约,目的是指导软件系统的开发
-
设计模式:体系结构风格是广义上的设计模式。换句话而言,设计模式是体系结构的一个分支。
-
框架:是一个半成品的软件,目的是设计复用
【单元测试题】
选择题
判断题
设计模式是从大量成功实践中总结出来且被广泛公认的实践和知识。 F
消除两个包之间出现的循环依赖在技术上是不可行的。 F
良好的分层体系结构有利于系统的扩展与维护。 T
软件体系结构描述是不同项目相关人员之间进行沟通的使能器。 T
系统体系结构的最佳表示形式是一个可执行的软件原型。 F
简答题
给下面的系统设计一个适当的体系结构
(1)火车站自动售票系统
(2)三维几何造型系统
(3)网上银行系统
答案:
(1)火车站自动售票系统
使用:胖客户机模型
自动售票机:客户机负责处理应用逻辑并实现与系统的交互
服务器:一个大型主机,运行火车票的数据库
(2)三维几何造型系统
使用:MVC结构
M:三维几何形体的边界表示
V:将模型中的几何数据以用户需要的形式展现出来
C:负责管理与用户的交互控制
(3)网上银行系统
使用三层体系结构
数据服务器:管理客户的帐户数据库
应用服务器:提供应用服务(诸如现金转帐、生成银行结算单等)
客户机:用户计算机上的浏览器