天天看點

軟體開發過程,mvc軟體的生命周期JavaBeanMVC開發模式+三層結構

軟體的生命周期

1) 需求分析(需求分析師)

原始需求- > 抽取業務模型         功能分析-> 功能流轉-> 美工設計

2) 需求設計(系統分析師/架構師/資深開發人員)

概要設計:

1 設計實體         抽取實體:業務模型 -> 實體模型(java 類、 c++類)

2 設計資料庫         業務模型/實體模型 -> 資料模型

詳細設計:         類詳細,屬性和方法

3 設計涉及的接口
DAO接口(資料通路對象):實體對象的CRUD方法。
項目原則: 通常一個實體對象就會對應一個DAO接口和一個DAO實作類
4 設計項目的目錄結構

3) 編碼實作(軟體開發工程師)

開發順序:設計資料庫-> 實體 -> DAO接口-> DAO實作-> Servlet+html頁面

4) 功能測試(測試工程師)

5) 性能測試(測試工程師)

6) 部署上線(實施工程師) 

7) 維護階段(實施工程師)

螺旋開發模式:

    适合于項目前期部分需求不确定的情況, 對于每一個子產品一個個開發:分析、設計、編碼、測試、上線;

    好處: 降低軟體風險! (做出的産品要盡量滿足客戶需求!)

瀑布模式:

    先進行所有子產品的需求分析,當分析結束後,才進入項目下一個階段, 即設計、編碼、測試、上線;

    好處: 更容易進行項目把控,即項目品質控制!

JavaBean

JavaBean(咖啡豆), JavaBean是一種開發規範,可以說是一種技術

一個普通的java類隻有符合以下規定才能稱之為javabean:

  1. 必須提供無參數的構造方法
  2. 類中屬性都必須私有化(private)
  3. 該類提供公開的getter 和 setter方法。(注意:setter方法要傳入參數。boolean類型的get方法名稱叫 isXXX()方法!)

作用: 用于封裝資料,儲存資料。通路javabean隻能使用getter和setter方法

JavaBean的使用場景:

  1. 項目中用到實體對象(entity)符合javabean規範
  2. EL表達式通路對象屬性。${student.name} 調用getName()方法,符合javabean規範。
  3. jsp标簽中的屬性指派。 setNum(Integer num)。符合javabean規範。
  4. jsp頁面中使用javabean。符合javabean規範

MVC開發模式+三層結構

在web項目中涉及到的邏輯:

  1. 接收參數
  2. 處理業務邏輯,傳回結果
  3. 顯示資料到浏覽器
  4. 跳轉到其他頁面

三層結構:

資料通路層(DAL)dao層:和資料通路相關的操作(CURD方法 )

業務邏輯層(BLL)service層: 和業務邏輯相關的操作(處理邏輯+調用CURD方法 )

表現層(UI)web層: 展現給使用者的界面,和使用者直接互動相關的操作(傳接參數,跳轉頁面)

MVC開發模式:

Model - JavaBean實作。用于封裝業務資料

View - Jsp實作。用于顯示資料

Controller- servlet實作。用于控制model和view(接受參數,調用業務邏輯,跳轉視圖)

差別聯系:

MVC是 Model-View-Controller,嚴格說這三個加起來以後才是三層架構中的UI層,也就是說,MVC把三層架構中的UI層再度進行了分化,分成了控制器、視圖、實體三個部分,控制器完成頁面邏輯,通過實體來與界面層完成通話;而C層直接與三層中的BLL進行對話。

三層是基于業務邏輯來分的,而MVC是基于頁面來分的

軟體開發過程,mvc軟體的生命周期JavaBeanMVC開發模式+三層結構

web開發模式

一種是JSP+JavaBean模式,一種是Servlet+JSP+JavaBean(MVC)模式

     servlet+jsp模式:

servlet:
  1. 接收參數
  2. 處理業務邏輯
  3. 把結果儲存到域對象中
  4. 跳轉到jsp頁面
Jsp:
  1. 從域對象取出資料
  2. 把資料顯示到浏覽器
servlet的資料 -> jsp頁面:List<Contact> 使用域對象共享資料
軟體開發過程,mvc軟體的生命周期JavaBeanMVC開發模式+三層結構

MVC是 Model-View-Controller,嚴格說這三個加起來以後才是三層架構中的UI層,也就是說,MVC把三層架構中的UI層再度進行了分化,分成了控制器、視圖、實體三個部分,控制器完成頁面邏輯,通過實體來與界面層完成通話;而C層直接與三層中的BLL進行對話。