System models

Download Report

Transcript System models

系統模型
(System Models)
抽象描述(abstract descriptions)那些
需求被分析的系統
主題





本文模型(context models)
行為模型(behavioural models)
資料模型(data models)
物件模型(object models)
CASE工作平台(CASE workbenches)
系統塑模
(System Modelling)
 系統塑模幫助分析師瞭解系統功能(functionality),
而模型(models)用來與客戶溝通(communicate)
 不同模型可由不同角度(perspective)來表示(present)系
統
 外部觀點(external perspective)表示系統的內容
(context)或環境(environment)
 行為觀點(behavioural perspective)表示系統的行為
(behaviour)
 結構觀點(structural perspective)表示系統或資料結
構(data architecture)
結構性方法
(Structured Methods)
 結構性方法將系統塑模(system modelling)合併
(incorporate)為方法(method)的內在部分(inherent part
of the method)
 方法(methods)用以定義
 一些模型(set of models)
 推導這些方法的行程(process)
 可應用於這些模型的規則(rules)及指南(guidelines)
 CASE工具可支援系統塑模作為結構方法的一部分
方法的弱點
(Method Weakness)
 無法塑模(model)非功能性的系統需求
 通常不包括某方法是否適合特定問題的資訊
(whether a method is appropriate for a given
problem)
 可能產生太多文件(documentation)
 系統模型有時會因太詳盡和困難以至於使用
者無法理解
模型類型
(Model Types)
 資料處理模型(data processing model)表示資料
在不同階段該如何被處理
 組合模型(composition model)表示實體(entities)
如何由其它實體組成
 結構模型(architectural model)表示主要的附屬
系統(sub-systems)
 分類模型(classification model)表示實體可有怎
樣的共同特性(common characteristics)
 激發/回應模型(stimulus/response model)表示系
統對事件(events)的回應(reaction)
內容模型
(Context Model)
 內容模型(context models)用來說明一個系統
的界限(boundaries)
 社會和組織(social and organisational)的關注
(concern)可能會影響該如何界定系統的界限
 架構模型(architectural models)表示一個系統
及該系統與其它系統的關係
ATM系統的內容
行程模型
(Process Models)
 行程模型(process models)表示完整的行程
(overall process)以及系統所支援的行程
 資料流模型(data flow models)可用來表示行程
(processes)以及從一個行程到另一個行程的訊
息流(flow of information)
設備取得行程
(Equipment Procurement Process)
行為模型
(Behavioural Models)
 行為模型(behavioural models)描述系統的所有
行為(overall behaviour)
 兩類行為模型
 資料處理模型(data processing models)表示
資料於系統中流動時該如何處理
 狀態機模型(state machine models)表示系統
對於事件的回應(response)
 當描述系統行為時需要這兩類的模型
資料流模型
每個以電腦為基礎(computer-based)的系
統都是用來轉換資訊(information
transform) ....
input
computer
based
system
output
資料流模型表示法
外部實體 (external entity)
行程(process)
資料流(data flow)
資料儲存體(data store)
外部實體
(External Entity)
 資料的產生者(producer)或消耗者(consumer)
 Examples: 人、設備、感應器、以電腦為基礎
(computer-based)的系統
 資料總是起源於某處(originate somewhere)並且
被傳送到他處(be sent to something)
行程
(Process)
資料轉換器(data transformer)(將輸入
轉換成輸出)
Examples: 計算稅款,確定地區,
制定報告格式(format report),
展示圖型(display graph)
資料需以某種方式被處理以達成系統功能
資料流
(Data Flow)
資料流(data flows)貫穿系統,以輸入為起點
並轉換為輸出
base
height
compute
triangle
area
area
資料儲存體
(Data Stores)
資料常被暫時儲存以便稍後使用
sensor #
report required
look-up
sensor
data
sensor number
sensor #, type,
location, age
type,
location, age
sensor data
資料處理模型
(Data-Processing Models)
 資料流圖表(data flow diagrams)用以模型化
