Ian Sharpe - CV - Detail

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

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.

Date: February 2002 to July 2003

Post KnowHowSystems

While looking for a new position following the demise of KnowHowSystems Ltd., I maintained my interest in software development and systems in the following areas:

Computer Systems
Installed Debian Linux on workstation and Internet gateway machines, with custom kernel builds. Installed Windows, Solaris and RedHat Linux in a multi-boot configuration on my test server machine. Created a 'virtual DMZ' on the Internet gateway using User-Mode Linux, allowing it to act both as a firewall and a pair of servers. Installed Snort and Tripwire on the Internet gateway machine to provide intrusion detection; tested with Nessus/Nmap. Corrected a mis-configured Linux installation and installed Oracle on it for a potential employer.

Communication Protocols
Background reading on the set of Internet protocols. Use of packet sniffer (Ethereal) to see protocols in action. Used SNMP to monitor cable modem and headless server. Investigated the effects of traffic management using the advanced networking features of the Linux IP stack in the context of an asymmetric network connection. Corrected a minor bug in dhcpcd arising from NTLs DHCP address leasing strategy.

Miscellaneous
Installed DoD HLA RTIng and ported the Ada bindings to Linux. Created an Ethereal packet dissector for the RTI comms, allowing inter-federate traffic to be displayed directly from the wire.

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-2002 Ian Sharpe <ian@sharpe-practice.co.uk>.
Original at http://www.sharpe-practice.co.uk/isharpe/cv/history.htm. $Id: history.htm,v 1.7 2004/04/17 17:46:11 isharpe Exp $