物件導向方法、流程
系統分析師不管物件本身程序進行,而是要關心系統組成,而是系統設計師才會管。
期中考考題
使用Python/ C#/ Java選一語言,實作多型、繼承、類別、物件、封裝
程序
- 規範式
按部就班、把所有需求搞清楚,做所有需求分析及設計,功能設計好之後給使用者用。
一個階段做完後,才做下一個階段,每個階段完成都要經由使用者確認。
-
瀑布式

-
- 敏捷式
反覆漸增
一次做一點功能,系統需求切好幾份,滿意了再做下一份。
- 增量規劃
- 小版本發行
- 測試驅動 每部分需要測過,再做第二個部分
- 重構 第一個部分做出來的經驗,繼承到第二個部分,不斷重新美化系統結構
- 配對程式發展 別一個人寫程式,要合作、風險分散
-
敏捷式
(統一程序就是敏捷式)
- 課本:應把最難的部分先做,練功,能確保系統最關鍵的功能能開發出來,且有時間去做調整。
- 至中兄:先做簡單的,累積基本功,經過幾個月搞不好只剩下最難的部分沒做就有時間。 **瀑布式與統一式發展程序的特性與適用情況為何(下下週考試)?
需求
- 功能性需求
- 非功能性需求 如資訊安全、隱私需求、系統效能、資料正確性
分析
使用者有什麼需求?什麼功能?分析師使用系統規格書紀錄。
弱點分析、資安要求、效能、好用、可靠…
設計
滿足分析師開的規格,建立系統架構及細部模組。 要對每個模組進行描述,稱為系統設計書。
製作
- 撰寫:系統設計書轉程式
- 測試:單元測試、整合測試、功能測試、系統測試
- 上線:將測試完成系統的擺放到實際環境中運作
維護
上線後所進行的工作
系統分析師基本能力
資訊技術能力
- 分析設計方法論
- 資料庫設計
- 作業系統
- 基本程式語言
- 硬體與網路的運作原理
邏輯分析能力
- 由真實事件或正確的敘述,確保後面的事件是正確的
- 規劃出能因應環境與符合企業需求的系統
企業領域知識
了解該領域的專業
人際溝通技能
系統分析工作
- 需求調查
- 可行性研究
- 定義需求
- 撰寫規格書
- 擬定可行方案
- 管理者確認
小考題目
說明類別、物件、封裝、繼承跟多型
- 類別:定義同一類別所有對象的變數和方法的藍圖或原型
- 物件:類別實例化
- 封裝:把有必要的內容對外來公開,沒有必要讓別人看到的內容則隱藏起來。
- 繼承:基於某個父類別對物件的定義加以擴充,子類別可以繼承父類別原來的某些定義,並也可能增加原來的父類別所沒有的定義,或者是重新定義父類別中的某些特性。
- 多型:為不同資料類型的實體提供統一的介面。
類別:描述以後會產生的物件

// 類別
class 學生{
String name;
int grade;
int calc(){
return grade;
}
}物件
學生 student = new 學生()封裝:資料跟程式被包在殼裡面
class 學生{
private String N;
public String getN(){
return N;
}
public void setN(String Name){
N = Name;
}
}繼承:

class 研究生 extends 學生{
private String thesis;
private Teacher teacher;
public String getThesis(){
return thesis;
}
public void setThesis(String thesis){
this.thesis = thesis;
}
public void setTeacher(Teacher teacher){
this.teacher = teacher;
}
public Teacher getTeacher(){
return teacher;
}
}多型
//研究生繼承自學生
q1 = new 研究生();
q2 = new 研究生();
s1 = q1; //可,因研究生為學生
q1 = s1; //不可,因為學生不一定能滿足研究生期中考題目
專研分析圖 用C#、Python、Java把小考題目寫出來