• 沒有找到結果。

系統設計與開發

N/A
N/A
Protected

Academic year: 2021

Share "系統設計與開發"

Copied!
48
0
0

加載中.... (立即查看全文)

全文

(1)

Talk 7

(2)

主題

規劃資訊技術

人們如何製作系統

人們如何寫程式

系統開發生命週期

從想法到演算法

從演算法到程式

程式設計語言與方法

系統開發的狀況

(3)

規劃資訊技術

規劃是確定目標的過程,並決定要做些什

麼才能達成目標、何時完成目標、誰要來

完成,還有如何完成

(4)

規劃資訊技術

資訊技術規劃牽涉到四個階段

:

資源分配

資訊技術基礎建設分析

策略規劃

主要IT規劃活動

(5)

規劃資訊技術

策略規劃

IT 規劃的第一個步驟被稱為

策略規劃

,是

將資訊技術規劃與整體商業規劃結合

利用一些策略規劃的架構和方法來確定IT

規劃確實反應商業的需求。其中一個最有

名的架構就是

關鍵成功因素

(critical success

factors,CSF)

方法

(6)

規劃資訊技術

資訊技術基礎建設分析

IT規劃的第二階段是描述組織的

IT基礎建設

所急需建置的功能

IT基礎建設包含組織的資訊系統硬體、軟體

和電信通訊設備;資訊系統部門的成員和其

它的人員;還有影響存取、處理和使用公司

內部資訊的組織架構和程序

(7)

規劃資訊技術

資源分配

IT規劃的第三階段是

資源分配

,是選擇要

投資的資訊系統專案的過程

商業組織使用許多方法來決定如何分配資

源,其中一個被廣泛使用的方法是

成本效

益分析

(8)

規劃資訊技術

專案規劃

IT規劃的第四階段是

專案規劃

。專案規劃

的目的是安排完成特定專案目標的一連串

步驟,並且要讓專案在預算內按照預定時

間完成

一個專案規劃包含一個可測量的專案目標

的敘述,可用來衡量專案的成敗。一個專

案目標可以是關於建立資訊系統的過程,

例如專案完成的確切日期

(9)

規劃資訊技術

專案規劃

許多專案規劃使用

甘特圖

(Gantt chart)

來表

現專案的時程表。甘特圖可以顯示專案中

每個步驟或一系列的步驟預期中開始和完

成的時間,還有實際開始和完成的時間

(10)

規劃資訊技術

專案規劃

專案管理者使用關鍵路徑法

(critical path

method,CPM)

來記錄專案的時程。CPM

是一個專案的數學模型,用來計算特定的

活動何時可以完成

(11)

規劃資訊技術

專案規劃

專案管理者有時會使用由CPM變化而來的

方法,叫做

計畫評估和檢閱技術

(program

evaluation and review technique,PERT)

。使

PERT的管理者會使用三個估算時間:樂

觀的、悲觀的,和完成所有活動最可能的

時間

(12)

人們如何製作系統

對任何組織來說,系統的開發程序是很重

要的,需要的不只是技術,還要有創意

(13)

這個 SDLC 的瀑

布模型圖顯示了

一個基本的循序

流程,從確認該

做什麼事到確認

事情有做正確。

調查

分析

設計

開發

建置

維護

淘汰

系統開發生命週期

(14)

系統開發生命週期

調查

確認問題:

‧確認組織的資訊需求

‧檢視目前的系統

‧判定它是否滿足使用者和組織的需求

‧判斷開發一個新系統或重新設計既有的系統

是否可行

(15)

系統開發生命週期

分析

在分析階段,系統分析師會:

‧收集文件

‧訪談現有系統的使用者

‧觀察運作中的系統

‧收集和分析現有系統的資料並確認新的需求

(16)

系統開發生命週期

原型法是一個互動的方法,可以不斷

地修正和改進,直到符合終端使用者

的需求

(17)

系統開發生命週期

SDLC 的開發階段,系統分

析師必須小心地計畫和安排活

動時間表,因為它們可以重疊

和同時進行

開發

(18)

