SlideShare a Scribd company logo
A-7E Avionics System:
A Case Study in Utilizing
Architectural Structures
Agenda
• A case study of an architecture designed by
  engineering and specifying 3 specific architectural
  structures.
• We will see how these structures complement each
  other to provide a complete picture of how the
  system works
• We will see how certain qualities of the system are
  affected by each one.
A-7E Corsair II
• It is a single-seat, carrier-based attack aircraft used
  by the U.S. Navy throughout the 1960s, 1970s, and
  1980s.
A-7E Corsair II
• The A-7C (earlier version), was the very first
  production aircraft in the world to be equipped with
  an onboard computer to help the pilot with
  navigation and "weapon delivery"
• The A-7E's onboard computer is a small, special-
  purpose IBM machine for which no compiler exists;
  programming is in assembly language only
• The computer has special registers connected to A-
  D/D-A converters that let it receive and send data
  to almost two dozen devices in the aircraft's
  avionics suite.
Requirements and Qualities
Software Functionality
• The A-7E software is responsible for reading sensors and
  updating cockpit displays that help the pilot drop
  weapons on a target.
• The pilot communicates the location of a ground target
  (or a navigational waypoint) to the software in a number
  of ways, including the following:
  ▫ Keying in its latitude and longitude via the keypad
  ▫ Slewing the map using a joystick until its coordinates
    are under the center crosshairs and then "designating"
    it by pushing a special button on the control stick
  ▫ Aiming the forward-looking radar to the point and
    designating it
  ▫ Slewing a special symbol on the heads-up display until
    it overlays the point of interest on the ground and
    then designating it
Software Functionality
• The software then provides navigational information
  (direction, distance, time to go) and directional
  cues on the heads-up display that take the aircraft
  to the designated location.
• The software has at least five direct and indirect
  ways to calculate the aircraft's current altitude
  ▫ Example: a trigonometric scheme using the
    range and elevation angle of the forward-looking
    radar as components of a triangle
• There are more than 20 weapon delivery modes, all
  demanding in terms of the real-time calculations
  (repeated 25 times every second) necessary to
  maintain the A-7E's bombing accuracy
Figure 3.3 Calculation of altitude
Quality Attributes
• The architecture we will present is not the
  architecture for the original software but that for a
  redesign project launched by Navy software
  engineers
• The qualities that the software system was
  expected to have included real-time performance
  and modifiability for expected changes.
• Specifically, the performance requirements were
  stated in terms of updates per second of the A7-E's
  displays and weapon delivery calculations.
• The modifiability requirements dealt with making
  changes to the weaponry, the platform, the
  symbology on the display, and the addition of new
  input through the keypad
Scenarios
• The system was constructed beginning in 1977 for
  the naval aviators who flew the A-7E aircraft
• The developing organization was the software
  engineering group at the U.S. Naval Research
  Laboratory.
• The developers were creating the software to test
  their belief that certain software engineering
  strategies were appropriate for high-performance
  embedded real-time systems.
  ▫ information hiding
  ▫ cooperating sequential processes
Scenarios
• The architects included one of the authors of this
  book (Paul Clements) and one of the leaders in the
  development of software engineering principles
  (David Parnas)
• There was no compiler available for the target
  platform.
Relationship to the Architecture
Business Cycle
A-7E Avionics System Architecture
• The architecture for the A-7E avionics system is
  centered around three architectural structures:
  ▫ Decomposition, a structure of modules
  ▫ Uses, a structure of modules
  ▫ Process, a structure of components and
    connectors
• We will discuss each in turn
Table 3.1: Architectural Structures
Structure       Elements          Relations             Has Influence over
                                  among
                                  Elements
Module          Modules           Is a submodule of; Ease of change
Decomposition   (implementation   shares a secret with
                units)
Uses            Procedures        Requires the correct Ability to field subsets and
                                  presence of          develop incrementally
Process         Processes; thread Synchronizes with;   Schedulability;
                of procedures     shares CPU with;     achieving performance goals
                                  excludes             through parallelism
Decomposition - Information Hiding
• In case if a device such as an aircraft altitude
  sensor is likely to be replaced over the life of an
  avionics program
• The information-hiding principle makes the details
  of interacting with that device the secret of one
  module
• Information hiding is enforced by requiring that
  modules interact only via a defined set of public
  facilities—their interfaces
• Each module provides a set of access procedures
Decomposition – Specific goals
• Each module's structure should be simple enough
  to be understood fully.
• It should be possible to change the implementation
  of one module without knowledge of the
  implementation of other modules and without
  affecting the behavior of other modules.
• It should be possible to make a major software
  change as a set of independent changes to
  individual modules
