軟件工程知識大綱

第1章 概述

1.1什麼是軟件工程

軟件工程是關於軟件生產的各個方面的工程學科html

1.2軟件過程

軟件工程中系統化的方法叫作軟件過程算法

 

第2章 軟件過程

2.1軟件工程四種基本的活動

  1. 軟件描述:必須定義軟件的功能以及軟件操做上的約束
  2. 軟件設計和實現:必須生產符合描述的軟件
  3. 軟件有效性驗證:軟件必須獲得有效性驗證,即確保軟件是客戶想要的
  4. 軟件進化:軟件必須進化以知足不斷變化的客戶須要

2.2軟件過程模型

  1. 瀑布模型:該模型將基本的過程活動、描述、開發、有效性驗證和進化,當作是一些界限分明的獨立的過程階段,例如,需求描述階段、軟件設計階段、實現階段、測試階段,等等
  2. 增量式開發:該方法使得描述活動、開發活動和有效性驗證活動交織在一塊兒。系統的開發是創建一系列的版本(增量),每一個版本添加部分功能到先前的版本中
  3. 面向複用的軟件工程:該方法是基於已存在的大量可複用的組件。系統開發過程着重於集成這些組件到新系統中,而非從頭開發

第3章 敏捷軟件開發

3.1敏捷開發

敏捷開發以用戶的需求進化爲核心,採用迭代、按部就班的方法進行軟件開發數組

第4章 需求工程

4.1用戶需求

用戶需求是用天然語言加圖的形式給出的、關於系統須要提供哪些服務以及系統操做受到哪些約束的聲明測試

4.2系統需求

系統需求詳細地給出系統將要提供的服務以及系統所受到的約束spa

4.3功能需求和非功能需求

  1. 功能需求:包括對系統應該提供的服務、如何對特殊輸入作出反應,以及系統在特定條件下的行爲的描述
  2. 非功能需求:對系統提供的服務或功能給出的約束。包括時間約束、開發過程的約束和所受到的標準的約束

4.4UML中定義的圖表類型

 4.4.1活動圖

它表示一個過程或數據處理中所涉及的活動.net

參考:http://www.javashuo.com/article/p-konxqpyp-bg.html設計

 

4.4.2用例圖

它表示一個系統和它所處環境之間的交互3d

參考:http://www.javashuo.com/article/p-emjtpetr-t.htmlhtm

1)參與者(Actor)對象

  參與者是與系統交互的人或物。首先固然包括咱們的開發系統用戶,除此以外,與咱們開發的系統有關聯的其餘系統也算是參與者。

在UML圖中咱們用一個小人表示。

2)用例(Use Case)

   用例是參與者能夠感覺到的系統服務或功能單元。我理解的就是用戶可使用咱們開發的項目去作的任何事情

任何用例都不能在缺乏參與者的狀況下獨立存在,一樣,任何參與者也必需要有與之關聯的用例。在UML圖中咱們用橢圓表示:

3)系統邊界

  指系統與系統之間的界限。把系統邊界之外的同系統相關聯的其餘部分稱爲系統環境。

在UML圖中咱們用一個矩形表示。

4)關係

  用例圖中的關係有4種:關聯,泛化,包含和擴展。

  關聯:表示參與者和用例之間的交互。爲通訊途徑,任何一方均可發送或可接收消息。

  箭頭指向:指向消息接收方。在UML中用直線表示

  包含:包含關係用來把一個較複雜的用例所表示的功能分解成較小的步驟。包含用例是必須的,若是缺乏包含用例,基用例就是不完整的。

包含關係最典型的應用就是複用。這種狀況相似與在過程設計語言中,將程序的某一段算法封裝成一個子過程,而後在從主程序中調用這一子過程(這麼說好像懂了點)

在UML中,包含關係用帶箭頭的虛線段加《include》表示,箭頭指向被包含的用例。

在VISIO中沒有找到include包含關係,解決辦法:

1)選擇菜單欄中的'UML'-》單擊’構造型‘-》新建-》構造型那裏輸入include-》基類那裏選擇概括,點擊肯定

