Microprocessors are being incorporated into an increasingly wide range of products. However, many of the companies that manufacture such products are not effectively managing software development for these embedded systems. Despite the current focus on concurrent engineering and cross‐functional teams, software engineering is often poorly integrated with the rest of the product development effort. The result is usually a costly delay in the product's introduction to the market.
Tomlinson G. Rauscher and Preston G. Smith describe several practices that have proved helpful for accelerating the development of products that incorporate embedded software. Managerial and economic opportunities for accelerating development of hardware‐software systems involve planning for dramatic growth in products that include embedded software, cultivating in‐house software knowledge, recognizing the financial effects of project decisions, and measuring project progress. Improving time to market requires hiring and developing software engineering staff and managers with the requisite knowledge of the application, ensuring that they understand the techniques for specifying requirements and design, and providing them with clear guidelines for evaluating the trade‐offs between project duration, project cost, and product performance. Progress should be measured in terms of the number of components completed, rather than the number of lines of code that are written.
During the development process, emphasis should be placed on managing the scheduling links between hardware and software development, obtaining user feedback about the system as early as possible, and using a flexible, ongoing review process. Development groups should establish software requirements and design parameters before they start coding, and testing should commence early in the system design process. By creating a working prototype of the user interface, developers can obtain user feedback and thereby sharpen the design specification.
Effective, timely software development requires focusing greater energy and resources on development of the requirements specification. By expending this effort in the first phase of a project, the development team can minimize its use of the time‐consuming code‐and‐debug approach to software development. In addition to breaking down a complex system into understandable pieces, a modular design supports efforts to accelerate product development. With a modular design, work on various modules can be assigned concurrently to relatively independent teams. A modular design facilitates testing of the product as well as reuse of software that was developed and deployed in previous projects.
Horizontally microprogrammABle cemputers provide the potential for efficient use of hardware through parallel operation of internal resources. Present languages for microprogramming such csmputers, however, contain unnatural symbolism, inflexible format requirements, and unnecessary constraints which mA~e their use rather difficult. The intrinsic characteristics of horizontally microprogrammable machines suggest the use of operator precedence languages to program them. The syntax of a language, ANIMIL, is formally described along these lines and some initial ideas on semantics of languages for horizontally microprogrammablemachines are discussed.
Conceptually microprogramming is similar to traditional programming, but the development of microprogramming languages has lagged far behind the development of programming languages. This paper identifies the problems characterizing the present state of microprogramming languages and shows how some programming language techniques may be used to solve them.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.