Improving Automation Through Software Environments

Improving automation through software environments means making tasks in software development or operations easier and faster by using tools and technologies that automate repetitive work and streamline processes.

  1. The tools and environment used in the software process generally have a linear effect on the productivity of the process.
  2. Planning tools, requirements management tools, visual modeling tools, compilers, editors, debuggers, quality assurance analysis tools, test tools, and user interfaces provide crucial automation support for evolving the software engineering artifacts.
  3. Automation of the design process provides payback in quality, the ability to estimate costs and schedules, and overall productivity using a smaller team.
  4. Round-trip engineering describe the key capability of environments that support iterative development.
  5. Economic improvements associated with tools and environments.
  6. It is common for tool vendors to make relatively accurate individual assessments of life-cycle activities to support claims about the potential economic impact of their tools.

 

For example, it is easy to find statements such as the following from companies in a particular tool.

  • Requirements analysis and evolution activities consume 40% of life-cycle costs.
  • Software design activities have an impact on more than 50% of the resources.
  • Test activities can consume as much as 50% of a project’s resources.

ACHIEVING REQUIRED QUALITY

Software best practices are derived from the development process and technologies.
Table 3-5 summarizes some dimensions of quality improvement.

Key practices that improve overall software quality include the following:

  1. Focusing on driving requirements and critical use cases early in the life cycle.
  2. Using metrics and indicators to measure the progress and quality of an architecture as it evolves from a high-level prototype into a fully compliant product.
  3. Providing integrated life-cycle environments that support early and continuous configuration control, change management, rigorous design methods, document automation, and regression test automation.

Conventional development processes stressed early sizing and timing estimates of computer program resource utilization. However, the typical chronology of events in performance assessment was as follows.

  • Project inception.
  • Initial design review.
  • Mid-life-cycle design review.
  • Integration and test.