物件導向方法、流程

系統分析師不管物件本身程序進行,而是要關心系統組成,而是系統設計師才會管。

期中考考題

使用Python/ C#/ Java選一語言,實作多型、繼承、類別、物件、封裝

程序

  1. 規範式 按部就班、把所有需求搞清楚,做所有需求分析及設計,功能設計好之後給使用者用。 一個階段做完後,才做下一個階段,每個階段完成都要經由使用者確認。
    • 瀑布式

  2. 敏捷式 反覆漸增 一次做一點功能,系統需求切好幾份,滿意了再做下一份。
    • 增量規劃
    • 小版本發行
    • 測試驅動 每部分需要測過,再做第二個部分
    • 重構 第一個部分做出來的經驗,繼承到第二個部分,不斷重新美化系統結構
    • 配對程式發展 別一個人寫程式,要合作、風險分散
  • 敏捷式

(統一程序就是敏捷式)

  • 課本:應把最難的部分先做,練功,能確保系統最關鍵的功能能開發出來,且有時間去做調整。
  • 至中兄:先做簡單的,累積基本功,經過幾個月搞不好只剩下最難的部分沒做就有時間。 **瀑布式與統一式發展程序的特性與適用情況為何(下下週考試)?

需求

  1. 功能性需求
  2. 非功能性需求 如資訊安全、隱私需求、系統效能、資料正確性

分析

使用者有什麼需求?什麼功能?分析師使用系統規格書紀錄。

弱點分析、資安要求、效能、好用、可靠…

設計

滿足分析師開的規格,建立系統架構及細部模組。 要對每個模組進行描述,稱為系統設計書

製作

  • 撰寫:系統設計書轉程式
  • 測試:單元測試、整合測試、功能測試、系統測試
  • 上線:將測試完成系統的擺放到實際環境中運作

維護

上線後所進行的工作

系統分析師基本能力

資訊技術能力

  1. 分析設計方法論
  2. 資料庫設計
  3. 作業系統
  4. 基本程式語言
  5. 硬體與網路的運作原理

邏輯分析能力

  • 由真實事件或正確的敘述,確保後面的事件是正確的
  • 規劃出能因應環境與符合企業需求的系統

企業領域知識

了解該領域的專業

人際溝通技能

系統分析工作

  • 需求調查
  • 可行性研究
  • 定義需求
  • 撰寫規格書
  • 擬定可行方案
  • 管理者確認

小考題目

說明類別、物件、封裝、繼承跟多型

  • 類別:定義同一類別所有對象的變數和方法的藍圖或原型
  • 物件:類別實例化
  • 封裝:把有必要的內容對外來公開,沒有必要讓別人看到的內容則隱藏起來。
  • 繼承:基於某個父類別對物件的定義加以擴充,子類別可以繼承父類別原來的某些定義,並也可能增加原來的父類別所沒有的定義,或者是重新定義父類別中的某些特性。
  • 多型:為不同資料類型的實體提供統一的介面。

類別:描述以後會產生的物件

// 類別
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把小考題目寫出來