1、什么是产品

在这里插入图片描述

从项目到产品

产品:满足行业共性需求的标准产品。即要能够做到配置化的开发,用同一款产品最大限度地满足不同客户的需求,同时让产品具有可以快速响应客户需求变化的能力。

好的产品一定吸收了多个项目的共性,一定是多个项目经验的集大成者。

2、产品化的理论支撑

在这里插入图片描述

(1)组合原理:三元素=功能、逻辑、模型,表达的是业务的功能、业务逻辑和模型(将要素和逻辑整合在一起的形式)。

(2)基干原理:三元素=组件、机制、系统,表达的是系统的要素、运行机理和系统(将图16-15中的A、B、C、D整合在一起的形式)。

在系统设计时要将业务元素(要素、逻辑、模型)换成系统元素(组件、机制、系统),基干原理是组合原理在应用设计阶段的不同表达形式。

所有系统的运行都是由基干原理三元素按照基干模型给出的规律进行反复的循环,这样就找到了系统中业务的运行机理。业务的内容、架构的形态可以有无数种,但是在系统中的运行机理都是一样的,即组件+机制。

将稳定的内容和易变的内容分离开,不易变化的内容归集到组件中,易变的内容归集到机制中。在产品的设计和实现时,将易变的功能做成可配置的,如通过改动参数适应需求变化,这样就达到了产品的应变效果。

在这里插入图片描述

机制是“设置于组件之间的一种关联作用,可以使组件或业务处理按照某种规律反复进行”,机制是通过功能和规则实现的。

3、如何实现产品化

1、构件化

在这里插入图片描述

构件化思路:将传统上用编码直接编写程序的方式改为用编码开发制作小的控件,再由小控件组装成大的构件的方式来开发软件

采用4层的实现方式。

第一层:首先用编码的方式开发最小的控件:窗体、按钮、输入框等。

第二层:用“控件+规则”的方式形成组件。

第三层:用“组件+机制”的方式形成模块/系统。

第四层:用“系统+机制”的方式形成产品。

2、平台化

在这里插入图片描述

通过制造最小的控件和规则,由这两者不断地组合“形成”上一级的构件。即建立装配式平台。

3、配置化

在这里插入图片描述

在这里插入图片描述

〇 构件:比组件更小的零件,由构件(按钮、树表等)可以装配出软件的界面。

〇 规则:机制是用规则来表达的,系统执行的是规则,因此规则就等于机制。

将构成软件(组件)的内容进行拆分,形成一个一个的单独构件,然后逐一完成单独构件的制作,这就是软件工业化开发的基本思路。

4、设计文档生成自动化

在这里插入图片描述

在对各类界面上的控件、控制规则等进行拖曳时,可以同时记录这些活动,并产生对应的文字,从而自动形成设计文档。

4、软件开发智能化:设计工程化、开发工业化、产品构件化

在这里插入图片描述

软件设计工程化:按照工程化的要求,将软件设计过程的各项工作进行量化和标准化,并在实施工程中实现各阶段成果的传递与继承。

软件开发工业化:按照工业生产的方式,利用少码、无码的软件开发技术,从构件形成组件,再由组件形成模块和系统。

设计工程化、开发工业化、产品构件化,才能最终实现软件开发智能化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/83151.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/83151.shtml
英文地址,请注明出处:http://en.pswp.cn/web/83151.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…

sqlsugar WhereIF条件的大于等于和等于查出来的坑

一、如下图所示,当我用 .WhereIF(input.Plancontroltype > 0, u > u.Plancontroltype (DnjqPlancontroltype)input.Plancontroltype) 这里面用等于的时候,返回结果一条数据都没有。 上图中生成的SQL如下: SELECT id AS Id ,code AS …

centos 7 部署awstats 网站访问检测

一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…

React从基础入门到高级实战:React 实战项目 - 项目四:企业级仪表盘

React 实战项目:企业级仪表盘 欢迎来到 React 开发教程专栏 的第 29 篇!在前 28 篇文章中,我们从 React 的基础概念逐步深入到高级技巧,涵盖了组件设计、状态管理、路由配置、性能优化和实时通信等核心内容。这一次,我…

STM32----IAP远程升级

