Software Development for Sensors and Instruments
Our Purpose
We assist companies with electronics and software development for their
instrument, smart sensor, and technical applications. Our goal is to enhance our
clients ability to create new products and applications by having a dedicated and
reliable electronics and/or software development team with which to work. Whether a company needs to
outsource to be more cost effective, or simply needs additional
development
resources, Sensible Technologies is the source to select.
Typically, we perform most of the electronic hardware and software development at our own
facility. Most projects require confidentiality,
and we are fully committed to executing a reasonable non-disclosure agreement.
Software Development Process
 |
Our software development process allows for incremental, controlled
development in preplanned stages. Incremental development lets you view real project
progress against planned milestones. Iterative development allows the project to be
adjusted based on your feedback and approved changes. This process assures that the
project development costs are kept under control. |
Our Software Development Process consists of the following steps:
 |
We begin by learning about your application by reviewing
available literature, discussion with you about the application, and by asking questions.
We define the requirements in a Software Requirements Report that you review and approve.
We also match our teams skills and experience to the application. Our development
team is experienced in a wide range of instrument, sensor, and technical applications. |
 |
Second, we prepare a software architecture design that
fulfills the requirements. A Software Design Report is prepared that you review and
approve. |
 |
In parallel with developing the software architecture
design, we may prepare a Staged Delivery Plan depending on the complexity
of the project. This Staged Delivery Plan defines the "delivered"
functionality of each stage of the software and the order in which each
stage will be constructed. |
 |
Depending on project complexity, we may
also prepare project support plans to maximize development efficiency and
software quality and to minimize project risk and cost. These plans
include the Software Development Plan, Quality Assurance Plan, and Risk
Management Plan. |
 |
Periodically, we hold one or more checkpoint reviews where you review and
approve our cost and schedule estimates based on knowledge of the application
requirements, architectural design, risk areas, planned delivery stages, and so forth. |
 |
We construct the software. Typically, each stage includes detailed design, coding, testing, and system
integration, with appropriate technical reviews. Testing is based on a Software Test Plan.
Each completed stage of software is available for your review. |
 |
In the final step, we release the completed software.
Project documentation and software files (source, object, etc.) are captured and submitted
to you under a unique version number. |
Customer acceptance is fulfilled through your approval of the software
requirements, architectural design and final test results.
Object-Oriented Design
Where practical, we design and construct the software using modern
object-oriented methods. This makes it easier to create and maintain the software.
Software Building Blocks
Where possible, we reuse generic code for the user interface, serial
communications, database management, PID control, graphics, data acquisition, digital
filtering, and so on. This reuse of code can substantially reduce the cost of development.
Documentation
Our software development process automatically documents the project -
from software requirements, architectural design, detailed design during the construction
phase, commented source code, and software testing.
This documentation yields the primary project deliverables at various stages of
development: Software Requirements Report, Software Design Report,
Software Test Report, Project Documentation File, and source, object and executable files
on diskette. In most cases, the Users Manual can be drafted from the requirements and
design reports.
Quality Control
Throughout the process, and depending on project complexity, we conduct quality control using our
internal Software
Engineering Requirements documents and the Quality Assurance Plan to ensure that software
requirements, software design, software testing, and documentation are properly
conducted.
Benefits of our Development Approach
Benefits of our development approach include:
 |
Consistent, defined process
that guides our development personnel |
 |
Quality processes resulting in quality
software |
 |
Early focus on upstream activities
resulting in less downstream cost |
 |
Reduced project uncertainty through risk
management |
 |
Project visibility and customer involvement
throughout |
 |
Code reuse and
maintainability |
 |
Automatic documentation |
Modern Development Tools
We use up-to-date tools for development of the software. This maximizes
the productivity of our development staff. If applicable, we also use hardware simulators
to allow development of the software in parallel with hardware development.
Our Development Experience
We develop software for:
|
 |
Smart sensors |
|
|
 |
Embedded controllers |
|
|
 |
Human interfaces |
|
|
 |
Hardwire communications |
|
|
 |
Wireless communications |
|
|
 |
Component objects |
|
|
 |
Microsoft Windows (NT/XP/2000) applications |
|
Some examples of our software development experience include:
|
 |
Gas standards instruments |
|
 |
Weather stations |
|
|
 |
Pressure instruments |
|
 |
General instrumentation |
|
|
 |
Specialized sensors |
|
Embedded controllers |
|
 |
Gas chromatographs |
|
|
We have experience with C/C++,
object-oriented rapid application development (RAD) tools, real-time kernels,
and databases.
We also develop applications in National Instrument's Labview®
and LabWindows® development
environments.
Our communications experience includes RS-232, RS-422/485,
MODBUS, GPIB (IEEE-488), packet protocols (direct-connect, modem, and wireless), and
development of complex protocols with error detection.
Mission
Our mission is to achieve excellence through built-in quality resulting
in products and applications that perform as intended. We are committed to continual
improvement in our hardware development, software development, and manufacturing processes
in order to create quality products and applications that meet or exceed your
expectations.
|