F053-B08-002 © 2007 The MITRE Corporation. All rights reserved. Case #07-1466 Approved for Public Release; Distribution Unlimited. Eric Shi H. Peter Stassen,

Slides:



Advertisements
Similar presentations
Understand and appreciate Object Oriented Programming (OOP) Objects are self-contained modules or subroutines that contain data as well as the functions.
Advertisements

Software Project Management
© 2010 The MITRE Corporation. All rights reserved. SWIM Architecture Alternatives Duncan Thomson 6 May 2010 The contents of this material reflect the views.
Design Patterns for Object Oriented systems CSC 515 Ashwin Dandwate.
Design Patterns Yes, they are important Robert Cotton April 23, 2009.
Design Patterns CS is not simply about programming
Design Patterns Daniel McClain. Background What are they?  Way of recording solutions to recurring design problems History  “A Pattern Language: Towns,
Spring 2010CS 2251 Design Patterns. Spring 2010CS 2252 What is a Design Pattern? "a general reusable solution to a commonly occurring problem in software.
Fundamentals of Information Systems, Second Edition
PRESENTED BY SANGEETA MEHTA EECS810 UNIVERSITY OF KANSAS OCTOBER 2008 Design Patterns.
TARGETS Enabling NextGen With Advanced Procedure Design Software October 22, 2013.
Getting Green Building Automation. Why is Building Automation a Green Technology? There are programs starting all over the nation that focus on alternative.
© 2014 The MITRE Corporation. All rights reserved. SEDC 2014 April 4, 2014 Nadya Subowo Towards Agile Systems Engineering for the National Airspace System.
SEG Software Maintenance1 Software Maintenance “The modification of a software product after delivery to correct faults, to improve performance or.
1 EECS 231 ADVANCED PROGRAMMING. 2 Staff Instructor Vana Doufexi Ford Building, 2133 Sheridan, #2-229 Teaching Assistant.
Design Patterns Trends and Case Study John Hurst June 2005.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
. Traffic Flow Management System Benefits Flexibility for Future Growth: TFMS provides a modern software architecture to meet future growth and support.
1 Automation Adoption and Adaptation in the Air Traffic Control, URET Case Study Tatjana Bolic.
© 2014 The MITRE Corporation. All rights reserved. Alex Tien, Christine Taylor, Craig Wanke Using Ensemble Forecasts to Support NAS Strategic Planning.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 27. Review UML dynamic view – State Diagrams.
CS 325: Software Engineering February 12, 2015 Applying Responsibility-Assignment Patterns Design Patterns Situation-Specific Patterns Responsibility-Assignment.
Solution Architecture
Feature: Customer Combiner and Modifier © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
Detecting Patterns and Antipatterns in Software using Prolog Rules Alecsandar Stoianov, Ioana Sora Department of Computers Politehnica University of Timisoara,
F066-B Public Release No.: © 2010 The MITRE Corporation. All rights reserved. Demand Generation for System-wide Simulation Glenn Foster MITRE.
© 2014 The MITRE Corporation. All rights reserved. "Approved for Public Release; Distribution Unlimited " Using Probabilistic Data for Strategic.
© 2015 The MITRE Corporation. All rights reserved. Dr. Christine Taylor Principal Simulation and Modeling Engineer 25 August 2015 Automation to Support.
Fundamentals of Information Systems, Second Edition 1 Systems Development.
Testing Extensible Design Patterns in OO Frameworks through Scenario Templates D.S. Sanders Software Verification & Validation.
Advanced Speed Guidance for Merging and Sequencing Techniques Chris Sweeney Thomas Jefferson High School for Science and Technology MITRE Corporation Center.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a: Architectural Design Software Engineering: A Practitioner’s Approach, 6/e Chapter 10a:
Scenario-Based Analysis of Software Architecture Rick Kazman, Gregory Abowd, Len Bass, and Paul Clements Presented by Cuauhtémoc Muñoz.
© 2015 The MITRE Corporation. All rights reserved. Friends and Partners of Aviation Weather Claudia McKnight ATM-Weather Integration Gap Analysis CAASD.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
03 | Word Templates Brian Meier| Senior Lead Program Manager.
An Introduction To Design Patterns Jean-Paul S. Boodhoo Independent Consultant
Design Patterns. 1 Paradigm4 Concepts 9 Principles23 Patterns.
CORBA (Common Object Request Broker Architechture) Aniket Prabhune Varun Saini Balaprasuna Chennupati Lally Singh.
© 2015 The MITRE Corporation. All rights reserved. For internal MITRE use Justin Selig | Mentor: Will Symionow MITRE Intern Project Expo MITRE Center for.
Pertemuan 12 Refactoring Mata kuliah: T0144 – Advanced Topics in Software Engineering Tahun: 2010.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
A proposal to support the extreme programming development methodology from the quality assurance point of view Authors: Calin Jebelean –
1 MITRE © 2015 The MITRE Corporation All rights reserved. Approved for Public Release: Case Distribution Unlimited. For Internal MITRE Use Trustworthy.
Pittsburgh, PA CMMI Acquisition Module - Page M5-1 CMMI ® Sponsored by the U.S. Department of Defense © 2005 by Carnegie Mellon University This.
Presented to: By: Date: Federal Aviation Administration Friends and Partners in Aviation Weather Michele Merkle, Federal Aviation Administration Director.
Object Oriented Methodology Course Introduction. Objectives A 3-credit hour graduate course explaining the development of object oriented software systems.
F066-B © 2003 The MITRE Corporation. All Rights Reserved. Predictability and Uncertainty in Air Traffic Flow Management Len Wojcik, Josh Pepper,
Intelligent UAS Situation Awareness and Information Delivery Qian Hu & Chris Jella MSR Disclaimer The contents of this document reflect the views of the.
Design Patterns Source: “Design Patterns”, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides And Created.
Design Patterns: MORE Examples
MPCS – Advanced java Programming
Pertemuan 08 Design Patterns & Anti-Patterns
9/11/2018 4:10 AM © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION.
lecture 08, OO Design Principle
Dynamics GP 2018 – Payroll and Human Resources
Using Probabilistic Data for Strategic Traffic Flow Management "How Humans Deal with Uncertainty" July 21, 2014 John Huhn (MITRE CAASD) Brian Campos(FAA.
Introduction to Design Patterns
Design Patterns Imran Rashid CTO at ManiWeber Technologies.
4/25/2019 4:33 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Composite Design Pattern By Aravind Reddy Patlola.
Dependency Inversion principle
FRAMEWORKS AND REUSE What is “Framework”?
A Concept for Launch and Reentry Collaborative Decision Making (CDM)
Microsoft Virtual Academy
Presentation transcript:

F053-B © 2007 The MITRE Corporation. All rights reserved. Case # Approved for Public Release; Distribution Unlimited. Eric Shi H. Peter Stassen, Mentor MITRE/CAASD An Example of Code Refactoring with Legacy Code in a Flight Model Software “The contents of this material reflect the views of the author and/or the Director of the Center for Advanced Aviation System Development. Neither the Federal Aviation Administration nor the Department of Transportation makes any warranty or guarantee, or promise, expressed or implied, concerning the content or accuracy of the views expressed herein”

F053-B © 2007 The MITRE Corporation. All rights reserved. 2 Case # Approved for Public Release; Distribution Unlimited. MITRE/CAASD Integrated Air Traffic Management (ATM) Lab Research from the perspective of National Airspace System (NAS) stakeholders –Flight Crew –Air Traffic Controllers Tower Terminal Enroute –Air Traffic Managers Supports efforts to –Evaluate and mature new concepts –Study human factors issues –Build industry consensus

F053-B © 2007 The MITRE Corporation. All rights reserved. 3 Case # Approved for Public Release; Distribution Unlimited. Integrated ATM Lab Cockpit Simulator Simulates a generic air-transport category airplane Fixed-base cockpit research simulator –Medium-fidelity –Not meant for training, emphasis on research –Rapid-prototyping capability –Data collection capability

F053-B © 2007 The MITRE Corporation. All rights reserved. 4 Case # Approved for Public Release; Distribution Unlimited. Cockpit Cockpit simulator: physical cockpit shell

F053-B © 2007 The MITRE Corporation. All rights reserved. 5 Case # Approved for Public Release; Distribution Unlimited. Flight Model Code Base Development began in 1993 using C –Distributed design (processor limitations) –Not object oriented No comprehensive rework of basic design since inception Continual process of modification to add capabilities incrementally ► Code base has become difficult to manage ► Inter-process communications have proliferated

F053-B © 2007 The MITRE Corporation. All rights reserved. 6 Case # Approved for Public Release; Distribution Unlimited. What is refactoring? refactoring (noun): a change made to the internal structure of software to make it easier to understand and cheaper to modify without changing its observable behavior –Martin Fowler, Refactoring: Improving the Design of Existing Code First thesis on refactoring in 1992 No performance gain Only affects those who work directly with the code Relevant to systems that employ legacy code

F053-B © 2007 The MITRE Corporation. All rights reserved. 7 Case # Approved for Public Release; Distribution Unlimited. Benefits of Refactoring Easier for programmers to modify and understand Cheaper to maintain over time Stops the decay of the design as code is changed to realize short-term goals Higher quality software

F053-B © 2007 The MITRE Corporation. All rights reserved. 8 Case # Approved for Public Release; Distribution Unlimited. Project Objectives Seeks to apply refactoring principles to the cockpit code –Move to an object-orientated design using C++ –Employ modern coding standards –Redesign of code structure –Take advantage of polymorphism through design patterns Behavior of the code remains unchanged Combine mode control panel, automatic flight and flight model modules

F053-B © 2007 The MITRE Corporation. All rights reserved. 9 Case # Approved for Public Release; Distribution Unlimited. Project Methodology Literature review –Refactoring: Improving the Design of Existing Code by Martin Fowler –Elements of C++ Style by Trevor Misfeldt, Gregory Bumgardner, and Andrew Gray –Design Patterns: Elements of Reusable Object- Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides Cataloging of relevant variables Merging into a single module

F053-B © 2007 The MITRE Corporation. All rights reserved. 10 Case # Approved for Public Release; Distribution Unlimited. Old Flight Model Flight Model Mode Control Panel Automatic Flight Data

F053-B © 2007 The MITRE Corporation. All rights reserved. 11 Case # Approved for Public Release; Distribution Unlimited. New Design (Object-Oriented) Data Classes Auto Flight Communications Navigation Flight Controls Flight Model Atmosphere Terrain Engine Wind... Simulation Control Simulation Loop

F053-B © 2007 The MITRE Corporation. All rights reserved. 12 Case # Approved for Public Release; Distribution Unlimited. New Design Elimination of several inter-process communications Each component has direct access to data Extensive usage of the C++ Standard Template Library –Replacing C constructs with C++ constructs (e.g. char[] to std::string) Class representation of components Much better maintainability –Easier to modify, fewer variables through elimination of redundant data –Easier for others to understand

F053-B © 2007 The MITRE Corporation. All rights reserved. 13 Case # Approved for Public Release; Distribution Unlimited. Expected Results Increased program lifespan Accessible to future programmers Easier to implement new features Easier to apply future refactorings Better usage of memory Testing by subject-matter experts

F053-B © 2007 The MITRE Corporation. All rights reserved. 14 Case # Approved for Public Release; Distribution Unlimited.