Ian Sharpe - CV - Detail

Project: Various - see below
Role: Software Engineer
Date: April 2007 to March 2010

Project Overview

SWMLU/Type 22: Generation of Type 22 variant of SWMLU, to match the specific hardware to the generic core system. In addition to the development techniques and tools used by the main SWMLU project described below, tight timescales required the adoption of short-cycle timeboxing.

Talisman 2076 Sonar Trainer: Distributed multi-desk trainer with the underwater environment simulated on Solaris servers in Ada (GNAT), and the operator consoles & sonar-specific simulation handled by a network of Fedora Linux dual-head workstations. Workstation graphics implemented in Motif/C, 2076 sonar simulation in Ada. Configuration control by a combination of SCCS and an in-house web-based defect logging system.

MCTS: warfare operator trainer, consisting of a network of x86-PCs running Microsoft Windows or SUSE Linux with third-party CBT/CBST software and lessons. CBST ops-room simulator can be software-configured to provide a wide variety of operator roles in multiple synthetic platforms together with simulated voice and data networks. Configuration control via Subversion; bespoke configuration and installation tools in a mixture of Bash/DOS scripts, Perl, C and C#.

Achievements

Designed, implemented and tested subsystems of the Seawolf Emergency Console (SEC), integrating new VME-based Power-PC hardware with legacy equipment.

Designed, implemented and tested the Bow Sonar emulation (GNAT Ada/Linux) for the Talisman trainer.

Integrated a third-party Linux-based generic Command Management System CBT/CBST trainer into a Microsoft Windows/Active Directory-based network. Enhanced the C# configuration tool to add wake-on-lan, and to support control of the audio subsystem. Reworked the distributed installation process (based on Symantec Ghost and bespoke scripts/C#) to improve robustness.

Project: ASAAC Stack
Role: Software Engineer
Date: October 2006 to March 2007

Project Overview

Implementation of the ASAAC software architecture (DEF-STAN 00-74) for real-time embedded avionics applications.

Achievements

Responsible for the design, implementation and integration of an embedded device driver for the SiI3124 Serial ATA controller (Rational Rose/GreenHills INTEGRITY RTOS/MISRA-C). Determined the filesystem performance and capacity requirements. Worked with supplier to determine and resolve causes of filesystem performance issues. Created an XML Schema for use in configuration code generation.

Project: Seawolf Mid-Life Update
Role: Software Engineer
Date: August 2003 to June 2006

Project Overview

Major project to upgrade the shipboard command and control system of the Seawolf missile system. The target environment is Tornado/VxWorks running on a VME-rack system, with multiple PowerPC processor and IO cards. The development host is Microsoft Windows supporting an Ada development environment (GNAT). Development methodology is UML (Rational Rose) with a bespoke code generation tool that uses the analysis model. The software lifecycle is based around a RUP-style iterative approach, controlled through PVCS. Main application area is real-time embedded software development.

Achievements

Part of the Architecture/Platform team which is responsible for all software that interfaces to the underlying hardware. Designed, tested and integrated the interrupt-driven device layer software for the high-speed analogue cards. Analysed performance problems using VxWorks tools and a VME bus analyser on the target. Consulted with the board manufacturer to resolve problems with the supplied software. Currently developing the device layer software for the B-Parallel (Christchurch) interface.

Project: KcentriX Content Server
Role: Technical Consultant
Date: November 2000 (15 months)

Project Overview

The KcentriX Content Server is a Java Servlet which manages an XML repository. It provides facilities for dynamic document generation though Java components, XSLT and XSL-FO. The development process is based on Extreme Programming. UML is used capture key system concepts, with a strong emphasis on Design Patterns. This is supported by extensive automated unit tests built on the JUnit framework. Detailed run-time diagnostics are controlled by the Log4J framework. The development system is MS-Windows, but the server is tested on both MS-Windows and Solaris. Other development tools include JBuilder, XML Spy, Visual SourceSafe and the OptimizeIt Profiler.

Achievements

Developed a set of System Administration tools. These create, delete or restructure the repository based on XML configuration/command files. Additional components allow the repository to be navigated via a standard web browser. The repository is currently a SQL database (Oracle or SQL Server). The SA tools communicate with the repository via JDBC. These features were implemented in Java, using Jakarta Xerces for the DOM manipulation. Output formatting was performed through a combination of XSLT on the server and HTML/Javascript on the client.

