THE PHOENIX ARCHITECTURE A New Approach to Student Satellite Software Riley Pack University of Colorado at Boulder.

Slides:



Advertisements
Similar presentations
Chapter 7 – Design and Implementation
Advertisements

Software Engineering Introduction and Overview RA402 jcmtCSE1320 Intermediate Programming Essence and Accident Inherent Difficulties –Complexity –Conformity.
Design Concepts and Principles
Chapter 7 – Object-Oriented Design
The Mythical Man-Month by Fred Brooks (I) Published 1975, Republished 1995 Experience managing the development of OS/360 in Central Argument –Large.
No Silver Bullet - Essence and Accident in Software Engineering By: R. Adam Mead.
SWE Introduction to Software Engineering
Design Patterns Yes, they are important Robert Cotton April 23, 2009.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Lecture.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
No Silver Bullet Essence and Accidents of Software Engineering By Frederick P. Brooks Frederick P. Brooks Presentation by Yan Qi
Design Patterns CS is not simply about programming
SWE Introduction to Software Engineering
James Tam Introduction To Design Patterns You will learn about design techniques that have been successfully applied to different scenarios.
Spring 2010CS 2251 Design Patterns. Spring 2010CS 2252 What is a Design Pattern? "a general reusable solution to a commonly occurring problem in software.
Notion of a Project Notes from OOSE Slides - modified.
September 1999 Overview Software Engineering1 CS466: Tools and Processes for Software Gio Wiederhold Dorothea Beringer Anca-Juliana Stoica.
SOFTWARE CRISIS SOLUTIONS? © University of LiverpoolCOMP 319slide 1.
ECE 355 Design Patterns Tutorial Part 2 (based on slides by Ali Razavi) Presented by Igor Ivković
Chapter 22 Object-Oriented Design
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
–Streamline / organize Improve readability of code Decrease code volume/line count Simplify mechanisms Improve maintainability & clarity Decrease development.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
TECHWARZ. (Multiplexed Information and Computing Service)  Multics was an extremely influential early time-sharing operating system.  Goal: Develop.
Overview SAP Basis Functions. SAP Technical Overview Learning Objectives What the Basis system is How does SAP handle a transaction request Differentiating.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Essence and Accident in Software Engineering By: Mike Hastings.
Design Patterns Trends and Case Study John Hurst June 2005.
The Design Discipline.
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Operating System A program that controls the execution of application programs An interface between applications and hardware 1.
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering.
1 Operating System Overview Chapter 2 Advanced Operating System.
Software Design Refinement Using Design Patterns Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
An Introduction to Software Architecture
Pattern Oriented Software Architecture for Networked Objects Based on the book By Douglas Schmidt Michael Stal Hans Roehnert Frank Buschmann.
Team Skill 6: Building the Right System From Use Cases to Implementation (25)
No Silver Bullet. CS460 - Senior Design Project I (AY2004)2 No silver bullet "No Silver Bullet" –– a paper by Fred Brooks, Professor of Computer Science.
Kernel, processes and threads Windows and Linux. Windows Architecture Operating system design Modified microkernel Layered Components HAL Interacts with.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
University of Palestine software engineering department Testing of Software Systems Testing throughout the software life cycle instructor: Tasneem Darwish.
111 Notion of a Project Notes from OOSE Slides – a different textbook used in the past Read/review carefully and understand.
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.
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
Architectural Design lecture 10. Topics covered Architectural design decisions System organisation Control styles Reference architectures.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Behavioral Design Patterns Morteza Yousefi University Of Science & Technology Of Mazandaran 1of 27Behavioral Design Patterns.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
Moving On To Design Chapter 9. Key Ideas The purpose of the analysis phase is to figure out what the business needs. The purpose of the design phase is.
“No Silver Bullet”. No Silver Bullet  "No Silver Bullet" –– a paper by Fred Brooks, Professor of Computer Science at University of North Carolina in.
1 Moving On To Design Chapter 9. 2 Key Ideas The purpose of the analysis phase is to figure out what the business needs. The purpose of the design phase.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
By David Sanders Title Explanation  Werewolves are quite terrifying, simply because they transform unexpectedly into horrors. To kill werewolves,
Seung Ha.  Façade is generally one side of the exterior of a building, especially the front.  Meaning “frontage” or “face”  In software architecture,
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
System Programming Basics Cha#2 H.M.Bilal. Operating Systems An operating system is the software on a computer that manages the way different programs.
Chapter 7 Lecture 1 Design and Implementation. Design and implementation Software design and implementation is the stage in the software engineering process.
Simplifying Customer Software Integration Tim Myers April 9 th, 2011 Colorado Undergraduate Space Research Symposium Payload Configuration GUI.
Dr D. Greer, Queens University Belfast ) Software Engineering Chapter 7 Software Architectural Design Learning Outcomes Understand.
The Bookstore Problem. Contents I.Problem Description II.Solution III.Exercise.
Software Design Refinement Using Design Patterns
Princess Nourah bint Abdulrahman University
Design and Implementation
An Introduction to Software Architecture
DESIGN PATTERNS : Introduction
Chapter 6: Architectural Design
Presentation transcript:

