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

系统架构设计高级技能 · 软件产品线

现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。
Now everything is for the future of dream weaving wings, let the dream fly in reality.

点击进入系列文章目录

系统架构设计高级技能 · 软件产品线

  • 一、产品线概述
  • 二、产品线的过程模型
    • 2.1 双生命周期模型
    • 2.2 三生命周期模型
    • 2.3 SEI模型
  • 三、产品线的组织结构
  • 四、产品线的建立方式

在这里插入图片描述

一、产品线概述

软件产品线 主要由两部分组成,分别是 核心资源产品集合

核心资源 是领域工程的所有结果的集合,是产品线中产品构造的基础。核心资源必定包含产品线中所有产集共享的产品线架构,新设计开发的或者通过对现有系统的再工程得到的、需要在整个品线中系统化重用的软件构件。与软件构件相关的测试计划、测试实例以及所有设计文档, 需求说明书、领域模型、领域范围的定义, 以及采用COTS的构件也属于核心资源。

产品线架构构件 是用于软件产品线中的产品构建的最重要的 核心资源

软件产品线开发4个基本技术特点,即 过程驱动、特定领域、技术支持和架构为中心

与其它软件开发方法相比,组织选择软件产品线的宏观上的原因 有:

  • 对产品线及其实现所需的专家知识领域的清楚界定;
  • 对产品线的长期远景进行了战略性规划。
    在这里插入图片描述

二、产品线的过程模型

软件产品线的过程模型主要有双生命周期模型、SEI模型和三生命周期模型。

2.1 双生命周期模型

双生命周期模型 分成两个重叠的生命周期:领域工程和应用工程。

领域工程使用DSSA,主要任务有领域分析,领域设计,领域实现。

在这里插入图片描述

领域工程主要任务:

  • 领域分析,利用现有系统的设计、架构和需求建立领域模型。
  • 领域设计,用领域模型确定领域/产品线的共性和可变性,为产品线设计架构。
  • 领域实现,基于领域架构开发领域可重用资源(构件、文档、代码生成器)。
  • 应用工程领域:需求分析,系统设计,系统实现。

应用工程在领域工程结果基础上构造新产品:

  • 需求分析,划分领域公共需求和独特需求,得出系统说明书。
  • 系统设计,在领域架构基础上,结合系统独特需求设计应用的软件架构。
  • 系统实现,按应用架构,用领域可重用资源实现领域公共需求,用定制开发的构件满足系统独特需求,构件新的系统。

2.2 三生命周期模型

三生命周期模型为有多个产品线的大型企业增加企业工程流程,以便在企业范围内对所有资源的创建、设计和重用提供合理规划。
在这里插入图片描述

2.3 SEI模型

SEI模型基本活动分为三部分,分别是核心资源开发(即领域工程)、产品开发(即应用工程)和管理。
在这里插入图片描述

SEI模型的主要特点:

  • 循环重复是产品开发过程的特征,也是核心资源开发、产品线开发以及核心资源和产品之间协作的特征。
  • 核心资源开发和产品开发没有先后之分。
  • 管理活动协调整个产品线开发过程的各个活动、对产品线的成败负责。
  • 核心资源开发和产品开发是两个互动的过程,三个活动和整个产品线开发之间也是双向互动的。

核心资源开发活动的目标是建立产品线的生产能力。根据输入端的产品约束、框架、生产约束、生产策略和遗留资产清单,核心资产开发活动产出三项输出:

  • 产品线范围:产品线范围是关于构成产品线的产品或产品线所能包括的产品的描述,该描述列举了所有产品的共性和他们之间彼此的差异,包括产品所提供的特征或操作、产品所表现出的性能和其他产品属性等。
  • 核心资产:是产品线中产品生产的基础。这些资产包括产品共享的架构,以及为贯穿产品线进行系统化重用所开发的产品组件。提供了将纳入资产库的组件接口规范。
  • 生产计划:描述了如何从核心资产中生产产品。

