Skip to content

jason19970210/SystemsAnalysisDesign

Repository files navigation

SystemsAnalysis-Design 系統分析與設計(1)

  • ftp://163.25.117.117/sywan/System Analysis/undergrad

No more Update

Ch1 系統分析設計概觀

1-1 認識系統分析與其重要性

  • 軟體系統的普遍性
    • 手機及汽車之嵌入式軟體
    • 企業內部的各種管理資訊系統
    • 高速公路收費系統、悠遊卡系統、通關系統
  • 軟體系統可能遇到的問題
    • 使用者對於需求無法明確說明
    • 環境變動過於快速
    • 專案管理不良
  • 系統分析:分析師去了解和明確敘述出資訊系統應該完成之工作的一組活動
  • 系統設計:分析師定義和描述系統解決需求細節的一組活動
  • 系統分析設計 方法論
    • 結構化方法 Structured Methodology
      • 結構化分析、結構化設計、結構化程式設計
      • 簡化設計,也亦於未來維護工作
    • 物件導向方法 Objected-Oriented Methology
      • 統一程序 UP, Unified Process:by Booch & Rumbaugh, 1994
        • 基本特性:反覆式發展反覆並漸增式發展、接受改變並調整與適應、時間區間概念
        • 統一程序階段:
          • 起始階段 Inception:
          • 詳細闡述階段 Elaboration:
          • 建構階段 Construction:
          • 轉換階段 Transition:
      • UML Unified Modeling Language:by Jacobson & Booch & Rumbaugh, 1995
      • 基本特性:封裝、繼承、多型

1-2 軟體發展程序

  • 規範式程序 Prescriptive Process / 計畫驅動程序 Plan-Driven Process
    • 事先定義好「階段」
    • 上一階段完成才能進行下一階段
    • 每一階段完成後需得到使用者確認
  • 敏捷式程序 Agile Process / 適應性程序 Adaptive Process
    • 反覆與漸層式
    • 強調專案的快速回應能力
      • 增量發行 Incremental Planning:客戶需求是以一個個增量模組開發
        • 增量模組:因應需求不確定與環境變化
      • 小版本發行 Small Releases:首要功能先開發,陸續發布更新增加功能
      • 測試驅動 Test-First Driven:先依據規格撰寫測試個案,不斷以這些測試個案測試直到通過
      • 重構 Refactoring:改善程式結構但維持原有功能
      • 配對程式發展 Pair Programming:兩人一組開發,一人撰寫程式,一人負責測試
  • 瀑布式軟體發展程序 Waterfall Software Development Process
    • 五個階段:
      • 需求:了解使用者之目標與需求
        • 功能性需求 Functional Requirement
        • 分功能性需求 Non-functional Requirement
      • 分析:使用 系統規格書 紀錄使用者需求與限制
      • 設計:建立系統架構與細部模組,並對每個模組進行描述,稱為 系統設計書
      • 製作
        • 程式撰寫:將系統設計書轉為程式模組
        • 測試:進行單元測試、整合測試、功能測試、系統測試
        • 上線:將測試完成的系統放置實際環境中運行
      • 維護:上線後所進行的工作
        • 正確性維護:修改系統錯誤
        • 適應性維護:因應環境變化
        • 完美性維護:提升系統效能
        • 預防性維護:預防未來環境改變
    • 階段工作完成才能繼續發展下一階段
    • 某階段工作完成後 凍結,不允許更改

1-3 系統分析師與系統分析設計之工作

  • 應具備能力
    • 資訊技術能力
    • 邏輯分析能力
    • 企業領域知識
    • 人際溝通技能
  • 系統分析工作
    • 需求調查
    • 可行性研究
    • 定義需求
    • 撰寫規格書
    • 擬定可行方案
    • 管理者確認
  • 系統設計工作
    • 系統架構設計
    • 系統功能設計
    • 系統介面設計
    • 資料庫設計
  • 系統分析書:
    • 系統架構描述
    • 子系統功能描述
    • 個別類別或模組敘述
    • 介面設計
    • 報表設計
    • 實作與測試計畫
    • 實際運行環境說明

Ch2 何謂物件導向系統分析設計

2-1 物件與物件導向概念

  • 類別 vs. 物件 vs. 方法
  • 物件導向觀念
    • 系統是由一群物件組成
    • 先決定系統所需要的物件
    • 單一物件功能完整且獨立
    • 善用物件封裝、繼承與多型的特性
      • 封裝 Encapsulation
        • 將一群相關的屬性和操作組成物件的型態
        • 設計物件時應盡可能讓單一物件功能完整且獨立,與其他物件的相關程度降到最低
      • 繼承 Inheritance
        • 類別所定義的屬性和方法可以被其他的類別所使用
      • 多型 Polymorphism
        • 不同類別中可以存在相同的方法名稱,但其操作的內容可以不同
        • 多型另一個性質稱之為覆載(override)
          • 子類別繼承了父類別的屬性與方法,在使用子類別時, 以子類別的屬性與方法為主

2-2 UML 與物件基本原理

  • 提出者:Ivar Jacobson & Grady Booch & James Rumbaugh
  • 圖示定義 (x15)
    • 結構性圖示 (x7)::表達系統中個體的結構和其靜態關係
      • 類別圖(Class diagram):將系統所需要的類別(包含類別內的屬性和方法)和類別間的關係以關聯符號表現出來。
      • 元件圖(Component diagram):將系統中的類別分別組成不同元件,並表現出元件間的關係。
      • 複合結構圖(Composite structure diagram):描述類別的內部結構,即是類別內各部分組成的關係。
      • 部署圖(Deployment diagram):硬體與執行環境的描述,並描述系統的個體如何部署在這些硬體之中。
      • 物件圖(Object diagram):在某一個特定時間點,系統內部物件間的關係與狀態的描述。
      • 套件圖(Package diagram):套件由許多類別組成,描述這些套件間的關係。
      • 輪廓圖(Profile diagram):表現出類別的擴增機制, 利用慣用模板(stereotype)的方式來定義擴增的值或限制。輪廓圖經常用來擴增類別的使用平台(platform)或領域(domain),其實也算是套件的一種。
    • 行為式圖示 (x8):表現系統物件間動態的關係
      • 活動圖(Activity diagram):描述企業運作流程,這些流程即是在使用案例內的描述,有時候也可用來表現方法內的程式流程。
      • 循序圖(Sequence diagram):描述一個使用案例中,如何透過物件間訊息的傳遞有次序地完成系統事件。
      • 溝通圖(Communication diagram):和循序圖相同,但更明顯表現出物件間互動溝通的關係。
      • 交互概述圖(Interaction overview diagram):表現程序控制的流程概述。
      • 時間圖(Timing diagram):描述一組物件間的互動,及經由時間軸狀態的改變。
      • 行為狀態圖(Behavioral state machine diagram):類別內行 為的表現。
      • 協定狀態圖(Protocal state machine diagram):單一類別內 不同介面間的關係。
      • 使用案例圖(Use case diagram):表現系統所有使用案例與 環境間的關係。

2-3 物件導向分析設計工具

2-4 物件導向分析設計程序

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published