Assisted in the formulation and implementation of the JAAS-based security infrastructure.

Prototyped the use of OpenSTA for system/integration test, using Perl to provide additional scripting flexibility.

Integrated KcentriX with Jakarta Tomcat and IIS (MS-Windows) / Apache (Solaris) web servers.

Developed a robust build/installation system based on Ant.

Role: Software Engineering Consultant
Date: October 1993 (7 years)
Generic Analysis Framework for Simulations
This work produced a generic set of tools capable of being applied to all simulations in support of analysis. It utilises Java and XML technologies to achieve flexibility and interoperability.

The system consists of a core set of analysis JavaBeans, together with an XML-based Bean generator. The latter item creates input JavaBeans for the analysis system from an XML description of the projects' simulation output format. The output of the analysis system itself is in the form of XML text. The current system has been developed using VisualAge for Java on Windows/NT, but the resulting analysis programs have been demonstrated to run under both Linux and Solaris

Interfacing WSDEM to an External Simulation via DIS
This work demonstrated the inter-operation of the WSDEM simulation (described below) with an independently produced console simulation. It allowed the state of platforms within WSDEM to be distributed via messages sent using the DIS protocol. The external console simulation could then be used to control the kinematics and weapon launches of a platform within WSDEM.

Integration of the two systems was carried out successfully on the customer site. The target environment consisted of two Sun workstations (executing WSDEM and the console program respectively) with a third acting as a monitor for DIS messages.

Synthetic Environment Process
Supported EASAMS' contribution to the joint industry/MoD group tasked with generating a process for the use on Synthetic Environments within the Smart Procurement Initiative.

Software Issuing Office (SIO) Project Technical Design Authority (TDA)
This system controls the issue of software and documentation from the SIO and consists of five servers & eight workstations (PC-based, running SCO OpenServer). The servers are connected to a wide range of output devices, ranging from paper tape, through Bernoulli and PDP/RC25 removable disc drives, to EXABYTE tape drives. An additional PC provides access to the COTS Document Information Management System (DIMS). Database facilities are provided by the INGRES RDBMS, accessed through bespoke OpenRoad applications.
  • Resolved hardware/software stability problems, coordinating hardware/software integration and providing technical support for the low-level media duplication software.
  • Produced the detailed design of the Device Controller. This enables the SIO system to access diverse hardware through a uniform interface.
  • Implemented the key Device Controller modules (ANSI C on SCO OpenServer).
  • Specified the Enhanced Floppy Disk Driver which was subsequently produced on sub-contract by SCO.

Flashlamp Representative
EASAMS' representative on Flashlamp - the joint industry/MoD group investigating the High Level Architecture (HLA). The HLA provides a mechanism for the inter-operation of separately-executing simulations.

Successfully interfaced SIMTEC (a large C++ simulation framework) to the HLA Runtime Infrastructure (RTI). This allowed object creation, deletion and state change information to be communicated from SIMTEC to distributed non-SIMTEC processes (e.g. other simulations).

WSDEM Stage 2: Conversion and Framework Design Liaison
Re-engineered the WSDEM Stage 1 design to take advantage of the Stage 2 Framework, a bespoke object-based architecture. This resulted in the Stage 2 Analysis Document which formed the basis of the conversion contract.

Produced reports on performance predictions and hardware platform evaluation, demonstrating how a combination of hardware and software architecture upgrade would result in the desired throughput.

Converted the mixed-language SMCS-TMA object (Ada and FORTRAN) to Stage 2 standard.

Environmental Support System Implementation Study (ESSIS)
Produced recommendations for API specification, procedures and policies designed to ensure inter-operability between the Environmental Support Applications (ESA) and the Generic Command Support System (GCSS).

Technical support to the EASAMS ESA Demonstrator (scope, architecture and inter-process communication aspects) which demonstrated inter-operation of a FORTRAN model and the candidate GCSS graphics subsystem.

SIO Bid
Produced the technical sections of the successful EASAMS SIO bid, which included the proposed system design (SCO OpenServer-based distributed client-server architecture with central INGRES relational database), performance assessment and compliant hardware solutions.

