We handle software development for embedded systems by following the method of Ward Mellor Data Flow diagrams. For other systems,we follow the Object Oriented approach with UML as the modeling and documentation mechanism.
Ward Mellor Method
- Structured Development of Real-Time Systems, Paul T. Ward, Stephen J. Mellor, Prentice Hall Professional Technical Reference, 1991, ISBN 0138546541.
- UML Distilled: A Brief Guide to the Standard Object Modeling Language, 2nd Edition, Martin Fowler, Kendall Scott, Addison-Wesley Pub Co, 1999, ASIN: 020165783X .
Software development involves a multitude of tasks, which are commonly grouped into:
- problem analysis
- requirements gathering
- software design
- software/hardware integration
- software testing
There are several paradigms that can be followed to perform the above tasks, some more appropriate than others depending on the product sought. Some tolerate changes in the requirements or environment without a devastating effect on the cost, quality, or schedule. Below is a description of the commonly used paradigms. We carefully choose the development methodology based on the nature of a project, to obtain a high-quality, low-cost, and on-schedule solution.
The entire design is driven by a set of design directives on various aspects of the design. These are issued to the design team from time to time. Design is based on the concept of data abstraction and information hiding. Preliminary design consists of breaking down the entire software (or a software configurable item - CSCI) into a number of components and defining the interfaces and high-level methods. At this stage, the architecture of the software is defined.
At the end of Preliminary design, a preliminary design review (PDR) is conducted. The customer may like to participate in it. Detailed design follows preliminary design. Detailed design consists of breaking down software components into units and defining all the methods. At the end of detailed design, a critical design review is held.
Generally speaking, software development has followed 3 different approaches commonly referred to as "Waterfall", "Iterative", and "Adaptive". Several processes have been derived from these 3 approaches and well documented. At Bitsoft Systems, Inc. we consider the following 7 models:
Modified Waterfall Model
- Software Engineering: A Practitioner's Approach, 4th edition, Roger S. Pressman, Ph.D., McGraw-Hill, New York, 1997, ISBN 0071146032.
- A Practical Guide to Feature-Driven Development, Stephen R Palmer, John Mac Felsing, Prentice Hall, 2002, ISBN 0130676152
- A Practical Guide to eXtreme Programming, David Astels, Granville Miller, Miroslav Novak, Prentice Hall, 2002, ISBN 0130674826 .
- Agile Software Development with SCRUM, Ken Schwaber, Mike Beedle, Prentice Hall, 2001, ISBN 0130676349 .
- Java Modeling in Color with UML, Peter Coad, Eric LeFebvre, Jeff De Luca, Prentice Hall PTR, 1999, ISBN 013011510X.
- requirements gathering .