Embedded Systems and Software Engineering Gary Hafen USC CSSE Executive Workshop March 10, 2010.

Slides:



Advertisements
Similar presentations
Prescriptive Process models
Advertisements

Unit 2. Software Lifecycle
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
May 2, May 2, 2015May 2, 2015May 2, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa, CA.
Towards Target-Level Testing and Debugging Tools For Embedded Software Harry Koehnemann, Arizona State University Dr. Timothy Lindquist, Arizona State.
Hardware/Software Integration in System-of-Systems Architecting: The Role of Systems Modeling University of Southern California Viterbi School of Engineering.
What is Software Engineering? And why is it so hard?
Impacts of SoS on Software Development Gary Hafen Corporate Fellow, Software Engineering USC CSSE Workshop Integrating Systems and Software Engineering.
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
Knowledge Acquisitioning. Definition The transfer and transformation of potential problem solving expertise from some knowledge source to a program.
Overview of Software Requirements
System Engineering Instructor: Dr. Jerry Gao. System Engineering Jerry Gao, Ph.D. Jan System Engineering Hierarchy - System Modeling - Information.
Testing - an Overview September 10, What is it, Why do it? Testing is a set of activities aimed at validating that an attribute or capability.
Software Verification and Validation (V&V) By Roger U. Fujii Presented by Donovan Faustino.
Computational Thinking Related Efforts. CS Principles – Big Ideas  Computing is a creative human activity that engenders innovation and promotes exploration.
INCOSE 1 st reactions. One other area that struck me has the sheer number of levels of proficiency—in ours we are going with 5 and the first one is limited.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Effective Methods for Software and Systems Integration
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Chapter 2 The process Process, Methods, and Tools
1 Systems Analysis and Design in a Changing World, Fourth Edition.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
N By: Md Rezaul Huda Reza n
© The McGraw-Hill Companies, An Introduction Chapter 1 Software Project Management 4 th Edition Robert Hughes and Mike Cotterell.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Reliability Andy Jensen Sandy Cabadas.  Understanding Reliability and its issues can help one solve them in relatable areas of computing Thesis.
EENG 1920 Chapter 1 The Engineering Design Process 1.
Business Analysis and Essential Competencies
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Error reports as a source for SPI Tor Stålhane Jingyue Li, Jan M.N. Kristiansen IDI / NTNU.
Using Business Scenarios for Active Loss Prevention Terry Blevins t
1 Activities covered by project management Feasibility study Is project technically feasible and worthwhile from a business point of view? Planning Only.
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
Jan. 29, 2002Grand Challenges in Simulation Issues in Enhancing Model Reuse C. Michael Overstreet Richard E. Nance Osman Balci.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 systems analysis 1 what is systems analysis? preparation of the system’s requirements/definition,
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Developed by Reneta Barneva, SUNY Fredonia The Process.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Requirements Validation
Chapter 2: Testing in Software Life Cycle MNN1063 System Testing and Evaluation.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
Software Development Life Cycle (SDLC)
Smart Home Technologies
Real-Time Systems, Events, Triggers. Real-Time Systems A system that has operational deadlines from event to system response A system whose correctness.
Thomas L. Gilchrist Testing Basics Set 3: Testing Strategies By Tom Gilchrist Jan 2009.
What’s Ahead for Embedded Software? (Wed) Gilsoo Kim
Information Systems Dr. Ken Cosh Lecture 9.
ESA Harwell Robotics & Autonomy Facility Study Workshop Autonomous Software Verification Presented By: Rick Blake.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
CS3320-Chap21 Office Hours TR 1:00-2:15 PM W 2:30-3:30 PM By appointment.
Software Engineering Lecture 10: System Engineering.
V-Shaped Software Development Life Cycle Model. Introduction: Variation of water fall model. Same sequence structure as water fall model. Strong emphasis.
INCOSE IW12 MBSE Workshop 15 INCOSE (MBSE) Model Based System Engineering Integration and Verification Scenario Ron Williamson, PhD Raytheon
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
 System Requirement Specification and System Planning.
Software Requirements
Architecture Concept Documents
The Systems Engineering Context
Software Requirements
Software Life Cycle Models
Model-Driven Analysis Frameworks for Embedded Systems
Introduction To software engineering
Chapter 7 Software Testing.
Subject Name: SOFTWARE ENGINEERING Subject Code:10IS51
Requirements Development in CMMI
INTRODUCTION OF REQUIREMENT ENGINEERING Chapter- one.
Presentation transcript:

Embedded Systems and Software Engineering Gary Hafen USC CSSE Executive Workshop March 10, 2010

Situation Software is providing an increasing percentage of functionality in our embedded systemsSoftware is providing an increasing percentage of functionality in our embedded systems –Space Craft –Aircraft –Ships –Automobiles –Cell Phones –Appliances

Issue Software is an abstract, logic based product that invites latent errors to persistSoftware is an abstract, logic based product that invites latent errors to persist –The errors may be nearly invisible to inspection or detection Embedded System Software is the most glaring example of this attributeEmbedded System Software is the most glaring example of this attribute –Lack of visible observation of software interaction –Intrusive test probes change the operational conditions –Real-time, asynchronous dynamics make errors hard to reproduce This Issue must be Acknowledged and Dealt with in the System and Software Architecture Design

