Object-Oriented analysis and design for DVR

這是OOAD/UML(物件導向分析設計)套用在DVR上面的案例(實際上我只做到分析)

由於轉換的關係,有很多表格不能夠顯示,所以只能夠提供精簡版,大家抓到幾個OO的重點就好了,如果google文件可以和MS word互通,我再把完整的拿上來。



OOAD for Digital Video Recorder.
Contents
1 Requirement document ……………………………………………………… 3
1.1 Change History …………………………………………………… 3
1.2 Problem statement …………………………………………………… 3
1.3 System context diagram …………………………………………… 4
1.4 Summary of system features ……………………………………… 4
1.5 Use cases ……………………………………………………………… 6
1.5.1 use case diagram ……………………………………………… 6
1.5.2 use case description ………………………………………… 6
1.6 Non-functional requirements and constraints ………………… 9
1.6.1 Supplementary specification……………………………… 9
1.6.2 Data dictionary……………………………………………… 10
1.7 Software environments ……………………………………………… 11
2 Domain class model ………………………………………………………… 11
2.1 Domain class diagram showing only concepts…………………… 12
2.2 Add associations…………………………………………………………. 13
2.3 Add attributes……………………………………………………………. 13
3 System sequence diagram…………………………………………………… 14
3.1 system sequence diagram……………………………………………… 14
3.2 operation contracts ……………………………………………………… 15
4 Design Model
4.1 Choose the most significant use-case…………………………………….. 17
4.2 Write an operation contract for each system operation (system event).. 18
4.3 Draw a sequence diagram for each system event you identified with
GRASP…………………………………………………………………… 20
4.4 Design Class Model ……………………………………………………… 20

Measurement Table ……………………………………………………………… 21

1. Requirement document
1.1 Change History: Version、Date、Description

0.1
2007/9/29
Explain the problem statement

0.2
2007/11/2
Revise problem statement
Create Glossary
Add vision
Add use case
Add domain model

03
2007/11/23
Revise problem statement
Create Glossary
modify use case
modify domain model
add SSD and operation contract

04
2007/12/22
Revise SSD, operation contract and domain model.
Descript more detail at recording part.

05
2007/1/18
Draw a sequence diagram for each system event you identified, and label with the GRASP
Revise the Design class model


1.2 Problem statement
Porject title: Digital Video Recorder
Team members: 1 Development language: C++/C
Problem statement:

隨著數位化的潮流,儲存影像的裝置也從類比的錄影帶VHS改換到用硬碟來儲存。在以往使用類比儲存方式容易因為磁帶老舊或機器發熱、受潮而使錄影品質受損;在錄影時不能夠同時回放已經儲存的影像,無法雙工(duplex),或稱為時光平移(time shift)功能;也不能夠提供良好的使用者介面(UI),或依照時間列表(time list)、名稱列表(name list)來搜尋。
使用數位化影像儲存Digital video Recorder(DVR) 能夠藉由影像解碼晶片(ADC)將類比訊號數位化,經過影像壓縮機制能夠不失真的把壓縮過後的影像儲存到硬碟(HDD)或其他媒介上,同時提供duplex功能,能夠在錄影的同時回放之前錄製好的影像,提供良好的UI讓使用者操作並且搜尋。
這套影像處理系統,主要提供給使用者在影像儲存回放的功能,提供容易簡單的操作界面。

DVR(Digital Video Recorder 數位錄影機)

Video and Audio input: 數位影像聲音輸入,同時須要做簡單的讀出寫入。

Keyboard & Remote control: 提供操作介面,要包含客戶密碼確認、系統設定、錄影設定、顯示設定、錄影設定。

HDD: 可以連續錄影、排程錄影、事件錄影來寫入影像資料到硬碟與並且可以依照事件列表、時間搜尋、讀出硬碟資料。

USB: 可以利用連續錄影、排程錄影、事件錄影寫入備份到USB並且可以從USB讀出資料回放。

Video & Audio output: 影像輸出。

