Broccoli Products home | contact us | about us
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.
Test Driven Development SQLServer & MySql LINQ & Entity Frameworks Windows Presentation Foundation Windows Applications Windows Communication Foundation Extended Application Markup Language
Windows software
Our primary Windows development tool is Microsoft Visual Studio, using C# or C++, and .NET 4.0 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, and employ Test Driven Development techniques to development neighboring test units.

Software is delivered with an installation program that automatically downloads updates as they are ready, either by disk or from the Internet.

Our scope of software development is broad, and includes the following:
Standalone 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.
Distributed applications
Distributed applications consist of more than one application, the client application and the server application. Many users at their desks can run the client application which connects to the server application running on a central computer.

Some servers can be very "thin", such an outwardly facing WCF Service (Windows Communication Foundation).

For example, a laboratory research technician may want to enter experimental data into a computer in the laboratory, and then analyze that data at their desk computer.
Internet applications
Internet applications use the World-Wide-Web to transfer data, as if it was a private network, and giving an application a global scope of operation. Internet applications are not the same as websites.

Because the Internet is a public network, there are security considerations 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.
Application montage
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.

An example of a low level protocol is RTMP, and our RTMPClient 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.

As mentioned above, some services be simple wrappers for WCF (Windows Communication Foundation), providing database access for websites and client applications.

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.
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 above 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 to other devices is achieved using 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
Smartphone and tablet applications
Our targets for smartphone and tablet software development are Android 3 and Microsoft Phone 7.
Android 3
The Android system is currently the most popular system for smartphone purchase and software development.

We develop Android applications using the Eclipse software tool, Java and XAML.  Eclipse and the additional libraries needed to develop Android applications are freely available from the Internet.

Android applications can be installed on a smartphone by uploading from a computer, or downloading from a website, or the application can be promoted to the an Android application shop, where purchasers pay to download the application.
Android device
Microsoft Phone 7
Phone 7 is the successor tot Windows CE.  Although Phone 7 is currently the least popular smartphone development environment out of the top three, it is the best development environment. 

Applications can be developed for Phone 7 using the same C# and XAML combination used in desktop applications and Silverlight plugins. 

With the increased processing power of a modern smartphone, existing software applications written for Windows desktop computers can be efficiently ported to smartphone devices, and distributed as a gadget.

Like Android, Phone 7 applications can be purchased and downloaded from an Internet "shop".
Microsoft Phone 7 device
Contact form 
Use the contact form to send comments and requests for information to Broccoli Products.
Topic:
Message:
Email:
Broccoli Products Ltd © 1998-2012 Broccoli Products Ltd
Reg Number: 2895355
Reg Office: 27 Old Gloucester Street, London. WC1N 3AX
Privacy Policy
Copyright Notice
Liability Disclaimer
Contact Us