SlideShare une entreprise Scribd logo
1  sur  32
1
ECE 18-649
Final
Project Report
Dec 2, 2012
Group # 9
Dennis Liang
Leo Lung
Melvin Rayappa
Samihan Yedkar
Melvin Rayappa
2
Overview
 Dispatcher Design Process
 Dispatcher overview
 High Level Requirements
 Behavior
 Time Triggered Requirements
 State Chart
 Implementation
 Testing
 Runtime Monitor
 Project Statistics
 Lessons Learned
 Strategies
 Design Choices
 Advice
Melvin Rayappa
Dispatcher Object
 Dispatcher - determines the order in which
floors and hallways are serviced
 High Level Requirement:
 R-T1. All passengers shall eventually be
delivered to their intended destination floor
3
Inputs Outputs
mAtFloor [f,b] mDesiredFloor
mDoorClosed [b,r] mDesiredDwell
mHallCall [f,b,d]
mCarCall [f,b]
mCarWeight
Melvin Rayappa
Dispatcher Object
 High Level Requirement:
 R-T4. The performance shall be optimized to
the extent possible
 R-T5. Passenger satisfaction shall be optimized
to extent possible
 R-T6. The Car shall only stop at floors for
which there are pending calls
4
Melvin Rayappa
Dispatcher Object
 High Level Requirement:
 R-T7. The Car shall only open Doors at
Hallways for which there are pending calls
 Dispatcher determines which floors to stop at
 R-T8.2. If one of the car lanterns is lit, the
direction indicated shall not change while the
doors are open
 Dispatcher changes desired direction
5
Melvin Rayappa
Dispatcher Algorithm
 Service in “cycles”
 Service all calls in one direction, then turn
around and repeat
 Peak – farthest floor in the direction of
travel
 Target – the desired floor
 Travel – current cycle direction
6
Melvin Rayappa
7
Requirements
Time Triggered Requirements:
•11.4 mDesiredFloor.f shall always be set to Target.
•11.5 If target equals peak and there are no hall calls at the target floor in
the same direction, reverse Direction.
•11.6 Whenever any mDoorClosed [b, r] is False, then
• 11.6.1 Target shall be set equal to the closest car call or hall call (of
the same direction as current) between current floor and the peak.
• 11.6.2 mDesiredFloor.b shall be set to b, where f, b is whichever
mAtFloor[f, b] is True
• 11.6.3 mDesiredFloor.b shall be set to Direction
•11.7 If all mAtFloor[f, b] are False AND any mDoorClosed [b, r] is False (which
means doors are not closed between floors!) then
• 11.7.1 Target shall be set to 1
• 11.7.2 mDesiredFloor.b shall be set to None .
•11.8 If two mAtFloor[f, b] values are True with the same value f, then
mDesiredFloor.b shall be set to Both.
•11.9 mDesiredDwell shall always be set to a constant appropriate value for door
open dwell.
•11.10 Peak shall always be set to the farthest hall call or car call in the
same direction as current.
Melvin
State Chart
8
Dennis Liang
Statechart – Transition 1
 Moving from ‘Idle’ to
‘Moving’
 Condition
 Travel != Direction.STOP
9
Dennis Liang
Statechart – Transition 2
 Moving from ‘Idle’ to ‘Door open’
 Conditions
 One mDoorClosed[f,*] == false, one mAtFloor[f,*] == true,
travel == Direction.STOP
10
Dennis Liang
Statechart – Transition 3
 Moving from ‘Moving’ to ‘Door open’
 Conditions
 One mDoorClosed[f,*] == false, one mAtFloor[f,*] == true
11
Dennis Liang
Statechart – Transition 4
 Moving from ‘Door open’ to ‘Idle’
 Conditions
 Both mDoorClosed[f,*] == true, target == floor == peak
12
Dennis Liang
Statechart – Transition 5
 Moving from ‘Moving’ to ‘Door open’
 Conditions
 Both mDoorClosed[f,*] == true, floor != target or target != peak
