A key component of our success and the foundation for all of our projects is a Project Document. This document includes detailed system requirements specifications, and project management and support documentation.
This document is jointly created and maintained with our clients who are key participants in this process. The document is a consolidation of all of our experiences. It is a project template and check-list. It insures that every issue and every task is addressed and that every project is a success.
Our first task in any project is to complete enough of the Project Document to help us determine if there is an existing solution that will cost effectively meet a client’s needs. If there is such a solution, our objective will be to implement and adapt that solution. If not, we will develop a solution. In either case, the roadmap for the project is the Project Document.
Following is a sample of the Table of Contents (TOC) and Document Production Guidelines for a typical project that includes computer networks, software, and instrumentation.
Instrumentation Project Document - TOC & Document Production Guidelines
1 Introduction
In the Introduction, the product(s) to be produced are identified and described. A description of the application and the relevant capabilities, including benefits and objectives, is included.
1.1 Purpose
1.2 Scope
1.3 Definitions, Acronyms, and Abbreviations
1.4 References
1.5 Overview
2 General Description
In the General Description, the general factors that affect the product and its requirements are identified.
The product is placed in perspective with other related products or projects.
The software functions are summarized in layperson terms.
The eventual users are described, including their experience and technical expertise.
Any constraints, such as regulatory policies, hardware limitations, interfaces to other applications, audit functions, control functions, language requirements, communication protocols, criticality of the application, safety issues and security issues which may affect the development options are described.
2.1 Product Perspective
2.2 Product Functions
2.3 User Characteristics
2.4 General Constraints
2.5 Service and Support
2.6 Assumptions and Dependencies
3 Requirements Specifications
In the Requirements Specifications section, the functional requirements of the hardware, software, and instrumentation are described. This includes the computer and instrumentation system components and configuration, operating systems, connections, peripherals, software development environments, languages and tools.
The input data, processing, and output data for all software functions is identified.
The external user, hardware, software, instrumentation, and communications and network interface requirements are described.
All the performance parameters of the computer hardware, software, instrumentation, and the users are specified in quantifiable terms.
Standards compliance and limitations are identified.
A system attributes list is compiled which includes acceptable downtime, security restrictions, maintainability methods, and portability standards.
Other requirements include database, operational modes and site adaptation.
3.1 Functional Requirements
3.1.1 Functional Requirements 1: Computer System
3.1.1.1 Grade: commercial, industrial, rugged
3.1.1.2 Type: analog, hybrid, micro (desktop, embedded, notebook, tablet), mini, mainframe, PDA, super
3.1.1.3 Operating Systems: Windows, Unix, Mobile / Wireless, Proprietary, RTOS
3.1.1.4 Software Development Environments and Languages: reusable
3.1.1.4.1 Database development platforms: 4GL, PIM, SQL
3.1.1.4.2 Graphical or picture based development platforms (test, control, design)
3.1.1.4.3 Scripting development platforms
3.1.1.4.4 Text based development platforms (data acquisition, analysis, presentation)
3.1.1.5 SMG Proprietary Software Development Tools: reusable
3.1.1.5.1 ISCP tools
3.1.1.5.2 QC QA software and instrumentation tools
3.1.1.5.3 Test libraries
3.1.1.6 Other Software Development Tools
3.1.1.6.1 Circuit design: capture, interactive simulation, board layout, validation
3.1.1.6.2 DAQ tools: managing, analyzing, inspecting and reporting data
3.1.1.6.3 Data management and analysis tools
3.1.1.6.4 Graphical design, modeling and simulation tools
3.1.1.6.5 HMI tools
3.1.1.6.6 Industrial automation tools
3.1.1.6.7 Instrument drivers
3.1.1.6.8 Internet tools
3.1.1.6.9 Machine vision tools: image acquisition, display, save, monitor, analyze
3.1.1.6.10 Math and visualization tools
3.1.1.6.11 Process control
3.1.1.6.12 Real-time tools: IO, stimulus profiles, data logs, alarms, control algorithms, simulations
3.1.1.6.13 SCADA tools
3.1.1.6.14 Spreadsheet tools
3.1.1.6.15 Switch management tools: automatic connections and routing
3.1.1.6.16 System monitor API
3.1.1.6.17 System requirements management tools
3.1.1.6.18 Test management tools: automation, distribution, sequencing, execution, results logging
3.1.1.6.19 Waveform tools: analyzers, editors, creators
3.1.1.7 Network Management Tools
3.1.1.8 Peripherals: connection – bus, cabling, interface, wireless; grade – commercial, industrial
3.1.1.8.1 Cables: audio, network (ethernet), parallel (SCSI), serial (USB), video
3.1.1.8.2 Cameras
3.1.1.8.3 CardBus and PCMCIA devices
3.1.1.8.4 Cards: graphic, memory, network, sound, video
3.1.1.8.5 Communications: VoIP, webcam
3.1.1.8.6 Controllers: joysticks
3.1.1.8.7 Digitizers
3.1.1.8.8 Display: flat, touch, LCD / LED / plasma
3.1.1.8.9 Network: gateways, hubs, modems, NIC’s, routers, switches
3.1.1.8.10 Plotters
3.1.1.8.11 Pointing devices: mice, trackballs, touch pads
3.1.1.8.12 Power supplies: internal, external; UPS
3.1.1.8.13 Printers: type – dot matrix, inkjet, laser, thermal; function – EFT, kiosk, label, POS
3.1.1.8.14 Projectors: entertainment, presentation, screens
3.1.1.8.15 Scanners: bar code, image, OCR
3.1.1.8.16 Shielding
3.1.1.8.17 Storage: location – external, internal; types – CD, DVD, drives (hard, solid state, tape)
3.1.1.8.18 Switches: KVM
3.1.2 Functional Requirements 2: Industry Standard Instrument Interfaces (IO) and Buses
3.1.2.1 Control: RS-232, RS-485, RS-422, USB, Ethernet, IEEE-1394 (Firewire), IEEE-488 (GPIB), wireless
3.1.2.2 PC Bus (USB, PCI, PXI/Compact PCI, PCI/PXI Express): multivendor, open, chassis, controllers, modules, communications
3.1.2.3 VXI bus, VME backplane, IEEE-488: multivendor, open, modular, embedded and remote controllers
3.1.2.4 Specialized Communication Buses, Protocols and Modules: industry based
3.1.2.5 VISA
3.1.3 Functional Requirements 3: Instrument Drivers
3.1.3.1 IVI Instrument Drivers
3.1.3.2 Plug & Play Instrument Drivers
3.1.3.3 Contributed Instrument Drivers
3.1.4 Functional Requirements 4: Measurement Instruments: Standalone, Modular, Distributed
3.1.4.1 Audio Analyzers
3.1.4.2 Bus interface modules
3.1.4.3 Cables, connections: ICA’s, ITA’s
3.1.4.4 Chassis, Rackmount: VXI, PXI
3.1.4.5 Communications Instruments (DC to 6.6 GHz): high frequency, RF
3.1.4.6 DAQ: Analog and Digital IO, sensors, transducers, multifunction devices, modular, integrated signal conditioning
3.1.4.7 Digital Waveform IO
3.1.4.8 Digitizers, Oscilloscopes
3.1.4.9 Distributed IO: monitor, control, modular, rugged, scalable, embedded options, real-time options, communications standards, synchronization
3.1.4.10 DMM’s
3.1.4.11 Functional Test and Diagnostics
3.1.4.12 LCR Meters
3.1.4.13 Logic Analyzers
3.1.4.14 Machine Vision & Image Processing Hardware: multiple source, multiple image processing tools, real-time, configurable
3.1.4.15 Motion Controllers & Motor Drives: servo / stepper controllers & drives, multiple synchronized axes, flexible configuration
3.1.4.16 NVH Analyzers
3.1.4.17 PAC’s: PLC’s, advanced control and signal processing, open, flexible, multiple IO and deployment options
3.1.4.18 Programmable Power Supplies
3.1.4.19 Prototyping
3.1.4.20 Real Time Measurement and Control: standalone, reliable, deterministic, multiple IO and deployment options, precise timing
3.1.4.21 Signal Conditioning Accessories: chassis, modules, amplification, excitation, filtering, isolation, multiplexing.
3.1.4.22 Signal Generators
3.1.4.23 Switches & Switching Instruments
3.1.4.24 Synchronization Modules
3.1.4.25 System Power Supply
3.1.5 Functional Requirements 5:
3.1.5.1 Introduction
3.1.5.2 Inputs
3.1.5.3 Processing
3.1.5.4 Outputs
3.1.6 Functional Requirements 6:
3.1.6.1 Introduction
3.1.6.2 Inputs
3.1.6.3 Processing
3.1.6.4 Outputs
3.2 External Interface Requirements
3.2.1 User Interfaces
3.2.2 Hardware Interfaces
3.2.3 Software Interfaces
3.2.4 Communication Interfaces
3.3 Performance Requirements
3.4 Design Constraints
3.4.1 Standards Compliance
3.4.2 Hardware Limitations
3.5 Attributes
3.5.1 Availability
3.5.2 Security
3.5.3 Maintainability
3.5.4 Portability
3.6 Other Requirements
3.6.1 Database
3.6.2 Operations
3.6.3 Site Adaptation: work environment
3.6.4 Future Requirements
4 Project Management
In the Project Management section, the plan, organization, and management of tasks and resources to accomplish the defined project objectives is defined within acceptable time and budget constraints.
The project is divided into manageable tasks which are scheduled and then tracked as work progresses.
Project information is communicated simply and efficiently on an ongoing basis to all participants including clients, management and staff.
Project Management can be thought of simply as a disciplined set of procedures to provide answers to the following questions:
- What job or project is to be done?
- Who and what will be used to perform the tasks to complete the project?
- When must the project be completed by and where?
- How much will the project cost?
- What happens if the project is not completed on time and budget?
4.1 Project Plan
4.1.1 Research: current system functionality; new system functionality
4.1.2 Requirements Specifications
4.1.3 Design
4.1.4 Build: assemble hardware; install software
4.1.5 Program: code development, debugging, verification, review
4.1.6 System tests: application tests
4.1.7 Install: client site; test; review
4.1.8 Maintain
4.1.9 QC QA: acceptance tests; conformation to design specs and standards
4.1.10 Look at the big picture
4.1.11 Identify milestones, deliverables, and tasks
4.1.12 Define and refine the project schedule; develop a simple adaptable schedule to execute the plan
4.1.13 Identify skills, equipment, and materials needed
4.2 Project Execution
4.2.1 Have a baseline plan for comparison
4.2.2 Schedule the tasks and resources consistently and effectively
4.2.3 Control the reporting requirements
4.2.4 Track all of the information you gather about the specs, work (tasks and phases), duration, resources (personnel and equipment), progress as the tasks are executed
4.2.5 Visualize your detailed project plan and execution in standard, well-defined formats
4.3 Project Control
4.3.1 Ongoing validation and verification of the system development and deployment plan
4.3.2 Exchange project information with stakeholders over networks using standard file formats
4.3.3 Communicate with resources and other stakeholders while leaving ultimate control in the hands of the project manager: problems; new decisions; progress
4.4 Project Financing
4.5 Project Insurance
5 Maintenance Repair Support
In the Maintenance Repair Support section, the issues of ongoing technical assistance and support, system self-tests and maintenance tests, repair, documentation, training and warranties are dealt with.
5.1 Technical Support
5.1.1 On-site
5.1.2 Off-site
5.1.2.1 Hotline
5.1.2.2 On-line: remote connect, knowledge bases
5.2 Testing
5.2.1 Self-Tests
5.2.2 Maintenance Tests
5.3 Hardware Exchange Contracts
5.4 Calibration
5.5 QC QA
5.6 Certification: industry standards
5.7 Warranty and Repair
5.8 Documentation
6 Quality
In the Quality section, the issues that tie everything together and which make the difference between a good project and a great project are dealt with.
Quality must be built into the product by all of the team members.
Quality is an ongoing process.
The focus of all projects must be user needs and expectations, and not just system requirements specifications lists.
Project quality is a blend of product quality and process quality.
Generic product quality characteristics which must be considered are:
- Adaptability
- Efficiency
- Integrity
- Reliability
- Usability
Generic process quality characteristics which must be considered are:
- Flexibility
- Maintainability
- Portability
- Re-usability
- Understandability
Error detection and remedy is particularly important throughout the project. The cost of fixing flaws escalates substantially as the project progresses.
SMG Quality Standards are a proprietary composite of all industry standards and all of our experience, and represent an effective blend of product and process quality which is determined primarily by customer needs.
6.1 Standards
6.1.1 SMG Proprietary Composite of All Standards and Experience
6.1.2 Boeing D1-9000 (generic)
6.1.3 ISO-9000, -9001, -9004
6.1.4 Malcolm Baldrige Criteria
6.2 Procedures
6.2.1 SMG Proprietary Hardware and Software Validation and Verification Procedures
6.2.2 Industry Standard Validation and Verification Procedures
6.2.2.1 Benchmarking
6.2.2.2 Conformity – Nonconformity
6.2.2.3 Effectiveness criteria
6.2.2.4 Efficiency criteria
6.2.2.5 Functional tests under normal (or simulated normal) operating conditions
6.2.2.6 Functional tests under extreme (or simulated extreme) operating conditions
6.2.2.7 Overload tests of the system under abnormal or totally unexpected operating conditions
6.2.2.8 Environmental tests to determine the performance of the system under various extreme conditions of humidity, temperature, vibration…
6.2.2.9 Hardware, software, system self-tests
6.3 Reliability and Fault-Tolerant Performance Indicators or Metrics
6.3.1 Percentage uptime
6.3.2 MTBF
6.3.3 Other metrics
6.4 Ongoing Quality
6.4.1 Audits
6.4.2 Inspections
6.4.3 Corrections
6.4.4 Ongoing improvements
6.4.5 Record keeping system: traceability
7 Capabilities
In the Capabilities section, we define the resources to be used on the project including personnel and experience, facilities and equipment.
Working closely with our clients as members of our team, and effectively using their application specific knowledge and experience, SMG feels comfortable using our more generic hardware, software, instrumentation, and systems integration experience to work on many types of systems and applications.