In this module we'll be looking at aspects of computer-aided software engineering or case as it's more commonly known for a while case tools had a bad reputation for being costly and not providing any business benefit but today they've been rehabilitated and all successful software projects use case tools to some extent. But what do we mean by case there are a number of definitions but a nice one from the Carnegie Mellon software engineering Institute is "Case is the use of computer-based support in the software development process" so put simply a case tool is a software tool to help make software products systems or solutions. Two types of software engineering tools are:
- Programmer Tools
- System analysis and Design tools
- Point tool
- work benches
- enjoinments
In this module we'll look at the software life cycle and how case tools fit into the development process there are a number of different popular life cycles some of which promote the use of tools more than others so we'll look at the application of tools in these different approaches. software engineering tools cover a wide range of software development activities and we'll look first at tools that support the programmer in the area of software development tools where we look at the needs of the individual programmer using editors, compilers, debuggers and a wealth of other tools to make programmers more productive. For simple applications it might be sufficient just to program them but in real world solutions and systems, a tangible design is needed and for complex systems viewing the system as a whole or in the large, the architecture becomes important too. To be able to specify the system the requirements, the analysis and the design a number of software methods and notations have been devised. Some of these such as the unified modeling language or UML have become standardized and so make it easier for software engineers to adapt to different organizations and tools.
Point Tools
Initially we'll look at point tools designed for a single purpose. These are commonly available in organizations that have made no real commitment to good engineering practices but they are better than not using a tool at all.
Work Benches
Work benches which provide added support through a number of engineering activities by providing traceability through those activities. We can better ensure the quality of our solutions.
Environments
Integrated environments where tools come together and provide full lifecycle support for the development of a software solution. Integrated environments not only help with improving quality and communication but also increase productivity. Enabling technology for integrated tools is an underlying repository like a database a repository provides a structured storage facility for artifacts of the development process. Repository technologies and what makes these different from databases whilst many tools are fixed or have limited customization facilities.
Meta Chess Tools
There is a class of tools known as meta Chess tools that provide for complete definition and construction of tools themselves in essence they are tools to make tools with although less popular. Now that standard methods have come to the fore meta case has been reborn with the new branding as tools to support domain-specific languages or DSL's. An area of considerable expansion has been testing tools one of the more time-consuming aspects of the software development process. Testing is essential to ensure the solution meets requirements and assure the quality of the solution. Testing tools help both in the planning and specification of tests and in the running of the tests themselves through automated testing. In addition to tools to support the construction of solutions there are also tools to support how solutions are constructed. Process support tools or lifecycle tools are becoming more important. Now that governance requirements require suppliers to show they followed well-defined and repeatable processes to produce products of known quality.

No comments:
Post a Comment