一、概述: IAP,全称是“In-Application Programming”,中文解释为“在程序中编程”。IAP是一种对通过微控制器的对外接口(如USART,IIC,CAN,USB,以太网接口甚至是无线射频通道&#…

模拟搭建私网访问外网、外网访问服务器服务的实践操作

目录 实验环境 实践要求 一、准备工作 1、准备四台虚拟机,分别标号 2、 防火墙额外添加两块网卡,自定义网络连接模式 3、 关闭虚拟机的图形管理工具 4、关闭防火墙 5、分别配置四台虚拟机的IP地址,此处举一个例子(使用的临…

删除远程已经不存在但本地仍然存在的Git分支

1. 获取远程分支列表 首先,确保你获取了远程仓库的最新分支信息: git fetch -p -p 参数会自动清理本地仓库中那些在远程已经被删除的分支的引用。 2. 查看本地分支与远程分支的对比 运行以下命令来查看哪些本地分支没有对应的远程分支: …

GIT(AI回答)

在Git中,git push 命令主要用于将本地分支的提交推送到‌远程仓库‌(如GitHub、GitLab等)。如果你希望将本地分支的改动同步到另一个‌本地分支‌,这不是 git push 的设计目的。以下是正确的替代方法: 方法1&#xff1…

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…

React - 组件通信

组件通信 概念:组件通信就是组件之间数据传递,根据组件嵌套关系不同,有不同的通信方法 父传子 —— 基础实现 实现步骤 父组件传递数据 - 在子组件标签上绑定属性子组件接收数据 - 子组件通过props参数接收数据 声明子组件并使用 //声明子…

RKNN开发环境搭建2-RKNN Model Zoo 环境搭建

目录 1.简介2.环境搭建2.1 启动 docker 环境2.2 安装依赖工具2.3 下载 RKNN Model Zoo2.4 RKNN模型转化2.5编译C++1.简介 RKNN Model Zoo基于 RKNPU SDK 工具链开发, 提供了目前主流算法的部署例程. 例程包含导出RKNN模型, 使用 Python API, CAPI 推理 RKNN 模型的流程.   本…

计算机视觉顶刊《International Journal of Computer Vision》2025年5月前沿热点可视化分析

追踪计算机视觉领域的前沿热点是把握技术发展方向、推动创新落地的关键,分析这些热点,不仅能洞察技术趋势,更能为科研选题和工程实践提供重要参考。本文对计算机视觉顶刊《International Journal of Computer Vision》2025年5月前沿热点进行了…

互联网大厂Java求职面试:云原生与微服务架构的深度探讨

互联网大厂Java求职面试:云原生与微服务架构的深度探讨 第一轮提问 面试官: “郑薪苦,假设我们要设计一个大规模电商平台的微服务架构,你会如何设计其订单服务?” 郑薪苦: “首先,我会采用…

STM32实战:数字音频播放器开发指南

基于STM32的数字音频播放器/效果器是个很棒的项目!这涉及到多个嵌入式开发的关键技术点。下面我为你拆解实现方案和关键学习内容: 系统架构概览 [SD Card] -> [File System (FATFS)] -> [Audio Decoder (WAV/MP3)] -> [DSP Processing (EQ, R…

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…

【Vue】scoped+组件通信+props校验

【scoped作用及原理】 【作用】 默认写在组件中style的样式会全局生效, 因此很容易造成多个组件之间的样式冲突问题 故而可以给组件加上scoped 属性, 令样式只作用于当前组件的标签 作用:防止不同vue组件样式污染 【原理】 给组件加上scoped 属性后…

IDEA 中 Maven Dependencies 出现红色波浪线的原因及解决方法

在使用 IntelliJ IDEA 开发 Java 项目时,尤其是基于 Maven 的项目,开发者可能会遇到 Maven Dependencies 中出现红色波浪线的问题。这种现象通常表示项目依赖未能正确解析或下载,导致代码提示错误、编译失败等问题。本文将详细分析该问题的常…

把二级域名绑定的wordpress网站的指定页面

要将二级域名(如 beijing.wodepress.com)绑定到 WordPress 网站的指定页面(如 wodepress.com/beijing),你需要完成以下步骤: 步骤 1:创建二级域名 登录你的域名控制面板(如 cPanel、阿里云、腾讯云等)。 找到 DNS 管理 或 域名解析 部分。…

FreeRTOS学习01_移植FreeRTOS到STM32(图文详解)

移植FreeRTOS到STM32 1、前言2、获取 STM32 的裸机工程模板3、下载 FreeRTOS V9.0.0 源码4、FreeRTOS文件夹内容简介5、移植FreeRTOS5.1 更改STM32工程模板文件夹名字5.2 提取FreeRTOS最简源码5.3 拷贝 FreeRTOSConfig.h 文件到 user 文件夹5.4 添加 FreeRTOS 源码到工程组文件…

12.找到字符串中所有字母异位词

🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…