(model)系統的資料處理
 當資料流經過系統時可用以表示處理步驟
(processing steps)
 許多分析方法中的內在部分
(intrinsic [內在的] part)
 簡單和直覺(intuitive)的表式法(notation)讓客戶
易於瞭解
 表示端點到端點(end-to-end)的資料處理
訂單處理的DFD
(Order Processing DFD)
資料流圖表
(Data Flow Diagrams)
 DFDs從功能的角度(functional perspective)模型化
(model)系統
 對資料與行程的關聯做追蹤(tracking)和製作文件
(documenting)有助於對系統完整的瞭解
 資料流圖表可用來表示系統間的資料交換(data
exchange)
CASE Toolset DFD
狀態機塑模
(State Machine Modeling)
事件
(events)
Outside
world
行為
(behavior)
Application
系統狀態
(The States of a System)
狀態(state)
一些可觀察情況(observable circumstances)的集
合,該情況可描述在不同時間的行為特性
(characterizes the behavior)
狀態變遷(state transition)
由一種狀態轉移到另一種狀態的行動
(movement)
 事件(event)
 一個可讓系統產生某種可預期行為的事件
 行動(action)
 因變遷(transition)的結果(consequence)所產生的行
程(process)
狀態機塑模
(State Machine Modeling)
編列不同的系統狀態(系統行為如何?)
說明系統如何從一種狀態轉移到另一種狀
態(系統如何改變狀態?)
說明事件(indicate event)
說明行動(indicate action)
畫出狀態轉換圖(state transition diagram)
狀態轉換圖表示法
(State Transition Diagram Notation)
state
事件導致轉換(event causing transition)
發生行動(action that occurs)
new state
狀態轉換圖
(State Transition Diagram)
full and start
invoke manage-copying
reading
operator
commands
full
invoke read-op-input
copies done
invoke read-op-input
making copies
empty
invoke reload paper
reloading paper
jammed
invoke problem-diagnosis
problem state
not jammed
invoke read-op-input
微波爐模型
(Microwave Oven Model)
微波爐狀態描述
(Microwave Oven State Description)
State
Waiting
Half power
Full power
Set time
Disabled
Enabled
Operation
Description
The oven is waiting for input. The display shows the current time.
The oven power is set to 300 watts. The display shows ‘Half
power’.
The oven power is set to 600 watts. The display shows ‘Full
power’.
The cooking time is set to the user’s input value. The display
shows the cooking time selected and is updated as the time is set.
Oven operation is disabled for safety. Interior oven light is on.
Display shows ‘Not ready’.
Oven operation is enabled. Interior oven light is off. Display
shows ‘Ready to cook’.
Oven in operation. Interior oven light is on. Display shows the
timer countdown. On completion of cooking, the buzzer is
sounded for 5 seconds. Oven light is on. Display shows ‘Cooking
complete’ while buzzer is sounding.
微波爐外部刺激
(Microwave Oven Stimuli)
Stimulus
Half power
Full power
Timer
Number
Door open
Door closed
Start
Cancel
Description
The user has pressed the half power button
The user has pressed the full power button
The user has pressed one of the timer buttons
The user has pressed a numeric key
The oven door switch is not closed
The oven door switch is closed
The user has pressed the start button
The user has pressed the cancel button
狀態圖
(Statecharts)
 允許將模型分解(decomposition)成子模型
(sub-models)
 在每個狀態(state)之‘do’ 後的行動(action)應
有簡單的描述
 可藉由表格的補充(complemented)以說明狀態
(states)和刺激(stimuli)
微波爐操作
(Microwave Oven Operation)
Emitter 輻射源
資料模型及實體—關連狀態圖
(Data Model and Entity Relationship (E-R) Diagram)
 用以描述系統中資料處理(data process)的邏輯結構
(logical structure)
 實體關係屬性模型(entity-relation-attribute model),
定義系統中實體、實體間關係和實體屬性
 廣泛用於資料庫設計,可以很容易地用關連性資料