三、产品线的组织结构

软件产品线 开发过程分为领域工程和应用工程,相应的软件开发组织结构也应该有两个基本组成部分,即负责核心资源的小组和负责产品的小组。这也是产品线开发与独立系统开发的主要区别。

组织模型 :开发部门、商务部门、领域工程部门和层次领域工程部门。

动态的组织结构 ,根据产品线的建立方式和发展阶段、成熟程度的变化,有一种组织结构向另一种组织结构演变。

组织结构类型:

  • 设立独立的核心资源小组
  • 不设立独立的核心资源小组
  • 动态的组织结构

要成功实施产品线,主要取决于以下因素:

  • 对该领域具备长期和深厚的经验
  • 一个用于构建产品的好的核心资源库
  • 好的产品线架构
  • 好的管理(软件资源、人员组织、过程)支持

四、产品线的建立方式

划分依据 :用演化方式和革命方式引入产品线开发过程,基于现有产品还是开发全新的产品线。

四种方式 的基本特征如下:

  • 将现有的产品演化为产品线
  • 用软件产品线替代现有产品集
  • 全新软件的产品的演化
  • 全新软件产品线的开发
演化方式革命方式
基于现有产品基于现有产品架构设计产品线的架构,经演化现有构件,开发产品线构件核心资源的开发基于现有产品集的需求和可预测的、将来需求的超集
全新产品线产品线核心资源随产品新成员的需求而演化开发满足所有预期产品线成员的需求的核心资源

相关文章:

系统架构设计高级技能 · 软件产品线

现在的一切都是为将来的梦想编织翅膀,让梦想在现实中展翅高飞。 Now everything is for the future of dream weaving wings, let the dream fly in reality. 点击进入系列文章目录 系统架构设计高级技能 软件产品线 一、产品线概述二、产品线的过程模型2.1 双生命…...

C语言学习系列-->字符函数和字符串函数

文章目录 一、字符函数1、字符分类函数2、字符转换函数 二、字符串函数1、strlen概述模拟实现 2、strcpy概述模拟实现 3、strcat概述模拟实现 3、strcmp概述模拟实现 4、有限制的字符串函数strncpystrncatstrncmp 4、strstr概述模拟实现 一、字符函数 1、字符分类函数 包含头…...

尖端AR技术如何在美国革新外科手术实践?

AR智能眼镜已成为一种革新性的工具,在外科领域具有无穷的优势和无限的机遇。Vuzix与众多医疗创新企业建立了长期合作关系,如Pixee Medical、Medacta、Ohana One、Rods & Cones、Proximie等。这些公司一致认为Vuzix智能眼镜可有效提升手术实践&#x…...

【木板】Python实现-附ChatGPT解析

1.题目 木板 时间限制:1s 空间限制:256MB 限定语言:不限题目描述: 小明有n块木板,第i (1<=i<=n) 块木板的长度为ai.小明买了一块长度为m的木料,这块木料可以切割成任意块,拼接到已有的木板上用来加长木板。 小明想让最短的木板尽量长。 请问小明加长木板后,最短木板…...

第一章:绪论

1.1 系统架构概述 架构是体现在组件中的一个系统的基本组织、它们彼此的关系与环境的关系以及指导它的设计和发展的原则。 系统是组织起来完成某一特定功能火一组功能的组件集。系统这个术语包括了单独的应用程序、传统意义上的系统、子系统、系统之系统、产品线、整个企业及…...

C++面试知识点总结

知识点总结 <<符号表示该语句将把这个字符串发送给cout&#xff1b;该符号指出了信息流动的路径&#xff1b;cout的对象属性包括一个插入运算符&#xff08;<<&#xff09;&#xff0c;它可以将其右侧的信息插入到流中&#xff0c;endl:重起一行。在输出流中插入en…...

从智能手机到智能机器人:小米品牌的高端化之路

