當前位置:首頁 » 軟體百科 » 軟體開發為什麼要進行組織結構分析

軟體開發為什麼要進行組織結構分析

發布時間: 2023-10-03 17:15:40

❶ 軟體行業里常說的「架構」,究竟是什麼東西

一直以來,在軟體行業,對於什麼是架構,都有很多的爭論,每個人都有自己的理解。甚至於很多架構師一說架構,就開始談論什麼應用架構、硬體架構、數據架構等等。我曾經也到處尋找過架構的定義,請教過很多人,結果發現,沒有大家都認可的定義。套用一句關於 big data 流行的笑話,放在架構上也適用:

Architecture is like teenage sex,everybody talks about it,nobody really knows what is it。
事實上,架構在軟體發明時的 N 多年以前,就已經存在了,這個詞最早是跟隨著建築出現的。所以,我覺得有必要從源頭開始,把架構這個概念先討論清楚,只有這樣,軟體行業架構的討論才有意義。
什麼是架構?
架構的英文是 Architecture,在 Wikipedia 上,架構是這樣定義的:
Architecture (Latin architectura, from the Greek ἀρχιτέκτων arkhitekton」 architect」, from ἀρχι- 「chief」 and τέκτων 「builder」) is both the process and the proct of planning, designing, and constructing buildings and other physical structures。
從這個定義上看,架構好像是一個過程,也不是很清晰。為了講清楚這個問題,我們先來看看為什麼會產生架構。
為什麼會產生架構?
想像一下,在最早期,每個人都完全獨立生活,衣、食、住、行等等全部都自己搞定,整個人類都是獨立的個體,不相往來。為了解決人類的延續的問題,自然而然就有男女群居出現,這個時候就出現了分工了,男性和女性所做的事情就會有一定的分工,可是人每天生活的基本需求沒有發生變化,還是衣食住行等生活必須品。
但是一旦多人分工配合作為生存的整體,力量就顯得強大多了,所以也自然的形成了族群:有些人種田厲害,有些人製作工具厲害,有些地方適合產出糧食,有些地方適合產出棉花等,就自然形成了人的分群,地域的分群。當分工發生後,實際上每個人的生產力都得到了提高,因為做的都是每個人擅長的事情。
整個人群的生產力和抵抗環境的能力都得到了增強。為什麼呢?因為每個人的能力和時間都是有限的,並且因為人的結構的限制,人同時只能專心做好一件事情,這樣不得已就導致了分工的產生。既然分工發生了,原來由一個人干生存所必需的所有的事情,就變成了很多不同分工的角色合作完成這些事情,這些人必須要通過某些機制合在一起,讓每個人完成生存所必需的事情,這實際上也導致了交易的發生(交易這部分就不在這里展開了,有機會再討論)。
在每個人都必須自己完成所有生活必須品的生產的時候,是沒有架構的(當然在個人來講,同一時刻只能做有限的事情,在時間上還是可能會產生架構的)。一旦產生的分工,就把所有的事情,切分成由不同角色的人來完成,最後再通過交易,使得每個個體都擁有生活必須品,而不需要每個個體做所有的事情,只需要每個個體做好自己擅長的事情,並具備一定的交易能力即可。
這實際上就形成了社會的架構。那麼怎麼定義架構呢?以上面這個例子為例,把一個整體(完成人類生存的所有工作)切分成不同的部分(分工),由不同角色來完成這些分工,並通過建立不同部分相互溝通的機制,使得這些部分能夠有機的結合為一個整體,並完成這個整體所需要的所有活動,這就是架構。由以上的例子,也可以歸納出架構產生的動力:
必須由人執行的工作(不需要人介入,就意味著不需要改造,也就不需要架構了)
每個人的能力有限(每個人都有自己的強項,個人的產出受限於最短板,並且由於人的結構限制,同時只能專注於做好一件事情,比如雖然有兩隻眼睛,但是只能同時專注於一件事物,有兩只手,無法同時做不同的事情。ps. 雖然有少部分人可以左手畫圓右手畫框,但是不是普遍現象)
每個人的時間有限(為了減少時間的投入,必然會導致把工作分解出去,給擅長於這些工作的角色來完成,見 2,從而縮短時間)
人對目標系統有更高的要求(如果滿足於現狀,也就不需要進行架構了)
目標系統的復雜性使得單個人完成這個系統,滿足條件 2,3(如果個人就可以完成系統的提高,也不需要別的人參與,也就不需要架構的涉及,只是工匠,並且一般這個工作對時間的要求也不迫切。當足夠熟練之後,也會有一定的架構思考,但考慮更多的是如何提高質量,提高個人的時間效率)
有人可能會挑戰說,如果一個人對目標系統進行分解,比如某人建一棟房子,自己采購材料,自己搭建,難道也不算架構嘛?如果對於時間不敏感的話,是會出現這個情況的,但是在這種情況下,並不必然導致架構的發生。如果有足夠的自覺,以及足夠的熟練的話,也會產生架構的思考,因為這樣對於提高生產力是有幫助的,可以縮短建造的時間,並會提高房子的質量。事實上建築的架構就是在長期進行這些活動後,積累下來的實踐。
當這 5 個條件同時成立,一定會產生架構。從這個層面上來說,架構是人類發展過程中,由懵懵懂懂的,被動的去認識這個世界,變成主動的去認識,並以更高的效率去改造這個世界的方法。以下我們再拿建築來舉例加強一下理解。
最開始人類是住在山洞裡,住在樹上的,主要是為了躲避其他猛獸的攻擊,以及減少自然環境的變化,對人類生存的挑戰。為了完成這些目標,人類開始學會在平地上用樹木和樹葉來建立隔離空間的設施,這就是建築的開始。但是完全隔離也有很多壞處,慢慢就產生了門窗等設施。
建築的本質就是從自然環境中,劃出一塊獨占的空間,但是仍然能夠通過門窗等和自然環境保持溝通。這個時候架構就已經開始了。對地球上的空間進行切分,並通過門窗,地基等,保持和地球以及空間的有機的溝通。當人類開始學會用火之後,茅棚裡面自然而然慢慢就會被切分為兩部分,一部分用來燒飯,一部分用來生活。當人的排泄慢慢移入到室內後,洗手間也就慢慢的出現了。這就是建築內部的空間切分。
這個時候人們對建築的需求也就慢慢的越來越多,空間的切分也會變成很多種,組合的方式也會有很多種,比如每個人住的房子,群居所產生的宗教性質的房子,集體活動的房子等等。這個時候人們就開始有意識的去設計房子,架構師就慢慢的出現了。一切都是為了滿足人的越來越高的需求,提升質量,減少時間,更有效率的切分空間,並且讓空間之間更加有機的進行溝通。這就是建築的架構以及建築的架構的演變
總結一下,什麼是架構,就是:
根據要解決的問題,對目標系統的邊界進行界定。
並對目標系統按某個原則的進行切分。切分的原則,要便於不同的角色,對切分出來的部分,並行或串列開展工作,一般並行才能減少時間。
並對這些切分出來的部分,設立溝通機制。
根據 3,使得這些部分之間能夠進行有機的聯系,合並組裝成為一個整體,完成目標系統的所有工作。
同樣這個思考可以展開到其他的行業,比如企業的架構,國家的架構,組織架構,音樂架構,色彩架構,軟體架構等等。套用三國演義的一句話,合久必分,分久必合。架構實際上就是指人們根據自己對世界的認識,為解決某個問題,主動地、有目的地去識別問題,並進行分解、合並,解決這個問題的實踐活動。架構的產出物,自然就是對問題的分析,以及解決問題的方案:包括拆分的原則以及理由,溝通合並的原則以及理由,以及拆分,拆分出來的各個部分和合並所對應的角色和所需要的核心能力等。
望採納!

