--- tags: 系統分析與設計, CH1 --- # 資訊系統開發概論 > 隨著資訊科技持續的創新、應用的普及和經營環境之競爭,有效地掌控與應用資訊已成企業成敗的關鍵因素。 [TOC] --- ## 學習目標 + 系統開發、資訊系統開發和系統分析與設計的關係。 + 影響資訊系統開發的重要構面。 + 資訊系統開發環境。 + 資訊系統開發有哪些重要人員參與,各扮演何種角色。 + 資訊系統之建置有哪些策略可思考。 + 有哪些資訊系統開發模式。 + 系統分析與設計階段有哪些技術可用。 --- ## 導論 + 隨著<u>資訊科技的創新</u>、<u>資訊科技應用的普及</u>和<u>經營環境之競爭</u>,<span style="color:red">有效地掌控與應用資訊</span>已成為企業成敗的關鍵因素。 + 為能有效地管理與應用資訊,支援組織的經營管理和決策需求,各種<span style="color:red">資訊系統(Information System, IS)</span>乃應運而生: + 交易處理系統(Transaction Processing System, TPS) + 管理資訊系統(Management Information System, MIS) + 決策支援系統(Decision Support System, DSS) + 高階主管資訊系統(Executive Information System, EIS) + 專家系統(Expert System, ES) + 企業資源規劃(Enterprise Resource Planning)系統 + APP(Application) + 雖然各資訊系統有其不同特性,系統開發的策略與技術也不盡相同,但系統開發過程仍可大略歸納出一些基本而共同的步驟或階段 + 較單純之系統:分為**需求分析**、**系統分析與設計**、**系統實施**三階段。 ```flow op1=>operation: 需求分析 op2=>operation: 系統分析與設計 op3=>operation: 系統實施 op1->op2->op3 ``` + 較複雜之系統:可劃分為七個階段或更多階段。 ```flow op1=>operation: 使用者需求分析 op2=>operation: 軟硬體需求分析 op3=>operation: 系統分析 op4=>operation: 系統設計 op5=>operation: 編碼 op6=>operation: 測試 op7=>operation: 操作與維護 op1->op2->op3->op4->op5->op6->op7 ``` :::warning 無論如何劃分,「**系統分析與設計**」都是重要的開發階段之一 ::: + 早期的資訊系統 + 主要應用在工程、科學和會計等專業領域。 + 系統開發者與使用者是同樣的人或兩者關係非常密切。 + 系統開發憑經驗與喜好,無(未依)系統開發方法,無詳細的文件記錄。 + 導致系統維護困難、整合和擴充上的困難。 + 後來,由於資訊系統的普及與複雜度的提高 + 促成了專業軟體公司的成立與套裝軟體的發展。 + 系統開發者和使用者分開,更需要一套方法來銜接兩者。 + 因此系統分析與設計的重要性變大為提升。 + 系統分析與設計是資訊系統開發的一重要環節,對資訊系統開發環境的瞭解,有助於系統分析與設計工作的順利進行。 + 一般系統開發原則和方法也提供了資訊系統開發有用的指引。 --- ## 資訊系統開發的原則 <ul> <li>人類為滿足需求或達成願望,建立或開發了各式各樣的系統。</li> <ul> <li>萬里長城是防禦系統。</li> <li>電影是娛樂產品。</li> <li>企業的電腦軟體則是資訊系統。</li> </ul> <li><span style="color:red">資訊系統開發(Information System Development)</span>可定義為 </li> <ul> <li> <span style="color:green">運用資訊科技</span>及<span style="color:green">資訊系統開發方法</span>,來建構<span style="color:blue">實體的(Physical)</span>或<span style="color:blue">邏輯的(Logical)</span>系統,以達到<u>特定的目標</u>或<u>功能</u>,協助人們<u>解決資訊處理的需求</u>。 </li> <ul> <li><span style="color:green">資訊科技</span>包含<u>電腦</u>、<u>網路</u>及<u>通訊科技</u>。</li> <li><span style="color:green">資訊系統開發方法</span>包括<u>系統分析與設計</u>、<u>資料庫設計</u>及<u>專案管理</u>。</li> </ul> </ul> <li>系統開發者須依不同的目標及需求,選擇適當的科技,並配合適當的方法,方能有效地開發資訊系統。 </li> <li>成功的資訊系統開發必須把握一些重要的原則</li> <ul> <li> <span style="color:red">系統的目標應該明確定義</span> <ul> <li>明確的需求、功能、範圍、完成時間與評估標準。</li> </ul> </li> <li> <span style="color:red">系統的目標要實際而有用</span> <ul> <li>有用的系統必須能有效地解決實際問題,並帶來效益。 </li> </ul> </li> <li> <span style="color:red">系統開發要充分運用科技</span> <ul> <li>科技帶來新功能、新產品,也提升開發效率與品質,才能維持企業競爭力。</li> </ul> </li> <li> <span style="color:red">系統開發要依循一定的方法</span> <ul> <li>反覆地研究與開發,可累積經驗以發展出更好的程序、步驟、工具與標準,這些成果經有系統的整理,便形成一套系統開發的方法論。優點:</li> <ul> <li>一個有系統的方法易被大家瞭解與接受,亦是溝通的基礎。</li> <li>一個共同的標準與規範,有利於執行和推動。</li> <li>可廣為傳授。</li> </ul> <li>土法煉鋼:沒有依循方法,而只憑個人技藝及直覺判斷,不可靠也不長久。</li> </ul> </li> <li> <span style="color:red">系統開發必須獲得足夠的資源與支持</span> <ul> <li>須人員、時間、金錢、設備與專業知識等資源。</li> <li>組織內外管理階層的支持、承諾與鼓勵。</li> </ul> </li> <li> <span style="color:red">系統開發必須符合限制條件</span> <ul> <li>不能隨心所欲,須符合法規標準、期限、環境中的限制與合約書要求。</li> </ul> </li> <li> <span style="color:red">系統開發必須考慮環境因素</span> <ul> <li>開發前必須先了解使用環境,以及系統對環境的影響,才不致開發後乏人問津,或因軟體的引進而造成資料歸屬或工作權責混淆等爭議。</li> </ul> </li> </ul> </ul> --- ## 資訊系統開發的構面 資訊系統開發要考慮<span style="color:red">人</span>、<span style="color:red">方法</span>、<span style="color:red">科技</span>和<span style="color:red">企業經營</span>等四個重要的構面,其關係有如鑽石結構,各構面須均衡發展: ![](https://i.imgur.com/QA3QSDr.png) --- ### 資訊系統開發 - 人的構面 + 技術優越的人 + 可使困難的問題迎刃而解。 + 經驗豐富的人 + 可大幅提高生產力。 + 學習動機及能力強的人 + 可成為新科技的受益者。 + 善於溝通的人 + 可整合多方意見並減少衝突。 + 配合度好的人 + 可使專案順利進行 + 主動支持的高階主管 + 可協助系統開發、排除障礙,對開發人員產生鼓舞作用。 + 如何使資訊系統開發相關的人員<u>發揮創造力</u>與<u>生產力</u>,促進<u>團隊合作</u>是重要的議題。 + 領導者應朝自我設定目標、自我管理。 + 而非集中式的規劃控制。 + 應保持小型專案團隊的高凝聚力、高彈性及高生產力。 + 而非階級分明與權責定型的功能式組織。 + 應以成就感、榮譽、責任心來激勵人員。 + 而非僅用金錢報酬。 + 訓練應加強溝通技能、企業的經營管理知識與系統整合能力。 + 而非僅限於技能技術。 + 專案經理的人選與專案的成敗有密切的關係,慎選和培育專案經理不容忽視。 :::warning 資訊系統開發是極度依賴人的工作 ::: --- ### 資訊系統開發 - 方法構面 + 資訊系統開發需要依循一套科學方法,才能降低失敗的風險,使不同組織或地區開發的系統能互相溝通與整合。 + 系統開發之方法 + 包含<u>系統開發模式</u>及<u>分析與設計之技術</u>。 + 是一套符合邏輯且經過驗證的流程、步驟和技術。 + 其目的在於提升系統開發之效率與效能、維持系統品質與一致性。 + 系統開發方法有很多且各有其<u>特性與適用性</u>,沒有一個方法能很有效地處理所有的問題,<u>慎選方法對系統開發之成效具關鍵性的影響</u>。 --- ### 資訊系統開發 - 科技構面 + 資訊系統是資訊科技產物,成功的資訊系統開發必須要善用資訊科技。 + 不同的資訊科技各有其<u>特性與適用性</u>,不同的實施方法。 + 資訊科技創新速度快、淘汰快,若科技不成熟而貿然引進或選擇了落伍的技術,則開發風險將非常高。 + <u>科技的研發、選擇及管理對系統的成敗具關鍵性影響</u>。 --- ### 資訊系統開發 – 企業經營構面 + 資訊系統目的在<u>支援企業的經營管理</u>,其價值在於對企業所帶來的<u>機會與效益</u>。 + 系統不合用或不好用,就是系統不符合企業經營管理的需求或無法有效解決使用者的問題。 + 系統開發須瞭解企業的管理需求,才能使資訊系統的價值發揮出來。 + 系統分析與設計的主要功能是 + <span style="color:red">表達企業的經營管理需求,並將需求有效地轉化成可支援這些需求的資訊系統。</span> --- ## 資訊系統開發的特性與挑戰 + 資訊系統開發的特性 + <span style="color:red">軟體是人造的邏輯系統。</span> + 設計者對於<u>電腦程式中的邏輯必須完全瞭解</u>。 + <span style="color:red">軟體開發是一種專業的工作。</span> + 有些系統可憑經驗法則、簡單的技術和工具就可發展,專業與非專業的差別只在於品質優劣和生產力的高低。 + 軟體開發則必須<u>具備電腦專業知識和訓練</u>方可上手,專業門檻較高,且養成時間也較長。 + <span style="color:red">軟體開發是一種智力活動。</span> + 智力活動之潛能無窮、個別差異大,且非常仰賴<u>相互溝通與學習</u>。 + 人的智力活動同時也充滿著錯誤和偏誤,例如推理、記憶、表達或理解等都易產生錯誤,因此,資訊系統的<u>驗證測試與品質管理</u>格外重要。 + 資訊系統開發面臨之挑戰 + 資訊科技的快速進步,使得<span style="color:red"><u>淘汰率驟增</u></span>、系統的<span style="color:red"><u>可用壽命變短</u></span>、<span style="color:red"><u>技術支援無法持久</u></span>。 + 如何選擇適當的資訊科技或如何克服資訊科技的變化? + 經營<span style="color:red"><u>環境之快速變遷</u></span>,使得需求亦經常變動。 + 如何改善分析與設計方法,完整並有效地發掘使用者需求,使設計之系統具彈性、能因應需求變化? + 資訊系統開發經常面臨<span style="color:red"><u>時程延誤</u></span>、<span style="color:red"><u>成本超支</u></span>、<span style="color:red"><u>品質不良</u></span>等問題。 + 如何有系統地規劃與控制專案,使系統開發達到預期目標? + 人們重視看得見的硬體,而常忽略看不見的軟體。<span style="color:red"><u>軟體的價值普遍被忽略</u></span>、<span style="color:red"><u>開發成本普遍被低估</u></span>,且<span style="color:red"><u>不重視智財權</u></span>,使系統開發環境更加惡化。 + 如何導正觀念,並提升軟體價值? --- ### 軟體 vs. 硬體 | Software | Hardware | | -------- | -------- | | Logical system element | Physical system element | | Developed/engineered | Manufactured | | Not ware out but deteriorate<br>No spare parts | Ware out<br>Yes, with spare parts | | Usually custom-built | Assembled from existing component | --- ## 資訊系統開發環境 + 資訊系統開發環境所涉及的層面很廣,包括 + 資訊系統的<u>種類</u>、<u>開發相關人員</u>、<u>建置策略</u>、<u>開發模式</u>、<u>程式語言</u>、<u>系統分析與設計理論</u>、<u>技術和工具</u>。 + 外在大環境的<u>科技</u>、<u>社會</u>、<u>教育</u>、<u>文化</u>、<u>人口</u>、<u>經濟</u>、<u>政府政策</u>與<u>法規</u>等因素,也直接或間接影響系統分析與設計。 ![](https://i.imgur.com/JLwEzSI.png) --- ### 資訊系統的種類 + 有關資訊系統的定義很多 + 利用資訊科技以<u>取得</u>、<u>傳遞</u>、<u>儲存</u>、<u>檢索</u>、<u>處理</u>或<u>展示資訊</u>,並<u>應用於一或多個企業處理的系統</u>。(Alter) + <u>一些有組織的元件</u>,用以蒐集、傳遞、儲存與處理資料,以產生活動所需的資訊。(Zwass) + 資訊系統是由<span style="color:red">使用者介面</span> (User Interface)、<span style="color:red">應用程式</span>(Application) 與<span style="color:red">資料庫</span> (Database) 等元件,利用資訊科技有組織的結合,以管理 <small>(如擷取、傳輸、儲存、處理與展示等)</small> 知識 <small>(資料、資訊)</small>,並為某些活動 <small>(如企業流程或問題解決等)</small> 提供知識或服務的系統。 + ![](https://i.imgur.com/u5iDtKn.png) + 資訊系統已成為企業必備之工具,常見的資訊系統 + 交易處理系統 (Transaction Processing System) + 管理資訊系統 (Management Information System) + 決策支援系統 (Decision Support System) + 高階主管資訊系統 (Executive Information System) + 專家系統 (Expert System) + 企業資源規劃 (Enterprise Resource Planning, ERP) 系統 + APP (Application) --- #### 交易處理系統 + 交易處理系統 (Transaction Processing System, TPS) 亦稱 資料處理系統 (Data Processing System, DPS) + 主要目的是將大量的交易處理自動化。 + 這類交易<u>處理非常結構化</u>,其<u>程序及資料有既定的標準</u>,且有<u>高度重複性</u>。 + 此系統有兩種主要功能: + 交易紀錄之保存。 + 交易表單之產生。 + 典型範例 + 大賣場之銷售點管理 (Point of Sale, POS) 系統 + 前台系統:協助結帳、收銀與列印交易收據等作業。 + 加油站之加油作業與收銀系統。 + 金融機構之櫃台系統。 --- #### 管理資訊系統 + 管理資訊系統 (Management Information System, MIS) + 主要目的為提供不同層級的管理者,有關組織營運狀況但摘述程度不同之報表,這些報表格式已事先訂定,亦即這些<u>資料之處理</u>與<u>報表產生大多為結構化</u>。 + 該系統主要有兩種功能: + 交易紀錄之保存。 + 摘述性報表之產生。 + POS系統之後台系統便屬於管理資訊系統 --- #### 決策支援系統 + 決策支援系統 (Decision Support System, DSS) + 主要目的為支援決策者,提升其決策效率 (Efficiency) 與效能 (Effectiveness)。 + 決策支援系統主要<u>支援半結構化或非結構化之決策活動</u>。 + 主要特徵 + 能以即興 (Ad Hoc)、自訂或標準化的方式分析資料與產生報表。 + 能直接與決策者互動。 + POS 之後台系統 + 除固定式地資料查詢、處理、分析與報表產生外。 + 若還能與使用者互動,並依其需求擷取、分析與展示資訊,則該系統可稱決策支援系統。 --- #### 高階主管資訊系統 + 高階主管資訊系統 (Executive Information System, EIS),亦稱高階主管支援系統 (Executive Support System, ESS) + 針對高階主管之資訊需求而設計 + 希望高階主管能即時由系統獲得其所需之關鍵資訊,不需透過第三中介者整理或轉達。 + 關鍵資訊可能是有關銷售、財務、生產或例外狀況之資訊。 + EIS 之特徵包括 + <u>可過濾、摘述關鍵資訊</u>,亦可將資訊以多種方式作<u>圖形化的展示</u> (如儀表板、長條圖),也得以<u>由上而下之方式擷取資訊</u>並進行分解。 + 一般而言,EIS 之特徵與 DSS 相同,但比 DSS 有更多限制,故 EIS 可視為 DSS 的一種特例。 --- #### 專家系統 + 專家系統 (Expert System, ES) + 針對<u>特定的應用範圍或領域</u>,<u>集合不同專家的專業知識</u>而成的系統。 + 初期發展目的是用以模仿人類專家解決特定問題之能力,並希望專家系統所提供之答案或建議可達人類專家水準。 + 專家系統包含三個主要元件: 1. <span style="color:red">使用者介面 (User Interface)</span>:為專家系統與使用者交談之媒介。 2. <span style="color:red">推理引擎 (Inference Engine)</span>:為專家系統依使用者要求,由知識庫推論出結果或建議之機制。 3. <span style="color:red">知識庫 (Knowledge Base)</span>:為系統儲存專家知識之處。 + 知識以<b>法則 (Rule)</b>、<b>框架 (Frame)</b> 等方式表達。 + 現今,專家系統不再強調取代專家,而是支援專家。 + ES 也漸成為另一種形式之 DSS。 --- #### 企業資源規劃系統 + 企業資源規劃 (Enterprise Resource Planning, ERP) 系統 + 一種將多項企業功能整合在一起的模組化與架構化套裝資訊系統,藉由及時整合與掌握企業分散於各地的資源,提供最佳流程典範 (Best Practice),以降低企業營運成本並提升客戶服務滿意度。 + 狹義的觀點視 ERP 系統為整合企業內部資源規劃之系統。 + 廣義的觀點視 ERP 系統為整合企業內外部資源規劃之系統,例如企業上下游之供應鏈管理等。 + 坊間主要的 ERP 系統業者 + <span style="color:red"><u>SAP</u></span> 與 <span style="color:red"><u>Oracle</u></span> + <span style="color:red"><u>鼎新</u></span> --- #### APP + APP 為「應用」 (Application) 的縮寫。 + 原指電腦上專門解決使用者需求所開發、撰寫的應用程式或軟體。 + 隨著行動裝置的興起,APP亦可指軟體開發商在行動裝置上開發的各種擁有獨立操作系統之行動軟體應用程式 (Mobile Application)。 + APP 功能主要圍繞於現代人日常生活的需求。 + 例如,社交軟體、影音娛樂、商業工具、遊戲、交通資訊等。 + 使用者可依照個人需求自應用程式商店下載並安裝於行動裝置中。 --- #### 資訊系統之種類及其特性 | 資訊系統種類 | 資訊系統特性 | | -------- | -------- | | 交易處理系統 | 將大量的交易處理自動化<br>處理程序與資訊需求非常結構化 | | 管理資訊系統 | 提供不同層級之管理者摘述程度不同之報表<br>資料的處理與報表的產生亦多為結構化 | | 決策支援系統 | 支援決策者半結構化或非結構化之決策<br>提升決策之效率與效能 | | 高階主管資訊系統 | 支援高階主管即時瞭解所需之關鍵資訊<br>可過濾、摘述關鍵資訊<br>可將資訊以多種方式作圖形化的展示 | | 專家系統 | 針對特定應用範圍或領域,集合不同專家知識而成的系統<br>希望專家系統提供之答案或建議可達人類專家之水準 | | 企業資源規劃系統 | 將多項企業功能整合在一起<br>可即時整合與規劃企業分散於各地之資源<br>提供最佳的流程典範 | | APP | 針對行動裝置所開發的各種微型應用程式<br>擁有獨立的操作系統<br>使用者透過軟體應用程式商店直接下載並安裝於行動裝置 | --- ### 資訊系統開發相關人員之角色 + 終端使用者 (End User) + 終端使用者之高層主管,亦稱企業主管 (Business Manager) + 程式設計師 (Programmer) + 系統分析師 (System Analyst) + 資訊系統經理 (IS Manager) + 資料庫管理者 (Database Administrator)及其他技師 (Technician) --- #### 終端使用者 + 是<u>問題領域之專家</u>,但可能並非資訊科技方面之專家。 + 在系統分析與設計過程中,主要扮演<u>提供使用者需求與企業知識</u>的角色。 + 終端使用者應能主動、積極地參與系統開發,並盡可能完整與清楚地表達需求和知識,而非被動地等待系統分析師之詢問。 + 系統分析師要與終端使用者一起工作,並將其需求和企業上的知識轉換成可支援終端使用者工作的資訊系統。 --- #### 企業經理 + 是終端使用者之高層主管,這些人沒有很多的時間參與系統的開發,但在系統開發的過程中扮演了非常重要的角色 + 例如<u>承諾對系統開發所需之財力、人力、時間等資源的投入及提出組織之政策與限制等</u>。 + 由於他們的決策權與對企業經營的專業知識,部門的領導者與執行長也能對資訊系統專案發展設定一般性的需求與限制。 + 系統分析師必須與這些人保持良好的溝通,瞭解他們的<u>期望和優先順序</u>,並從他們口中瞭解組織內的<u>限制和資源</u>。 + 可在政策上支持、精神上的鼓勵及實質的資源分配上協助。 --- #### 系統分析師 + <u>擷取使用者需求</u>,並能<u>清楚且完整地瞭解及表達需求</u>。 + 進一步<u>將需求轉換成資訊技術、企業處理與知識</u>等元件,並將之有組織地結合起來。 + 分析與設計出可滿足<u>使用者需求的軟/硬體藍圖</u>。 + 系統分析與設計的過程中,必須和各種人員保持良好的溝通、互動與互信,以確保系統開發之成功。 #### 程式設計師 + 主要是依分析與設計之藍圖<u>設計出程式</u>、<u>建立資料庫</u>、<u>測試與安裝</u>系統等。 :::info 程式設計師要完全瞭解系統分析與設計文件,而系統分析與設計人員則必須瞭解程式設計的功能與限制,雙方密切溝通才能提高效率、確保品質。 ::: --- #### 資料庫管理者及其他技師 + 負責資料庫、網路、作業系統等相關軟/硬體之建置、管理與維護。 + 系統設計將涉及資料庫管理系統與作業系統的選擇,以及資料庫的設計、網路架構的設計、系統介面的設計等。 --- #### 資訊系統經理 + 負責資訊系統之專案管理、人員之規劃 (含招募與訓練)、軟/硬體規劃與政策之制定及推展等。 --- ### 資訊系統建置策略 + 資訊系統建置策略是指 + 新資訊系統之建立。 + 舊資訊系統之修改、擴充或更新等所採取的方式。 + 資訊系統之建置策略可分: 1. 由公司內部自行完成 2. 由公司外部取得 3. 其他方式 + 若採取由公司內部自行完成之策略 + 即<b>使用者自建 (End User Computing, EUC 或 End User Development, EUD)</b> + 由公司資訊部門自行開發 + 由相關部門人員組成任務編組開發 + 取自於公司外部 + 委外開發 (Outsourcing) + 購買現成之套裝軟體 (Application Package) + 引進同業之系統 + 採取租賃方式 + 由<b>應用系統服務提供者 (Application Service Provider, ASP)</b> 提供軟體或硬體服務。 + 其他方式 + 上述各種策略之綜合 + 由同業聯合共同尋找資訊公司開發 + 在決定採取哪種建置策略時,應考慮<u>成本</u>、<u>時效</u>、<u>適用性</u>、<u>技術水準</u>、<u>人員調派</u>及<u>經營策略</u>等因素。 + ![](https://i.imgur.com/vAAnCdy.png) + EUD 或資訊部門開發 + 常需考量時效、技術水準及資訊策略等因素。 + EDU 可分擔資訊部門的工作負荷,使系統能儘快完成,但技術能力足夠否? + EDU 須配合分散式的資訊系統架構。 + 軟硬體配備、資訊管理政策要符合。 + 明定 EDU 與集中管理的範疇。 + 使用者的<u>系統分析與設計能力</u>是決定 EDU 範疇的重要因素。 + 委外開發時,往往由雙方組成工作委員會來推動。 + 未來需求? + 突破性、創新性的流程改善。 + 理想情況:委外單位具豐富經驗且能做好<u>系統分析與設計</u>。 + 購買現成套裝軟體 + 應先進行<u>系統分析與設計</u>,以為依據。 --- ### 資訊系統開發模式 + 決定了資訊系統建置之策略後,接著要決定**資訊系統開發模式** (簡稱**系統開發模式**)。 + 系統開發模式主要考量系統開發過程應分成哪些<u>階段</u>、每個階段應<u>如何進行</u>及包含哪些<u>工作內容</u>等議題。 + 常用的資訊系統開發模式 + 瀑布模式 (Waterfall Model) + 雛型模式 (Prototyping Model) + 漸增模式 (Incremental Model) + 螺旋模式 (Spiral Model) + 同步模式 (Concurrent Model) + RUP模式 (Rational Unified Process Model) + 敏捷軟體開發 (Agile Software Development) + MDA軟體發展生命週期 (Model Driven Architecture) --- ### 程式語言 + 程式語言從1950年代的**機器碼** (Raw Machine Code) 逐漸演進為組合語言(Assembly Languages)、**程序性程式語言** (Procedural Programming Languages) 到現在的**物件導向程式語言** (Object-Oriented Programming Languages)。 | 年代 | 當時的程式語言 | | -------- | -------- | | 1950 | 機器碼 | | 1950 ~ 1965 | 組合語言 | | 1965 ~ 1985 | 程序性程式語言 | | 1985 ~ 現在 | 物件導向程式語言 | | 現在 ~ ... | 下一波為何? | --- ### 系統分析與設計理論、技術和工具 + 系統分析與設計是一系列有組織之處理程序。 + 目的是將使用者或企業需求轉換成有組織的資訊科技、企業流程與知識等元件。 + 常用的系統分析與設計技術可分為 + **結構化技術** + 結合了程序性程式語言的特性與<span style="color:red">分治</span> (Divide and Conquer) 原理。 + 改善了軟體的<span style="color:red">結構性</span>與<span style="color:red">重用性</span>。 + **物件導向技術** + 將資料 (Data) 與處理 (Process) 緊密地結合。 + <span style="color:red">資料抽象化</span> (Data Abstraction)、<span style="color:red">封裝</span> (Encapsulation)、<span style="color:red">繼承</span> (Inheritance)、<span style="color:red">同名異式</span> (Polymorphism)。 + 結構化分析與設計主要由 Yourdon 於1970年代初提出,正值瀑布模式,又稱<span style="color:red">系統發展生命週期 (System Development Life Cycle, SDLC)</span> 盛行之時,此技術自然被應用於 SDLC 之系統分析與設計階段。 + 結構化的 SDLC + 應用結構化技術時,常用之流程與資料塑模 (**Modeling**) 工具 1. 事件(Event) 2. 環境圖(Context Diagram) 3. 資料流程圖(Data Flow Diagram, DFD) 4. 資料字典(Data Dictionary, DD) 5. 處理規格描述(Process Specification) 6. 實體關係圖(Entity-Relationship Diagram, ERD) 7. 狀態轉移圖(State Transition Diagram, STD) + 結構化技術主要用於系統開發過程之分析與設計階段,幫助系統分析師進行資訊系統之描述與驗證。 + 過程中將企業流程與資料分開處理。 + 以結構化塑模工具幫助系統分析師進行資訊系統之描述與驗證。 + 強調將問題分割成更小與更易管理的基本單位 (模組),以加強程式之結構性與正確性,藉以縮短程式設計時間與減少系統維護時間與人力。 + 物件導向技術是將企業流程與資料封裝成物件,而不像結構化技術是將企業流程與資料分開處理。 + 常用的塑模工具:**統一塑模語言 (Unified Modeling Language, UML)**。 + 物件導向之另一特徵是繼承的概念,也就是當物件類別之層級結構被建立時,低層物件可繼承高層物件之性質,以減少因需求改變而造成相關程式之修改。 ![](https://i.imgur.com/j8VcSYf.png) --- ### 外在環境 + 外在環境指資訊系統開發所面對的組織、社會、文化、教育、科技、法規、政策等因素,這些因素直接或間接影響到資訊系統開發的成效。 + 資訊密集行業如金融業 + 強調決策速度之環境如科技產業 + 勇於嘗試新科技的組織文化 + 人員教育程度較高的組織 + 重視智慧財產權的社會價值觀 + 科技的成熟度、科技取得的方便性、科技人員的普及性、法規的要求或同業的協定,如金融機構之跨行連線等,也是有利的外在環境因素。 + 此外,社會媒體的宣導、政府政策的推動、智慧財產權的保護、資訊教育的推廣等,均有利資訊系統開發。 --- ## 結論 + 資訊系統開發是一有系統、有組織的活動。 + 過程中需考量系統開發之環境背景,如瞭解資訊系統種類、開發人員、建置策略、開發模式、程式語言及分析與設計技術等。 + 瞭解問題癥結與找尋解決之道,並在評估後作最適當的選擇。 + 選擇時,也應考量組織之限制、政策、人員之資訊科技能力、資金、規模、對系統需求之迫切性、組織對資訊倚賴之程度與重要性等。 + 資訊人員應對上述問題有充分地瞭解,才能有效地掌握系統開發之進行。