• 软件复用与软件构造技术
  1. 软件复用行为主要发生维度

时间维度:使用以前的软件版本作为新版本的基础,加入新功能,适应新需求,即软件维护。

平台维度:以某平台上的软件为基础,修改和运行平台相关的部分,使其运行于新平台,即软件移植。

应用维度:将某软件(或其中构建)用于其他应用系统中,新系统具有不同功能和用途。即真正的软件复用。

  1. 如何实现复用

软件复用的三个基本问题:

  1. 必须有可以复用的对象
  2. 复用对象必须是有用的
  3. 复用者要知道如何使用被复用的对象

软件复用包括两个相关的过程:

  1. 可复用软件(构件)的开发
  2. 基于可复用软件(构件)的应用系统构造(集成和组装)
  1. 实现软件复用的关键因素

实现软件复用的各种技术因素和非技术因素是互相联系的. 它们结合在一起, 共同影响软件复用的实现。

关键因素包括:

1.软件构件技术 2.软件构架 3.领域工程 4.软件再工程

5.开放系统技术 6.软件过程 7.CASE 技术 8.非技术因素

  1. 软件构件技术

构件(Component):是指应用系统中可以明确辨识的构成成分。而可复用构件(Reusable Component)是指具有相对独立的功能和可复用价值的构件。

可复用构件应具备以下属性:

①有用性 ②可用性 ③质量 ④适应性 ⑤可移植性

软件构件技术:支持软件复用的核心技术, 是近几年来迅速发展并受到高度重视的一个学科分支.其主要研究内容。 主要包括:

(1)构件获取:有目的的构件生产和从已有系统中挖掘提取构件

(2)构件模型:研究构件的本质特征及构件间的关系

(3)构件描述语言:以构件模型为基础, 解决构件的精确描述、理解及组装问题

(4)构件分类与检索:研究构件分类策略、组织模式及检索策略, 建立构件库系统, 支持构件的有效管理

(5)构件复合组装:在构件模型的基础上研究构件组装机制, 包括源代码级的组装和基于构件对象互操作性的运行级组装

(6)标准化:构件模型的标准化和构件库系统的标准化.

  1. 软件再工程技术

软件再工程是一个工程过程,它将逆向工程,重构和正向工程组合起来,将现存系统重新构造为新的形式,再工程的基础是系统理解,包括对运行系统、源代码、设计、分析和文档等的全面理解。

  • C/SB/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体系结构下,用户界面通过浏览器实现,一部分事务逻辑在前端实现,主要事务逻辑在服务器端实现

不足

  1. 开发成本较高
  2. 客户端程序设计复杂
  3. 软件移植困难
  4. 软件维护与升级困难
  1. 缺乏对动态界面的支持能力,没有集成有效的数据库处理功能
  2. 系统扩展能力较差,安全性难以控制
  3. 数据查询等响应速度远远低于C/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体系结构。

  • 实战项目技术简述 

