+ All Categories
Home > Documents > 15413 - Software Engineering

15413 - Software Engineering

Date post: 14-Jan-2016
Category:
Upload: cyrah
View: 25 times
Download: 1 times
Share this document with a friend
Description:
15413 - Software Engineering. Introduction - Andrew Gallant Overview requirements - Stephen Ulrich Architectural Design & Hardware - Jeremy Degroat Design User Interface - Christopher Quirk Wings, Canard, Rudder and Controls - Ranjit Jose Environment - Yimin Yang - PowerPoint PPT Presentation
66
15413 - Software Engineering Introduction - Andrew Gallant Overview requirements - Stephen Ulrich Architectural Design & Hardware - Jeremy Degroat Design User Interface - Christopher Quirk Wings, Canard, Rudder and Controls - Ranjit Jose Environment - Yimin Yang Interactive Test Program - Danny Lee Results & lessons learned - Shane Torsell
Transcript
Page 1: 15413 - Software Engineering

15413 - Software Engineering

Introduction - Andrew GallantOverview requirements - Stephen UlrichArchitectural Design & Hardware - Jeremy DegroatDesign

User Interface - Christopher Quirk Wings, Canard, Rudder and Controls - Ranjit Jose Environment - Yimin Yang Interactive Test Program - Danny Lee

Results & lessons learned - Shane Torsell

Page 2: 15413 - Software Engineering

Wright FlyerSoftware Engineering

Page 3: 15413 - Software Engineering

Introduction and Overview

What are we doing?How we are doing it? Why are we doing it that way?

Page 4: 15413 - Software Engineering

Wright Flyer Project Goals

An interactive, graphical simulation of the Wright Flyer.

A distributed HLA simulation.Contextualize Software Engineering

through completion of the first spiral of a major software project’s development.

Page 5: 15413 - Software Engineering

Why the Wright Flyer Project?

HLA was chosen to give the class experience working with a professionally developed and documented system.

Parallels projects to produce replicas for centennial anniversary (AIAA in LA).

A project of sufficient scale to be instructive in Software Engineering principles

Page 6: 15413 - Software Engineering

About the Wright Flyer

The first successful self-propelled, heavier-than-air aircraft

Three flights before its destructionStill an amazing piece of aeronautical

engineering605lbs; 40ft x 20ft x 8ft; 586 ft2 foil

surface Wind tunnel testing for their airfoils

Page 7: 15413 - Software Engineering

Wright FlyerStructure

Page 8: 15413 - Software Engineering

Functional Requirements

Simulate the historical flightsDisplay various pieces of flight

informationShow flights from various points of

viewAllow a human pilotRecord and playback simulated flights“Soft” real time performance

Page 9: 15413 - Software Engineering

Extensibility Requirements

Modular UI interface coding, for future revisions or replacements.

Allow for multiple flyers, with collision detection.

Later inclusion of wind tunnel test data.Landing and take-off capabilities.Plug and Play pilots (AI, human, script).

Page 10: 15413 - Software Engineering

Non-Functional Requirements

Design for later re-use.Design for maintainable testability.Design for re-use of others’ code.Conforming to all HLA requirements

Page 11: 15413 - Software Engineering

Wright FlyerSoftware Engineering

Page 12: 15413 - Software Engineering
Page 13: 15413 - Software Engineering

Functional View of the HLA Architecture

LiveParticipants

Support Utilities

Interface

Live PlayerInterfaces

Runtime Infrastructure

Simulations

Federation Management Declaration ManagementObject Management Ownership ManagementTime Management Data Distribution Management

Page 14: 15413 - Software Engineering
Page 15: 15413 - Software Engineering
Page 16: 15413 - Software Engineering
Page 17: 15413 - Software Engineering
Page 18: 15413 - Software Engineering

Hardware Configuration

Multiple machines with the following specifications: Intel Pentium II 450 MHz 128 MB RAM 6 GB hard drive ATI 3D Rage Pro 3Com Fast Etherlink XL 10/100 Apple Multiple Scan 17” monitor Window NT 4.0 Workstation

Page 19: 15413 - Software Engineering

Network Configuration

Network Configuration Netbar (on-demand hot-swappable internet

service via ethernet) DHCP

Page 20: 15413 - Software Engineering
Page 21: 15413 - Software Engineering

HLA Version and Tools

RTI 1.3v6 (originally 1.3v5)Based code on IF Spec. 1.3Tools

OMDT FMT/FVT/DCT FEPW (Events)

Rational Rose Case Tool

Page 22: 15413 - Software Engineering
Page 23: 15413 - Software Engineering

Design Process

Simplification of FEDEP Requirements Specifications (UML) SOM/FOM

OMDT Usage Prototype 1 (HLA designed)

“Exploratory” Prototype 2

“Evolutionary” Formal Test Suite

Page 24: 15413 - Software Engineering

Federation Rules

Rule 1: Must have an HLA Federation Object Model (FOM)