13
Dennis Liang
Statechart – Transition 6 & 7
 Moving from ‘Idle’ and ‘Moving’ to ‘Error’
 Conditions
 One mDoorClosed[f,*], all mAtFloor[*,*] == false
14
Dennis Liang
15
Implementation
Dennis Liang
case MOVING:
if (target == peak)
direction = getCallDirection(target, direction);
else {
if (travel == Direction.UP)
direction = Direction.UP;
else
direction = Direction.DOWN;
}
if (direction == Direction.STOP)
hallway = getCallHallway(target);
else
hallway = getCallHallway(target, direction);
mDesiredFloor.setFloor(target);
mDesiredFloor.setDirection(direction);
mDesiredFloor.setHallway(hallway);
...
//#transition "11.T.3"
if (!mDoorClosedArrayFront.getBothClosed() ||
!mDoorClosedArrayBack.getBothClosed() &&
floor != MessageDictionary.NONE)
newState = State.DOOR_OPEN;
State Action
SC to Code Traceability
Transition
Implementation
Implicit DesiredFloor
Computation
16
Testing
 10 acceptance tests
 All test ability of Dispatcher to deliver passengers
 All Dispatcher states except for error tested
 Runtime Monitor
 Test car only stops at floors with pending calls
Leo Lung
17
Strategies for Correctness
 Pair Programming
 Ensure correct code gets committed
 Catch bugs as we develop
 Overnight Testing
 Run acceptance tests overnight
 Ensure no corner cases from specific seeds
Leo Lung
18
Project Statistics
Leo Lung
Item MidSem Final
# of Sequence Diagrams 19 19
# of Sequence Diagram arcs 181 181
# of Requirements 53 49
# of Statecharts 7 7
# of Statechart States 20 21
# of Statechart Arcs 27 32
# of Non-Commented Lines of Code 1912 2802
# of Unit Tests 7 7
# of Integration Tests 19 19
# of Acceptance Tests 3 10
19
Project Statistics
Leo Lung
Item MidSem Final
# of Peer Reviews 69 97
# of Bugs Found through Peer
Reviews
29 39
# of Bugs Fixed through Peer
Reviews
29 39
# of Bugs Found through Testing 23 35
# of Bugs Fixed through Testing 23 35
# of Issue Log Entries 16 23
# of Unresolved Defects 3 4
# of Change Log Entries 13 17
Lessons Learned
 Start early; iterate often
 Dispatcher has evolved to its current state,
based on multiple design iterations
 Work together
 Especially on system critical controllers,
important to have all hands on deck
 Whiteboarding solutions
 Brainstorming, sanity checking, optimizing
 Focus on simplicity
 Dispatcher as just 4 states, clear and
straightforward transitions
 Easy to debug
20
Samihan Yedkar
Design Choices
 Implicit target, peak, travel, direction,
hallway
 Computed within state itself
 Saves additional states
 Code compaction
 Algorithm is easy to test
 CommitPoint computation in FastSpeed
state
 Done dynamically
 Based on equations of motion
 1m buffer added for safety/hedge against
strange behaviors: err on the side of caution
Samihan Yedkar
21
Advice
 Use source control
 Review lab assignment early
 Email team to plan strategy
 Divide responsibilities based on controller efficiency
 Work together
 Incredibly helpful to bounce ideas and thoughts
 Whiteboard solutions
 Pair program
 Peer review
 Go over checklist right before submission
 Sanity checking
