1、软件架构设计
主要考点:
质量属性、软件架构风格、软件架构评估、MVC架构、面向服务的SOA架构、
DSSA、ABSD
1.1、质量属性
1、性能:指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理的事件的个数。如响应时间、吞吐量。设计策略:优先级队列、增加计算资源、减少计算开销、引入并发机制、采用资源调度等。
2、可靠性:是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统的功
能特性的基本能力。如 MTTF、MTBF。设计策略:心跳、Ping/Echo、冗余、选举。
3、可用性:是系统能够正常运行的时间比例,经常用两次故障之间的时间长度或在出现故障时系统能够恢复正常的速度来表示。如故障间隔时间。设计策略:心跳、Ping/Echo、冗余、选举。
4、安全性:是指系统在向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。如保密性、完整性、不可抵赖性、可控性。设计策略:入侵检测、用户认证、用户授权、追踪审计。
5、可修改性:指能够快速的以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量。设计策略: 接口-实现分类、抽象、信息隐藏。
6、功能性:是系统所能完成所期望的工作的能力。一项任务的完成需要系统中许多或大多数构件的相互协作。
7、可变性:指体系结构经扩充或变更而成为新体系结构的能力。这种新体系结构应该符合预先定义的规则,在某些具体方面不同于原有的体系结构。当要将某个体系结构作为一系列相关产品的基础时,可变性是很重要的。
8、互操作性:作为系统组成部分的软件不是独立存在的,经常与其他系统或自身环境相互作用。
为了支持互操作性,软件体系结构必须为外部可视的功能特性和数据结构提供精心设计的软件入口。
程序和用其他编程语言编写的软件系统的交互作用就是互操作性的问题,也影响应用的软件体系结构。
软件架构风格是指描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。
风险点:是指架构设计中潜在的、存在问题的架构决策所带来的隐患。
敏感点:是指为了实现某种特定的质量属性,一个或多个构件所具有的特性。
权衡点:是影响多个质量属性的特性,是多个质量属性的敏感点。
1.2、架构风格比对
1.3、MVC架构
MVC 强制性地把一个应用的输入、处理、输出流程按照视图、控制、模型的方式进行分离,形成了三个核心模块:控制器、模型、视图。
(1)控制器(Controller):是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
(2)模型(Mode1):是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。模型表示业务数据和业务逻辑。
(3)视图(View):是应用程序中处理数据显示的部分。通常视图是依据模型数据创建的。是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。
1.4、J2EE体系
客户层组件:J2EE应用程序可以是基于web 方式的,也可以是基于传统方式的.静态的 HTML(标准通用标记语言下的一个应用)页面和Applets 是客户层组件
web 层组件:J2EEweb层组件可以是JSP页面或Servlet。
业务层组件:业务层代码的逻辑用来满足特定领域的业务逻辑处理。
EJB是JavaEE服务器端组件模型,设计目标与核心应用是部署分布式应用程序。简单来说就是把已经编写好的程序(即:类)打包放在服务器上执行。凭借java跨平台的优势,用EB技术部署的分布式系统可以不限于特定的平台。
会话 bean:表示与客户端程序的临时交互,当客户端程序执行完后,会话 bean 和相关数据就会消失
实体 bean:表示数据库的表中一行永久的记录,当客户端程序中止或服务器关闭时,就会有潜在的服务保证实体bean的数据得以保存.
消息驱动 bean:结合了会话bean 和 JMS的消息监听器的特性,允许一个业务层组件异步接收 JMS 消息.
信息系统层:企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划(ERP),大型机事务处理,数据库系统,和其它的遗留信息系统,例如,J2EE应用组件可能为了数据库连接需要访问企业信息系统。
JSP+Servlet+JavaBean+DAO
JSP:用于显示、收集数据的部分。作为MVC 中的视图 V。
Servlet:作为业务逻辑层,用于处理复杂的业务逻辑,如验证数据、实例化JavaBean、调用 DAO连接数据库等。作为MVC中的控制器C。在其中会调用Service方法处理服务。
JavaBean:用于数据的封装,方便将查询结果在servlet与jsp 页面之间进行传递等。
DAO:用于连接数据库及进行数据库的操作如:查询、删除、更改等。
DAO与JavaBean 合在一起为 MVC中的模型 M。
基本流程:
JSP 发一个数据到 servlet,servlet 收到后做下解析再根据数据调用相应的 service 去服务,service 如果有要调用数据库就通过 DAO跟数据库交互,使用JavaBean 完成封装,返回结果给servlet,servlet 再返回给 JSP。
1.5、面向服务的架构SOA
ESB 特点:
1、SOA 的一种实现方式,ESB 在面向服务的架构中起到的是总线作用,将各种服务进行连接与整合;
2、描述服务的元数据和服务注册管理:
3、在服务请求者和提供者之间传递数据,以及对这些数据进行转换的能力,并支持由实践中总结出来的一些模式如同步模式、异步模式等;
4、发现、路由、匹配和选择的能力,以支持服务之间的动态交互,解耦服务请求者和服务提供沓高级一些的能力,包括对安全的支持、服务质量保证、可管理性和负载平衡等。
ESB的主要功能:
服务位置透明性;
传输协议转换;
消息格式转换;
消息路由;
消息增强;
安全性;
监控与管理。
2、系统开发基础
考察:
UML的图、关系的识别、设计模式识别
数据流图、E-R图、信息安全、项目管理-进度管理-关键路径
2.1、结构化
结构化特点:
自顶向下,逐步分解,面向数据。
三大模:
功能模型(数据流图)、行为模型(状态转换图)、数据模型(E-R图)以及数据字典(数据元素、数据结构、数据流、数据存储、加工逻辑、外部实体)。
2.2、用例建模
用例图:静态图,展现了一组用例、参与者以及它们之间的关系。用例图中的参与者是人、硬件或其他系统可以扮演的角色;用例是参与者完成的一系列操作。
用例之间的关系(包含 include、扩展 extend、泛化),
例如:
登记外借信息用例包含用户登录用例,因为每次如果要登记外借信息,必然要先进行用户登录。
而查询书籍信息的扩展是修改书籍信息,是因为每次查询书籍信息后,发现有错误才会修改,否则不修改,不是必要的操作。
因此,区分用例间的关系是包含还是扩展,关键在于是不是必须操作。
数据流图:
E-R图
进度管理:
PERT(项目评估与评审技术)图是一种图形化的网络模型,描述一个项目中任务和任务之间的关系,每个节点表示一个任务,通常包括任务编号、名称、开始和结束时间、持续时间和松弛时间。
Gantt 图是一种简单的水平条形图,它以一个日历为基准描述项目任务,横坐标表示时间,纵坐标表示任务,图中的水平线段表示对一个任务的进度安排,线段的起点和终点对应在横坐标上的时间分别表示该任务的开始时间和结束时间,线段的长度表示完成该任务所需的时间。
PERT 图主要描述不同任务之间的依赖关系:Gantt 图主要描述不同任务之间的重叠关系。
关键路径:
项目中的最短工期