Information & Communication

Software Engineering Tools

Technical Applications


Software engineering (SE) involves the creation of software systems. Tools for SE are software programs that enable and facilitate that process, and help assure the timeliness and accuracy of the resulting software. Such tools often use the rubric CASE (computer-aided software engineering).


Perhaps the greatest weakness in computing and communication systems worldwide is in software engineering: software engineers are often unable to create complex software systems on time and on budget, and with assurance that they will perform as required or desired. Advances in software engineering are vital if we are to continue developing software of the complexity required to manage and control our networks, transaction systems, simulations, and computers themselves. Integrated circuit (IC) design is also increasingly dependent on the effectiveness of the design software.


The U.S. Department of Defense is highly dependent on the development and maintenance of large scale software systems. Better tools for software development are of vital interest to them, as software development is the critical element (pacing schedule and cost) in many new weapon and control systems. It is also important that our critical defense systems continue to be developed by teams of people who are U.S. based, and whose integrity and trust can be assured. It is therefore important that the U.S. leads in software development tools, so that we can maintain control of critical systems development, and not be dependent on more advanced tools and techniques available elsewhere.