系統開發生命週期

建置

‧直接替換法

‧平行系統法

‧逐步導入法

‧領航法

(19)

系統開發生命週期

維護

維護階段是在系統運作期間對它的監

控、評估、維修和加強

(20)

系統開發生命週期

淘汰

系統通常會使用好幾年,不過在某些時

候維護不能繼續維持系統的運作,就要

經歷淘汰階段

(21)

人們如何寫程式

程式設計是解決問題的一種特別的型式,

包含:

定義問題

設計、精鍊和測試演算法

撰寫程式

程式測試和除錯

(22)

從想法到演算法

一個老師需要一個程式來玩猜數字遊戲,讓學生

可以學習發展邏輯策略和練習他們的計算能力。

在這個遊戲中,電腦由

1 到 100 選一個數字,然

後給玩家七次機會來猜這個數字。每次猜錯時,

電腦都會告訴玩家所猜的數字太大還是太小。

先描述問題:

(23)

從想法到演算法

:逐步精鍊

先將問題分為三個部分:開始、中途和結

束。每個部分都有一個較小的程式設計問

題要解決

Begin

Game

Repeat Return

until Number is

Guessed

End

Game

(24)

從想法到演算法

:逐步精鍊

下一步的精鍊是在每個部分填入詳細一點的步驟

1.

Begin Game

Display instructions

Pick a number between 1 and 100

2. Repeat Turn Until Number is Guessed

Input guess from user

Respond to guess

End Repeat

(25)

從想法到演算法

:逐步精鍊

填入重要的細節

If guess = number, then say so and quit;

if guess < number, then say guess is too small;

if guess> number, then say guess is too high.

(26)

從想法到演算法

:逐步精鍊

讓電腦知道七次的限制已經到了

begin game

display instructions

pick a number between

1 and 100

set counter to 0

repeat turn until number is guessed or counter = 7

input guess from user

if guess = number, then say so and quit;

else if guess < number, then say guess is too small;

else say guess is too big

add 1 to counter

(27)

從想法到演算法

:控制結構

控制結構 就是控制指令執行順序的邏輯

結構

三個基本的控制結構:

循序

一組依照先後順序執行的指令

選擇

根據目前的情況,在兩個動作中選

擇一個

重複

允許一組的步驟重複執行數次,通

常是執行到某些條件滿足為止

(28)

從想法到演算法

:測試

測試是設計用來檢查演算法的邏輯

可以使用不同的數字來測試演算法

(29)

從演算法到程式

一個簡單的程式包含:

程式的標頭

變數的宣告和定義

(30)

進入電腦

文字編輯器輸入和儲存程式

使用轉譯軟體或編譯器將程式轉譯成機械

語言

(31)

轉譯軟體

轉譯軟體,叫做

直譯器

,在高階程式執行的

(32)

編譯器

編譯器

將整個程式在執行前轉譯成機械語

言程式

(33)

程式設計語言與方法

機械語言

是電腦的母語

四個基本的運算指令,可比較兩個數字,可重

複指令等等,都是二進位格式

指令、記憶體定址、數字和字元全都是以

0 和

1 來表示

(34)

程式設計語言與方法

組譯器

將組合語言的每個敘述轉譯成相對

(35)

高階語言

高階語言是介於人類自然語言和機械語言

之間的語言

例如: C++, Java, Basic, FORTRAN,

COBOL

他們容易撰寫和除錯,並可在不同機械間

轉移

(36)

結構化程式設計

結構化程式設計是一個讓程式設計步驟更容

易和更有生產力的技術

一個好的結構化程式符合下列要求:

-

由以邏輯力互相凝聚的模組組合而成

-

模組以階層化排列

-

簡單並可讀

(37)

非結構化程式設計

一個非結構化的程式

就像一個大而複雜的

機器,不能輕易拆解

成小部份

任何的修改都必須要

將整台機器拆開

(38)

結構化程式設計

問題可以區隔到個別的

模組

每個模組的輸出和輸入

較容易瞭解

結構化程式比較容易瞭解和修改,因為:

(39)

物件導向程式設計

