Vous êtes sur la page 1sur 35

XXX Company Creation Date:

Software Architecture Design

Traffic Simulation System


esign

Version 1.00
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

Revision History

Date Version Description Author

2011/04/26 1.0  Created Dang Han (Viet


Nam)

Page 2 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

Table of Contents

1. Brief Description .........................................................................................................4

2. References ..................................................................................................................4

3. Architectural Representation .......................................................................................4

4. Logical View ................................................................................................................4

5. Use-Case View.............................................................................................................5

5.1 Use case of Home Group............................................................................................................... 5


5.1.1 Use case Model...................................................................................................................... 6
5.1.2 Use case Realization.............................................................................................................. 7
5.1.2.1 Participants classes ................................................................................................................................7
5.1.2.2 Sequence Diagram..................................................................................................................................8
1. Delete..............................................................................................................................................................8
2. Add Map Object...............................................................................................................................................9
5.2 Use case of Simulation group...................................................................................................... 12
5.2.1 Use case Model.................................................................................................................... 12
5.2.2 Use case Realization ........................................................................................................... 13
5.2.2.1 Participants classes ..............................................................................................................................13
5.2.2.2 Sequence Diagram................................................................................................................................15
A. Start..............................................................................................................................................................15
2. Stop...............................................................................................................................................................20
3. Pause............................................................................................................................................................21
4. Vehicle Setting: ............................................................................................................................................22
5. Vehicle Statistic: ...........................................................................................................................................23
6. Pedestrian Setting: .......................................................................................................................................24
7. Pedestrian Statistic: .....................................................................................................................................25
5.3 Use case of View group............................................................................................................... 28
5.3.1 Use case Model.................................................................................................................... 28
5.3.2 Use case Realization ........................................................................................................... 29
5.3.2.1 Participants classes ..............................................................................................................................29
5.3.2.2 Sequence Diagram................................................................................................................................29
5.4 Use case of File group................................................................................................................. 30
5.4.1 Use case Model.................................................................................................................... 31
5.4.2 Use case Realization ........................................................................................................... 31
5.4.2.1 Participants classes ..............................................................................................................................31
5.4.2.2 Sequence Diagram................................................................................................................................32
5.5 The Others.................................................................................................................................. 32
5.5.1 Use case Model.................................................................................................................... 33
5.5.2 Use case Realization ........................................................................................................... 33
5.5.2.1 Participants classes ..............................................................................................................................33
5.5.2.2 Sequence Diagram................................................................................................................................34

6. Deployment View ......................................................................................................35

7. Implementation View.................................................................................................35

Page 3 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

esign
1. Brief Description
This document describes the structure of Traffic Simulation. The purpose of this document is showing the overall
design for all functions of the system.
Note: Many diagrams in this document are showed clearest when the reader select the zoom mode from 200% and
up.

2. References
Nothing

3. Architectural Representation
The architectural representation of the Traffic Simulation is composed of these views: Logical view, Uses case,
Deployment and Implementation View.

4. Logical View
This section describes the logical structure of the system. It starts from the overview of the architecture and then
presents its key structural and behavioral elements.

Traffic Simulation is developed based on MFC framework and Windows API. It has 4 main functions:
• Create map objects such as road, traffic light.
• Set up property for map objects or pedestrians, show statistic of them.
• Simulate the move of all moveable objects on the road.
• File Common functions of multi document interface application such as new, open, save.

Traffic Simulation
Create MapObj

new, open, save Document


Setting

Simulate

MFC Framework

Windows API

Page 4 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

5. Use-Case View
This section shows the architecturally significant use-case. For each use case, Use case model and realizations are
described. Each use case realization is a collaboration of design elements from the business components and
common elements and services.
• Use Use-case static view that is the participants of the use case.
• Use case dynamic view that is the collaboration between the use case participants.

5.1 Use case of Home Group


Home group of use cases describe the design for all functions in Home tab of application

This group consists of 2 main sections: clipboard and MapTool.


Clipboard: allow user to do cut, copy, paste and delete a map object in view.
MapTool: allow user to add map objects such as Road, Traffic Light to view.

Page 5 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

5.1.1 Use case Model


This group of function has 5 main use cases:
Cut: click Select in toolbar, and then select a map object in view, finally click [Cut] button in tool bar to delete
selected object in view and place it into clipboard.
Copy: click Select in toolbar, and then select a map object in view, finally click [Copy] button in tool bar to make
a copy of selected object into clipboard.
Paste: click [Paste] button in tool bar to paste the object in clipboard into view.
Delete: click Select in toolbar, and then select a map object in view, finally click [Delete] button in tool bar to
delete the selected object.
Add Map objects: click an object in tool bar such as Road, and then click into view to place the selected object in
view.

Page 6 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

5.1.2 Use case Realization

5.1.2.1 Participants classes