Decomposition – module guide
• The documentation of the decomposition structure
  is sometimes called a module guide.
• The guide states the criteria used to assign a
  particular responsibility to a module
• We arranges the modules in tree structure, So we
  can find the necessary information without
  searching through unrelated documentation
• The guide does not describe any runtime
  relationship among the modules
• The guide does not talk about how modules interact
  with each other while the system is executing
Achieves Quality Goals
• How the A-7E Module Decomposition Structure
  Achieves Quality Goals

Goal                                    How Achieved

Ease of change to: weapons, platform,   Information hiding
symbology, input

Understand anticipated changes          Formal evaluation procedure to take
                                        advantage of experience of domain
                                        experts (Because a designer might not
                                        have had all of the relevant experience)
Assign work teams so that their         Modules structured as a hierarchy;
interactions were minimized             each work team assigned to a second-
                                        level module and all of its descendants
A-7E Module Decomposition
Structure
• The decomposition tree is described beginning with the
  three highest-level modules.
• These are motivated by the observation that changes
  tend to come from three areas
  ▫ Hardware-Hiding Module
     Hides the procedures that need to be changed if any part of
     the hardware is replaced by a new unit with a different
     hardware/software interface but with the same general
     capabilities.
  ▫ Behavior-Hiding Module
     Hides procedures that need to be changed if there are
     changes in requirements affecting the required behavior.
  ▫ Software Decision Module
     Hides software design decisions that are based on
     mathematical theorems, physical facts, and programming
     considerations
A-7E Module guide
• The module guide goes on to explain how conflicts
  among these categories are arbitrated by a
  complete and unambiguous requirements
  specification
  ▫ e.g., is a required algorithm part of the behavior
    or a software decision?
• The module guide then describes the second-level &
  third-level decomposition
• Notice that many of the Device Interface modules
  have the same names as Function Driver modules
Hardware-Hiding Module                           Behavior-Hiding Module
  Extended Computer Module                         Function Driving Module
   Data Module                                      Air Data Computer Module
   Input/Output Module                              Audible Signal Module
   Computer State Module                            Computer Fail Signal Module
   Paralleslism Control Module                      Doppler Radar Set Module
   Program Module                                   Flight Information Display Module
   Virtual Memory Module                            Forward Looking Radar Module
   Interrupt Handler Module                         Head-Up Display Module
   Timer Module                                     Inertial Measurement Set Module
                                                    Panel Module
  Device Interface Module                           Projected Map Display Set Module
   Air Data Computer Module                         Shipboard Inertial Navigation System Module
   Angle of Attack Sensor Module                    Visual Indicator Module
   Audible Signal Device Module
                                                    Weapon Release System Module
   Computer Fail Device Module                      Ground Test Module
   Doppler Radar Set Module
   Flight Information Displays Module
   Forward Looking Radar Module                     Shared Services Module
   Head-Up Display Module                            Mode Dertermination Module
   Inertial Measurement Set Module                   Panel I/O Support Module
   Input/Output Representation Module                Shared Subroutine Module
   Master Function Switch Module                     Stage Director Module
   Panel Module                                      System Value Module
   Projected Map Display Set Module
   Radar Altimeter Module
   Shipboard Inertial Navigation System Module
   Slew Control Module
   Switch Bank Module
   TACAN Module
   Visual Indicators Module
   Waypoint Information System Module
   Weapon Characteristics Module
   Weapon Release System Module
   Weight on Gear Module
Software Decision Module

  Application Data Type Module
   Numeric Data Type Module
   State Transition Event Module
  Data Banker Module
   Singular Values Module
   Complex Event Module

  Filter Behavior Module

  Physical Models Module
   Aircraft Motion Module
   Earth Characteristics Module
   Human Factors Module
   Target Behavior Module
   Weapon Behavior Module

  Software Utility Module
   Power-Up Initialization Module
   Numerical Algorithms Module

  System Generation Module
   System Generation Parameter Module
   Support Software Module
Uses –Uses Relation
• The concept behind the uses structure is the uses
  relation.
• In practice this relation is similar to but not quite
  the same as the calls relation.
  ▫ Procedure A is simply required to call procedure B
    in its specification, but the future computation
    performed by A will not depend on what B does
• The unit of the uses (or allowed-to-use) structure is
  the access procedure.
• In practice all of the procedures of a module may
  share usage restrictions. Hence, the name of a
  module might appear in the uses structure.
Achieves Quality Goals
• How the A-7E Uses Structure Achieves Quality
  Goals

Goal                                  How Achieved

Incrementally build and test system   Create "is-allowed-to-use" structure for
functions                             programmers that limits procedures
                                      each can use
Design for platform change            Restrict number of procedures that use
                                      platform directly



