Friday, August 7, 2009

Computer-Aided Software Engineering - (CASE) Tools

1. Computer-Aided Software Engineering (CASE), in the field of Software Engineering is the scientific application of a set of tools and methods to a software which is meant to result in high-quality, defect-free, and maintainable software products.It also refers to methods for the development of information systems together with automated tools that can be used in the software development process.  It can refer also  to the software used for the automated development of systems software, i.e., computer code. The CASE functions include analysis, design, and programming. CASE tools automate methods for designing, documenting, and producing structured computer code in the desired programming language.
              Two key ideas of Computer-aided Software System Engineering (CASE) are:
             the harboring of computer assistance in software development and or software maintenance processes, and
                     An engineering approach to the software development and or maintenance.

          Some typical CASE tools are:
  1. Configuration management tools
  2. Data modeling tools
  3. Model transformation tools
  4. Program transformation tools
  5. Refactoring tools
  6. Source code generation tools, and
  7. Unified Modeling Language

    Many CASE tools not only output code but also generate other output typical of various systems analysis and design methodologies such as:
  1. data flow diagram
  2. entity relationship diagram
  3. logical schema
  4. Program specificatio
  5. SSADM.
  6. User documentation

2. A CASE tool is a computer-based product aimed at supporting one or more software engineering activities within a software development process.

References: 

1. http://en.wikipedia.org/wiki/Computer-aided_software_engineering

2. http://www.ask.com/bar?q=what+is+CASE+tool%3F&page=1&qsrc=0&ab=1&u=http%3A%2F%2Fwww.sei.cmu.edu%2Flegacy%2Fcase%2Fcase_whatis.html

WHAT IS SOFTWARE ENGINEERING?

  1. Software engineering is application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software.
  2. Software Engineering is an approach to developing software that attempts to treat it as a formal process more like traditional engineering than the craft that many programmers believe it is. We talk of crafting an application, refining and polishing it, as if it were a wooden sculpture, not a series of logic instructions. The problem here is that you cannot engineer art. Programming falls somewhere between an art and a science.The computer science discipline concerned with developing large applications. Software engineering covers not only the technical aspects of building software systems, but also management issues, such as directing programming teams, scheduling, and budgeting.
  3. Software engineering (SE) is concerned with developing and maintaining software systems that behave reliably and efficiently, are affordable to develop and maintain, and satisfy all the requirements that customers have defined for them. It is important because of the impact of large, expensive software systems and the role of software in safety-critical applications. It integrates significant mathematics, computer science and practices whose origins are in engineering.

References:

1.  http://en.wikipedia.org/wiki/Software_engineering

2. http://wiki.answers.com/Q/What_is_software_engineering

3. http://computingcareers.acm.org/?page_id=12