Produced high-level software design and software interface specification. These formed the basis of the software development costings which were determined using GECOMO (GEC implementation of the COCOMO model).

Wrote the system interface specification which was incorporated into the Invitation To Tender for candidate bespoke hardware vendors.

Area Weapons Effect Simulator (AWES) Feasibility Study and Pre-Bid Activities
Produced outline system specification for the software components (both COTS and bespoke) for the Feasibility Study Report.

Developed system design of the EASAMS AWES Demonstrator, intended to prototype the control and reporting aspects of the AWES system.

Miscellaneous
Provided ad-hoc technical support and advice to the Divisional Technical Manager, including bid reviews and internal technical audits. Created an on-line version of the Divisional Procedures, under CVS control, and created a Perl-based system to automate the audit trail generation for ISO 9000 assessment.

Project: WSDEM Stage 1
Role: Software Engineer
Date: December 1992 (10 months)

Project Overview

WSDEM (Weapon System Design Effectiveness Model) is a discrete-event, object-based submarine effectiveness model written in Ada. The Stage 1 design loosely followed the HOOD methodology, leading to a hierarchical, object-based implementation. The target hardware was a Meiko Computing Surface (24 T800 Transputers with 2 i860s to handle computationally intensive tasks), but development was carried out on a network of SUN workstations running under SunOS.

Achievements

Re-worked the inter-process communication scheme used by the i860-hosted objects, allowing them to communicate via CSN (a MEIKO-supplied library based on Transputer links or TCP/IP depending on the host) or by direct procedure calls. An added complication was that part of the objects' code was written in FORTRAN.

Imposed a configuration control scheme based on the UNIX Source Code Control System.

Acted as the Independent Technical Reviewer.

Project: ADCIS
Role: Software Engineer
Date: August 1990 (28 months)

Project Overview

ADCIS (Air Defence Command Information System) is designed to allow the safe inter-operation of air and land forces by communicating details of air missions to the ground forces. The system as a whole is extensive, covering many kinds of roles and equipments. As a part of the ADCIS contract, EASAMS was required to provide a training system flexible enough to allow multiple role play for up to 12 players (terminals) of any kind.

The ADCIS Classroom Trainer provided this capability by taking the basic operational software and replacing those elements which were hardware specific - the screen/keyboard handling and the low-level comms - with X-Windows and VAX networking calls. In addition control software was required to allow each training station to be appropriately configured (i.e. running the correct software load with the appropriate database and communication links).

The Classroom Trainer ran on a MicroVAX with VAXStation 3100 slaves acting as X-Servers. It was a Yourdon-based design using AIDSET CASE tool on a VAX. Software configuration control was supported by the LIFESPAN tool, also running on a VAX.

Achievements

HCI for the Classroom Trainer Configuration. Prototyped in INGRES Applications By Forms (ABF), final implementation in Ada with embedded ABF calls.

Design, code and test of the automatic system configuration aspects of the ADCIS Trainer. Yourdon design, VAX Ada implementation with embedded SQL calls to INGRES RDBMS services.

Integration of the modified ISO layers 3/4 (network/transport) comms.

Project: NAAWTS
Role: Team Leader
Date: January 1989 (19 months)

Project Overview

NAAWTS (Naval Anti-Air Warfare Tactical Simulation) was a battle model designed to simulate multiple platform engagements in complex electromagnetic environments, specifically aircraft/missile attacks on surface ships. The program consisted of four sections - Scenario Generation, Simulation, Simulation Replay and Statistical Analysis. All of the sections executed independently: specifically the Simulation Replay facility operated on the data files produced by the Simulation module, to decouple the performance of the replay from that of the simulation.

Achievements

Team leader for the Simulation Replay facility (team of three).

Design, code and test of the Simulation Replay facility. Written in Ada on a VAX with a GKS Graphics interface. Design was based around a Finite State Machine structure.

Final integration and pre-acceptance testing of the whole system.

Project: FSM Design Tool
Role: Team Leader
Date: January 1988 (12 months)

Project Overview

All MDS seekers from MLRS (see below) to the date of this project were designed using Finite State Machines as their primary description. This technique proved very successful in capturing the event driven nature of the seekers of this period. Since the translation of state diagrams to sets of action/event tables was error prone, the decision was taken to automate the process. The long term (3 year) plan was to combine this tool with the in-house micro-processor emulators to produce a system simulator which could be driven from its FSM diagrammatic representation. Stage 1 was to be the graphical capture of the design with automated code generation.

