Redesigning Air Traffic Control: An Exercise in Software Design Daniel Jackson and John Chapin, MIT Lab for Computer Science Presented by: Jingming Zhang.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design 1.
Advertisements

TSpaces Services Suite: Automating the Development and Management of Web Services Presenter: Kevin McCurley IBM Almaden Research Center Contact: Marcus.
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Operating System Structures
Module 17 Tracing Access to SQL Server 2008 R2. Module Overview Capturing Activity using SQL Server Profiler Improving Performance with the Database Engine.
Traditional Approach to Design
Chapter 10 The Traditional Approach to Design
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
Application architectures
Establishing the overall structure of a software system
Testing Components in the Context of a System CMSC 737 Fall 2006 Sharath Srinivas.
Principle of Functional Verification Chapter 1~3 Presenter : Fu-Ching Yang.
Application architectures
Data Structures and Programming.  John Edgar2.
UNIT-V The MVC architecture and Struts Framework.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
What is Software Architecture?
1.Database plan 2.Information systems plan 3.Technology plan 4.Business strategy plan 5.Enterprise analysis Which of the following serves as a road map.
PROGRAMMING LANGUAGES The Study of Programming Languages.
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Systems Analysis – Analyzing Requirements.  Analyzing requirement stage identifies user information needs and new systems requirements  IS dev team.
. Center TRACON Automation System (CTAS) Traffic Management Advisor (TMA) Transportation authorities around the globe are working to keep air traffic moving.
Implementation Yaodong Bi. Introduction to Implementation Purposes of Implementation – Plan the system integrations required in each iteration – Distribute.
Institute of Computer and Communication Network Engineering OFC/NFOEC, 6-10 March 2011, Los Angeles, CA Lessons Learned From Implementing a Path Computation.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Pushing the Security Boundaries of Ubiquitous Computing ACSF 2006 —————— 13 th July 2006 —————— David Llewellyn-Jones, Madjid Merabti, Qi Shi, Bob Askwith.
Network Aware Module Implementation of the paper: “Forecasting Network Performance to Support Dynamic Scheduling Using the Network Weather Service”. Its.
CSCA48 Course Summary.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Garrett Vanhoy, MaryPat Beaufait, Duyun Chen Advisor: Dr. Carl Dietrich.
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
SE: CHAPTER 7 Writing The Program
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Cohesion and Coupling CS 4311
Systems Analysis and Design in a Changing World, 3rd Edition
Performance evaluation of component-based software systems Seminar of Component Engineering course Rofideh hadighi 7 Jan 2010.
TTCN-3 MOST Challenges Maria Teodorescu
Grid programming with components: an advanced COMPonent platform for an effective invisible grid © 2006 GridCOMP Grids Programming with components. An.
DARPA ITO/MARS Project Update Vanderbilt University A Software Architecture and Tools for Autonomous Robots that Learn on Mission K. Kawamura, M. Wilkes,
Advanced Speed Guidance for Merging and Sequencing Techniques Chris Sweeney Thomas Jefferson High School for Science and Technology MITRE Corporation Center.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Developing Applications with the CSI Framework A General Guide.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
AMQP, Message Broker Babu Ram Dawadi. overview Why MOM architecture? Messaging broker like RabbitMQ in brief RabbitMQ AMQP – What is it ?
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
3246 JSF Support in JBuilder 2005 Karl Ewald R&D Engineer Borland Software Corporation.
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Chapter – 8 Software Tools.
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Sommerville 9th Edition Chapter 8: Software Testing
CS 440 Database Management Systems Stored procedures & OR mapping 1.
Application architectures Advisor : Dr. Moneer Al_Mekhlafi By : Ahmed AbdAllah Al_Homaidi.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Tool Support for Testing
Classifications of Software Requirements
Unified Modeling Language
Part 3 Design What does design mean in different fields?
Evaluating a Real-time Anomaly-based IDS
Design and Implementation
write on board in advance: handouts, names, Hoare quote
Review CSE116 2/21/2019 B.Ramamurthy.
Applying Use Cases (Chapters 25,26)
Applying Use Cases (Chapters 25,26)
From Use Cases to Implementation
Presentation transcript:

Redesigning Air Traffic Control: An Exercise in Software Design Daniel Jackson and John Chapin, MIT Lab for Computer Science Presented by: Jingming Zhang

Case Study They took a component of a deployed air traffic control system written in about 80,000 lines of C++ code, replaced it with a new version in Java about one-fifth of the size. They explain in this article how they achieved this simplification and what lessons they drew from it.

Overview of CTAS The Center/TRACON Automation System (CTAS) is a suite of tools to help controllers manage air traffic flow at large airports. In the US, the rate at which aircraft can land at airports is the limiting factor in air traffic flow. CTAS increases the landing rate through automated planning.

Overview of CTAS (Cont’d) As input, CTAS receives the location, velocity, and flight plans of all aircraft near an airport, along with weather data, information about available runways and standard landing patterns, and controller commands.

Overview of CTAS (Cont’d) CTAS combines this information with models of the descent rates and other characteristics of specific aircraft to accurately predict aircraft trajectories as much as 40 minutes in advance. This info feeds into dynamic-planning algorithms that suggest a landing sequence that minimizes unused landing slots.

Overview of CTAS (Cont’d) CTAS contains two primary tools. Low-altitude controllers who manage the airspace near an airport use the Final Approach Spacing Tool (FAST), while high-altitude controllers who manage aircraft further away use the Traffic Management Advisor (TMA).

Architecture of CTAS in TMA mode

The Existing Design Blocking sends The sending of messages uses blocking primitives, the CM could become deadlocked. create more mesgs CM<  algorithmic processes send a msg and stall

The Existing Design (Cont’d) Failures The system is not fault-tolerant. If CM crashes, the entire system must be rebooted. It takes longer than 25 secs to restart the system and refill the aircraft database with fresh records.

The Existing Design (Cont’d) Monitoring It is difficult to add monitoring features to CTAS that would let its behavior be continually evaluated, both to measure performance and detect symptoms of impending failure. It is not clear what the impact of inserted code would be, nor is it easy to find points in the code that should be instrumented.

The Existing Design (Cont’d) Complexity The CM has become unwieldy, showing the properties of all software systems whose structure has degraded: small changes are hard to make and analyzing even simple properties as a whole is close to impossible.

The New Design Data Abstraction Most of the redesign’s components are abstract data types that encapsulate data structures and prevent direct access.

The New Design (Cont’d) Infinite Queues By providing an illusion of an infinite queue with nonblocking reads and writes, it lets users write client code without any concerns for deadlock.

The New Design (Cont’d) Generic Message Processor A generic processor finds a handler appropriate to an incoming message by looking up its type and the type of the component that sent it in a table. Message handler registration is dynamic, making it easy to change the association between message types and handlers during execution.

The New Design (Cont’d) Uniform External Interfaces All input to the CM is via messages. To run the system from the recorded data, they implemented a process that masquerades as the ISM, reading the file of recorded data and generating messages that are indistinguishable to the CM from real ISM messages. It simplifies the CM and makes playback mode a better predictor of real behavior.

The New Design (Cont’d) Message-Handler Language Rather than writing the message handlers by hand in Java, they chose to generate the handler code from a domain-specific message handling language. This language was designed to accommodate the existing C header file descriptions of message formats, so that they only had to write small code fragments to indicate, for example, how message fields should map to database records.

Informal architectural sketch of new design of the CM

Lessons Learned Simple designs are possible Standard software engineering techniques work Coding standards are vital Reverse-engineering tools work High-level models are vital