Rule 2: All object representation must be in the federates, not in the runtime infrastructure (RTI).

Rule 3: All exchange of FOM data among federates must occur via the RTI.

Rule 4: Federates must interact with the RTI in accordance with the HLA interface specification.

Rule 5: An attribute of an instance of an object must be owned by only one federate at any given time.

Page 25: 15413 - Software Engineering

Rule 6: Have an HLA Simulation Object Model (SOM).

Rules 7: Be able to update/reflect any attributes of objects in their SOM and send/receive SOM object interactions.

Rule 8: Be able to transfer/accept ownership of attributes dynamically.

Rule 9: Be able to vary the conditions under which they provide updates of attributes of objects.

Rule 10: Be able to manage local time in a way which will allow them to coordinate data exchange with other members of a federation.

Federate Rules

Page 26: 15413 - Software Engineering

Federation Management Services

Federation Life Cycle functionality create/destroy join/resign

Federation Synchronization Pause/Unpause (eventually)

Did not use Save/Restore functionality Rumored save/restore failures in 1.3v5

Page 27: 15413 - Software Engineering

Declaration Management Services

Used the full range of declaration management services

Attribute Publication/SubscriptionInteraction Publication/Subscription

Page 28: 15413 - Software Engineering

Object Management Services

Registering, Discovering, and Deleting Flyer instances

Updating/ReflectingInteractions

simply send/receive

Page 29: 15413 - Software Engineering

Ownership Management Services

Ownership of the Pilot attribute can be passed between multiple UI’s or Scripts to allow various testing and manipulation.

Most other ownership situations resolved by way of interactions.

Page 30: 15413 - Software Engineering

Time Management Services

Deemed non-critical. RTI bus well-managed enough to handle

our requirements. Close enough to real-time.

An early extension, however. Handled play-back from the scripts

group.

Page 31: 15413 - Software Engineering

Data Distribution Management

Was not used for the sake of simplicity.

Instead, use of Pilot and Flyer ids instantiated.

Would be applied for any further work, to reduce ambassador “spamming”.

Page 32: 15413 - Software Engineering

Wright FlyerSoftware Engineering

Page 33: 15413 - Software Engineering

UI Specifications

Passive viewer, active pilot interfaceDistributed HLA objects

Environment Multiple Flyers

Swappable and extendable (strict adherence to an API)

Page 34: 15413 - Software Engineering

RTI

Class Associations

RTIamb

UIamb

FlyerStatus

EnvironmentCache

FlyerView

DialogsMenus

Toolbars

Page 35: 15413 - Software Engineering

•UI/HLA communications

Task HLA callRequesting FlyerCreation, Deletion

MakeNewFlyer(),DestroyFlyer()

Discovering FlyerCreation, Deletion

discoverObjectInstance,deleteObjectInstance

Controlling Flyer MoveHipSaddle(),MoveCanardControl()

Page 36: 15413 - Software Engineering

UI Control

RTI

Flyer

MakeNewFlyer()

registerObjectInstancediscoverObjectInstance

Creating Flyer

Page 37: 15413 - Software Engineering

UI Control

RTI

Flyer

Destroying Flyer

DestroyFlyer()

deleteObjectInstanceremoveObjectInstance

Page 38: 15413 - Software Engineering

UI Control

RTI

Flyer

MoveHipSaddle()

updateAttributeValuesreflectAttributeValues

Controlling a Flyer

Page 39: 15413 - Software Engineering

•UI/HLA comms (cont.)

Task HLA callSelect Environment GetFileList(), ChooseFile(),

UseRandom...()

Recording a script StartRecording(),StopRecording()

Playing back a script StartPlayback()

Regain Flyer control fromscript

RelinquishFlyerControl(),FlyerControlRelinquished()

Page 40: 15413 - Software Engineering

UI Technical Challenges

Dealing with multiple flyersEnsuring a one-to-one relationship

from pilot to flyerDefining our views in a general

manner

Page 41: 15413 - Software Engineering

Where we are

Things that work now: Creating, joining, resigning, destroying

FedEx. Requesting creation, destruction of a

flyer Notification of flyer creation, destruction Controlling flyer Reflecting position/orientation updates

Page 42: 15413 - Software Engineering

Spot Flyer View

Page 43: 15413 - Software Engineering

View Parameters

Pilot view:lookAt relative to Flyer,lookFrom relative to Flyer

Constant view:lookAt relative to Ground,lookFrom relative to Ground

Wingman view:lookAt relative to Flyer,lookFrom relative to Flyer

Spot view:lookAt relative to Flyer,lookFrom relative to Ground

Page 44: 15413 - Software Engineering

Other Views

Debug view:For internal debugging info,with logging levels

Radar View (not shown):lookAt relative to Ground,lookFrom relative to Ground(just really high up)

Page 45: 15413 - Software Engineering

Wright FlyerSoftware Engineering

