軟體必備模組 軟體設計

2022-06-24 05:27:14 字數 1468 閱讀 8536

我想設計乙個安卓,ios或者web應用的時候,開始做軟體的步驟是什麼,有個想法,做個需求分析,然後開始設計軟體。這篇講的是設計軟體這一步。我想好了要做個什麼,然後開始幹了,不能擼起袖子開始乙個介面乙個介面寫,乙個介面乙個介面開工。該怎麼做乙個整個專案的設計圖呢?這篇主要想解決的是蓋樓如何有個基本圖紙。

uml是當時上大三的時候的一門課,印象比較深,這是一門選修,沒幾個人交作業,讓花一打uml圖,沒幾個人交作業。為什麼沒幾個人交作業呢?大部分人對於為什麼要花uml圖沒什麼概念,如同讓不蓋樓的人去畫乙份圖紙。為什麼建築師要畫圖紙是乙個好問題,因為人人可以摞起石頭卻不能蓋起摩天大樓。uml圖是成千上萬的工程師積累蓋樓的經驗總結的圖紙。首先我需要蓋一座大樓,所以我需要畫乙份圖紙。大部分人停留在摞石頭的狀態所以自然畫不好幾張uml圖。當自己需要設計乙個自己的軟體的時候,自然需要這麼乙份圖紙。

當時印象比較深,時常很糾結uml該用那個箭頭,用圓的還是用方塊。其實這個東西感覺也不用那麼糾結,能背下來那麼一套複雜的標準自然好,在幾百人合作的專案中可能確實需要這種規範,但是小專案可能並不用那麼精細,能符合固然好,不能那麼細緻也是可以接受的,不要太拘泥於此細節。就和倚天屠龍記裡面,張三丰問張無忌忘了嗎,很多事情在於有其實無其形,如果生搬硬套全把精力花費在用那個三角方塊上可能反而背離了初衷有其形而無其實。下面寫的是乙個思路,其實需要了就花畫不需要也可以不畫。uml其實從另乙個方面告訴我們如何開始設計自己的軟體。

用例圖是核心,為什麼用例圖最重要,用例圖是使用者的使用過程,哪怕你懶到一定地步後面的圖都不花也應該花一張這個。你一定要用這張圖描述明白,誰幹了什麼,第一步是什麼,第二步是什麼。你做這個東西要解決乙個什麼問題。use case view:對系統用例進行描述,典型的檢視為用例檢視(use case diagram)。

這部分主要描述靜態的關係,物件圖,類圖,這個講的是開發過程中的抽象。logic view:對系統各個組成部分進行抽象描述,其焦點在於系統是如何構成的以及構成系統的各個部分之間是如何互動的。我們常用的類檢視(class digram),物件圖(object diagram),順序圖(sequence diagram)/通訊圖(communication diagram)都屬於logic view。

描述的是各種狀態。process view:描述系統中的各種活動,典型的檢視為活**(activity diagram)。個人認為活**和流程圖非常類似,且目的都是為了將系統中的活動描述清楚。

這個有利於自己部署好這個系統,從0.1到1.0到2.0如果進行部署。這塊可以寫清楚如何部署,是直接部署,部署在幾個機器上部署,用虛擬機器,還是docker,如何理清楚部署過程進行自動構建。development view:從開發者的角度描述系統的構成,典型的檢視為構件檢視(component diagram)。

physical view:該檢視關注軟體構件在硬體上的top結構,以及構件之間的通訊。典型的檢視為部署檢視(deployment diagram)

軟體設計師必備 軟體工程 建模

我們由乙個小的例子引入建模這個話題!建造乙個狗窩不需要太多的考慮,因為狗的需求是簡單的,直接去建就可以滿足他們的所有需求。建造一座房子或者一座高層建築就需要深思熟慮了。乙個家庭或者客房的需求不那麼不那麼簡單,因此即使為了滿足客戶最起碼的需求,也不能直接去建造,而是必須建立以資額模型。不同的人員會從不...

軟體工程(軟體設計)

系統分析階段完成了新系統的邏輯設計模型,回答了系統 是什麼 的問題,接下來就是軟體設計階段了,解決 怎麼幹 我們知道軟體設計是整個系統開發過程中最為核心的部分,它可以分為總體設計 概要設計 和詳細設計 過程設計 兩個階段。如果沒有軟體設計,我們只能建立乙個不穩定的系統結構,造成頭重腳輕的後果,而判斷...

軟體project之軟體設計

1.軟體的組成及定義 軟體是計算機系統中與硬體相互依存的 另一部分。是 包含程式 資料及其相關 文件的完整集合。當中,程式是按事先 設計的功能和 效能要求 執行的指令序 列。資料 為進行通 信 解釋和處理 而使用的資訊的形式化 表現形式。文件是與程式開發 維護和使用有關的 材料 2.概要設計與具體設...