Main participant classes that used for this group of functions are shown as the following diagram
Each user event is processed manually from [CTrafficSimulationView] class

Page 7 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

5.1.2.2 Sequence Diagram

1. Delete
Use [CTrafficSimulationView], [CTrafficSimulationDoc], [CMapObj], [CDetector], [CDetector] in this
realization. Sequence diagram for delete function is developed as below diagram.

Page 8 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

2. Add Map Object


This realization is represented to 2 parts Overview and detail to understand easily.

 Overview
Use [CTrafficSimulationView], [CMapTool] in this realization. There are 5 main events from user processed
here:
- Click an object in Map Tool to select the object would be operate
- Left Button Down on view to add new map object corresponding to selected map tool.
- Left Button Up on view to complete adding the object in view
- Mouse Move on view to specify the shape of map object such as Rectangle.
- Double Click on view to complete drawing road.

Sequence diagram for add map object function is developed as below diagram.

Page 9 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

Page 10 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

 Details (with CLaneTool)


The sequence below makes clearly about left button down event with selecting CLaneTool.

Page 11 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

5.2 Use case of Simulation group


Use cases of Simulation group describe the design for all functions in Simulation tab.

This group consists of 3 main sections:


Control: Start, Pause and Stop simulating progress
Vehicle: set up properties for vehicle such as speed limit and make statistic graph which will be displayed on
view.
Pedestrian: set up properties for pedestrian such as pedestrian type and make statistic graph in the other windows.

5.2.1 Use case Model


This group consists of following use case:
Start: Start traffic simulating progress
Pause: Pause traffic simulating progress
Stop: Stop traffic simulating progress
Vehicle Setting: Set up vehicle property for simulation
Vehicle Statistic: Display Statistic graph of vehicle simulation while simulation is starting
Pedestrian Setting: Set up pedestrian property for simulation
Pedestrian Statistic: Draw statistic graph for pedestrian and display in other window.

Page 12 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

5.2.2 Use case Realization

5.2.2.1 Participants classes


Main participant classes use for this group of functions are shown as the following diagram
User event is processed manually from [CTrafficSimulationView] class

Page 13 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

Page 14 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

5.2.2.2 Sequence Diagram

A. Start
This realization is represented by overview and detail parts to make understand easily.

• Start (Overview)
Add map objects by Home Group functions into view, and then Click [Start] button in [Simulation tab]. This
application will generate vehicles and start simulating.

Sequence diagram for start simulation function is developed as below diagram

Page 15 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

Page 16 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

• Vehicle Start (Detail)


This sequence shows the detail for realization of starting vehicle. Streets and moveable objects would be inserted
here.

Page 17 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

• Pedestrian Start (Detail)


This sequence shows the detail for realization of starting pedestrians. Pedestrian objects would be generated here.

Page 18 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

Page 19 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

2. Stop
Click [Stop] button to stop simulation while simulation is starting. All vehicle and pedestrian objects generated
from starting would be removed here.
Sequence diagram for stop simulation function is developed as below diagram

Page 20 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

3. Pause
Click [Pause] button to pause simulation while simulation is starting. All vehicle and pedestrian objects generated
from starting would not be removed here. User can click to start to continue simulation before.
Sequence diagram for pause simulation function is developed as below diagram:

Page 21 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

4. Vehicle Setting:
This use case is used to set up vehicle property for simulation. Click [Settings] button to display [Vehicle
Simulation Settings] dialog, and then move scroll to adjust values.

Sequence diagram for vehicle setting function is developed as below diagram. Modified value will be set and used
in [draw] event later.

Page 22 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

5. Vehicle Statistic:
Display Statistic graph of vehicle simulation while simulation is starting

Sequence diagram for vehicle statistic function is developed as below diagram. In this use case, Traffic
Simulation just remembers the display status of graph. This value would be used to draw at [Start Simulation]
function.

Page 23 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

6. Pedestrian Setting:
Set up pedestrian property for simulation

Page 24 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

Sequence diagram for pedestrian setting function is developed as below diagram. Modified value would be set and
used in [Start Simulation] function later.

7. Pedestrian Statistic:
This use case uses to draw statistic graph for pedestrian and display in other window.
Firstly, click [Statistic] button of Pedestrian in toolbar to display [Pedestrians Simulation Statistics]
dialog. Then, click [Output] button on this dialog to fill graph type into list box.

Page 25 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

Select a type and click [Show Graph] to see [Pedestrian Simulation Statistic Graph] window.

Page 26 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

Sequence diagram for pedestrian statistics function is developed as below diagram. Statistic file would be created
and data would be drawn by an external tool.

Page 27 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

5.3 Use case of View group


Use cases of View group describe the design for all functions in View tab.

5.3.1 Use case Model


