软件复用及构件、C/S与B/S混合模型及实战项目技术简述
- 软件复用与软件构造技术
- 软件复用行为主要发生维度
时间维度:使用以前的软件版本作为新版本的基础,加入新功能,适应新需求,即软件维护。
平台维度:以某平台上的软件为基础,修改和运行平台相关的部分,使其运行于新平台,即软件移植。
应用维度:将某软件(或其中构建)用于其他应用系统中,新系统具有不同功能和用途。即真正的软件复用。
- 如何实现复用
软件复用的三个基本问题:
- 必须有可以复用的对象
- 复用对象必须是有用的
- 复用者要知道如何使用被复用的对象
软件复用包括两个相关的过程:
- 可复用软件(构件)的开发
- 基于可复用软件(构件)的应用系统构造(集成和组装)
- 实现软件复用的关键因素
实现软件复用的各种技术因素和非技术因素是互相联系的. 它们结合在一起, 共同影响软件复用的实现。
关键因素包括:
1.软件构件技术 2.软件构架 3.领域工程 4.软件再工程
5.开放系统技术 6.软件过程 7.CASE 技术 8.非技术因素
- 软件构件技术
构件(Component):是指应用系统中可以明确辨识的构成成分。而可复用构件(Reusable Component)是指具有相对独立的功能和可复用价值的构件。
可复用构件应具备以下属性:
①有用性 ②可用性 ③质量 ④适应性 ⑤可移植性
软件构件技术:支持软件复用的核心技术, 是近几年来迅速发展并受到高度重视的一个学科分支.其主要研究内容。 主要包括:
(1)构件获取:有目的的构件生产和从已有系统中挖掘提取构件
(2)构件模型:研究构件的本质特征及构件间的关系
(3)构件描述语言:以构件模型为基础, 解决构件的精确描述、理解及组装问题
(4)构件分类与检索:研究构件分类策略、组织模式及检索策略, 建立构件库系统, 支持构件的有效管理
(5)构件复合组装:在构件模型的基础上研究构件组装机制, 包括源代码级的组装和基于构件对象互操作性的运行级组装
(6)标准化:构件模型的标准化和构件库系统的标准化.
- 软件再工程技术
软件再工程是一个工程过程,它将逆向工程,重构和正向工程组合起来,将现存系统重新构造为新的形式,再工程的基础是系统理解,包括对运行系统、源代码、设计、分析和文档等的全面理解。
- C/S和B/S混合软件体系结构模型
C/S软件体系结构,即Client/Server(客户机/服务器)结构,是基于资源不对等,且为实现共享而提出来的,是20世纪九十年代成熟起来的技术,C/S结构将应用一分为二,服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务。
B/S软件体系结构,即Brower/Server(浏览器/服务器)结构,是基于Internet技术兴起,对C/S体系结构的一种变化与改进。在B/S体系结构下,用户界面通过浏览器实现,一部分事务逻辑在前端实现,主要事务逻辑在服务器端实现。
模型名称 |
C/S软件体系结构 |
B/S软件体系结构 |
结构 |
Client/Server(客户机/服务器) |
Brower/Server(浏览器/服务器) |
特点 |
C/S结构将应用一分为二,服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务 |
在B/S体系结构下,用户界面通过浏览器实现,一部分事务逻辑在前端实现,主要事务逻辑在服务器端实现 |
不足 |
|
|
C/S和B/S混合软件体系结构模型
传统的C/S体系结构并非一无是处,新兴的B/S体系结构也并非十全十美,所以C/S和B/S体系结构还将长期共存,其结合方式主要有两种。
1.”内外有别”模型
企业内部用户通过局域网直接访问数据库服务器,软件系统采用C/S体系结构;企业外部用户通过Internet访问Web服务器,通过Web服务器再访问数据库服务器,软件系统采用B/S体系结构。
2.”查改有别”模型
不管用户是通过什么方式(局域网或Internet)连接到系统,凡是需执行维护和修改数据操作的,就使用C/S体系结构;如果只是执行一般的查询和浏览操作,则使用B/S体系结构。
- 实战项目技术简述
实战项目技术简述:本节内容中的数据来多个公司的数十位一线开发技术人员,通过调研表的形式,在不涉及项目具体细节及保密技术的情况下,汇总实战项目中的技术关键点,主要包含了:
- 实际开发中使用的技术框架
- 项目开发语言
- 数据存储方式
- 项目中的优化策略
- 访问负载均衡
Java:常年占据热门编程语言排行榜第一,Java工程师综合就业排名第一,常应用SSM常用框架结合面向对象编程思想实现项目开发,完成Linux系统下的项目部署运行等。
方向 |
java |
java |
java |
使用语言 |
java |
java |
java |
前台框架+使用语言 |
Html5+css3,bootstrap,jquery |
node.js |
Vue node.JS webpack |
后台框架+使用语言 |
SSM框架,RabbitMQ 3.0.1,redis,OSS |
Springboot |
微服务架构 springcloud |
数据库(分布式/托管) |
分布式 Mysql |
oracle |
Oracle+Redis |
优化策略 |
消息等待序列 ActiveMQ |
||
负载均衡 |
负载均衡 nginx |
前端:前端即网站前台部分,运行在PC端,移动端等浏览器上展现给用户浏览的网页。前端技术一般分为前端设计和前端开发,前端设计一般可以理解为网站的视觉设计,前端开发则是网站的前台代码实现。
方向 |
前端 |
前端 |
使用语言 |
JavaScript |
JavaScript |
前台框架+使用语言 |
React+redux vue JavaScript |
React JavaScript |
后台框架+使用语言 |
SpringBoot+SpringCloud+docker java |
Eggjs JavaScript |
数据库(分布式/托管) |
Mysql mongdb |
分布式 Mysql |
优化策略 |
代码压缩 react diff算法 |
dll提取 打包bundle包gzip |
负载均衡 |
Python:一种面向对象的解释型计算机程序设计语言,是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议,Python语法简洁清晰,特色之一是强制用空白符(white space)作为语句缩进,具有丰富和强大的库,常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。
方向 |
Python |
使用语言 |
Python |
前台框架+使用语言 |
JavaScript |
后台框架+使用语言 |
Python+node+meteor+少量java |
数据库(分布式/托管) |
关系型和非关系型 |
优化策略 |
优化线程 |
负载均衡 |
负载以用户端为主 |
软件复用及构件、C/S与B/S混合模型及实战项目技术简述相关推荐
- 构件组装-理论与技术
第二章 相关理论与技术 本章主要介绍了本文研究的相关理论与技术,包括构件组装相关理论.SOA相关技术标准.OSGi相关技术标准.模型驱动相关技术标准.代码生成相关概念与技术以及领域工程相关理论,这些理 ...
- 基于计算机视觉的构件表面缺陷特征提取
点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|新机器视觉 表面缺陷检测以及特征提取,所涉及的范围是非常广 ...
- revit翻模中需要绘制路径和边界的构件(楼板,屋顶)怎么做不出错?
revit翻模中需要绘制路径和边界的构件(楼板,屋顶)怎么做不出错?在项目中新建楼板.屋顶时最好不要在其创建状态下进行,容易出错.具体操作如下: 这种情况下想保存新建的屋顶必须在编辑完成后绘制一个屋顶 ...
- 系统架构师论文-论基于构件的软件开发(测井资料处理与解释集成软件)
论基于构件的软件开发 –测井资料处理与解释集成软件 [摘要] 去年初,单位承担了新立的"测井资料处理与解释集成软件"项目,目的是集成目前国内零敬的测井解释方法,我有幸参加该项目,并 ...
- Revit中如何将构件载入自己创建的楼中
当我们做一个楼群时,一般会有一个模板楼给我们参考,而楼群为了统一风格,装饰都是一样的,那么我们为了节省时间,该如何将模板楼上的构件载入到我们自己创建的楼中呢?下面请看步骤. 1. 打开模板楼" ...
- 博主应邀参加YOCSEF虚拟化技术论坛
发布日期: 2007-11-18 中国计算机学会青年计算机科技论坛<?xml:namespace prefix = o ns = "urn:schemas-microsoft-c ...
- 架构设计 例子和实践
系统设计说明书(架构.概要.详细)目录结构 虽然这些文档一般来说公司都是有模板的,但我写这些文档以来基本上是每写一次就把目录结构给改一次,应该说这是因为自己对这些文档的理解开始加深,慢慢的越来越明白这 ...
- 从前端智能化看“低代码/无代码”
简介: 什么是低代码/无代码开发?业界对于低代码/无代码开发是否存在其他不同的理解?低代码开发和无代码开发之间的区别是什么? 作者 | 甄子 来源 | 阿里技术公众号 一 概念 1 什么是低代码/无代 ...
- 前端代码为什么会有低代码及无代码
概念 什么是低代码/无代码开发?业界对于低代码/无代码开发是否存在其他不同的理解? 行业里流行观点,低代码是更加易用的搭建系统,无代码是图形化和可视化编程.这种观点把低代码和无代码开发分别置于 UI ...
最新文章
- python 归并排序,合并有序数组,逆序对个数
- Altium Designer -- PCB设置板框
- socket网络编程——网络编程接口
- 李幸原:看好实时音视频在教育与医疗的前景
- pythonpil模块安装_centos 安装python PIL模块
- this 的指向问题
- ajax+lazyload时lazyload失效问题及解决
- 计算机网络的最短帧长公式,每日一题 | CSMA/CD协议的最短帧长公式
- unity平行光太亮?物体发白?可能你使用了2个或多个平行光
- Spring : @Qualifier 注解
- Android PackageManager 详解
- 10款屏幕取色器/颜色拾取工具软件介绍及下载地址(附截图)
- hdu 5208 Where is Bob
- “凸现”三围的健身运动法(图)
- Debezium报错处理系列九:“ddl“ : “# Dummy event replacing event type 160 that slave cannot handle.“
- 矩阵的对数运算公式_2021高考总复习数学对数与对数函数
- 特征锦囊:怎么找出数据集中有数据倾斜的特征?
- 短信服务之阿里云平台
- 基于MATLAB的离焦模糊图像复原
- 【前端页面缓存技术方案】
热门文章
- Aspose.Cells企业案例:Setec 为物联网传感器和能源节约和消耗生成自动内部报告
- SlackwareLinux安装速成班(转)
- 疯狂的麦克斯java游戏_疯狂的麦克斯
- CCF ChinaSoft 2022预告丨形式化方法工业应用前沿分论坛 暨中科国创高可信联合上海控安新品发布...
- Altium Designer 往元件库中添加新元件
- 有什么好的学编程的网站或者是软件?『编程入门』?
- 划词翻译—多种翻译平台集合体积不足1mb——QTranslate
- 红皮书 Object
- 求素数/质数 简单Java算法
- 绘画教程:日式温泉场景怎么画?露天浴场的正确画法!