Samihan Yedkar
22
23
Questions?
Group # 9
Dennis Liang
Leo Lung
Melvin Rayappa
Samihan Yedkar
Samihan Yedkar
Backup Slides
24
Transition Condition
11.T.1 travel != Direction.STOP
11.T.2 (mDoorClosed[f,FRONT] === false || mDoorclosed[f,BACK]
== false) &&
(mAtFloor[f,FRONT] == true || mAtFloor[f,BACK] == true)
&&
(travel == Direction.STOP)
11.T.3 (mDoorClosed[f,FRONT] === false || mDoorclosed[f,BACK]
== false) &&
(mAtFloor[f,FRONT] == true || and mAtFloor[f,BACK] ==
true)
Backup Slides
25
Transition Condition
11.T.4 (mDoorClosed[f,FRONT] === true && mDoorclosed[f,BACK]
== true) &&
(floor == target && target == peak)
11.T.5 (mDoorClosed[f,FRONT] === true && mDoorclosed[f,BACK]
== true) &&
(floor != target || target != peak)
11.T.6 (mDoorClosed[f,FRONT] === false || mDoorclosed[f,BACK]
== false) &&
(mAtFloor[f,FRONT] == false && mAtFloor[f,BACK] == false)
11.T.7 (mDoorClosed[f,FRONT] === false || mDoorclosed[f,BACK]
== false) &&
(mAtFloor[f,FRONT] == false && mAtFloor[f,BACK] == false)
Backup Slides
26
Backup Slides
27
Requirements
States 11.4 11.5 11.6.1 11.6.2 11.6.3 11.7.1 11.7.2 11.8 11.9 11.10
State 1: Idle X X X X X
State 2:
Moving
X X X
State 3:
Door open
X X X X X X
State 4:
Error
X X X X
Backup Slides
28
Requirements
Transitions 11.4 11.5 11.6.1 11.6.2 11.6.3 11.7.1 11.7.2 11.8 11.9 11.10
11.T.1
X
11.T.2 X X X
11.T.3 X X X
11.T.4
X
11.T.5
X
11.T.6 X X
11.T.7 X X
29
Dispatcher Scenario/Sequence Diagram
Melvin Rayappa
 Use Case U9. Cycle Doors.
 Scenario/SD 9A: Elevator stops at Hallway. Dispatcher computes desired floor
Dispatcher
computes and
broadcasts
desired floor
Dispatcher
broadcasts
desired dwell
time
Backup Slides
30
Backup Slides
31
32

Contenu connexe

En vedette

Second Harvest Heartland - Newsletter - Winter 2011
Second Harvest Heartland - Newsletter - Winter 2011Second Harvest Heartland - Newsletter - Winter 2011
Second Harvest Heartland - Newsletter - Winter 2011Second Harvest Heartland
 
Reverse pharmacology trad-mal
Reverse pharmacology trad-malReverse pharmacology trad-mal
Reverse pharmacology trad-mal22SPMB
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionIn a Rocket
 
How to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanHow to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanPost Planner
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldabaux singapore
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting PersonalKirsty Hulse
 

En vedette (7)

Second Harvest Heartland - Newsletter - Winter 2011
Second Harvest Heartland - Newsletter - Winter 2011Second Harvest Heartland - Newsletter - Winter 2011
Second Harvest Heartland - Newsletter - Winter 2011
 
Reverse pharmacology trad-mal
Reverse pharmacology trad-malReverse pharmacology trad-mal
Reverse pharmacology trad-mal
 
Learn BEM: CSS Naming Convention
Learn BEM: CSS Naming ConventionLearn BEM: CSS Naming Convention
Learn BEM: CSS Naming Convention
 
How to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media PlanHow to Build a Dynamic Social Media Plan
How to Build a Dynamic Social Media Plan
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
 
SEO: Getting Personal
SEO: Getting PersonalSEO: Getting Personal
SEO: Getting Personal
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 

Similaire à Group9 f12 18649_final_presentation

Midterm Progress Report (Dynamic Sparse A-Star)
Midterm Progress Report (Dynamic Sparse A-Star)Midterm Progress Report (Dynamic Sparse A-Star)
Midterm Progress Report (Dynamic Sparse A-Star)s3cur3
 
07-Chapter_7_Work_Cell_and_Robot_Programming_Final.pdf
07-Chapter_7_Work_Cell_and_Robot_Programming_Final.pdf07-Chapter_7_Work_Cell_and_Robot_Programming_Final.pdf
07-Chapter_7_Work_Cell_and_Robot_Programming_Final.pdfBenuMadhab
 