網路: 遠端軟體登入並且可以回放硬碟資料同時顯示live影像(time shift時光平移功能)。


1.3 System context diagram















1.4 Summary of system features
ID feature
U01 Display live
U02 Recording
U03 Playback
U04 Search
U05 Backup
U06 Admin manager
U07 Recover setting


1.5 Use cases
1.5.1 use case diagram


1.5.2 Use case description

USE CASE #1
Use case no
U02
Scope
Recording
Level
User-goal
Primary Actor
user
Stakeholders and interests
User-easy to use
Precondition
1.系統正常工作中
2.當系統時間被改變時,要能立即改變錄影時間。

Success Guarantee
進行錄影動作
Main Success Scenario
1. 開啟選單MENU
2. 選擇錄影解析度與頻道數
3. 選擇立即錄影
4. 產生錄影資料檔案進入硬碟
Exception
*a.在任何時間點,當系統失效時包括當機、跳電:
1.要能夠在重新啟動之後讀取Recover setting中的錄影狀態,繼續錄影。
2. 系統還原成先前狀態後,必須紀錄資料到login list.

*b.若有任何頻道斷訊:
1.系統產生video loss OSD

3a.選擇排程錄影:
1.可以設定需要錄影的時程表來錄影。
3b.選擇加入錄影名稱:
1.輸入欲加入的檔案名稱
4a.循環錄影(檔案覆蓋處理):
1.系統會依照錄影順序產生一個流水號給檔案,若發生需要覆蓋檔案時,依照錄影順序舊到新來覆蓋。

Special Requirements:多國語言
Technology and Data Variations List:Maybe use keyboard, remote control.
Frequency of Occurrence:always
Miscellaneous:null



USE CASE #2
Use case no
U03
Scope
Playback
Level
User-goal
Primary Actor
user
Stakeholders and interests
User-easy to use
Precondition
1.在回放之前必須有錄影檔案存在硬碟當中。
2.檔案已經被搜尋到。
Success Guarantee
進行回放動作
Main Success Scenario
1. 回放檔案。
Exception
*a.在任何時間點,當系統失效時包括當機、跳電:
1.系統還原成先前狀態後,必須紀錄資料到login list.

Special Requirements:多國語言
Technology and Data Variations List:Maybe use keyboard, remote control.
Frequency of Occurrence:有事故發生時,很少使用。
Miscellaneous:null


USE CASE #3
Use case no
U05
Scope
Backup
Level
User-goal
Primary Actor
user
Stakeholders and interests
User-easy to use
Precondition
1.檔案正在回放中。
2.檔案已經被搜尋到。
Success Guarantee
進行備份動作
Main Success Scenario
1. 尋找是否有備份裝置
2. 顯示當下裝置容量
3. 備份。
Exception
*a.在任何時間點,當系統失效時包括當機、跳電:
1.系統還原成先前狀態後,必須紀錄資料到login list.
2-3a. 備份裝置容量滿了:
1. 當裝置容量滿了之後,紀錄當下備份位置並通知使用者更換或捨棄。

Special Requirements:多國語言
Technology and Data Variations List:輸入使用 use keyboard, remote control. 輸出使用: USB or DVDRW
Frequency of Occurrence:有事故發生時,很少使用。
Miscellaneous:null

1.6 Non-functional requirements and constraints
1.6.1 supplementary specification:

Item Description

Video
Display resolution :720x480(NTSC), 720x576(PAL)
Display Frame rate:30 Frame(NTSC), 25 Frame(PAL)
Screen split control :1,4,9,16,PIP,POP


Recording
Recording frame rate:30 Frame(NTSC),25 Frame(PAL)
Recording resolution :720x480, 720x240, 360x240(NTSC)
720x576, 720x288, 360x288 (PAL)
Compressing format :MPEG4
Schedule :Set up per hour
Internal HDD:250GB

Audio
Compressing:ADPCM
Live output :1 CH

Searching & Playback
Searching method :Time, Event, Name.

