adsense

2011-06-09

軟體工程

是敘述軟體專案管理的定義
軟體專案管理包括軟體度量、專案估算、進度控制、人員組織、配置管理、專案計劃等專案管理相關學問。

是敘述軟體專案管理的九大知識領域
1.          範疇管理: 確保所需執行的工作與活動均能包含在專案中。
2.          時程管理: 確保能如期完成專案所需之工作與活動的一系列程序及方法。
3.          成本管理: 確保專案能如預算地完成所需之工作與活動的一系列程序及方法。
4.          人資管理: 確保以最有效的方式運用人員完成專案所需之工作與活動的一系列程序及方法。
5.          風險管理: 用以辨識、分析、和回應專案風險的一系列程序及方法。
6.          品質管理:確保專案能如質地滿足所有的需求的一系列程序及方法。
7.          採購管理:用以確保專案外購的物品或委外的服務能順利獲得的一系列程序及方法。
8.          溝通管理:確保能適時妥當地將專案相關資訊予以蒐集、保存、彙整、發佈及傳送給所有專案利益關係人的一系列程序及方法。
9.          整合管理: 整合管理係包括專案規劃、執行、與管控之整合性管理。

軟體專案管理的五大程序
啟動程序:需求產生,定義任務進行方式。
規畫程序:明確定義目標、階段、限制因素及達到目標之手段。
執行程序:協調人員及其他資源以實現計畫。
控管程序:定期監控執行結果,控制變數,確保目標之達成。
結案程序:審視並接受專案執行結果,儲存專案知識。

是敘述哪五種參數會影響專案成功與否
程式碼大小  流程  人員  環境  品質
是敘述專案失敗的主要原因
1.          不精確的需求 
2.          無法控制變更所衍生的問題    
3.          無法即早解決風險問題及不夠客觀的專案狀態評估 
4.          複雜性難以處理及軟體架構擴充上無彈性 
5.          不完整的測試及自動化程度不足





不論何種方法(),至少要有哪兩個必備的元素?
Ans:
(1)表示法(Notation)
 (2)程序(Process)

請舉出幾個物件導向分析階段(OOA)必須完成的工作。
Ans:
建立Use-Case模型
- 繪出Use-Case
- 撰寫相關的腳本
- 建構活動圖
- 建立分析模型
- 建立初步的類別/物件圖

請簡單說明傳統方式(SA/SD)與物件導向方式在設計思維上的基本差異?
Ans:
SA/SD:「資料」與「處理程序」分開思考
OOA/D:「資料」與「處理程序」一起思考
傳統的SA/SD技術在開發初期會比物件導向開發方式快很多,可是愈往後期階段,傳統開發方式往往會因為維護、修改或需求變更等問題,越難開發,最後終不及物件導向的方式。


根據Model-View-Controller(MVC)設計模式,一般可依類別(物件)的性質區分出哪三種類別。
邊界類別(Boundary Class):負責使用者介面
實體類別(Entity Class):負責問題領域的核心資料
控制類別(Control Class):負責邊界物件與實體物件的協調(流程控制)

請舉出幾個建構詳細類別模型(Detailed Class Diagram)的主要工作。
決定類別行為
加入設計階段的類別
決定可見度
決定資料型態

是否物件間所有的互動都要畫出對應的互動圖? 請說明為什麼?
畫出的互動情形越多,雖有利於決定詳細類別模型時的精確度,但基於時間成本,通常不建議全部畫出,原則上只需描繪出每個Use Case腳本的主要流程,再依情況作必要的補充即可。

何謂缺乏fault isolation ?
若整個軟體是在某些情形下進行測試,當測試的結果發生缺失(defect)或錯誤(fault)時,則此缺失或錯誤的位置可能在設計的模組中的任何一點,或是任何一個介面。

試敘實作與整合過程, 常用的方法?
由上而下、由下而上與三明治之實作與整合的方式。

試敘述接受度測試?
委託開發軟體的客戶,在開發團隊完成產品測試後,必須根據接受度測試來確認軟體產品所有的特性,是否符合開發人員與其客戶所要的需求。

何謂CASE Tool? 前端工具? 後端工具?
提供軟體開發的過程中,實作與整合方面的工具;
運用在軟體發展的早期程序階段包括需求、規劃、計畫及設計
階段的CASE工具,稱之為前端工具(Front-end Tool);
協助開發、整合及維護階段的CASE工具,則稱之為後端工具

沒有留言:

張貼留言