This confidential Digital Equipment Corporation document, "Retooling Software Engineering: Recommendations of the Internal CASE Initiative," dated January 24, 1994, presents a comprehensive plan to modernize Digital's software development environment.
Core Purpose & Problem:
The initiative was chartered to address critical issues in software development, including low productivity, slow time-to-market, high defect rates, and inefficient defect repair. The goal is to provide Digital's software engineers with contemporary tools and technologies, aligning with competitive industry practices, promoting code manageability and reusability, and contributing to engineering cycle time reduction. The existing environment relies on outdated tools and methodologies.
Key Requirements:
The new environment must support development on Windows/NT, OSF, and Windows/DOS desktops, with OSF, NT, and VMS development servers. It must target OSF, VMS, and NT platforms, enabling cross-development and distributed team collaboration. Strong support for C and C++ and object-oriented development is essential, along with scalability for projects of varying size and complexity.
Summary of Recommendations:
Organizational & Infrastructure:
- Establish an ongoing central function within Engineering for continuous evaluation, acquisition, and support of software development technology.
- Deploy World Wide Web technology and client tools to create an infrastructure for discovery and reuse within Digital Software Engineering.
- Establish a Reuse Library Support Center and a Software Testing Expertise Center.
Integrated Development Environments (IDEs) & Editors:
- For Windows desktops, recommend Microsoft Visual C++ or Premia Codewright (for its extensibility and multi-compiler support).
- For OSF/1 desktops, recommend DEC FUSE as the IDE.
- A central Internal CASE Project will be responsible for extending and customizing these IDEs to integrate other recommended tools.
Programming Languages & Libraries:
- Adopt a unified COM/OLE/CORBA distributed object model coupled with a 3rd party base class library to enable binary reuse and late binding for C++.
- Define a well-defined C++ subset, create a conformance checker, and provide education in object-oriented programming to manage C++ complexity.
- Fix SDL (Software Definition Language) for current users and to facilitate migration to C/C++.
Graphical User Interfaces (GUIs):
- Strategically use the Microsoft Windows API and Microsoft Foundation Class Library (MFC) for all new application GUI development.
- Utilize Wind/U from Bristol Technologies to make Windows API/MFC applications available on VMS and OSF.
Quality & Verification Tools:
- Use the DEC C compiler's -check option and Gimpel Software's Flexelint for C and C++ source code checking during development.
- Standardize tcl as the single portable test scripting language across all platforms, integrating tools like tclREX for random testing and Jig for component testing.
Configuration & Build Management:
- Standardize on ClearCase technology from Atria Software for distributed configuration management and system building across OSF, NT, and VMS servers.
Debugging Technology:
- Acknowledge the need for a variety of debugging technologies due to diverse host/target platforms and complex problems (e.g., VC++ debugger, Windbg, Multiscope, DECladebug, VMS Debug). A single unified solution is deemed too costly and less effective at this time, with the strategy to evolve as circumstances change.
Performance Analysis:
- Utilize existing Digital assets: PCA (pc-sampling collector) and ATOM/OM (cycle-counter collector).
- Port these collectors to OSF/1 and NT, and develop a portable analyzer with a tcl-based user interface for performance presentation.
Implementation & Costs:
The implementation plan involves establishing a dedicated project, initiating pilot projects in FY94, and planning for wide deployment starting in FY95. The document provides estimated labor costs and some software costs, noting that these are "ballpark" figures and do not include capital hardware.
This initiative is seen as the first phase of an ongoing effort to improve Digital's software development environment, with future work to address broader scope activities like design and problem tracking.