Networking
TCP/IP :Live, playback, backup, configuration by Network are available.

Connectors
Video Input :16 ports BNC
Video output :1 BNC, 1 VHS
Audio input :16 ports RCA
Audio output:1 port RCA
Ethernet :1 port

Electrical
Power source :115/230 VAC(50~60Hz)
Power Consumption:70 Watt

Environment
Operating Temp. :-10~70℃
Storage Temp. :-30~90℃

Others
Backup :USB, DVD
OS :Linux
Control Device :Remote control, Mouse, Keyboard
Language :English, Chinese, Korea, Spain, Russia, French,
Maintain :Modeling component, easy to service.
Reboot time :Less than 24 sec.
Recover :Cover the previously setting after power on.
Security :3 level password setting to confirm.
Log list :System message storage.
Reliability:Shutdown probability less than 0.00000001% per hour on system.

1.6.2 Data dictionary

DVR :Digital Video Recorder 的縮寫,把影像數位化錄影儲存回放的裝置。
ADC :DVR內的零件之一,負責將類比影像數位化。
DAC :DVR內的零件之一,負責將數位影像轉換成TV訊號。
UI :User interface使用者介面。
HDD:DVR內的零件之一,負責影像儲存。
Time list :DVR的功能之一,負責依時間搜尋資料。
Event list :DVR的功能之ㄧ,負責依事件搜尋資料。
Duplex :DVR的功能之ㄧ,可以同時錄影且回放影像。
time shift:時光平移,也稱duplex。
Daylight saving:日光節約時間。在某些國家會實施是光節約時間。
Video input format :NTSC/PAL
Video input channels :2, up to 16 channel
Video output channel :1 Composite, 1 VHS
Video Input level :1.0 Vp-p, 75 Ohm
Main TV output :1.0 Vp-p, 75 Ohm
Audio Input channel:Up to 16 channel
Audio Input level :0.5~1.4Vp-p, 20K Ohm

1.7 Software environments
C++/C

2. Domain class model
2.1 Domain class diagram showing only concepts
Backup、Search 、File、Recording、User、Admin、File description、Recover setting 、Admin manager 、Live、Small volume 、Playback、Easy to used
extracted from problem statement nouns

Identified from knowledge of problem domain

Good classes: Recording,playback,backup, live, Search, File, File description, user, admin, admin manager, recover setting.

2.2 Add associations

Verb phrases :
錄影被使用者執行
即時畫面提供使用這觀看
使用者回放影像
檔案在回放時可以被備分
檔案可以被搜尋
搜尋到檔案可以被備份
Implicit(內涵) verb phrases :
錄影檔案要描述流水號
管理者設定recover setting
管理者設定Admin manager
Knowledge of problem domain :
系統要能夠針對時區改變調整


2.3 Add attributes














3. System sequence diagram
SSD for “Record”use case























SSD for “Backup”use case























Operation Contracts
Name:openmenu
Responsibilities: Open the OSD of UI
Type :System
Cross references:
System Function: U02
Use Case :#1
Notes :None
Exception:none
Output :None
Pre-conditions:none
Post-conditions: Display the menu.