原创 | 文 BFT机器人 前言 在前阵子落幕的2023世界机器人大会“合作之夜”上&#xff0c;北京经济技术开发区管委会完成了与世界机器人合作组织、小米机器人等16个重点项目签约&#xff0c;推动机器人创新链和产业链融合&#xff0c;其中小米的投资额达到20亿&#xff01; 据了…...

深度学习推荐系统(八)AFM模型及其在Criteo数据集上的应用

深度学习推荐系统(八)AFM模型及其在Criteo数据集上的应用 1 AFM模型原理及其实现 沿着特征工程自动化的思路&#xff0c;深度学习模型从 PNN ⼀路⾛来&#xff0c;经过了Wide&#xff06;Deep、Deep&#xff06;Cross、FNN、DeepFM、NFM等模型&#xff0c;进⾏了大量的、基于不…...

【Spring】aop的底层原理

&#x1f384;欢迎来到边境矢梦的csdn博文&#x1f384; &#x1f384;本文主要梳理 Spring 中的切面编程aop的底层原理和重点注意的地方 &#x1f384; &#x1f308;我是边境矢梦&#xff0c;一个正在为秋招和算法竞赛做准备的学生&#x1f308; &#x1f386;喜欢的朋友可以…...

微信小程序开发---基本组件的使用

目录 一、scroll-view &#xff08;1&#xff09;作用 &#xff08;2&#xff09;用法 二、swiper和swiper-item &#xff08;1&#xff09;作用 &#xff08;2&#xff09;用法 三、text &#xff08;1&#xff09;作用 &#xff08;2&#xff09;使用 四、rich-tex…...

SpringBoot国际化配置组件支持本地配置和数据库配置

文章目录 0. 前言i18n-spring-boot-starter1. 使用方式0.引入依赖1.配置项2.初始化国际化配置表3.如何使用 2. 核心源码实现一个拦截器I18nInterceptorI18nMessageResource 加载国际化配置 3.源码地址 0. 前言 写个了原生的SpringBoot国际化配置组件支持本地配置和数据库配置 背…...

Shell编程之sort

sort 命令将文件的每一行作为比较对象&#xff0c;通过将不同行进行相互比较&#xff0c;从而得到最终结果。从首字符开始&#xff0c;依次按ASCII码值进行比较&#xff0c;最后将结果按升序输出。 基本语法 sort (选项)(参数) 常用选项 常用选项 -n根据字符串的数字比较-r…...

windows docker 容器启动报错:Ports are not available

docker 启动容器报错&#xff1a; (HTTP code 500) server error - Ports are not available: listen tcp 0.0.0.0:6379: bind: An attempt was made to access a socket in a way forbidden by its access permissions. 问题排查 检查端口是否被其它程序占用&#xff1a;nets…...

300. 最长递增子序列

题目描述 给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示…...

DNS(域名解析系统)

含义 当我们在上网要访问莫个服务器的时候&#xff0c;就需要知道服务器的IP地址&#xff0c;但IP地址是一串数字&#xff0c;虽然这串数字用点分十进制已经清晰不少了&#xff0c;但还是不利于人们记忆和传播&#xff0c;于是人们使用单词来代替IP地址&#xff08;例如baidu&a…...

解决jsp/html界面跳转servlet出现404错误的方法

解决jsp/html界面跳转servlet出现404错误的方法 最近在学习黑马项目过程中遇到的问题 问题一&#xff1a; 检查页面的跳转路径和名称拼写是否正确 问题二&#xff1a; tomcat发布项目时所使用的路径名称与项目不同 在idea右上角点击如图圈住的按钮 在deployment中更改出现…...

catface,使用Interface定义Controller,实现基于Http协议的RPC调用

catface 前言cat-client 模块EnableCatClientCatClientCatMethodCatNoteCatResponesWrapperCatClientConfigurationCatClientProviderCatClientFactoryCatSendInterceptorCatHttpCatPayloadResolverCatObjectResolverCatLoggerProcessorCatResultProcessorCatSendProcessorAbst…...

