軟體工程領域 相關概念
設計相關:
1、框架(framework)概念?
框架是一個框子——指其約束性,也是一個架子——指其支撐性。是一個基本概念上的結構,用於去解決或者處理複雜的問題。框架這個廣泛的定義使用的十分流行,尤其在軟體概念。
2、軟體框架(Software framework)概念?
通常指的是為了實現某個業界標準或完成特定基本任務的軟體元件規範,也指為了實現某個軟體元件規範時,提供規範所要求之基礎功能的軟體產品。軟體框架其實就是將程式碼放到一個我們看不到的容器中,規定架構。當我們使用的時候直接呼叫。
編碼相關:
1、模組和元件的區別?
模組(Module)和元件(Component)是一對容易混淆的名詞,也常常用來相互替換。兩者是否有差異往往取決於專業背景、所在領域、以及視角。
Module:中文名為模組或模組。 它的核心意義是分離職責,本身是一組具有一定內聚性程式碼的組合,職責明確。 對外的介面可以是鬆散的或集中的。 它以問題分解的新式,來解決軟體設計問題。 它更強調一個內聚的概念,形勢上可以使Java中的包,也可以是一個原始碼目錄。
在實際編碼中,模組就是實現特定功能的一組方法。
只要把不同的函式(以及記錄狀態的變數)簡單地放在一起,就算是一個模組。
Java編碼中,一個類(成員變數+成員方法)就是最簡單的、最小的一個模組。
也可以說,模組是比物件更高一級別的抽象,比如把功能相近的物件放在一個包作為一個模組。
總之,模組可大可小,可以是單個物件,也可以是一個包。同時,模組的初衷和主要目的是為了重用,同時也帶來了提升系統的可維護性、可靠性等便利。
(參考模組化編碼:http://www.ruanyifeng .com/blog/2012/10/javascript_module.html)
Component:中文名為元件,或者構件。 它的核心意義在於複用,是可以複用的模組,概念上與模組基本等同,但對於依賴性有更高的要求。 它除了完成某個特定的功能外,還要具備如下條件的程式碼組合:符合特定的介面要求(互動的要求); 具有明確的上下文依賴(複用的要求); 它可以是獨立釋出(二進位制或原始碼的形式),也可以進行組合,這樣軟體開發就程式設計元件的組裝了。 和OOP中的Objects相比,一個類也可以視為一個元件,如JavaBean,但更多情況下,元件提供了更為高層的系統視覺。Component如同一片樹林,Object如同樹。
因此(個人理解),從軟體設計上來看,模組強調職責(負責完成某部分功能,模組可大可小);元件強調複用,或者說元件是達到可複用要求的模組(可以在多個系統中使用,如Log4j)。
2、持久層:即 persistence。就是把資料儲存到可掉電式儲存裝置中。
大多數情況下特別是企業級應用,資料持久化往往也就意味著將記憶體中的資料儲存到磁碟上加以固化,而持久化的實現過程則大多通過各種關係資料庫來完成。
那麼什麼是持久層呢?
延續思路,所謂“持久層”,也就是在系統邏輯層面上,專著於實現資料持久化的一個相對獨立的領域(Domain)。
持久層是負責向(或者從)一個或者多個數據儲存器中儲存(或者獲取)資料的一組類和元件。這個層必須包括一個業務領域實體的模型(即使只是一個元資料模型)。
不過這裡有一個字需要特別強調,也就是所謂的“層”。
對於應用系統而言,資料持久功能大多是必不可少的組成部分。那不就是說,我們的系統中,已經天然的具備了“持久層”概念?
也許是,但也許實際情況並非如此。
之所以要獨立出一個“持久層”的概念,而不是“持久模組”,“持久單元”,也就意味著,我們的系統架構中,應該有一個相對獨立的邏輯層面,專著於資料持久化邏輯的實現.與系統其他部分相對而言,這個層面應該具有一個較為清晰和嚴格的邏輯邊界。
持久層框架:
Hibernate
Hibernate 是一個開放原始碼的物件關係對映框架,它對JDBC進行了非常輕量級的物件封裝,使得Java程式設計師可以隨心所欲的使用物件程式設計思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程式使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成資料持久化的重任。Eclipse平臺下的Hibernate輔助開發工具:【Hibernate Synchronizer】【MiddlegenIDE】
MyBatis
使用MyBatis 提供的ORM機制,對業務邏輯實現人員而言,面對的是純粹的Java物件, 這一層與通過Hibernate 實現ORM 而言基本一致,而對於具體的資料操作,Hibernate 會自動生成SQL 語句,而MyBatis則要求開發者編寫具體的SQL 語句。相對Hibernate等 “全自動”ORM機制而言,MyBatis 以SQL開發的工作量和資料庫移植性上的讓步,為系統 設計提供了更大的自由空間。作為“全自動”ORM 實現的一種有益補充,MyBatis 的出現顯 得別具意義。
資料庫相關:
E-R圖:也稱實體-聯絡圖(Entity Relationship Diagram),提供了表示實體型別、屬性和聯絡的方法,用來描述現實世界的概念模型。
實體:是問題領域中的物件,E-R圖中的實體不是具體的實體,而是抽象出來的實體類。
聯絡:也稱關係,資訊世界中反映實體內部或實體之間的關聯。共三種:一對一聯絡、一對多聯絡和多對多聯絡。