Produce usage guidance of manageable Where appropriate, define uses to be a
size                                 relationship among modules
Excerpt from the A-7E Allowed-to-
Use Specification
Using procedures: A procedure in…      .. Is allowed to use any procedure in …

EC: Extended Computer Module           None

DI: Device Interface Module            EC.DATA, EC.PGM, EC.IO, EC.PAR, AT.NUM,
                                       AT.STE, SU
    ADC: Air Data Computer             PM.ECM

    IMS: Inertial Measurement Set      PM.ACM

FD: Function Driver Module             EC.DATA, EC.PAR, EC.PGM, AT.NUM, AT.STE,
                                       SU, DB.SS.MODE, DB.SS.PNL.INPUT,
                                       DB.SS.SYSVAL, DB.DI

    ADC: Air Data Computer Functions   DB.DI.ADC, DI.ADC, FB

    IMS: IMS Functions                 DB.DI.IMS, DI.IMS

    PNL: Panel Functions               EC.IO, DB.SS.PNL.CONFIG, SS.PNL. FORMAT,
                                       DI.ADC, DI.IMS, DI.PMDS, DI.PNL
Excerpt from the A-7E Allowed-to-
Use Specification
Using procedures: A procedure in…   .. Is allowed to use any procedure in …

SS: Shared Services Module          EC.DATA, EC.PGM, EC.PAR, AT.NUM, AT.STE,
                                    SU

    PNL: Panel I/O Support          DB.SS.MODE, DB.DI.PNL, DB.DI.SWB,
                                    SS.PNL.CONFIG, DI.PNL

AT: Application Data Type Module    EC.DATA, EC.PGM

    NUM: Numeric Data Types         None additional

    STE: State Transition Events    EC.PAR
Process
• A process is a set of programming steps that are
  repeated in response to a triggering event or to a
  timing constraint.
• It has its own thread of control, and it can suspend
  itself by waiting for an event (usually by invoking
  one of the event-signaling programs on a module's
  interface).
• The Extended Computer Module presents a virtual
  programming interface that features
  multiprocessing capabilities , because A-7E
  computer is a uniprocessor
Process Structures
• The process structure emerged after the other
  structures had been designed.
  ▫ Function Driver procedures were implemented as
    processes.
  ▫ Other processes computed time-consuming
    calculations in the background so that a value
    would always be available.
• Two kinds of information were captured in the
  process structure.
  ▫ The first documented what procedures were
    included in the body of each process.
  ▫ The second kind of information in the process
    structure documented which processes could not
    execute simultaneously.
Function driver processes structure
Periodic process: do every 40 milliseconds
          - Call other modules ‘ access procedures to gather the values of all
          relevant inputs
          - Calculate the resulting output value
          - Call the appropriate Device Interface procedure to send the output
          value to the outside world
End periodic process

Demand process
          - Await triggering event
          - Calculate the resulting output outcome
          - Call the appropriate Device Interface procedure to trigger the action
          in the outside world
End demand process
Achieves Quality Goals
• How the A-7E Process Structure Achieves Quality
  Goals

Goal                                How Achieved

Map input to output                 Each process implemented as cycle
                                    that samples, inputs, computes, and
                                    presents output
Maintain real-time constraints      Identify process through process
                                    structure and then perform offline
                                    scheduling


Provide results of time-consuming   Perform calculations in background and
calculations immediately            return most recent value when queried
Summary
• This chapter described the architecture of a highly
  capable avionics system in terms of three related
  but quite different structures.
  ▫ A module decomposition structure describes
    design-time relations among its components,
    which are implementation units that can be
    assigned to teams.
  ▫ A uses structure describes runtime usage
    relations among its components, which are
    procedures in modules. From it, a picture of a
    layered architecture emerges.
  ▫ The process structure describes the parallelism of
    the system and is the basis for assignment for the
    physical hardware

More Related Content

What's hot

Software archiecture lecture10
Software archiecture   lecture10Software archiecture   lecture10
Software archiecture lecture10Luktalja
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-designOliver Cheng
 
Unit 1-overview of software engineering
Unit 1-overview of software engineering Unit 1-overview of software engineering
Unit 1-overview of software engineering
arvind pandey
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
farazimlak
 
Unit 6- Development Evolution model
Unit 6- Development Evolution model Unit 6- Development Evolution model
Unit 6- Development Evolution model
arvind pandey
 
Unit 2-software development process notes
Unit 2-software development process notes Unit 2-software development process notes
Unit 2-software development process notes
arvind pandey
 
Seii unit7 component-level-design
Seii unit7 component-level-designSeii unit7 component-level-design
Seii unit7 component-level-design
Ahmad sohail Kakar
 
Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13koolkampus
 