Linux:LVS (NAT群集搭建)

模拟环境 外网入口服务器 外网 192.168.8.88 内网ip 192.168.254.4 web1 服务器 ip 192.168.254.1 网关&#xff1a; 192.168.254.4 web2 服务器 ip 192.168.254.2 网关&#xff1a; 192.168.254.4 共享存储服务器 ip 192.168.254.3 介绍 访问 外网192.16…...

音乐格式转换mp3怎么转?跟着步骤操作一遍

音乐格式转换mp3怎么转&#xff1f;mp3&#xff0c;一种音频数据压缩格式&#xff0c;由于其极具优势的文件尺寸小和高质量音效&#xff0c;自诞生之日起就占据了主流音乐格式的头把交椅&#xff0c;并且至今仍然受到用户的青睐&#xff0c;稳居音乐领域的霸主地位。在我们繁忙…...

it监控系统可以电脑吗?有什么效果

IT业务监控已经成为公司不可或缺的一部分&#xff0c;以确保业务的正常运行&#xff0c;提高企业的竞争能力。本文将详细介绍IT业务监控的必要性、实施方法以及如何选择合适的监控工具。 IT业务监控的必要性 确保业务稳定运行  IT业务监控可以实时检测公司的工作流程&#x…...

测试微信模版消息推送

进入“开发接口管理”--“公众平台测试账号”&#xff0c;无需申请公众账号、可在测试账号中体验并测试微信公众平台所有高级接口。 获取access_token: 自定义模版消息&#xff1a; 关注测试号&#xff1a;扫二维码关注测试号。 发送模版消息&#xff1a; import requests da…...

(十)学生端搭建

本次旨在将之前的已完成的部分功能进行拼装到学生端&#xff0c;同时完善学生端的构建。本次工作主要包括&#xff1a; 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...

Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?

Golang 面试经典题&#xff1a;map 的 key 可以是什么类型&#xff1f;哪些不可以&#xff1f; 在 Golang 的面试中&#xff0c;map 类型的使用是一个常见的考点&#xff0c;其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...

【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)

升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点&#xff0c;但无自动故障转移能力&#xff0c;Master宕机后需人工切换&#xff0c;期间消息可能无法读取。Slave仅存储数据&#xff0c;无法主动升级为Master响应请求&#xff…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

管理学院权限管理系统开发总结

文章目录 &#x1f393; 管理学院权限管理系统开发总结 - 现代化Web应用实践之路&#x1f4dd; 项目概述&#x1f3d7;️ 技术架构设计后端技术栈前端技术栈 &#x1f4a1; 核心功能特性1. 用户管理模块2. 权限管理系统3. 统计报表功能4. 用户体验优化 &#x1f5c4;️ 数据库设…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

Bean 作用域有哪些?如何答出技术深度?

导语&#xff1a; Spring 面试绕不开 Bean 的作用域问题&#xff0c;这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开&#xff0c;结合典型面试题及实战场景&#xff0c;帮你厘清重点&#xff0c;打破模板式回答&#xff0c…...

Linux系统部署KES

1、安装准备 1.版本说明V008R006C009B0014 V008&#xff1a;是version产品的大版本。 R006&#xff1a;是release产品特性版本。 C009&#xff1a;是通用版 B0014&#xff1a;是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存&#xff1a;1GB 以上 硬盘&#xf…...

热烈祝贺埃文科技正式加入可信数据空间发展联盟

2025年4月29日&#xff0c;在福州举办的第八届数字中国建设峰会“可信数据空间分论坛”上&#xff0c;可信数据空间发展联盟正式宣告成立。国家数据局党组书记、局长刘烈宏出席并致辞&#xff0c;强调该联盟是推进全国一体化数据市场建设的关键抓手。 郑州埃文科技有限公司&am…...