2)將UML用例下的「擴展」拖到繪圖頁上-》雙擊或右鍵屬性-》構造下拉列表中選擇include-》肯定

  擴展:擴展關係是指用例功能的延伸。與包含關係不一樣的是,擴展用例是可選的,若是缺乏擴展用例。不會影響到基用例的完整性。

  在UML中,擴展關係用帶箭頭的虛線段加《extend》表示,要注意的是箭頭指向基用例。

  泛化:用例的泛化指的是一個父用例能夠被特化造成多個子用例,用咱們熟悉的語言來講就是繼承關係。

  在UML中,泛化關係用空心箭頭表示,箭頭指向的是父用例。

4.4.3類圖

它表示系統中的對象類以及這些類之間的聯繫

參考:http://www.cnblogs.com/shindo/p/5579191.html

1、類的屬性的表示方式

在UML類圖中,類使用包含類名、屬性(field) 和方法(method) 且帶有分割線的矩形來表示,好比下圖表示一個Employee類,它包含name,age和email這3個屬性,以及modifyInfo()方法。

那麼屬性/方法名稱前加的加號和減號是什麼意思呢?它們表示了這個屬性或方法的可見性,UML類圖中表示可見性的符號有三種:

· + :表示public

· - :表示private

· #:表示protected(friendly也納入這類)

所以,上圖中的Employee類具備3個私有屬性和一個公有方法。

 

實際上,屬性的完整表示方式是這樣的:

可見性  名稱 :類型 [ = 缺省值]

中括號中的內容表示是可選的

 

2、類的方法的表示方式

上圖中咱們已經看到了方法的表示形式。實際上,方法的完整表示方式以下:

可見性  名稱(參數列表) [ : 返回類型]

一樣,中括號中的內容是可選的。

 

好比在下圖的Demo類中,定義了3個方法:

 

· public方法method1接收一個類型爲Object的參數,返回值類型爲void

· protected方法method2無參數,返回值類型爲String

· private方法method3接收類型分別爲int、int[]的參數,返回值類型爲int

 

3、類與類之間關係的表示方式

一、關聯關係

關聯關係又可進一步分爲單向關聯、雙向關聯和自關聯。

(1)單向關聯

咱們能夠看到,在UML類圖中單向關聯用一個帶箭頭的直線表示。上圖表示每一個顧客都有一個地址,這經過讓Customer類持有一個類型爲Address的成員變量類實現。

 

(2)雙向關聯

從上圖中咱們很容易看出,所謂的雙向關聯就是雙方各自持有對方類型的成員變量。在UML類圖中,雙向關聯用一個不帶箭頭的直線表示。上圖中在Customer類中維護一個Product[]數組,表示一個顧客購買了那些產品;在Product類中維護一個Customer類型的成員變量表示這個產品被哪一個顧客所購買。

 

(3)自關聯

自關聯在UML類圖中用一個帶有箭頭且指向自身的直線表示。上圖的意思就是Node類包含類型爲Node的成員變量,也就是「本身包含本身」。

 

二、聚合關係

上圖中的Car類與Engine類就是聚合關係(Car類中包含一個Engine類型的成員變量)。由上圖咱們能夠看到,UML中聚合關係用帶空心菱形和箭頭的直線表示。聚合關係強調是「總體」包含「部分」,可是「部分」能夠脫離「總體」而單獨存在。好比上圖中汽車包含了發動機,而發動機脫離了汽車也能單獨存在。

 

三、組合關係

組合關係與聚合關係見得最大不一樣在於:這裏的「部分」脫離了「總體」便不復存在。好比下圖:

顯然,嘴是頭的一部分且不能脫離了頭而單獨存在。在UML類圖中,組合關係用一個帶實心菱形和箭頭的直線表示。

 

四、依賴關係

從上圖咱們能夠看到,Driver的drive方法只有傳入了一個Car對象才能發揮做用,所以咱們說Driver類依賴於Car類。在UML類圖中,依賴關係用一條帶有箭頭的虛線表示。

 

五、繼承關係

繼承關係對應的是extend關鍵字,在UML類圖中用帶空心三角形的直線表示,以下圖所示中,Student類與Teacher類繼承了Person類。

 

六、接口實現關係

這種關係對應implement關鍵字,在UML類圖中用帶空心三角形的虛線表示。以下圖中,Car類與Ship類都實現了Vehicle接口。

4.4.4狀態圖

它表示系統是如何響應內部和外部事件的

參考:https://blog.csdn.net/li2534153206/article/details/55004031

相關文章
相關標籤/搜索