日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

编程学习笔记(第三篇)面向对象技术高级课程:绪论-软件开发方法的演化与最新趋势(3)软件开发的现状、UML扩展...

發布時間:2023/12/13 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编程学习笔记(第三篇)面向对象技术高级课程:绪论-软件开发方法的演化与最新趋势(3)软件开发的现状、UML扩展... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、軟件開發的現狀

  軟件領域正在發生一個巨變,特別是近幾年來,軟件領域正在發生翻天覆地的變化。 這一變化主要以這個云 + 端大數據, 這些是隨著目前最先進的一些技術的產生而產生的。 隨著這些新的技術以及軟件開發方法的不斷的提升,當今的軟件的開發與10 年前的軟件開發, 不管從方式上還是從內涵上都發生了很大的、 深刻的變化。比如說一個非常簡單的一個現象就是,我們現在開發一個小的一個應用程序,跟 10年前開發一個應用程序, 采用的編程的語言,編程的這個平臺,軟件開發平臺以及借用的一些可復用的一些軟件的一些資產都是完全不同的。

?

程序員和架構師的區別

  程序員的主要工作就是學習各種各樣的一些編程語言。 然后用這些語言來進行編程,編完程序之后進行調試, 調試完了之后在測試人員的協助下可以這個修改 bug ,然后有些時候寫一些技術文檔, 或者寫一些注釋。

  而架構師的主要工作可以說與代碼打交道的并不是很密切,主要是構建一些分析設計模型,研究各種各樣的軟件、 技術或者說一些業務邏輯的一些模型一些模式, 研究更加抽象的體系結構的架構模型,以及企業所適用的一些技術架構,它使用的語言是建模語言,目前比較統一建模語言是uml。 并且他要研究不同流派的軟件開發、 軟件開發方法學,在有些時候需要進行重構。

   可以說一個軟件的架構師, 一個非常優秀的軟件架構師是一個團隊乃至一個企業的靈魂。 架構師可以領導一些的程序員避免在軟件開發中的各種各樣的困難,走向新的勝利,正像希臘神話奧德賽中的俄底修斯。如果沒有這么一個靈魂人物,很可能這個團隊就會被各種各樣的困難所壓倒。 因此這是在程序員和架構師的一個區別。

?

軟件架構師的能力:

  • 建模語言

  • 模式

  • 方法學

  • 模型

  • 架構

  • 重構

  • 。。。

?

軟件工程能夠解決的問題:

(1)生命/安全攸關系統(safety-critical system):生命攸關系統是指一個系統的失效或誤動作會產生以下后果:人員重傷或死亡,或者設備的嚴重毀損,或者環境的危害

  在這些領域開發軟件, 大家以為好像在這些領域程序也是有一些程序員這個手工編寫出來的,那就是 一個誤區了,在這些領域開發這些攸關系統的軟件,實際上需要大量的這個軟件工程的一些理念和智慧, 因為盡可能的要把這個 bug 完全地避免,如果不能完全避免的話把它這個概率發生概率要降到最低,這時候就需要比較高層次軟件工程,當然這些工程、 這些軟件工程理念有很多的 方式,比如說自動生成代碼,還有形式化技術等等。

(2)中小型創新企業

  創新型中小型公司中開發軟件受到了很多的一些制約因素,比如說資金、時間又非常緊, 工作量又特別大,在這種情況下開發軟件, 仍然不能采用人海戰術,因為沒有足夠的實力找足夠的有經驗的程序員來開發。這時候需要借助高級軟件工程的一些 理念、 方式方法,甚至有些情況下需要自動化的產生代碼。 需要通過模型的方式來驅動代碼的生成,這在一個中小型創業型些軟件企業是非常有用的。

(3)大型IT企業

  大型的 IT 企業有悠久的歷史,它的軟件目前的這個版本,這個系統非常龐大,有幾千萬行代碼。它的這些代碼很可能是幾十年前某一個程序員編寫的。 如果要維護一個新的版本, 不可避免的要對這些老的這些代碼進行修改調整。 但是往往憑借人工的方式來進行調整的話, 這個效率非常低。 因為現在的人看幾十年前這個代碼,在缺失各種文檔的情況下 就顯得力不從心了。 即使能夠看明白, 它的這個體量也是非常大的,幾千萬行,無法通過手動的方式或者說人工的方式來看清。 看完之后可能要需要幾年的時間,已經來不及了。 這時候就要借助于比較高級的軟件工程自動化的重構技術,這個通過逆向工程的方式,將原有的代碼轉化為模型,便于人理解。 甚至是可以通過自動的方式來理解這個模型。 將這個模型重構成一個更加完備的一個模型,進而驅動從模型到產生新的代碼, 這是一個整個的一套過程。