This group consists of 2 main sections:
Show/Hide status bar: Show or Hide status bar at the bottom of window application.
New Window: Open another window for the active document.

View

Show/ Hide Status bar

User New Window

Page 28 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

5.3.2 Use case Realization

5.3.2.1 Participants classes


This group of use cases is processed by [CMainFrame] class. This class uses other MFC classes to control status bar
and new window functions.

CMainFrame

#m_wndRibbonBar: CMFCRibbonBar
#m_MainButton: CMFCRibbonApplicationButton
#m_PanelImages: CMFCToolBarImages
#m_wndStatusBar: CMFCRibbonStatusBar
<<CppMacro>>-DECLARE_DYNAMIC(CMainFrame)
<<create>>-CMainFrame()
+UpdateUI(pCurrView: CTrafficSimulationView): void
+PreCreateWindow(cs: CREATESTRUCT): BOOL
<<destroy>>-CMainFrame()
+AssertValid(): void
+Dump(dc: CDumpContext): void
#OnCreate(lpCreateStruct: LPCREATESTRUCT): int
#OnWindowManager(): void
#OnApplicationLook(id: UINT): void
#OnUpdateApplicationLook(pCmdUI: CCmdUI): void
<<CppMacro>>-DECLARE_MESSAGE_MAP()

5.3.2.2 Sequence Diagram


Because these use cases use existing MFC class to implement, there’s no considerable logic to describe here.

Page 29 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

5.4 Use case of File group


Use cases of View group describe the design for all functions from Control Button.

Page 30 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

5.4.1 Use case Model


This group consists of 6 main functions:
New: create new simulation document, display in a new tab
Open: open a simulation file that was saved before
Save: save active document to file
Save As: save active document to file with another name
Close: Close active document
Exit: Exit application

File

New

Open
User

Save

Save As

Close

Exit

5.4.2 Use case Realization

5.4.2.1 Participants classes


This group of use cases is processed by [CMainFrame] class. This class uses default functions of MFC classed to
control file operations.

Page 31 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

CTrafficSimulationDoc

#m_sizeDoc: CSize
#m_simManager: CSimManager
+m_objects: CRoadMapObjList

1
1

CTrafficSimulationView

+m_selection: CRoadMapObjList
+m_bActive: BOOL
+m_backColor: COLORREF
+m_backBuffer: CDC
+m_backBuffer2: CDC
+m_backBitmap: CBitmap
+m_backBitmap2: CBitmap
+m_nViewWidth: int
+m_nViewHeight: int
+m_doubleBufferMutex: CMutex
+m_pStatisticWnd: CStatsWnd
+m_pSimSetDlg: CVehSimSetDlg
+m_canbitblt: BOOL
+m_lockCount: int
+m_pWaitDlg: CWaitDlg

5.4.2.2 Sequence Diagram


Because these use cases use existing functions MFC class to implement, there’s no considerable logic to describe
here.

5.5 The Others


Set display style of application.

Page 32 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

5.5.1 Use case Model


Select a style type in style combobox to change the graphical use interface of application.

Select Style

User

5.5.2 Use case Realization

5.5.2.1 Participants classes


This group of use cases is processed by [CMainFrame] class..

CMainFrame
#m_wndRibbonBar: CMFCRibbonBar
#m_MainButton: CMFCRibbonApplicationButton
#m_PanelImages: CMFCToolBarImages
#m_wndStatusBar: CMFCRibbonStatusBar

<<CppMacro>>-DECLARE_DYNAMIC(CMainFrame)
<<create>>-CMainFrame()
+UpdateUI(pCurrView: CTrafficSimulationView): void
+PreCreateWindow(cs: CREATESTRUCT): BOOL
<<destroy>>-CMainFrame()
+AssertValid(): void
+Dump(dc: CDumpContext): void
#OnCreate(lpCreateStruct: LPCREATESTRUCT): int
#OnWindowManager(): void
#OnApplicationLook(id: UINT): void
#OnUpdateApplicationLook(pCmdUI: CCmdUI): void
<<CppMacro>>-DECLARE_MESSAGE_MAP()

Page 33 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

5.5.2.2 Sequence Diagram


This use case is processed from [CMainFrame] class. Because these use cases use MFC function to implement,
processing logic is simple here.

: CMainFrame

: User

1 [Select Style]

2 : OnApplicationLook(id: UINT): void

3 [CMFCVisualManager::SetDefaultManager]

4 [RedrawWindow]

Page 34 of 35
Traffic Simulation
Version: 1.00
YYYY.MM.DD

Software Architecture Design.doc

6. Deployment View
Traffic Simulation is a simple application. Just execute it in Windows OS which .NET framework was installed.

Windows OS

Traffic Simulation

.NET Framework

7. Implementation View
Source-code Components Organization
All header files and source files are placed in one folder of project.

Page 35 of 35

Vous aimerez peut-être aussi