实战项目技术简述:本节内容中的数据来多个公司的数十位一线开发技术人员,通过调研表的形式,在不涉及项目具体细节及保密技术的情况下,汇总实战项目中的技术关键点,主要包含了:

  1. 实际开发中使用的技术框架
  2. 项目开发语言
  3. 数据存储方式
  4. 项目中的优化策略
  5. 访问负载均衡

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混合模型及实战项目技术简述相关推荐

  1. 构件组装-理论与技术

    第二章 相关理论与技术 本章主要介绍了本文研究的相关理论与技术,包括构件组装相关理论.SOA相关技术标准.OSGi相关技术标准.模型驱动相关技术标准.代码生成相关概念与技术以及领域工程相关理论,这些理 ...

  2. 基于计算机视觉的构件表面缺陷特征提取

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|新机器视觉 表面缺陷检测以及特征提取,所涉及的范围是非常广 ...

  3. revit翻模中需要绘制路径和边界的构件(楼板,屋顶)怎么做不出错?

    revit翻模中需要绘制路径和边界的构件(楼板,屋顶)怎么做不出错?在项目中新建楼板.屋顶时最好不要在其创建状态下进行,容易出错.具体操作如下: 这种情况下想保存新建的屋顶必须在编辑完成后绘制一个屋顶 ...

  4. 系统架构师论文-论基于构件的软件开发(测井资料处理与解释集成软件)

    论基于构件的软件开发 –测井资料处理与解释集成软件 [摘要] 去年初,单位承担了新立的"测井资料处理与解释集成软件"项目,目的是集成目前国内零敬的测井解释方法,我有幸参加该项目,并 ...

  5. Revit中如何将构件载入自己创建的楼中

    当我们做一个楼群时,一般会有一个模板楼给我们参考,而楼群为了统一风格,装饰都是一样的,那么我们为了节省时间,该如何将模板楼上的构件载入到我们自己创建的楼中呢?下面请看步骤. 1. 打开模板楼" ...

  6. 博主应邀参加YOCSEF虚拟化技术论坛

    发布日期:  2007-11-18   中国计算机学会青年计算机科技论坛<?xml:namespace prefix = o ns = "urn:schemas-microsoft-c ...

  7. 架构设计 例子和实践

    系统设计说明书(架构.概要.详细)目录结构 虽然这些文档一般来说公司都是有模板的,但我写这些文档以来基本上是每写一次就把目录结构给改一次,应该说这是因为自己对这些文档的理解开始加深,慢慢的越来越明白这 ...

  8. 从前端智能化看“低代码/无代码”

    简介: 什么是低代码/无代码开发?业界对于低代码/无代码开发是否存在其他不同的理解?低代码开发和无代码开发之间的区别是什么? 作者 | 甄子 来源 | 阿里技术公众号 一 概念 1 什么是低代码/无代 ...

  9. 前端代码为什么会有低代码及无代码

    概念 什么是低代码/无代码开发?业界对于低代码/无代码开发是否存在其他不同的理解? 行业里流行观点,低代码是更加易用的搭建系统,无代码是图形化和可视化编程.这种观点把低代码和无代码开发分别置于 UI ...

最新文章

  1. python 归并排序,合并有序数组,逆序对个数
  2. Altium Designer -- PCB设置板框
  3. socket网络编程——网络编程接口
  4. 李幸原:看好实时音视频在教育与医疗的前景
  5. pythonpil模块安装_centos 安装python PIL模块
  6. this 的指向问题
  7. ajax+lazyload时lazyload失效问题及解决
  8. 计算机网络的最短帧长公式,每日一题 | CSMA/CD协议的最短帧长公式
  9. unity平行光太亮?物体发白?可能你使用了2个或多个平行光
  10. Spring : @Qualifier 注解
  11. Android PackageManager 详解
  12. 10款屏幕取色器/颜色拾取工具软件介绍及下载地址(附截图)
  13. hdu 5208 Where is Bob
  14. “凸现”三围的健身运动法(图)
  15. Debezium报错处理系列九:“ddl“ : “# Dummy event replacing event type 160 that slave cannot handle.“
  16. 矩阵的对数运算公式_2021高考总复习数学对数与对数函数
  17. 特征锦囊:怎么找出数据集中有数据倾斜的特征?
  18. 短信服务之阿里云平台
  19. 基于MATLAB的离焦模糊图像复原
  20. 【前端页面缓存技术方案】

热门文章

  1. Aspose.Cells企业案例:Setec 为物联网传感器和能源节约和消耗生成自动内部报告
  2. SlackwareLinux安装速成班(转)
  3. 疯狂的麦克斯java游戏_疯狂的麦克斯
  4. CCF ChinaSoft 2022预告丨形式化方法工业应用前沿分论坛 暨中科国创高可信联合上海控安新品发布...
  5. Altium Designer 往元件库中添加新元件
  6. 有什么好的学编程的网站或者是软件?『编程入门』?
  7. 划词翻译—多种翻译平台集合体积不足1mb——QTranslate
  8. 红皮书 Object
  9. 求素数/质数 简单Java算法
  10. 绘画教程:日式温泉场景怎么画?露天浴场的正确画法!