Software Engineering for satellites Kathryn Anne Weiss Software Engineering Research Laboratory Department of Aeronautics and Astronautics Massachusetts Institute of Technology October 22. 2003 June17.2004 o Massachusetts Institute of technology 2002
June 17, 2004 © Massachusetts Institute of Technology, 2002 1 Software Engineering for Satellites Kathryn Anne Weiss Software Engineering Research Laboratory Department of Aeronautics and Astronautics Massachusetts Institute of Technology October 22, 2003
Topics of Discussion ◆ Background ◆ Why is Software Why is Software Engineering hard for Engineering Hard? Spacecraft? Lifecycle ◆ SERL Approach Cost ◆ Component- Based Requirements Specification Systems Engineering Approaches to Design SPHERES Implementation Testing ◆ Conclusions Maintenance June17,2004 o Massachusetts institute of technology 2002
June 17, 2004 June 17, 2004 © Massachusetts Institute of Technology, 2002 2 Topics of Discussion Background Why is Software Engineering Hard? Lifecycle • Cost • Requirements Specification • Approaches to Design • Implementation • Testing • Maintenance Why is Software Engineering Hard for Spacecraft? SERL Approach Component-Based Systems Engineering SPHERES Conclusions
Background Ariane 5 Courtesy of Arianespace /ESA/CSG Used with permission Mars climate Orbiter ISD VisuLab SOlar Heliospheric Observatory June17,2004 o Massachusetts institute of technology 2002
June 17, 2004 June 17, 2004 © Massachusetts Institute of Technology, 2002 3 Background Ariane 5 Mars Climate Orbiter SOlar Heliospheric Observatory Courtesy of Arianespace / ESA / CSG. Used with permission
Background Why is Software Engineering Hard? s“ Curse of flexibility And they looked upon the software and saw that it was good. But they just had to add one other feature No physical constraints Intangibility Lack of historical usage information Organized complexity Too complex for complete analysis Too organized for statistics Large discrete state spaces June17,2004 o Massachusetts institute of technology 2002
June 17, 2004 June 17, 2004 © Massachusetts Institute of Technology, 2002 4 Background Why is Software Engineering Hard? “Curse of flexibility” • ‘‘And they looked upon the software and saw that it was good. But they just had to add one other feature ...’’ • No physical constraints Intangibility Lack of historical usage information Organized complexity • Too complex for complete analysis • Too organized for statistics Large discrete state spaces
Background ◆ Software Lifecvc|e Feasibility Study Requirements v&v Design v&v plement V&Ⅴ ation Testing v&v v&v Maintenance v&v June17,2004 o Massachusetts institute of technology 2002
June 17, 2004 June 17, 2004 © Massachusetts Institute of Technology, 2002 5 Background Software Lifecycle Feasibility Study V & V Requirements V & V Design V & V Implement ation V & V Testing V & V Maintenance V & V
Background ◆ Software Cost Coding Requirements Testing Maintenance June17,2004 o Massachusetts institute of technology 2002
June 17, 2004 June 17, 2004 © Massachusetts Institute of Technology, 2002 6 Background Software Cost Maintenance Testing Requirements Coding
Requirements specification Most critical portion of the software lifecycle Majority of errors in software can be traced back to flaws in the requirements Many methods and types of requirements including Informal formal .English Zed UML . State Machines .Intent Specifications June17,2004 o Massachusetts institute of technology 2002
June 17, 2004 June 17, 2004 © Massachusetts Institute of Technology, 2002 7 Requirements Specification Most critical portion of the software lifecycle Majority of errors in software can be traced back to flaws in the requirements Many methods and types of requirements including: Informal •English •UML Formal •Zed •State Machines •Intent Specifications
Approaches to Design Software design grew out of the structured programming movement beginning in the 1960s o Many approaches to design including Functional decomposition Object-Orientation(OO) Event-based CBSe Agent Architectures What approach to Software Design is appropriate for Satellite Engineering? June17,2004 o Massachusetts institute of technology 2002
June 17, 2004 June 17, 2004 © Massachusetts Institute of Technology, 2002 8 Approaches to Design Software design grew out of the structured programming movement beginning in the 1960s Many approaches to design including: Functional Decomposition Object-Orientation (OO) Event-based CBSE Agent Architectures What approach to Software Design is appropriate for Satellite Engineering?
Implementation Only 10% of the software development effort Other 90%made up of planning and testing ◆ Issues include Programming Languages COTS and Reuse Interfaces June17,2004 o Massachusetts institute of technology 2002
June 17, 2004 June 17, 2004 © Massachusetts Institute of Technology, 2002 9 Implementation Only 10% of the software development effort!!! Other 90% made up of planning and testing Issues include: Programming Languages COTS and Reuse Interfaces
Testing Examining a program to see if it does not do what it is supposed to do is only half the battle-the other half is seeing whether the program does what it is not supposed to do prob more errors errors already found June17,2004 o Massachusetts institute of technology 2002 10
June 17, 2004 June 17, 2004 © Massachusetts Institute of Technology, 2002 10 Testing Examining a program to see if it does not do what it is supposed to do is only half the battle – the other half is seeing whether the program does what it is not supposed to do!