Name: adjrecconfig(channel: integer,framerate:integer, quality:integer.
Responsibilities: User setup recording configuration and record video.
Type :System
Cross references:
System Function: U02
Use Case :#1
Notes : None
Exception: none
Output :None
Pre-conditions: openmenu
Post-conditions :
產生錄影設定
儲存一組設定到recover setting.

Name: RunRectype(schedule. Continue)
Responsibilities: Setup the recording type to schedule or continue recording.
Type :Record
Cross references:
System Function: U02
Use Case :#1
Notes : None
Exception: 1.如果沒有偵測到硬碟,要發出警訊。
2 如果硬碟空間已滿,要從流水號最舊的開始覆蓋。
3.可以選擇排程錄影。
4.若使用者需要,可以對錄製的影像加上名稱。
Output :Video file
Pre-conditions:
必需要有錄影設定
Post-conditions: 錄製的影像都要加上流水號,方便影像要覆蓋時辨識。

Name : Backup(date, time, data, current video)
Responsibilities: Backup the video data by date and time or the current video.
Type :backup
Cross references:
System Function: U05
Use Case :#3
Notes : None
Exception :
1. 當裝置容量滿了之後,紀錄當下備份位置並通知使用者更換或捨棄。
2. 若同時有兩個儲存媒體,要給使用者選擇。
Output :Video file to other media.(硬碟除外)
Pre-conditions:
1.檔案已經被搜尋到或是正在回放影像
2. 有硬碟以外的儲存媒體
Post-conditions:

Name :Displaystoragemedia(type, space)
Responsibilities: Display which storage media user own.
Type : backup
Cross references:
System Function: U05
Use Case :#3
Notes : None
Exception: none
Output : Display the type and free space of media by OSD
Pre-conditions : 系統要去搜尋儲存媒體
Post-conditions


4. Design Model (下面針對Recording 的use case)
4.1 Choose a use cause

Use case no :U02
Scope :Recording
Level :User-goal
Primary Actor:
user
Stakeholders and interests
User-easy to use
Precondition :
1.系統正常工作中
2.當系統時間被改變時,要能立即改變錄影時間。

Success Guarantee
進行錄影動作
Main Success Scenario
5. 開啟選單MENU
6. 選擇錄影解析度與頻道數
7. 選擇立即錄影
8. 產生錄影資料檔案進入硬碟
Exception
*a.在任何時間點,當系統失效時包括當機、跳電:
1.要能夠在重新啟動之後讀取Recover setting中的錄影狀態,繼續錄影。
2. 系統還原成先前狀態後,必須紀錄資料到login list.

*b.若有任何頻道斷訊:
1.系統產生video loss OSD

3a.選擇排程錄影:
1.可以設定需要錄影的時程表來錄影。
3b.選擇加入錄影名稱:
1.輸入欲加入的檔案名稱
4a.循環錄影(檔案覆蓋處理):
1.系統會依照錄影順序產生一個流水號給檔案,若發生需要覆蓋檔案時,依照錄影順序舊到新來覆蓋。

Special Requirements:多國語言
Technology and Data Variations List:Maybe use keyboard, remote control.
Frequency of Occurrence:always
Miscellaneous:null

4.2 operation contract

Name : openmenu
Responsibilities: Open the OSD of UI
Type :System
Cross references:
System Function: U02
Use Case :#1
Notes :None
Exception: none
Output : None
Pre-conditions : none
Post-conditions :
Get recording value(ch, frame rate, quality)
Display the menu.

Name: adjrecconfig(channel: integer,framerate:integer, quality:integer.
Responsibilities:User adjust recording configuration.
Type :System
Cross references
System Function: U02
Use Case :#1
Notes :After user adjusts the recording configuration, system will setup the recording at Record level.
Exception: none
Output :None
Pre-conditions :openmenu
Post-conditions :
產生錄影設定
儲存一組設定到recover setting.
產生一組thread 準備給擋案的serial number使用。

Name: RunRectype(schedule, continue)
Responsibilities: Setup the recording type to schedule or continue recording.
Type : system
Cross references
System Function: U02
Use Case :#1
Notes :None
Exception
1.如果沒有偵測到硬碟,要發出警訊。
2 如果硬碟空間已滿,要從流水號最舊的開始覆蓋。
3.可以選擇排程錄影。
4.若使用者需要,可以對錄製的影像加上名稱。
Output
Video file
Pre-conditions :
必需要有錄影設定
Post-conditions :
錄製的影像都要加上流水號,方便影像要覆蓋時辨識。
檔案儲存都要附加index,如data, time.


4.3 Draw a SSD with GRASP















4.4 Design Class Model
















Measurement Table

留言

這個網誌中的熱門文章

類比與SDI的同軸電纜選擇應用

4 bit Multiplexer (VLSI Design)

Mixed-signal Integrated circuit design