当前位置: 首页 > news >正文

软考架构-构件技术

一、软件架构概述

从需求分析到软件设计之间的过渡过程,称为软件建构

软件架构解决了需求到设计之间的问题

架构体系:描述构建和连接件的蓝图

二、软件架构设计与声明周期

1、需求分析阶段:需求分析是解决什么问题,面对的是问题空间。架构设计是怎么解决问题,面对的是解空间。

从需求到架构设计关注的问题:

        ① 如何根据需求模型构建SA模型

        ②如何保证模型转换的可追踪性

2、设计阶段:这一阶段SA主要研究的是  SA模型的描述、SA模型的设计与分析方法、SA设计经验的总结与复用

SA模型描述的研究分为:SA的基本概念(构件和连接子(连接件:构件和构件之间如何连接的))、体系结构描述语言ADL(ADL:架构设计的描述语言)、SA模型的多视图表示(图形化展示)

3、实现阶段:实现SA设计向实现的转换(把高层次设计落地)

        主要表现在以下几个方面

        ①研究基于SA的开发过程支持(基于软件架构的开发),如项目组织结构、配置管理等

        ②从SA向实现过渡的途径(如何实现),如程序设计语言元素引入SA阶段、模型映射、构建组装、复用中间件等

        ③研究基于SA的测试技术

4、构件组装阶段:可复用构件的组装、消除构件之间的失配问题。

SA设计模型起到系统蓝图的作用,根据蓝图更好的去实现

概要设计:提供了系统的模块结构图

5、部署阶段:

SA对部署的作用:架构图来指导软硬件模型部署、基于SA模型可以选择合理的部署方案

6、后开发阶段:部署安装之后的阶段,这一阶段SA主要围绕维护、演化、复用等方面进行研究

研究方向:

①动态软件体系结构:架构在运行的时候会发生改变,需要研究架构能否支持这些改变

运行时变化:内部执行、外部请求,比如超链接的跳转、跨域请求

②体系结构恢复与重建:从已有系统中获取架构体系

三、构件

对象(类)---模块(bean、dao、controller)----构件(jar包)-----服务(服务)

1、构件概念

构件是一个独立可交付的单元,外界通过接口访问其提供的服务(封装了很多功能的函数,对外提供接口,外界调用他的接口)

是由一组原子构件组成

2、原子构件

是一个模块和一组资源,是部署、版本控制和替换的基本单元,通常成组的部署,也可单独部署

3、模块

是不带单独资源的原子构件,是一组类和可能得非面向对象的结构体(过程或函数)

4、构件特性

独立部署单元、第三方组装单元、没有(外部的)可见状态

一个构件可包含多个类元素,但一个类元素只能属于一个构件

5、对象的特性

一个实例单元、可具有状态、封装了自己的状态和行为

6、对象状态

临时状态:是指从对象通过 new 语句创建到被持久化之前的状态,此时对象不在 Session 的缓存中。(已创建未被调用)

持久化状态:是指对象被持久化到 Session 对象被销毁之前的状态,此时对象在Session的缓存中。(调用中)

游离状态:是指从持久化对象的 Session 对象被销毁到该对象消失之前的状态,此时对象不在 Session 的缓存中。(调用后,释放掉)

7、构件接口

接口标准化:对接口中的消息格式、模式和协议标准化,关注输入输出的消息

8、面向构件的变成(COP)

需要基本支持:

①多态性(可替代性)

②模块封装性(高层次信息隐藏)

③后期的绑定与装载(独立部署)

④安全性(类型和模块安全性)

9、构件标准

①EJB(Enterprise Java Bean)企业级应用程序:分别是会话Bean(Session Bean)、实体Bean(Entity Bean)、消息驱动Bean(Message-driven Bean)

会话Bean:用于会话的Bean

                无状态会话:发邮件,发送方和接收方建立会话连接,发邮件后不知邮件是否被接收

                有状态会话:发邮件,发送方和接收方建立会话连接,通过消息来监控邮件是否被接收

实体Bean:具体的和功能相关持久的存储的类

消息驱动Bean:异步通信

②COM:是微软公司的

③CORBA:分布式对象请求代理服务

三个层次:

对象请求代理:不同对象之间通过ORB进行通讯和互操作

公共对象服务:在ORB上定义了很多公共服务,比如并发服务、名字服务、事务服务、安全服务等

公共设施:规定了组件框架,提供可直接为业务对象使用的服务,规定业务对象有效协作所需的协定规则

相关文章:

  • 鸿蒙高级开发者认证题库
  • 谷粒商城实战笔记-261-商城业务-订单服务-页面环境搭建
  • 普通项目解决跨域问题和springSecurity解决跨域问题
  • 卸载重装redis
  • Linux自旋锁和读写锁
  • 用java实现的一个本地文件队列,支持并发消费与顺序消费
  • Spring Cloud Consul精选面试题及答案
  • 大模型如何赚钱,杀手级应用是什么、创业机会在哪里?
  • C3面:ASP.NET MVC 中还有哪些注释属性用来验证?
  • 代码随想录算法训练营第十一天|150. 逆波兰表达式求值 、239. 滑动窗口最大值、347.前 K 个高频元素
  • ue5远程渲染和本地渲染的区别,及云渲染的联系
  • 服务器被渗透的表现及检测方法
  • 从匿名内部类到Lambda表达式:Java编程的优雅进化
  • 字符串函数
  • 第3章-01-Python语言基础一篇通
  • Web-ssrfme
  • PowerShell 一键配置IP
  • 如何使用ssm实现基于java斗车交易系统设计与实现+vue
  • 【数据结构】八大排序
  • 每日一练【最大连续1的个数 III】
  • 陕西省通报6起违反八项规定典型问题,省卫健委原主任刘宝琴违规收受礼品礼金
  • “75后”袁达已任国家发改委秘书长
  • 中国空间站首批在轨繁育果蝇即将返回地球,有望获得多项科学成果
  • 癌症来临前,可能伪装成这几种常见病,千万别大意
  • 王毅:坚持金砖团结合作,改革完善全球治理
  • 新经济与法|如何治理网购刷单与控评?数据合规管理是关键