軟件工程:如何做好軟件產品

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 的字母異位詞的起始索引。 返回的答案以數組形式表示。 字母異位詞定義: 若兩個字符串包含的字符種類和出現次數完全相同,順序無所謂,則互為…