Component design and implementation tools
Component design and implementation toolsComponent design and implementation tools
Component design and implementation toolsKalai Vani V
 
Lecture 2 (Software Processes)
Lecture 2 (Software Processes)Lecture 2 (Software Processes)
Lecture 2 (Software Processes)
Education Front
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural designHiren Selani
 
CSI-503 - 6. Memory Management
CSI-503 - 6. Memory Management CSI-503 - 6. Memory Management
CSI-503 - 6. Memory Management
ghayour abbas
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architecture
Gang Tao
 
Design process evaluating interactive_designs
Design process  evaluating interactive_designsDesign process  evaluating interactive_designs
Design process evaluating interactive_designs
Preeti Mishra
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design Patterns
Gatte Ravindranath
 
SWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design BasicsSWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design Basics
ghayour abbas
 
Software Engineering - Ch11
Software Engineering - Ch11Software Engineering - Ch11
Software Engineering - Ch11Siddharth Ayer
 
Software testing part
Software testing partSoftware testing part
Software testing part
Preeti Mishra
 

What's hot (20)

Component level design
Component   level designComponent   level design
Component level design
 
Software archiecture lecture10
Software archiecture   lecture10Software archiecture   lecture10
Software archiecture lecture10
 
Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-design
 
Unit 1-overview of software engineering
Unit 1-overview of software engineering Unit 1-overview of software engineering
Unit 1-overview of software engineering
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
 
Unit 6- Development Evolution model
Unit 6- Development Evolution model Unit 6- Development Evolution model
Unit 6- Development Evolution model
 
Unit 2-software development process notes
Unit 2-software development process notes Unit 2-software development process notes
Unit 2-software development process notes
 
Seii unit7 component-level-design
Seii unit7 component-level-designSeii unit7 component-level-design
Seii unit7 component-level-design
 
AugCog Overview
AugCog OverviewAugCog Overview
AugCog Overview
 
Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13Real Time Software Design in Software Engineering SE13
Real Time Software Design in Software Engineering SE13
 
Component design and implementation tools
Component design and implementation toolsComponent design and implementation tools
Component design and implementation tools
 
Lecture 2 (Software Processes)
Lecture 2 (Software Processes)Lecture 2 (Software Processes)
Lecture 2 (Software Processes)
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural design
 
CSI-503 - 6. Memory Management
CSI-503 - 6. Memory Management CSI-503 - 6. Memory Management
CSI-503 - 6. Memory Management
 
Quality attributes in software architecture
Quality attributes in software architectureQuality attributes in software architecture
Quality attributes in software architecture
 
Design process evaluating interactive_designs
Design process  evaluating interactive_designsDesign process  evaluating interactive_designs
Design process evaluating interactive_designs
 
Quality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design PatternsQuality Attributes In Software Architecture & Design Patterns
Quality Attributes In Software Architecture & Design Patterns
 
SWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design BasicsSWE-401 - 5. Software Design Basics
SWE-401 - 5. Software Design Basics
 
Software Engineering - Ch11
Software Engineering - Ch11Software Engineering - Ch11
Software Engineering - Ch11
 
Software testing part
Software testing partSoftware testing part
Software testing part
 

Similar to Software archiecture lecture04

Chap 03.pdf
Chap 03.pdfChap 03.pdf
Chap 03.pdf
ssuser24265e
 
ES-Basics.pdf
ES-Basics.pdfES-Basics.pdf
ES-Basics.pdf
Srisurya26
 
unit-1@ DISTRIBUTED SYSTEMS-III B.TECH -CSE.ppt
unit-1@ DISTRIBUTED SYSTEMS-III B.TECH -CSE.pptunit-1@ DISTRIBUTED SYSTEMS-III B.TECH -CSE.ppt
unit-1@ DISTRIBUTED SYSTEMS-III B.TECH -CSE.ppt
vmuniraja
 
Ss debuggers
Ss debuggersSs debuggers
Ss debuggers
sweety enit
 
ERTS_Unit 1_PPT.pdf
ERTS_Unit 1_PPT.pdfERTS_Unit 1_PPT.pdf
ERTS_Unit 1_PPT.pdf
VinothkumarUruman1
 
Linux Assignment 3
Linux Assignment 3Linux Assignment 3
Linux Assignment 3
Diane Allen
 
OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysislienhard
 
Kairos aarohan
Kairos  aarohanKairos  aarohan
Kairos aarohan
berasrujana
 
Introduction to embedded computing and arm processors
Introduction to embedded computing and arm processorsIntroduction to embedded computing and arm processors
Introduction to embedded computing and arm processors
Siva Kumar
 