庫(relational databases)實作
 UML沒有為實體關係屬性模型提供特殊的符號表示,
但可使用物件(objects)和關連(associations)
為何使用資料塑膜
(Why Data Modeling?)
資料物件(data objects)和資料處理(data
processing)可各自獨立被檢查(examine)
聚焦(focus attention)在資料領域上(data
domain)
在用戶的抽象水平上(customer’s level of
abstraction)建立模型
指明資料物件(data objects)間如何彼此相
關聯(relate)
資料物件(Data Object)是什麼?
 物件是一個由一套屬性(a set of attributes)(資料項
(data items))所描述,且能在軟體(系統)內被處理
(manipulate)的實體
 一個物件(object)的實例(instance)(如一本書)可被唯
一識別(如使用ISBN#)
 每個物件在系統中扮演一個必要的角色,系統若不
擷取(access)這些物件的實例就無法運作
 每個物件由屬性(attribute)來描述,而屬性本身也就
是資料項(data items)
物件類型
(Typical Objects)







外部實體(external entities),如printer, user或sensor
事物(things),如reports, displays或signals
事件(occurrences or events),如interrupt或alarm
角色(roles),如manager, engineer或salesperson
組織單元(organizational units),如division或team
地點(places),如manufacturing floor
結構(structures),如employee record
資料物件及屬性
(Data Objects and Attributes)
 資料物件包含一套屬性做為一個物件的觀點
(aspect)、品質(quality)、特性(characteristic),
或描述者(descriptor)
object: automobile
attributes:
make
model
body type
price
options code
關係是什麼?
 關係 : 指明連結性(connectedness),是系統必
須記得(remember)的事實(fact)
 可能存在幾個關係的實例(instances of a
relationship)
 物件彼此間可能存在許多不同的關係(objects can
be related in many different ways)
ERD表示符號
常見形式之一
object
(0, m)
relationship
1
(1, 1)
2
attribute
其它常見形式
object
object
relationship
object
1
(0, m)
(1, 1)
2
建立一個ERD
 Level 1
 塑模(model)全部資料物件(data objects)(實體
(entities))以及與其它物件的連結(connections)
 Level 2
 塑模全部實體及關係(entities and relationships)
 Level 3
 塑模全部實體,關係及能提供更深一層的屬性
ERD實例
customer
(1,1)
places
(1,m)
request
for service
(1,1)
standard
task table
generates (1,n)
(1,1)
selected
from
(1,w)
work
tasks
materials
(1,w)
(1,i)
(1,1)
consists
of
lists
work
order
(1,1)
軟體設計語意模型
(Software Design Semantic Model)
資料字典
(Data Dictionary)
 一種類似正規的文法(quasi-formal grammar),用以描
述軟體將處理(process)和建立(create)的資料內容
(content of data)
 一種能描述控制資料(control data)以及控制資料可能
值(如on或off)的表示法(notation)
 一個包含where used/how used資訊的儲存庫(repository)
 一種能以人工(manual)方式或以CASE tools表示的表示
法(notation)
建立一個資料字典
(Building a Data Dictionary)
Name:
the primary name of the c ompos ite data item
Alias es :
other names for the data item
Where us ed: data trans forms (proc es ses ) that use the
c ompos ite data item
How us ed:
the role of the data item (input, output,
temporary storage, etc.
Des cription: a notation for repres enting c ontent (presented
on nex t slide)
Format:
s pecific information about data types, pre-set
v alues (if k nown)
資料字典表式法
(Data Dictionary Notation)
Notation
Meaning
=
is composed of
+
and
[
]
{ }
either-or
n
n repetitions of
( ... )
optional data
* ... text ...*
delimits a comment
Delimit
(設)定…的範圍
資料字典實例
telephone number
integrated
office
phone
system
system output
Build the requirements dictionary:
Name:
telephone number
Aliases:
phone number, number
Where/How
used:
read-phone-number (input)
display-phone-number (output)
analyze-long-distance-calls (input)
Description:
telephone no. = [ local extension | outside no. | 0 ]
outside no. = 9 + [ service code | domestic no. ]
service code = [ 211 | 411 | 611 | 911 ]
domestic no. = ( ( 0 ) + area code ) + local number
area code = *three numeral designator*
Format:
alphanumeric data
物件導向觀念
(The OO Mindset)
物件(objects)
問題域(problem domain)
關鍵概念
(Key Concepts)
 類別及類別繼承 (classes and class hierarchies)
 事例(instances)
 繼承(inheritance)
 抽象化及隱藏(abstraction and hiding)
 物件(objects)
 屬性(attributes)
 方法(methods)
 封裝(encapsulation)
 多型(polymorphism)
 信息(messages)
類別
(Classes)
 物件導向的想法開始於將類別(class)定義成
 樣板(template)
 一般化描述(generalized description)
 圖型(pattern)
 藍本(blueprint):描述一些相似項目(similar items)
的集合
 元類(metaclass)(或稱為superclass)是一種類別
的集合(collection of classes)
 一個類別項目(a class of items)一旦被定義,
即可定義一個類別的特定實例(a specific
instance)
建立類別
(Building a Class)
類別是什麼?
occurrences
roles
organizational units
things
places
external entities
structures
class name
attributes:
operations:
封裝/隱藏
(Encapsulation/Hiding)
該物件封裝處理資料所
需的資料和邏輯程序
method
#2
method
#1
data
method
#6
method
#5
以實現”資訊隱藏”
method
#4
資訊隱藏
(Information Hiding)
模組
控制
界面
客戶端
特殊設計決定
• 演算法 (algorithm)
• 資料結構 (data structure)
• 外部介面的細節
(details of external interface)
• 資源分配策略
(resource allocation policy)
"secret"
為何要資訊隱藏 ?
降低副作用(side effects)的可能性
限制局部設計決定(local design decision)對全域性的
衝擊(global impact)
透過控制介面(controlled interface)強調溝通
(communication)
不鼓勵使用全域資料(global data)
導入封裝(leads to encapsulation),一個高品質設計
的屬性(attribute)
可產生更高品質的軟體(higher quality software)
類別階層
(Class Hierarchy)
furniture (superclass)
table
chair
desk
"chable"
subclasses of the
furniture superclass
instances of chair
方法—運算,服務
(Methods—Operations, Services)
 可執行程序(executable procedure)被封裝
在類別(class)裡,是被用來作用(operate)在
被定義在類別裡的部分資料屬性(one or
more data attributes)
 方法(method)是透過訊息傳送(message
passing)而啟動(invoked)
信息
(Messages)
物件模型
(Object Models)
 物件模型是以物件類別(object class)來描述系統
 物件類別是一個架構於具共通屬性(common
attributes)及由每個物件所提供之服務(操
作)(services (operations))之物件集合的抽象理念
(abstraction)
 可用以生產不同的物件模型
 繼承模型(inheritance models)
 集成模型(aggregation models)
 交互作用模型 (interaction models)
 系統以自然的方式(natural ways)反應系統如何操
控(manipulate)現實世界的實體(real-world entities)
 物件模型較難塑模(model)較抽象的實體
 物件類別的識別(object class identification)被認為
是一個困難的行程(difficult process),因它需要
對應用領域(application domain)有深入的理解
 物件類別反映出領域實體(domain entities)在跨系
統時的重複使用性(reusable across systems)
繼承模型
(Inheritance Models)
 將領域物件類別(domain object classes)組織
成階層式架構(hierarchy)
 位於階層頂端(top)的類別可反映所有類別的
共同特色(common features)
 物件類別由一個或多個super-classes繼承他們
的屬性和服務
 物件類別可根據需要客製化(specialized)屬性
和服務
統一塑模語言
(Unified Modelling Language)
 由被廣泛使用之物件導向分析及設計方法的
開發者所提出
 已成為物件導向塑模(object-oriented modelling)
的一個有效標準(effective standard)
 表示法(notation)
 物件類別表示為在頂端有名字(name)的長方形
(rectangles),屬性(attributes)位於中間,而操作
(operation)在底部
 在物件類別之間的關係(relationships)(或稱為關連
(association))以連結物件的線段(lines)來表示
 繼承(inheritance)常被視為一般化(generalisation),
在階層中表示upwards (非downwards)的關係
圖書館類別階層
Library class hierarchy
使用者類別階層
User class hierarchy
多重繼承
(Multiple Inheritance)
 相較於由單一父類別(single parent class)繼承屬性與
服務,支援多繼承(multiple inheritance)系統則允許
物件類別繼承多個super-classes
 可能造成在不同super-classes中,屬性與服務的名字
(name)相同,但語意卻不同的衝突(semantic conflicts)
 使得類別階層重組更為複雜(hierarchy reorganisation
more complex)
多重繼承
(Multiple Inheritance)
物件集成
(Object Aggregation)
 集成模型(aggregation model)表示集合
(collection)而成的類別(class)如何由其它類別
組合而成(compose)
 類似於在語意資料模型(semantic data models)
中的部分關係(part-of relationship)
物件集合
(Object Aggregation)
物件行為塑模
(Object Behaviour Modelling)
 行為模型(behavioural model)表示物件間的相
互作用(interactions),此可用以產生特定系統
行為的使用事例(use-case)
 在UML中的序列圖(sequence diagrams )(或合
作圖(collaboration diagrams)可用來塑模(model)
物件間的相互作用(interaction)
電子版出版品
(Issue of Electronic Items)
 上圖顯示一個序列圖(sequence diagram)
 物件(objects)標示在圖的上方
 操作(operations)由有標記的箭頭表示
 操作順序(sequence of operations)從上到下
 腳本(scenario)
 圖書館使用者先擷取目錄(accesses the catalogue)
,查看該項目是否有電子版本,若是,則要求
該項目的電子版本
 基於版權問題,這必須被授權, 因此需要一個
該項目和該使用者間許可(license)的系統交易
(transition)
 之後,該出版項目會先被傳送到網路伺服器物
件(network server object)進行壓縮(compression),
最後才寄給該使用者
CASE工作平台
(CASE Workbenches)
 由一些緊密相關的工具(coherent set of tools)結合而
成,用以支援相關的軟體行程活動,如分析、設計
或測試
 分析和設計工作平台(analysis and design workbenches)
支援系統在需求工程和系統設計期間的塑模
(modeling)
 這些工作平台可支援某種特定的設計方法(a specific
design method)或可支援以建立幾種不同類型的系統
模型
分析及設計工作平台
(An Analysis and Design Workbench)
分析工作平台元件
(Analysis Workbench Components)
 圖形編輯器(diagram editors)
 建立資料流圖(data-flow diagrams),物件階層(object
hierarchies),實體關聯圖(entity-relationship diagrams)等
 模型分析及查核工具(model analysis and checking tools)
 處理設計並回報告有關錯誤(errors)和異常(anomalies)
的情況
 儲存庫(repository)及相關的查詢語言(associated query
language)
 允許設計者(designer)在儲存庫中尋找設計(design)及
相關的設計資訊
 資料字典(data dictionary)
 維護關於在系統設計中使用到之實體(entity)的資訊
 報告定義及產生工具(report definition and generation tools)
 從中央儲存庫(central store)取得資訊並自動產生系統
文件(documentation)
 格式定義工具(forms definition tools)
 允許制定螢幕(screen)和文件(document)的格式(formats)
 輸入/輸出工具(import/export facilities)
 允許中央儲存庫(central repository)與其它開發工具
(development tools)交換資訊
 程式碼產生工具(code generation tools)
 從中央儲存庫內的設計(design)自動產生程式碼或程
式骨幹架構(code skeletons)
參考資料
 Ian Sommerville, Software Engineering, 7th ed.,
Addison-Wesley,2004.