Premise Real time embedded software has special challengesReal time embedded software has special challenges Difficulties stem from the combination of technically challenging problemsDifficulties stem from the combination of technically challenging problems –Solutions are founded in physical sciences –Limited computing resources severely constrain the solution space –Highly complex verification environments These problems manifest themselves in a wide variety of important implementation factorsThese problems manifest themselves in a wide variety of important implementation factors

ISO System Engineering V

ISO Software V Life Cycle Processes Harmonized with Requirements Analysis Architectural Design Detailed Design Construction Integration Qualification Test Unit Test Plan for

Change is Needed The V-model presupposes that a system can be deterministically decomposed and integratedThe V-model presupposes that a system can be deterministically decomposed and integrated Complexity and network system interoperability make this impossibleComplexity and network system interoperability make this impossible System Functionality is 80-90% Software EnabledSystem Functionality is 80-90% Software Enabled System Engineering approaches need to emulate current Software Engineering approachesSystem Engineering approaches need to emulate current Software Engineering approaches –Model based design –Agile practices –Logical as well as physical analysis and definition methods –Data/Information focused (e.g. Object Oriented) as well as control flow focused

Implementation Issues Unclear organizational responsibilitiesUnclear organizational responsibilities Requirements inadequacyRequirements inadequacy Execution resource constraintsExecution resource constraints Concurrent hardware developmentConcurrent hardware development –Leads to late discovery of hardware/software interface functionality and incompatibility –Results in unplanned software growth Software engineer domain knowledge inadequacySoftware engineer domain knowledge inadequacy Verification of embedded systemsVerification of embedded systems –Requires complex test labs with hardware in the loop, environment simulators, etc.

Unclear Organizational Responsibilities System Engineering allocates functionality to an embedded computer systemSystem Engineering allocates functionality to an embedded computer system –With or without software or hardware domain expertise Management awareness is problematicManagement awareness is problematic –Software is not always on the radar until too late –Incomplete understanding of the priorities and risks with respect to software The software team is often fragmented on a programThe software team is often fragmented on a program –Inadequate communication between groups –Role of the System Engineering Integration Team (SEIT) with respect to software

Requirements Inadequacy Late maturity of the Operational ConceptLate maturity of the Operational Concept –User/operator does not get a feel for how the system really works until it’s done –Seeing actual operational scenarios results in discovery of new software requirements Complex control laws, complex hardware interfaces, high accuracy requirementsComplex control laws, complex hardware interfaces, high accuracy requirements Parallel, asynchronous processing creates non- deterministic behaviorParallel, asynchronous processing creates non- deterministic behavior Autonomy requires complex second order requirements that will be derived lateAutonomy requires complex second order requirements that will be derived late

Execution Resource Constraints Computing resources for embedded systems are constrained by physical sizeComputing resources for embedded systems are constrained by physical size Environmental Qualification testing requirements for hardware prevent hardware upgradesEnvironmental Qualification testing requirements for hardware prevent hardware upgrades Systems Engineers must be extraordinarily conscious of the resources consumed by the implementations they chooseSystems Engineers must be extraordinarily conscious of the resources consumed by the implementations they choose Implementations are driven more by performance than by clarity of the design or maintenance concernsImplementations are driven more by performance than by clarity of the design or maintenance concerns

Concurrent Hardware Development Late discovery of hardware/software interface incompatibilityLate discovery of hardware/software interface incompatibility – results in unplanned software growth and workarounds Constraints associated with modifying qualified hardware results in a “we’ll fix it in the software” decisionConstraints associated with modifying qualified hardware results in a “we’ll fix it in the software” decision These discoveries are made when the resources to fix the problem are least availableThese discoveries are made when the resources to fix the problem are least available

Domain Knowledge Inadequacy Software integrates our embedded systemsSoftware integrates our embedded systems Software engineers play a key role in the integrationSoftware engineers play a key role in the integration Effective embedded software engineers must have domain knowledgeEffective embedded software engineers must have domain knowledge An embedded software engineer must understand the physics and mathematics of our complex systems.An embedded software engineer must understand the physics and mathematics of our complex systems. This domain knowledge of software engineers is critical to the success of our complex programs

Complex Verification Requirements Driven by the potential for catastrophic failureDriven by the potential for catastrophic failure Must be performed on hardware that is as identical to the operational hardware as possibleMust be performed on hardware that is as identical to the operational hardware as possible –In the actual operational environment or one that is simulated and certified Non-deterministic behavior is difficult to exhaustively verifyNon-deterministic behavior is difficult to exhaustively verify Test Environment must have dynamic tools to provide comprehensive stimulation and observation of embedded systemsTest Environment must have dynamic tools to provide comprehensive stimulation and observation of embedded systems Lab must be configuration managed to assure valid, repeatable resultsLab must be configuration managed to assure valid, repeatable results

Summary Embedded Systems Engineers must have Software Engineering understanding and skillEmbedded Systems Engineers must have Software Engineering understanding and skill –80% of the capability that they are designing for are software enabled Embedded Software Engineers must have Domain Systems Engineering understanding and skillEmbedded Software Engineers must have Domain Systems Engineering understanding and skill –Success of the software product is dependent on their knowledge of the physical environment that it interacts with The Systems Engineer must be a Software Engineer The Software Engineer must be a Systems Engineer