Achievements

Team leader of project. Formalised the MDS FSM technique. Produced requirement documentation and system design. Produced detailed design for non-graphic aspects of Stage 1. Written on a SUN 3/160 in C under UNIX.

Project: Dual-Mode Demonstrator
Role: Software Engineer
Date: January 1987 (12 months)

Project Overview

The purpose of the Dual-Mode Demonstrator was two-fold: to produce an Imaging Infrared (IIR)/Radar data gatherer, and produce a facility for the development and analysis of image processing/data fusion algorithms. Unusually for MDS, the project had no hardware engineers since the hardware was to be bought off-the-shelf. Development of a suitable IIR seeker was left to the Advanced Technology Division to be combined with the UKD Radar seeker (see below).

The team consisted of a system analyst/project manager, a system analyst and myself.

Achievements

Procurement of a VME-based image processing facility. Assisted in the definition of the system requirement. Responsible for the production of required software, system integration and hardware/software purchases required to meet the system requirement for algorithm development and data gathering.
Hardware consisted of two 68010 boards, a 68000-based graphics card and a specialised (commercial) image processing board set. Code written in C under OS-9.

Project: KDAR
Role: Software Engineer
Date: April 1986 (9 months)

Project Overview

Production of a prototype seeker for the demonstrator KDAR Anti-Radar Attack Drone. KDAR was intended to be a low cost Anti-Radar system which combined the ALARM seeker with an existing target drone airframe. To reduce costs the seeker front-end was simplified, requiring more complex software to compensate for the degraded hardware performance.

The team consisted of two software engineers, two system analysts and four hardware engineers.

Achievements

Design, code, test and integration of a multi-68000 seeker. Event-driven Finite State Machine (FSM) design technique used. Coded in CORAL on a VAX and initial testing carried out on an in-house 68000 simulator. Hardware integration carried out using Gould In-Circuit emulators with various signal generators and logic analysers.

Project: UKD
Role: Software Engineer
Date: June 1985 (10 months)

Project Overview

UKD was another anti-tank missile demonstrator project. Although the hardware was based on the MLRS demonstrator (see below), the delivery system that UKD was to be fitted to was significantly different. For this reason (and changes in the hardware support for inter-process communication) the system design required the software to be completely re-written.

Achievements

Design, code, test and integration of the control processor of a multi-8086 seeker. This processor sequenced the activities of all other hardware in the seeker. FSM design methodology as above, coded in CORAL and cross-compiled on a VAX.

Project: ALARM Test Equipment Software
Role: Software Engineer
Date: May 1984 (13 months)

Project Overview

This sub-project of ALARM (Air-Launched Anti-Radar Missile) was intended to produce a suite of generic test equipment software for seeker testing.

Achievements

Design and development of software to enable control of non-IEEE 488 devices by an Single Board Computer (SBC) acting as an IEEE 488 device (CP/M and C).
Design and development of control S/W to drive a 1553 interface from a HP9836 computer, simulating the message protocol & timing of the missiles Mission Control Unit. Written in Pascal with 68000 assembler inserts.

Project: MFR
Role: Programmer
Date: October 1983 (7 months)

Project Overview

MFR set out to produce a Radar whose characteristics could be controlled by software during trials. The intention was to collect data under various conditions to aid the various anti-armour projects then being funded by the MoD. To this end a system consisting of a flexible seeker head with control and data logging computers were to be fitted to a helicopter which could then be used for data-gathering trials.

Achievements

Design code and test of software to allow reliable communication between two HP1000 computers via a serial link in Pascal.

Project: MLRS
Role: Programmer
Date: March 1983 (7 months)

Project Overview

MDS bid for the MLRS (Multiple Launch Rocket System) Terminal Guided Sub-Munition seeker.

Achievements

Production of the Quick-Look display and testing of CORAL code on an in-house VAX-based 8086 simulator.

Copyright © 1988-2007 Ian Sharpe <ian@sharpe-practice.co.uk>.
Original at http://www.sharpe-practice.co.uk/isharpe/cv/history.htm. $Id: history.htm 89 2010-07-15 16:01:11Z igs $