Broccoli Products home | contact us | profile


SOFTWARE DEVELOPMENT

Broccoli Products has 15 years of experience developing software applications. Our clients include public-service power and water distribution installations, the defense and para-military sector, flight planning and avionic system developers, and scientific research laboratories.


WINDOWS SOFTWARE

Our primary Windows development tool is Microsoft Visual Studio, using C# or C++, and the .NET (2.0 and 3.5) or MFC libraries. These are common tools that the client can use themselves to read and modify code. We also track the development of our code using an integrated version management tool.

Software is delivered with an installation program that automatically downloads updates as they are ready.

Our scope of software development is broad, and includes the following:

STAND-ALONE APPLICATIONS

A stand-alone application runs on a single machine. Microsoft Word is an example of a stand-alone application. Stand-alone applications can connect to the other applications over a local network or the Internet, but do not need to do so in order to run.

DISTRIBUTED APPLICATIONS

Distributed applications consist of more than one application. Often many client applications connect to a single server application. For example, a laboratory research technician may want to enter experimental data into a computer in the laboratory, and then analyze the data on a different computer at their desk.

INTERNET APPLICATIONS

Internet applications use the World-Wide-Web to transfer data, giving an application a global scope of operation. However, because the Internet is a public network, there are security design rules that must be included in the development of an Internet application to ensure that the data being transmitted is not read by a stranger, or tampered with in transit, or forged.

See Internet Development - Sharing Data Over the Internet.

SYSTEM-LEVEL PROGRAMMING

System-level software includes low-level protocols, background services, and component objects.

Low-level protocols are invented by hardware companies to allow communication with their hardware. For example the manufacturers of an information display module in a car will have their own rules for how testing and programming equipment should communicate with that module. These protocols are private and need to be coded into an application or a library.

Background services are applications without an interface that run as background tasks, providing a variety of functions including monitoring ports, waiting for a specific hardware item to be plugged in, and processing requests for data. The server side of a distributed application is often written as a background service.

Component objects (COM) are small libraries that other applications can interact with. COM objects extend the abilities of an application. For example, a COM object that processes credit card payments can be made available to an HTML server, allowing the website to take VISA payments. Or a COM object that understands an in-house messaging format for surface weather data can be made available to an Exchange Server, allowing surface weather data to be sent and received as email.
  Application montage


EMBEDDED SOFTWARE

Embedded software is software that is programmed into a microchip on a circuit board. By embedding software into a microchip, a level of miniaturization and portability can be achieved outside of that offered by PC systems. And because the embedded software is the only application running on the microchip, there is no competition for processor time, and the performance of the software is predictable. Development of Embedded systems is not expensive, and production is scalable.

8-BIT SYSTEMS

8-bit microcontrollers are small, inexpensive, and do not require support chips. They are power-efficient, and can be designed to run for months from a single AAA battery. Inter-component communications is through SPI, I2C, RS-232, and RS-485.

Code development for 8-bit systems is in C and Assembly, using 8-bit RISC-based microcontrollers, running at up to 20MHz.
  8-bit chip

32-BIT SYSTEMS

Unlike 8-bit systems, 32-bit microcontrollers require support chips, including external memory used during execution, memory to hold the software when the system is powered down, and regulators to supply a range of voltages. 32-bit systems are usually built on 4 or 8 track PCB circuit board to allow for the smallest possible size of product.

The dedicated speed and the width of the memory-bus make 32-bit micro-processors very powerful devices. They can support touch-screen monitors, SD and Flash memory cards, MP3 decoders, keyboards and mice, and connections to TCP-IP networks and external hard-disks. They can also act as USB hosts and devices, given them plug-and-play features.

Code development for 32-bit systems is in Assembly, C and C++, using 32-bit ARM-based micro-processors running at speeds up to 200MHz.

Linux and Windows CE (a thin version of Windows) can both be installed on 32-bit systems. Windows applications written using the .NET libraries can be ported to run on a Windows CE platform.
  32-bit circuit design


Return to the home page.

Broccoli Products Ltd © 1998-2010 Broccoli Products Ltd
Reg Number: 2895355
Reg Office: 27 Old Gloucester Street, London. WC1N 3AX
Bug Report Form Privacy Policy
Copyright Notice
Liability Disclaimer
Contact Us