architectural.ppt
architectural.pptarchitectural.ppt
architectural.ppt
ThamaraiKannan97
 
AADL: Architecture Analysis and Design Language
AADL: Architecture Analysis and Design LanguageAADL: Architecture Analysis and Design Language
AADL: Architecture Analysis and Design Language
Ivano Malavolta
 
Controller Software Verification Using AVM Meta and HybridSAL
Controller Software Verification Using AVM Meta and HybridSALController Software Verification Using AVM Meta and HybridSAL
Controller Software Verification Using AVM Meta and HybridSAL
Joseph Porter
 
UNIT I_Introduction.pptx
UNIT I_Introduction.pptxUNIT I_Introduction.pptx
UNIT I_Introduction.pptx
ssuser4ca1eb
 
BEE 049- design of embedded system.pdf
BEE 049- design of embedded system.pdfBEE 049- design of embedded system.pdf
BEE 049- design of embedded system.pdf
abdisahirko
 
Building scalable applications with angular js
Building scalable applications with angular jsBuilding scalable applications with angular js
Building scalable applications with angular js
Andrew Alpert
 
Study for flight simulation environments
Study for flight simulation environmentsStudy for flight simulation environments
Study for flight simulation environments
Wai Nwe Tun
 
UNIT I.pptx
UNIT I.pptxUNIT I.pptx
UNIT I.pptx
SeshuSrinivas2
 

Similar to Software archiecture lecture04 (20)

Chap 03.pdf
Chap 03.pdfChap 03.pdf
Chap 03.pdf
 
ES-Basics.pdf
ES-Basics.pdfES-Basics.pdf
ES-Basics.pdf
 
unit-1@ DISTRIBUTED SYSTEMS-III B.TECH -CSE.ppt
unit-1@ DISTRIBUTED SYSTEMS-III B.TECH -CSE.pptunit-1@ DISTRIBUTED SYSTEMS-III B.TECH -CSE.ppt
unit-1@ DISTRIBUTED SYSTEMS-III B.TECH -CSE.ppt
 
Ss debuggers
Ss debuggersSs debuggers
Ss debuggers
 
ERTS_Unit 1_PPT.pdf
ERTS_Unit 1_PPT.pdfERTS_Unit 1_PPT.pdf
ERTS_Unit 1_PPT.pdf
 
Linux Assignment 3
Linux Assignment 3Linux Assignment 3
Linux Assignment 3
 
OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysis
 
Kairos aarohan
Kairos  aarohanKairos  aarohan
Kairos aarohan
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Design engineering
Design engineeringDesign engineering
Design engineering
 
Introduction to embedded computing and arm processors
Introduction to embedded computing and arm processorsIntroduction to embedded computing and arm processors
Introduction to embedded computing and arm processors
 
architectural.ppt
architectural.pptarchitectural.ppt
architectural.ppt
 
AADL: Architecture Analysis and Design Language
AADL: Architecture Analysis and Design LanguageAADL: Architecture Analysis and Design Language
AADL: Architecture Analysis and Design Language
 
Controller Software Verification Using AVM Meta and HybridSAL
Controller Software Verification Using AVM Meta and HybridSALController Software Verification Using AVM Meta and HybridSAL
Controller Software Verification Using AVM Meta and HybridSAL
 
UNIT I_Introduction.pptx
UNIT I_Introduction.pptxUNIT I_Introduction.pptx
UNIT I_Introduction.pptx
 
BEE 049- design of embedded system.pdf
BEE 049- design of embedded system.pdfBEE 049- design of embedded system.pdf
BEE 049- design of embedded system.pdf
 
Building scalable applications with angular js
Building scalable applications with angular jsBuilding scalable applications with angular js
Building scalable applications with angular js
 
Study for flight simulation environments
Study for flight simulation environmentsStudy for flight simulation environments
Study for flight simulation environments
 
UNIT I.pptx
UNIT I.pptxUNIT I.pptx
UNIT I.pptx
 
Ch10
Ch10Ch10
Ch10
 

Recently uploaded

CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
camakaiclarkmusic
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
Levi Shapiro
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
Jisc
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
Peter Windle
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
TechSoup
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
Vivekanand Anglo Vedic Academy
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
Atul Kumar Singh
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
DhatriParmar
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
Ashokrao Mane college of Pharmacy Peth-Vadgaon
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
MysoreMuleSoftMeetup
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
Peter Windle
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
kaushalkr1407
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
Balvir Singh
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
Jean Carlos Nunes Paixão
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
vaibhavrinwa19
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
EduSkills OECD
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
Mohd Adib Abd Muin, Senior Lecturer at Universiti Utara Malaysia
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
joachimlavalley1
 