THE PHOENIX ARCHITECTURE A New Approach to Student Satellite Software Riley Pack University of Colorado at Boulder

Introduction What Makes Student Satellite Software Difficult? Custom hardware for each mission Limited time and resources Software must support bus and payload operation Pack 2

Introduction Common Approach to Student Satellite Software Write all software from the ground up New architecture design for each mission Spend a significantly longer amount of time on bus software than payload software Complex interfaces and dependencies between software components Pack 3

What is Phoenix? Software Architecture for Student Satellite Projects Object-oriented software system Built with modularity and reuse in mind Shifts focus from bus software to payload software Pack 4

The Phoenix Approach Write Software Only Once If functionality already exists, why reinvent the wheel? Focus only on new functionality This is the interesting part of the software and the project! Allow software to be reused from one project to the next Pack 5

The Phoenix Approach Decouple Software from the Hardware Provide a Hardware Abstraction Layer (HAL) to interface with the satellite hardware Allows software to be shared between many projects Will hopefully lead to a large repository of software modules Pack 6

The Phoenix Approach Decouple Dependencies Between Software Modules Remove hard dependencies between any two systems in the software Allows modules to be added or removed from the system Allow all modules to communicate through a standardized interface Pack 7

Attacking the Essences Four Major Essential Difficulties of Software Development Phoenix Aims to Attack Three Essences Complexity, Conformity, Changeability Invisibility not addressed directly by Phoenix Essences are the Root of Development Snags and Difficulties Pack 8

Attacking the Essences: Complexity Phoenix Decouples Dependencies Between Systems Uses standardized commands to communicate between modules Developers only need to focus on one small subsystem Removing one module does not directly break another Pack 9

Attacking the Essences: Conformity Standardized Commands Remove the Need to Conform to Numerous Interfaces All modules interact in the exact same way Subsystem do not need to design the interface method Instead, provide commands to perform an action Pack 10

Attacking the Essences: Changeability Architecture Built with Change in Mind Modules can be added/removed at any time No hard dependencies between modules Interface extensible through addition of commands Pack 11

Development Process Following Agile Development Methods Iterative Design Test-Driven Development Constant Customer Feedback Object-Oriented Design Written in C++ Pack 12

Development Process Allows for Rapid Response to Functionality Changes Requirements expected to change Software “grown” instead of built Always have a working system Pack 13

Architecture Design Pack 14

Architecture Components Phoenix Core Provides basic services to servers Hardware Abstraction Layer Allows software to run on multiple hardware configurations Phoenix Servers Implement specific functionality Communicate with each other through the core Pack 15

Phoenix Core Heart of the Software System Required for All Systems Major Components Message Routing System (Dispatcher) File System Logging Mechanism Pack 16

Dispatcher Allows Servers to Send Messages to Each Other Commands, Data Requests, Errors, etc. Standardized Interface for All Servers Send Message: Dispatcher::Dispatch() Receive/Handle Message: Dispatcher::Listen() Pack 17

Dispatcher: Usage Pack 18

Hardware Abstraction Layer Decouples Software from Hardware No direct dependencies on hardware by Phoenix Core or other modules Standardized Hardware Interactions Allows for Testing of All High-Level Software on a PC Pack 19

Phoenix Servers Encapsulate a Specific Functionality for the System Examples: Communication Server, Payload Control Server, Flight Mode Server Must Communicate with Other Servers Through Dispatcher Ensures no hard dependencies between servers Allows Each Mission to Add Functionality to System as Needed Pack 20

First Application of Phoenix ALL-STAR Project at CU-Boulder 3U CubeSat designed to accommodate a wide variety of space-borne payloads Requires a large amount of software customization from mission to mission Pack 21

ALL-STAR Flight Software Diagram Pack 22

Project Status In the Process of Implementing the Core and the HAL Dispatcher written and tested HAL and file system in progress Test Servers to Demonstrate Functionality in Development Initial Server Development to Begin this Summer Pack 23

Questions? Pack 24

References [1]Frederik P. Brooks, "No Silver Bullet: Essence and Accidents of Software Engineering," IEEE Computing, vol. 20, pp , [2]FreeRTOS. [Online]. [3]Raj Srinivasan. (1995, August) RFC XDR: External Data Representation Standard. [4]Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, Design Patterns. Westford, Massachusetts: Addison-Wesley, Pack 25