Page 46: 15413 - Software Engineering

Control Interactions

UI Interaction Creation and Destruction of the Flyer. Control of Hip Saddle and Canard Control.

Flyer Movement Calculations Calculates movement of entire Flyer from pieces.

Environment Request environment information

Wind, Air Pressure, Temperature, Elevation

Published Attributes Flight State

Page 47: 15413 - Software Engineering

WFFederate

RTI:RTIambassador Flyer WF Fed Ambassador

FlightState Component ControlObject

Engine WCR PhysicalPilot HipSaddle CanardControl

Control Class Hierarchy

Page 48: 15413 - Software Engineering

Wing/Canard/Rudder Group

Simulate Individual Flyer Pieces No direct HLA involvement. Passive, methods called by Control Group.

Objects We Simulate Airfoils Engine Physical Pilot

Strict Hierarchy of Parts Assemblies to contain related airfoils.

Page 49: 15413 - Software Engineering

Wright Flyer Physical Layout

Flyer Hierarchy

Rudder Assembly Canard Assembly Wing Assemblies

Rudders Canards Wings

Page 50: 15413 - Software Engineering

Physical Simulation

Airfoil Lift/Drag Simulation Simulated by the use of Force Vectors. Based on historically valid equations using angle of

attack. Lack of data forces some estimation of physical

constants.

Engine/Physical Pilot Simulation Simple Lift and Drag calculations.

Simulation of Other Pieces of Flyer Lift and Drag not simulated (control wires, structure,

etc.)

Page 51: 15413 - Software Engineering

15-413 Software Engineering

Page 52: 15413 - Software Engineering

Responsibilities

Environment Generate, maintain and publish the map

data Generate, maintain and publish the

weather dataScripts

Provide mechanisms to record and playback a given simulation

Page 53: 15413 - Software Engineering

Environment

Map Data Provide an elevation map

representing the simulation area. Provide terrain features that appear

in the simulation area.Weather Data

Provide predefined and randomly generated wind, temperature, precipitation, and pressure for the simulation.

Page 54: 15413 - Software Engineering

Scripts

Record/Playback Record the user control inputs, and

weather changes during the simulation. Playback the recorded user control

inputs, and weather changes.

Page 55: 15413 - Software Engineering

Wright FlyerSoftware Engineering

Page 56: 15413 - Software Engineering

Interactive Test Program (ITP)

Fulfills requirement to design for maintainability & testability

Complements DMSO provided tools Allows easy execution of federation Captures data in distributed environment (generic

tool) Provides centralized debugging information store Customizes data display for special purposes Operates independently of RTI (minimal

interference) Allows automatic regression test with

scripting/replay

Page 57: 15413 - Software Engineering

RTImessageexchange

RTI BUS

RTIAPI

ITP-RTIRTIAPI

ITP Communicationnetwork environment (Netbar - dynamic IP)

Integrated UI

FederateClient N

ITP

FederateClient 1

TCP/IPmessageexchange

TCP/IP

TCP/IPAPI

ITP-TCP/IP TCP/IPAPI

Page 58: 15413 - Software Engineering
Page 59: 15413 - Software Engineering

Wright FlyerSoftware Engineering

Page 60: 15413 - Software Engineering

Results

Prototype I Communication between federates on

different machines over the LAN by sending interactions.

Prototype II Object instantiation and registration with

attribute updates and reflections. 3D Wright Flyer model simulation using

OpenGL calls.

Page 61: 15413 - Software Engineering

Results (cont.)

Network Performance RTI 1.3v6 performed well in a slow

network ~5,000 interactions sent & received per

sec.4 of the 6 services were used.

Page 62: 15413 - Software Engineering

Results (cont.)

Code Freeze on 4/28/99 at 10 pm Each federate working individually Integration of UI and Control Environment still external ITP Wright Flyer flying

Page 63: 15413 - Software Engineering

Lessons Learned

Technical/HLA Identical Configurations on participating

machines.Same .fed and .rid files.Same RTI_MESSAGE_VERSION and RTI versions.

HLA EducationProgrammer’s Guide (General overview)Interface Specifications (Services

specifications)HLA C++ API (Services details)

Page 64: 15413 - Software Engineering

Lessons Learned (cont.)

Prototypes, Prototypes, & Prototypes. Using prototypes to understand and explore

the capabilities of HLA. Problematic issues identified early on. More accurate estimate metrics on time

delivery. Stepping stone (Prototype II) for final system. Prototype I should have been implemented

much earlier in the class.

Page 65: 15413 - Software Engineering

Lessons Learned (cont.)

HLA specialists were clearly needed, but it probably would have been better to have integrated the HLA and Architecture teams.

Where federates were developed by more than one team, communication and functionality partitioning was not obvious. Design issues needed to be surfaced and resolved

more quickly. The Wright Flyer consists of WCR & Controls groups. Inter-group communication is very important.

Page 66: 15413 - Software Engineering

Recommended