UML大战需求分析阅读笔记——03
什么是面向過程的?什么是面向對象的?這個疑問在我剛入學學習C++的時候就有了,當時什么都不懂,遇見的全部都是聞所未聞的新名詞、新概念,搞得自己一頭霧水,今天看到第三章的開頭語時發現了一種很有趣很通俗的說法:c語言是面向過程的語言,而C++是面向對象的語言,他們之間有什么不同呢?c++有類(class)而C沒有。
我只是一個大學生,學計算機才三年,讓我很清楚的講出什么是面向過程的,什么是面向對象的這個我真的無法說出。但就我個人的理解來說面向對象的程序設計是一種理念,一種方法,一種將現實事物盡可能的抽象化進行代碼模擬的思想。當一個程序很簡單的只需要計算1+1時自然不必如此麻煩,但當功能多樣之后,普通的幾行代碼,甚至稍復雜些的函數都已經滿足不了我們的需要時,我們引入了類的概念,一個即有方法,又有屬性的集合體,這就更加接近了現實中的事物,在交互中就可以實現更為復雜的功能。
在編程中,建一個類很容易,但是從哪些方面分類就是需要反復推敲的了,每一個類應有能表現她獨立特點的關鍵屬性,那些無特別意義的屬性可不在類中進行標記。實際工作中,我們往往需要將需求調研中了解到的所有業務對象、人物列出來,找好她們的關系,反復推敲才能得到合適的業務模型。
在UML中類的關系有獨特的表達形式,下面會一一講解:
1、直線(關聯)關系:
這種關系一般是在剛開始覺得這兩個類有關系,但還不能確定具體是什么關系時使用,而且可以在線的兩端標記以確定兩者的對應,如下圖所示:
? ? ? ? ? ?
? ? ? ? ??
2、包含關系
包含關系如下表示:? ?
包含關系有兩種,弱包含(空心)和強包含(實心)。弱包含表示如果部門沒了員工也可以存在,強包含表示部門沒了,員工也將不存在。
3、繼承(泛化)關系
像例子中,講師和學生都繼承了員工,因為老師和學生在本質上都是公司員工,都有員工屬性,在UML中則稱"講師泛化了員工","學生泛化了員工"。
4、依賴關系
例子中煙鬼依賴香煙,這種意義上,煙鬼就算離開了煙也是能夠生存的。在業務中通常表示“煙鬼需要香煙來協助才能完成某項任務”。
5、遞歸關系
?以上是一些比較基礎的類圖關系的表示方式,那么現在來點難度,我問你一個問題,文件和文件夾是啥關系?一般你會畫出如下的圖:
但是文件夾里也可以有文件夾啊,文件夾里面的文件夾也可以有文件夾啊,這個要怎么表示呢?
先想一想再看答案:
?
?
?
? ? ? ? ? ?
想到了嗎?不只包含關系可以遞歸,關聯關系也是可以的。
?
轉載于:https://www.cnblogs.com/hehejeson/articles/5966348.html
總結
以上是生活随笔為你收集整理的UML大战需求分析阅读笔记——03的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大三上学习进度条
- 下一篇: session与cookie的简单使用