在使用

物件導向程式設計

的程式中,不再

只是指令和程序的集合;它是一個物件的

集合

(40)

Basic 的三個階段

1.

早期的

Basic

- 每行程式之前都有行號。敘述

依照號行的順序來執行,直到以

GoTo 指令將控

制權轉移到另一個敘述

2.

結構化

Basic

- 一個擁有許多結構化程式設計

功能的新版語言,主程式被減化成幾行敘述;這

些敘述顯示了整個程式的邏輯。在執行時,主程

式會使用

CALL 指令將控制權交給其它副程式

3.

視覺化

Basic

- 一個現代化的程式設計環境,

包含許多物件導向程式設計和視覺化程式設計的

構想和工具

(41)

物件導向程式設計

有了

OOP 技術,程式設計師可以使用預先建構好的物件

來發展程式,就像建築工人用預先做好的磚牆來蓋房子

一樣

例如,用來將郵寄名單資料庫中的地址按英文字母順序

排序的物件也可以在另一個程式中用來排序飯店的訂房

名單

(42)

視覺化程式設計

視覺化程式設計

讓程式設計師可以藉由繪

圖和移動螢幕上的物件來建立他們程式的

大部分,消除了許多傳統程式設計冗長乏

味的程式碼撰寫

Apple 的 HyperCard 可能是第一個流行的

視覺程式設計環境範例

今日

Microsoft 的 Visual Basic 因為它的

視學化程式設計方法,廣泛地被專業人士

和玩家所使用

(43)

給使用者用的語言

使用者導向巨集語言或腳本語言讓使用者

能夠自己建立巨集程式來自動完成重複性

的工作

第四代語言使用類似英語的詞語和句子來

當作指令,專注在要做什麼事情上,而不

是要怎麼去做

(44)

元件軟體

可利用軟體元件建構小型的客製化應用程

客製化的能力必須要軟體有設計這項功能

才行,愈來愈多的軟體程式,包含作業系

統,都將擴充功能納入設計考量

(45)

Web 程式設計

HTML

JavaScript

Java

Perl

XML

程式設計師可以使用各種語言來寫

Web 應

用程式,包含

C 和 C++。不過有些程式設

計工具對於開發

Web 應用程式特別有用:

(46)

程式設計的未來

程式設計語言會繼續往自然語言的方向進

程式設計師與使用者之間的界線可能會變

得模糊

電腦將可以自己設計程式

(47)

系統開發的狀況

:軟體問題

軟體錯誤很難找到,更難移除

疏忽造成的錯誤

語法錯誤

邏輯錯誤

操作錯誤

容量錯誤

判斷錯誤

(48)

系統開發的狀況

:

軟體解決方案

程式設計技術

程式設計環境

程式驗證

無塵室程式設計

人員管理

參考文獻

相關文件

結構化程式設計 是設計一個程式的一個技巧,此技巧就

Cauchy 積分理論是複變函數論中三個主要組成部分之一, 有了 Cauchy 積分理論, 複變 函 數論才形成一門獨立的學科, 並且導出一系列在微積分中得不到的結果。 我們先從 Cauchy

2-1 化學實驗操作程序的認識 探究能力-問題解決 計劃與執行 2-2 化學實驗數據的解釋 探究能力-問題解決 分析與發現 2-3 化學實驗結果的推論與分析

推理論證 批判思辨 探究能力-問題解決 分析與發現 4-3 分析文本、數據等資料以解決問題 探究能力-問題解決 分析與發現 4-4

在選擇合 適的策略 解決 數學問題 時,能與 別人溝通 、磋商及 作出 協調(例 如在解決 幾何問題 時在演繹 法或 分析法之 間進行選 擇,以及 與小組成 員商 討統計研

當然,儘管根據以往的經驗,某個問題的解決看似比較容易,但通常事先不會知道困難

運用想像力、形式/技巧表現一個 的夢境 回憶 的一刻,以形式/技巧,表達 的情 景/情緒。. 從評賞

明龍計算一題兩個數相加的數學題目,不小心算成了相減,所得到的答