Recently uploaded (20)

CACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdfCACJapan - GROUP Presentation 1- Wk 4.pdf
CACJapan - GROUP Presentation 1- Wk 4.pdf
 
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
June 3, 2024 Anti-Semitism Letter Sent to MIT President Kornbluth and MIT Cor...
 
Supporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptxSupporting (UKRI) OA monographs at Salford.pptx
Supporting (UKRI) OA monographs at Salford.pptx
 
Embracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic ImperativeEmbracing GenAI - A Strategic Imperative
Embracing GenAI - A Strategic Imperative
 
Introduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp NetworkIntroduction to AI for Nonprofits with Tapp Network
Introduction to AI for Nonprofits with Tapp Network
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
 
Language Across the Curriculm LAC B.Ed.
Language Across the  Curriculm LAC B.Ed.Language Across the  Curriculm LAC B.Ed.
Language Across the Curriculm LAC B.Ed.
 
The Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptxThe Accursed House by Émile Gaboriau.pptx
The Accursed House by Émile Gaboriau.pptx
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.Biological Screening of Herbal Drugs in detailed.
Biological Screening of Herbal Drugs in detailed.
 
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
Mule 4.6 & Java 17 Upgrade | MuleSoft Mysore Meetup #46
 
A Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in EducationA Strategic Approach: GenAI in Education
A Strategic Approach: GenAI in Education
 
The Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdfThe Roman Empire A Historical Colossus.pdf
The Roman Empire A Historical Colossus.pdf
 
Operation Blue Star - Saka Neela Tara
Operation Blue Star   -  Saka Neela TaraOperation Blue Star   -  Saka Neela Tara
Operation Blue Star - Saka Neela Tara
 
Lapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdfLapbook sobre os Regimes Totalitários.pdf
Lapbook sobre os Regimes Totalitários.pdf
 
Acetabularia Information For Class 9 .docx
Acetabularia Information For Class 9  .docxAcetabularia Information For Class 9  .docx
Acetabularia Information For Class 9 .docx
 
Francesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptxFrancesca Gottschalk - How can education support child empowerment.pptx
Francesca Gottschalk - How can education support child empowerment.pptx
 
Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
Chapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptxChapter 3 - Islamic Banking Products and Services.pptx
Chapter 3 - Islamic Banking Products and Services.pptx
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
 