?

(4)外包領域

  甲方提需求, 或者提出自己的一些業務模型,然后交給乙方來進行完成。 在這個過程中,如果是甲乙雙方是兩個公司、 兩個實體,它們的辦公地點是不同的,它們之間如果說完全通過自然語言來進行溝通這些需求、 溝通這些業務邏輯的話, 那就顯得效率非常低,并且會產生很多的一些誤解,很多的一些誤會,這樣的話不利于雙方協作開發。 比較好的方式往往是通過模型為主,然后以這個自然語言為輔的這種方式, 來實現溝通。 這個過程中甲方向乙方傳遞的往往都是一些模型,借助于模型這種有效的溝通手段, 可以使得甲乙雙方這個溝通成本降到最少。 軟件開發的效率提高很大。 這在當前的一些金融領域的一些軟件公司中是非常流行的。

二、UML擴展

?

1、必要性

  • 為了適應不同方法:Petri網、數據庫模型、工作流等

  • 為了適應不同的領域:實時建模領域、逆向工程領域、軟件過程管理領域等

  • 為了適應不同的平臺:COBRA、EJB、COM+等

  • 為了適應新的方法與技術:面向方面、語義網絡、Agent等

?

2、擴展要點

  • UML并不能將任何領域描述清楚

  • 不同領域需要不同的規約

  • 但是,如果UML可以隨便擴展,標準就失去意義

?

3、UML擴展的作用

擴展IML的語法和語義,適合不同領域不同層次的建模

保證擴展方案仍遵守一定的規范。仍然可以共享和交流

?

  UML是一種語言,與自然語言所不同的是UML是在特定領域軟件工程領域使用的一種工程語言, 那么UML也有語法和語義,也就是說UML表面上看有十幾種圖,二維這種建模元素, 它們背后描述每一種圖的都有語法和語義規則。描述一個擴展的UML,需要符合UML的造字法、語法。

  UML是一種自定義的一種語言方式,它使用了UML語法規則的一部分語法和語義來描述全部UML模型的語法結構,實際上這些部分語法規則就是類圖的一部分,最核心的類圖的一部分。 通過這個類圖,它具有與bacs范式相同的語義,所以它能夠描述一種 一個大的結構是由哪些小結構組成的,這些小結構又是由哪些更小的小結構,組成的,甚至是遞歸的。

?

4、UML擴展方式

(1)Profile

Profile :外擴投影

  Profiles將stereotypes(版型)、tagged values(標記值)和constraints(約束)應用于具體的模型元素比如類、屬性、操作和活動。一個Profile對象就是一系列為特定領域(比如,航空航天、保健、金融)或平臺(J2EE、.NET)自定義的UML集合。

?

profile 作用

幫助你分析并發現程序運行的瓶頸,找到耗時所在,同時也能幫助你發現不會被執行的代碼。從而最終實現程序的優化。

?

(2)sysml

  對象管理組織OMG決定在對UML2.0 的子集進行重用和擴展的基礎上,提出一種新的系統建模語言——SysML(Systems Modeling Language),作為系統工程的標準建模語言。和UML 用來統一軟件工程中使用的建模語言一樣,SysML 的目的是統一系統工程中使用的建模語言。

  它實際上是在UML基礎上進行的一個擴展,這個也是被OMG組織所標準化的一個規范,這個SysML不是像UML只建立軟件的一個系統, 用SysML可以建立硬件系統, 也可以建立一些由人組成的系統, 或者說是由人、 軟件、 硬件組成的一個復合的一個系統。 SysML中包含了UML的一部分的語法和語義,此外為了適應不同領域的建模,它應用UML的語法規則,描述語法,UML語法規則的語言,也就是那個類圖的精簡版,然后自己擴充了一部分,用來表示UML所不能描述的人組成的系統,硬件系統,或者說是一種軟硬系統還有人一起結合起來的一種系統,用SysML都是可以來描述的。

轉載于:https://www.cnblogs.com/Nicholas0707/p/9235292.html

總結

以上是生活随笔為你收集整理的编程学习笔记(第三篇)面向对象技术高级课程:绪论-软件开发方法的演化与最新趋势(3)软件开发的现状、UML扩展...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。