Digital System Design-Switchlevel and Behavioural Modeling
Digital System Design-Switchlevel and Behavioural ModelingDigital System Design-Switchlevel and Behavioural Modeling
Digital System Design-Switchlevel and Behavioural ModelingIndira Priyadarshini
 
ATCM presentation
ATCM presentationATCM presentation
ATCM presentationRishu Seth
 
Sequencing Center for OEM
Sequencing Center for OEMSequencing Center for OEM
Sequencing Center for OEMjdavidgreen007
 
Microprocessor Week 7: Branch Instruction
Microprocessor Week 7: Branch InstructionMicroprocessor Week 7: Branch Instruction
Microprocessor Week 7: Branch InstructionArkhom Jodtang
 
Learning And Inferring Transportation Routines
Learning And Inferring Transportation RoutinesLearning And Inferring Transportation Routines
Learning And Inferring Transportation Routinesmstjsw
 
White Box testing by Pankaj Thakur, NITTTR Chandigarh
White Box testing by Pankaj Thakur, NITTTR ChandigarhWhite Box testing by Pankaj Thakur, NITTTR Chandigarh
White Box testing by Pankaj Thakur, NITTTR ChandigarhPankaj Thakur
 
Time series analysis use E-views programer
Time series analysis use E-views programerTime series analysis use E-views programer
Time series analysis use E-views programerAl-Qadisiya University
 
White boxvsblackbox
White boxvsblackboxWhite boxvsblackbox
White boxvsblackboxsanerjjd
 
20100522 software verification_sharygina_lecture02
20100522 software verification_sharygina_lecture0220100522 software verification_sharygina_lecture02
20100522 software verification_sharygina_lecture02Computer Science Club
 
Critical software developement
Critical software developementCritical software developement
Critical software developementnedseb
 
Practical Byzantine Fault Tolernace
Practical Byzantine Fault TolernacePractical Byzantine Fault Tolernace
Practical Byzantine Fault TolernaceYongraeJo
 
Lesson_11_Low-level_Flight_Control hexa copt best ppt.pdf
Lesson_11_Low-level_Flight_Control hexa copt best ppt.pdfLesson_11_Low-level_Flight_Control hexa copt best ppt.pdf
Lesson_11_Low-level_Flight_Control hexa copt best ppt.pdfBorchalaDareje
 
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8sShipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8sAndreas Grabner
 

Similaire à Group9 f12 18649_final_presentation (20)

WCM Transfer Services
WCM Transfer Services WCM Transfer Services
WCM Transfer Services
 
Midterm Progress Report (Dynamic Sparse A-Star)
Midterm Progress Report (Dynamic Sparse A-Star)Midterm Progress Report (Dynamic Sparse A-Star)
Midterm Progress Report (Dynamic Sparse A-Star)
 
07-Chapter_7_Work_Cell_and_Robot_Programming_Final.pdf
07-Chapter_7_Work_Cell_and_Robot_Programming_Final.pdf07-Chapter_7_Work_Cell_and_Robot_Programming_Final.pdf
07-Chapter_7_Work_Cell_and_Robot_Programming_Final.pdf
 
Digital System Design-Switchlevel and Behavioural Modeling
Digital System Design-Switchlevel and Behavioural ModelingDigital System Design-Switchlevel and Behavioural Modeling
Digital System Design-Switchlevel and Behavioural Modeling
 
ATCM presentation
ATCM presentationATCM presentation
ATCM presentation
 
Sequencing Center for OEM
Sequencing Center for OEMSequencing Center for OEM
Sequencing Center for OEM
 
Code optimization
Code optimizationCode optimization
Code optimization
 
Code optimization
Code optimizationCode optimization
Code optimization
 
Level tuning. by zakpdf
Level tuning. by zakpdfLevel tuning. by zakpdf
Level tuning. by zakpdf
 
Microprocessor Week 7: Branch Instruction
Microprocessor Week 7: Branch InstructionMicroprocessor Week 7: Branch Instruction
Microprocessor Week 7: Branch Instruction
 
Learning And Inferring Transportation Routines
Learning And Inferring Transportation RoutinesLearning And Inferring Transportation Routines
Learning And Inferring Transportation Routines
 