Software archiecture lecture04

  • 1. A-7E Avionics System: A Case Study in Utilizing Architectural Structures
  • 2. Agenda • A case study of an architecture designed by engineering and specifying 3 specific architectural structures. • We will see how these structures complement each other to provide a complete picture of how the system works • We will see how certain qualities of the system are affected by each one.
  • 3. A-7E Corsair II • It is a single-seat, carrier-based attack aircraft used by the U.S. Navy throughout the 1960s, 1970s, and 1980s.
  • 4. A-7E Corsair II • The A-7C (earlier version), was the very first production aircraft in the world to be equipped with an onboard computer to help the pilot with navigation and "weapon delivery" • The A-7E's onboard computer is a small, special- purpose IBM machine for which no compiler exists; programming is in assembly language only • The computer has special registers connected to A- D/D-A converters that let it receive and send data to almost two dozen devices in the aircraft's avionics suite.
  • 6. Software Functionality • The A-7E software is responsible for reading sensors and updating cockpit displays that help the pilot drop weapons on a target. • The pilot communicates the location of a ground target (or a navigational waypoint) to the software in a number of ways, including the following: ▫ Keying in its latitude and longitude via the keypad ▫ Slewing the map using a joystick until its coordinates are under the center crosshairs and then "designating" it by pushing a special button on the control stick ▫ Aiming the forward-looking radar to the point and designating it ▫ Slewing a special symbol on the heads-up display until it overlays the point of interest on the ground and then designating it
  • 7. Software Functionality • The software then provides navigational information (direction, distance, time to go) and directional cues on the heads-up display that take the aircraft to the designated location. • The software has at least five direct and indirect ways to calculate the aircraft's current altitude ▫ Example: a trigonometric scheme using the range and elevation angle of the forward-looking radar as components of a triangle • There are more than 20 weapon delivery modes, all demanding in terms of the real-time calculations (repeated 25 times every second) necessary to maintain the A-7E's bombing accuracy
  • 9. Quality Attributes • The architecture we will present is not the architecture for the original software but that for a redesign project launched by Navy software engineers • The qualities that the software system was expected to have included real-time performance and modifiability for expected changes. • Specifically, the performance requirements were stated in terms of updates per second of the A7-E's displays and weapon delivery calculations. • The modifiability requirements dealt with making changes to the weaponry, the platform, the symbology on the display, and the addition of new input through the keypad
  • 10. Scenarios • The system was constructed beginning in 1977 for the naval aviators who flew the A-7E aircraft • The developing organization was the software engineering group at the U.S. Naval Research Laboratory. • The developers were creating the software to test their belief that certain software engineering strategies were appropriate for high-performance embedded real-time systems. ▫ information hiding ▫ cooperating sequential processes
  • 11. Scenarios • The architects included one of the authors of this book (Paul Clements) and one of the leaders in the development of software engineering principles (David Parnas) • There was no compiler available for the target platform.
  • 12. Relationship to the Architecture Business Cycle
  • 13. A-7E Avionics System Architecture • The architecture for the A-7E avionics system is centered around three architectural structures: ▫ Decomposition, a structure of modules ▫ Uses, a structure of modules ▫ Process, a structure of components and connectors • We will discuss each in turn
  • 14. Table 3.1: Architectural Structures Structure Elements Relations Has Influence over among Elements Module Modules Is a submodule of; Ease of change Decomposition (implementation shares a secret with units) Uses Procedures Requires the correct Ability to field subsets and presence of develop incrementally Process Processes; thread Synchronizes with; Schedulability; of procedures shares CPU with; achieving performance goals excludes through parallelism
  • 15. Decomposition - Information Hiding • In case if a device such as an aircraft altitude sensor is likely to be replaced over the life of an avionics program • The information-hiding principle makes the details of interacting with that device the secret of one module • Information hiding is enforced by requiring that modules interact only via a defined set of public facilities—their interfaces • Each module provides a set of access procedures
  • 16. Decomposition – Specific goals • Each module's structure should be simple enough to be understood fully. • It should be possible to change the implementation of one module without knowledge of the implementation of other modules and without affecting the behavior of other modules. • It should be possible to make a major software change as a set of independent changes to individual modules
  • 17. Decomposition – module guide • The documentation of the decomposition structure is sometimes called a module guide. • The guide states the criteria used to assign a particular responsibility to a module • We arranges the modules in tree structure, So we can find the necessary information without searching through unrelated documentation • The guide does not describe any runtime relationship among the modules • The guide does not talk about how modules interact with each other while the system is executing
  • 18. Achieves Quality Goals • How the A-7E Module Decomposition Structure Achieves Quality Goals Goal How Achieved Ease of change to: weapons, platform, Information hiding symbology, input Understand anticipated changes Formal evaluation procedure to take advantage of experience of domain experts (Because a designer might not have had all of the relevant experience) Assign work teams so that their Modules structured as a hierarchy; interactions were minimized each work team assigned to a second- level module and all of its descendants
  • 19. A-7E Module Decomposition Structure • The decomposition tree is described beginning with the three highest-level modules. • These are motivated by the observation that changes tend to come from three areas ▫ Hardware-Hiding Module Hides the procedures that need to be changed if any part of the hardware is replaced by a new unit with a different hardware/software interface but with the same general capabilities. ▫ Behavior-Hiding Module Hides procedures that need to be changed if there are changes in requirements affecting the required behavior. ▫ Software Decision Module Hides software design decisions that are based on mathematical theorems, physical facts, and programming considerations
  • 20. A-7E Module guide • The module guide goes on to explain how conflicts among these categories are arbitrated by a complete and unambiguous requirements specification ▫ e.g., is a required algorithm part of the behavior or a software decision? • The module guide then describes the second-level & third-level decomposition • Notice that many of the Device Interface modules have the same names as Function Driver modules
  • 21. Hardware-Hiding Module Behavior-Hiding Module Extended Computer Module Function Driving Module Data Module Air Data Computer Module Input/Output Module Audible Signal Module Computer State Module Computer Fail Signal Module Paralleslism Control Module Doppler Radar Set Module Program Module Flight Information Display Module Virtual Memory Module Forward Looking Radar Module Interrupt Handler Module Head-Up Display Module Timer Module Inertial Measurement Set Module Panel Module Device Interface Module Projected Map Display Set Module Air Data Computer Module Shipboard Inertial Navigation System Module Angle of Attack Sensor Module Visual Indicator Module Audible Signal Device Module Weapon Release System Module Computer Fail Device Module Ground Test Module Doppler Radar Set Module Flight Information Displays Module Forward Looking Radar Module Shared Services Module Head-Up Display Module Mode Dertermination Module Inertial Measurement Set Module Panel I/O Support Module Input/Output Representation Module Shared Subroutine Module Master Function Switch Module Stage Director Module Panel Module System Value Module Projected Map Display Set Module Radar Altimeter Module Shipboard Inertial Navigation System Module Slew Control Module Switch Bank Module TACAN Module Visual Indicators Module Waypoint Information System Module Weapon Characteristics Module Weapon Release System Module Weight on Gear Module
  • 22. Software Decision Module Application Data Type Module Numeric Data Type Module State Transition Event Module Data Banker Module Singular Values Module Complex Event Module Filter Behavior Module Physical Models Module Aircraft Motion Module Earth Characteristics Module Human Factors Module Target Behavior Module Weapon Behavior Module Software Utility Module Power-Up Initialization Module Numerical Algorithms Module System Generation Module System Generation Parameter Module Support Software Module
  • 23. Uses –Uses Relation • The concept behind the uses structure is the uses relation. • In practice this relation is similar to but not quite the same as the calls relation. ▫ Procedure A is simply required to call procedure B in its specification, but the future computation performed by A will not depend on what B does • The unit of the uses (or allowed-to-use) structure is the access procedure. • In practice all of the procedures of a module may share usage restrictions. Hence, the name of a module might appear in the uses structure.
  • 24. Achieves Quality Goals • How the A-7E Uses Structure Achieves Quality Goals Goal How Achieved Incrementally build and test system Create "is-allowed-to-use" structure for functions programmers that limits procedures each can use Design for platform change Restrict number of procedures that use platform directly Produce usage guidance of manageable Where appropriate, define uses to be a size relationship among modules
  • 25. Excerpt from the A-7E Allowed-to- Use Specification Using procedures: A procedure in… .. Is allowed to use any procedure in … EC: Extended Computer Module None DI: Device Interface Module EC.DATA, EC.PGM, EC.IO, EC.PAR, AT.NUM, AT.STE, SU ADC: Air Data Computer PM.ECM IMS: Inertial Measurement Set PM.ACM FD: Function Driver Module EC.DATA, EC.PAR, EC.PGM, AT.NUM, AT.STE, SU, DB.SS.MODE, DB.SS.PNL.INPUT, DB.SS.SYSVAL, DB.DI ADC: Air Data Computer Functions DB.DI.ADC, DI.ADC, FB IMS: IMS Functions DB.DI.IMS, DI.IMS PNL: Panel Functions EC.IO, DB.SS.PNL.CONFIG, SS.PNL. FORMAT, DI.ADC, DI.IMS, DI.PMDS, DI.PNL
  • 26. Excerpt from the A-7E Allowed-to- Use Specification Using procedures: A procedure in… .. Is allowed to use any procedure in … SS: Shared Services Module EC.DATA, EC.PGM, EC.PAR, AT.NUM, AT.STE, SU PNL: Panel I/O Support DB.SS.MODE, DB.DI.PNL, DB.DI.SWB, SS.PNL.CONFIG, DI.PNL AT: Application Data Type Module EC.DATA, EC.PGM NUM: Numeric Data Types None additional STE: State Transition Events EC.PAR
  • 27. Process • A process is a set of programming steps that are repeated in response to a triggering event or to a timing constraint. • It has its own thread of control, and it can suspend itself by waiting for an event (usually by invoking one of the event-signaling programs on a module's interface). • The Extended Computer Module presents a virtual programming interface that features multiprocessing capabilities , because A-7E computer is a uniprocessor
  • 28. Process Structures • The process structure emerged after the other structures had been designed. ▫ Function Driver procedures were implemented as processes. ▫ Other processes computed time-consuming calculations in the background so that a value would always be available. • Two kinds of information were captured in the process structure. ▫ The first documented what procedures were included in the body of each process. ▫ The second kind of information in the process structure documented which processes could not execute simultaneously.
  • 29. Function driver processes structure Periodic process: do every 40 milliseconds - Call other modules ‘ access procedures to gather the values of all relevant inputs - Calculate the resulting output value - Call the appropriate Device Interface procedure to send the output value to the outside world End periodic process Demand process - Await triggering event - Calculate the resulting output outcome - Call the appropriate Device Interface procedure to trigger the action in the outside world End demand process
  • 30. Achieves Quality Goals • How the A-7E Process Structure Achieves Quality Goals Goal How Achieved Map input to output Each process implemented as cycle that samples, inputs, computes, and presents output Maintain real-time constraints Identify process through process structure and then perform offline scheduling Provide results of time-consuming Perform calculations in background and calculations immediately return most recent value when queried
  • 31. Summary • This chapter described the architecture of a highly capable avionics system in terms of three related but quite different structures. ▫ A module decomposition structure describes design-time relations among its components, which are implementation units that can be assigned to teams. ▫ A uses structure describes runtime usage relations among its components, which are procedures in modules. From it, a picture of a layered architecture emerges. ▫ The process structure describes the parallelism of the system and is the basis for assignment for the physical hardware