❷ 為什麼要對軟體體系結構進行風險分析風險分析的主要步驟有哪些

當前各個領域數據生成速度逐漸加快,需要處理的數據量急劇膨脹。這些巨大的數據資源蘊藏著潛在的價值,需要對其進行有效的分析和利用。當前數據的特點除了數量龐大之外,數據類型也變得多樣化,其中包括了結構化數據、半結構化數據以及非結構化數據。這些數量龐大、種類繁多的海量數據,給傳統分析工具帶來了巨大的挑戰。當前對數據的分析不再是簡單的生成統計報表,而是利用復雜的分析模型進行深人的分析,傳統分析技術例如關系資料庫技術已經不能滿足其要求。在擴展性上,通過增加或更換內存、CPU、硬碟等設備原件以打一展單個節點的能力的縱向打一展(scaleup)系統遇到了瓶頸;只有通過增加計算節點,連接成大規模集群,進行分布式並行計算和管理的橫向打一展(scaleout)系統才能滿足大數據的分析需求[u。因此傳統工具在擴展性上遇到了障礙,必須尋求可靠的數據存儲和分析技術來分析和利用這些龐大的資源。利用雲計算平台搭建Hadoop計算框架成為當前處理大數據的主要手段。然而由於雲計算和Hadoop應用的特點和自身安全機制薄弱,不可避免地帶來了安全風險。1、大數據應用模式雲計算(CloudComputing)是一種基於Internet的計算,是以並行計算(ParallelComputing)、分布式計算(DistributedComputing)和網格計算(GridCompu-tin助為基礎,融合了網路存儲、虛擬化、負載均衡等技術的新興產物。它將原本需要由個人計算機和私有數據中心執行的任務轉移給具備專業存儲和計算技術的大型計算中心來完成,實現了計算機軟體、硬體等計算資源的充分共享[z}。企業或個人不再需要花費大量的費用在基礎設施的購買上,更不需要花費精力對軟硬體進行安裝、配置和維護,這些都將由雲計算服務商CSP(CloudServiceProvider)提供相應的服務。企業或個人只需按照計時或計量的方式支付租賃的計算資源。雲計算服務商擁有大數據存儲能力和計算資源,被視為外包信息服務的最佳選擇[31因此大數據的應用往往與雲計算相結合。Hadoop是當前最廣為人知的大數據技術實施方案,它是Google雲計算中的Map/Rece}4}和GFS(GoogleFileSystem)的開源實現。Hadoop提供了一種計算框架,其最為核心的技術是HDFS(HadoopDistributedFileSystem)以及MapReee}HDFS提供了高吞吐量的分布式文件系統,而MapReee是大型數據的分布式處理模型。Hadoop為大數據提供了一個可靠的共享存儲和分析系統[5-6}v盡管有一些組織自建集群來運行Hadoop,但是仍有許多組織選擇在租賃硬體所搭建的雲端運行Hadoop或提供Hadoop服務。例如提供在公有或私有雲端運行Hadoop的Cloudera,還有由Amazon提供的稱為ElasticMapReee的雲服務等f}l。因此將雲計算與Hadoop結合處理大數據已成為一種趨勢。2、大數據安全風險分析隨著大數據應用范圍越來越廣,對數據安全的需求也越來越迫切。由於雲計算的特點是將數據外包給雲服務商提供服務,這種服務模式將數據的所有權轉移給了CSP,用戶失去了對物理資源的直接控制[A1。而雲中存儲的大數據通常是以明文的方式存在的,CSP對數據具有底層控制權,惡意的CSP有可能在用戶不知情的情況下竊取用戶數據,而雲計算平台亦可能受到攻擊致使安全機制失效或被非法控制從而導致非授權人讀取數據,給大數據安全帶來了威脅。Hadoop在設計之初並未考慮過安全問題,在Ha-doop1.0.0和ClouderaCDH3版本之後,Hadoop加人了Kerberos的身份認證機制和基於ACL的訪問控制機制[91。即使在安全方面增加了身份認證和訪問控制策略,Hadoop的安全機制仍然非常薄弱,因為Ker-beros的認證機制只應用於客戶機(Clients)、密鑰分發中心(I}eyDistributionCenter,I}DC)、伺服器(Serv-er)之間,只是針對機器級別的安全認證,並未對Ha-doop應用平台本身進行認證[}o}。而基於ACL的訪問控制策略需要通過在啟用ACL之後,對hadoop-policy.xml中的屬性進行配置,其中包括9條屬性,它們限制了用戶與組成員對Hadoop中資源的訪問以及Datanode和Namenode或Jobtracke:和Tasktrackers等節點間的通信,但該機制依賴於管理員對其的配置[川,這種基於傳統的訪問控制列表容易在伺服器端被篡改而不易察覺。而且基於ACL的訪問控制策略粒度過粗,不能在MapRece過程中以細粒度的方式保護用戶隱私欄位。況且針對不同的用戶和不同應用,訪問控制列表需要經常作對應的更改,這樣的操作過於繁瑣且不易維護。因此Hadoop自身的安全機制是不完善的。2.1不同應用模式下CSP及Uers帶來的安全風險雲計算中Hadoop有多種應用模式。在私有雲中搭建Hadoop,即企業自己應用Hadoop,使用該平台的是企業內部各個部門的員工,外部人員無法訪問和使用這些資源。這時的CSP指的是Hadoop的創建和管理者,IaaS級和PaaS級CSP為相同的實體;在公有雲平台應用Hadoop,CSP有2級,IaaS級CSP,提供基礎設施;PaaS級CSP,負責Hadoop的搭建和管理。這時兩級CSP往往是不同的實體。

熱點內容
男人為什麼要娶美國女人 發布:2025-01-23 04:49:05 瀏覽:881
老人快不行了為什麼眼睛睜不開 發布:2025-01-23 04:43:53 瀏覽:345
電腦0打出來變成為什麼 發布:2025-01-23 04:42:15 瀏覽:413
淘寶買東西為什麼會盾 發布:2025-01-23 04:23:23 瀏覽:296
為什麼微信不允許wifi 發布:2025-01-23 04:12:41 瀏覽:444
房子為什麼不是越用越便宜 發布:2025-01-23 04:04:48 瀏覽:322
魅族手機微信來了為什麼不提醒 發布:2025-01-23 03:59:57 瀏覽:9
為什麼手機後面都有一個pro 發布:2025-01-23 03:46:17 瀏覽:944
為什麼淘寶好友沒有互相助力 發布:2025-01-23 03:46:05 瀏覽:881
大哭第二天眼睛腫為什麼 發布:2025-01-23 03:43:57 瀏覽:999