White Box testing by Pankaj Thakur, NITTTR Chandigarh
White Box testing by Pankaj Thakur, NITTTR ChandigarhWhite Box testing by Pankaj Thakur, NITTTR Chandigarh
White Box testing by Pankaj Thakur, NITTTR Chandigarh
 
Time series analysis use E-views programer
Time series analysis use E-views programerTime series analysis use E-views programer
Time series analysis use E-views programer
 
White boxvsblackbox
White boxvsblackboxWhite boxvsblackbox
White boxvsblackbox
 
20100522 software verification_sharygina_lecture02
20100522 software verification_sharygina_lecture0220100522 software verification_sharygina_lecture02
20100522 software verification_sharygina_lecture02
 
Critical software developement
Critical software developementCritical software developement
Critical software developement
 
Practical Byzantine Fault Tolernace
Practical Byzantine Fault TolernacePractical Byzantine Fault Tolernace
Practical Byzantine Fault Tolernace
 
Lesson_11_Low-level_Flight_Control hexa copt best ppt.pdf
Lesson_11_Low-level_Flight_Control hexa copt best ppt.pdfLesson_11_Low-level_Flight_Control hexa copt best ppt.pdf
Lesson_11_Low-level_Flight_Control hexa copt best ppt.pdf
 
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8sShipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
Shipping Code like a keptn: Continuous Delivery & Automated Operations on k8s
 
Model and Design
Model and Design Model and Design
Model and Design
 

Dernier

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Dernier (20)

🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Group9 f12 18649_final_presentation

  • 1. 1 ECE 18-649 Final Project Report Dec 2, 2012 Group # 9 Dennis Liang Leo Lung Melvin Rayappa Samihan Yedkar Melvin Rayappa
  • 2. 2 Overview  Dispatcher Design Process  Dispatcher overview  High Level Requirements  Behavior  Time Triggered Requirements  State Chart  Implementation  Testing  Runtime Monitor  Project Statistics  Lessons Learned  Strategies  Design Choices  Advice Melvin Rayappa
  • 3. Dispatcher Object  Dispatcher - determines the order in which floors and hallways are serviced  High Level Requirement:  R-T1. All passengers shall eventually be delivered to their intended destination floor 3 Inputs Outputs mAtFloor [f,b] mDesiredFloor mDoorClosed [b,r] mDesiredDwell mHallCall [f,b,d] mCarCall [f,b] mCarWeight Melvin Rayappa
  • 4. Dispatcher Object  High Level Requirement:  R-T4. The performance shall be optimized to the extent possible  R-T5. Passenger satisfaction shall be optimized to extent possible  R-T6. The Car shall only stop at floors for which there are pending calls 4 Melvin Rayappa
  • 5. Dispatcher Object  High Level Requirement:  R-T7. The Car shall only open Doors at Hallways for which there are pending calls  Dispatcher determines which floors to stop at  R-T8.2. If one of the car lanterns is lit, the direction indicated shall not change while the doors are open  Dispatcher changes desired direction 5 Melvin Rayappa
  • 6. Dispatcher Algorithm  Service in “cycles”  Service all calls in one direction, then turn around and repeat  Peak – farthest floor in the direction of travel  Target – the desired floor  Travel – current cycle direction 6 Melvin Rayappa
  • 7. 7 Requirements Time Triggered Requirements: •11.4 mDesiredFloor.f shall always be set to Target. •11.5 If target equals peak and there are no hall calls at the target floor in the same direction, reverse Direction. •11.6 Whenever any mDoorClosed [b, r] is False, then • 11.6.1 Target shall be set equal to the closest car call or hall call (of the same direction as current) between current floor and the peak. • 11.6.2 mDesiredFloor.b shall be set to b, where f, b is whichever mAtFloor[f, b] is True • 11.6.3 mDesiredFloor.b shall be set to Direction •11.7 If all mAtFloor[f, b] are False AND any mDoorClosed [b, r] is False (which means doors are not closed between floors!) then • 11.7.1 Target shall be set to 1 • 11.7.2 mDesiredFloor.b shall be set to None . •11.8 If two mAtFloor[f, b] values are True with the same value f, then mDesiredFloor.b shall be set to Both. •11.9 mDesiredDwell shall always be set to a constant appropriate value for door open dwell. •11.10 Peak shall always be set to the farthest hall call or car call in the same direction as current. Melvin
  • 9. Statechart – Transition 1  Moving from ‘Idle’ to ‘Moving’  Condition  Travel != Direction.STOP 9 Dennis Liang
  • 10. Statechart – Transition 2  Moving from ‘Idle’ to ‘Door open’  Conditions  One mDoorClosed[f,*] == false, one mAtFloor[f,*] == true, travel == Direction.STOP 10 Dennis Liang
  • 11. Statechart – Transition 3  Moving from ‘Moving’ to ‘Door open’  Conditions  One mDoorClosed[f,*] == false, one mAtFloor[f,*] == true 11 Dennis Liang
  • 12. Statechart – Transition 4  Moving from ‘Door open’ to ‘Idle’  Conditions  Both mDoorClosed[f,*] == true, target == floor == peak 12 Dennis Liang
  • 13. Statechart – Transition 5  Moving from ‘Moving’ to ‘Door open’  Conditions  Both mDoorClosed[f,*] == true, floor != target or target != peak 13 Dennis Liang
  • 14. Statechart – Transition 6 & 7  Moving from ‘Idle’ and ‘Moving’ to ‘Error’  Conditions  One mDoorClosed[f,*], all mAtFloor[*,*] == false 14 Dennis Liang
  • 15. 15 Implementation Dennis Liang case MOVING: if (target == peak) direction = getCallDirection(target, direction); else { if (travel == Direction.UP) direction = Direction.UP; else direction = Direction.DOWN; } if (direction == Direction.STOP) hallway = getCallHallway(target); else hallway = getCallHallway(target, direction); mDesiredFloor.setFloor(target); mDesiredFloor.setDirection(direction); mDesiredFloor.setHallway(hallway); ... //#transition "11.T.3" if (!mDoorClosedArrayFront.getBothClosed() || !mDoorClosedArrayBack.getBothClosed() && floor != MessageDictionary.NONE) newState = State.DOOR_OPEN; State Action SC to Code Traceability Transition Implementation Implicit DesiredFloor Computation
  • 16. 16 Testing  10 acceptance tests  All test ability of Dispatcher to deliver passengers  All Dispatcher states except for error tested  Runtime Monitor  Test car only stops at floors with pending calls Leo Lung
  • 17. 17 Strategies for Correctness  Pair Programming  Ensure correct code gets committed  Catch bugs as we develop  Overnight Testing  Run acceptance tests overnight  Ensure no corner cases from specific seeds Leo Lung
  • 18. 18 Project Statistics Leo Lung Item MidSem Final # of Sequence Diagrams 19 19 # of Sequence Diagram arcs 181 181 # of Requirements 53 49 # of Statecharts 7 7 # of Statechart States 20 21 # of Statechart Arcs 27 32 # of Non-Commented Lines of Code 1912 2802 # of Unit Tests 7 7 # of Integration Tests 19 19 # of Acceptance Tests 3 10
  • 19. 19 Project Statistics Leo Lung Item MidSem Final # of Peer Reviews 69 97 # of Bugs Found through Peer Reviews 29 39 # of Bugs Fixed through Peer Reviews 29 39 # of Bugs Found through Testing 23 35 # of Bugs Fixed through Testing 23 35 # of Issue Log Entries 16 23 # of Unresolved Defects 3 4 # of Change Log Entries 13 17
  • 20. Lessons Learned  Start early; iterate often  Dispatcher has evolved to its current state, based on multiple design iterations  Work together  Especially on system critical controllers, important to have all hands on deck  Whiteboarding solutions  Brainstorming, sanity checking, optimizing  Focus on simplicity  Dispatcher as just 4 states, clear and straightforward transitions  Easy to debug 20 Samihan Yedkar
  • 21. Design Choices  Implicit target, peak, travel, direction, hallway  Computed within state itself  Saves additional states  Code compaction  Algorithm is easy to test  CommitPoint computation in FastSpeed state  Done dynamically  Based on equations of motion  1m buffer added for safety/hedge against strange behaviors: err on the side of caution Samihan Yedkar 21
  • 22. Advice  Use source control  Review lab assignment early  Email team to plan strategy  Divide responsibilities based on controller efficiency  Work together  Incredibly helpful to bounce ideas and thoughts  Whiteboard solutions  Pair program  Peer review  Go over checklist right before submission  Sanity checking Samihan Yedkar 22
  • 23. 23 Questions? Group # 9 Dennis Liang Leo Lung Melvin Rayappa Samihan Yedkar Samihan Yedkar
  • 24. Backup Slides 24 Transition Condition 11.T.1 travel != Direction.STOP 11.T.2 (mDoorClosed[f,FRONT] === false || mDoorclosed[f,BACK] == false) && (mAtFloor[f,FRONT] == true || mAtFloor[f,BACK] == true) && (travel == Direction.STOP) 11.T.3 (mDoorClosed[f,FRONT] === false || mDoorclosed[f,BACK] == false) && (mAtFloor[f,FRONT] == true || and mAtFloor[f,BACK] == true)
  • 25. Backup Slides 25 Transition Condition 11.T.4 (mDoorClosed[f,FRONT] === true && mDoorclosed[f,BACK] == true) && (floor == target && target == peak) 11.T.5 (mDoorClosed[f,FRONT] === true && mDoorclosed[f,BACK] == true) && (floor != target || target != peak) 11.T.6 (mDoorClosed[f,FRONT] === false || mDoorclosed[f,BACK] == false) && (mAtFloor[f,FRONT] == false && mAtFloor[f,BACK] == false) 11.T.7 (mDoorClosed[f,FRONT] === false || mDoorclosed[f,BACK] == false) && (mAtFloor[f,FRONT] == false && mAtFloor[f,BACK] == false)
  • 27. Backup Slides 27 Requirements States 11.4 11.5 11.6.1 11.6.2 11.6.3 11.7.1 11.7.2 11.8 11.9 11.10 State 1: Idle X X X X X State 2: Moving X X X State 3: Door open X X X X X X State 4: Error X X X X
  • 28. Backup Slides 28 Requirements Transitions 11.4 11.5 11.6.1 11.6.2 11.6.3 11.7.1 11.7.2 11.8 11.9 11.10 11.T.1 X 11.T.2 X X X 11.T.3 X X X 11.T.4 X 11.T.5 X 11.T.6 X X 11.T.7 X X
  • 29. 29 Dispatcher Scenario/Sequence Diagram Melvin Rayappa  Use Case U9. Cycle Doors.  Scenario/SD 9A: Elevator stops at Hallway. Dispatcher computes desired floor Dispatcher computes and broadcasts desired floor Dispatcher broadcasts desired dwell time
  • 32. 32

Notes de l'éditeur

  1. First we are going to talk about our design of
  2. mDesiredDwell – one per hallway - A numeric value indicating the desired dwell time for the door. mDesriedFloor - The desired floor, hallway, and direction
  3. mDesiredDwell – one per hallway - A numeric value indicating the desired dwell time for the door. mDesriedFloor - The desired floor, hallway, and direction
  4. mDesiredDwell – one per hallway - A numeric value indicating the desired dwell time for the door. mDesriedFloor - The desired floor, hallway, and direction
  5. mDesiredDwell – one per hallway - A numeric value indicating the desired dwell time for the door. mDesriedFloor - The desired floor, hallway, and direction
  6. 9 tests instantiate Dispatcher: grep Dispatcher *.cf 4 tests test arc 11.T.1: grep BOTH_DOORS *.mf
  7. 9 tests instantiate Dispatcher: grep Dispatcher *.cf 4 tests test arc 11.T.1: grep BOTH_DOORS *.mf