Wednesday 25 March 2009

(ICW) Integral part of software quality assurance is the use of CASE tools

INTRODUCTION

.............................In today’s software industry, quality is one of the important factors. In general software quality may be defined as absence of any defect. Quality of software is characterized by factors such as it must be on time, bug free, on specification, within budget and also maintainable. Quality assurance and quality control comes in play on the process of software development. Quality assurance plays a key role from the starting of the process, which deals with keeping up the standard or policy within every phase of the software development. Computer Aided Software Engineering tools commonly known as CASE tools and these are used in the software process to create error free, good quality software products. From the past itself there are a lot of tools such as linker, loader, complier etc to help the software process. In the current context, computers are becoming prominent everywhere, and software in them are becoming more complex, it results in the development of support tools also.

...................................This essay will explain software quality assurance and the importance of quality assurance in software process. And also explains the use of CASE tools in quality assurance which is a part of software development itself. This essay will also cover the CASE environments in the field. Although the CASE tools are not the answer to the software process, still it can be used to get more efficient software products within the time limit as per the user specification. It all claims that the use of CASE tools will boost up the software quality process.


QUALITY

............................Generally quality can be defined as reaching the user requirement each and every time, and also within the budget and on time. Quality of a software product is completely relying on the end user expectation, since the software is customer oriented. Quality of the software differs for different people because of the difference in the perspective thinking. Quality can b also defined as lack of defects and problems. In a way we can say that software problems and defects are the measuring metrics of the quality of the software quality. Eventually software problems and defects are inversely proportional to the quality of the software (Florac, 1992). Different software quality attributes such as efficiency, reliability, correctness, and completeness and usability are used as the criteria for the measurement of problem and defects in software ( Florac, 1992).In all of the software life cycle method testing plays an important part. The reason is software vendors don’t want to give some kind of software to the end user, but a good quality, error free software. Because of that a lot of time and money is used for the purpose of creating the quality within the software. Reworking within the software is much harder, time consuming, so to avoid that every process is made in a certain standard. This process is commonly known as software quality assurance.



QUALITY ASSURANCE

................................Software Quality Assurance (SQA) is a systematic pattern of actions which is necessary to deliver enough confidence that the service or product conforms to specified technical requirements. As defined by J.Greene (2001) SQA covers different parts such as benchmarking, process improvement, estimating, risk assessment, progress control and reporting. Process improvement enables the improvement in the standard of every process within the organization. Each process results in different way to improve the quality of the software product J.Greene (2001).In a different way SQA verifies whether planning and implementation is done according to standards, and also the procedures are performed according to the planning(BSSC,1995).

...........................As mentioned above software quality is characterized by a number of different factors. All these factors are used indirectly in the case of quality. At the same time we can improve the process within every step of the software life cycle. The quantitative factors such as error per unit time can be measured directly. Both qualitative and quantitative can be collected and kept in the knowledge base of the SQA management (Chou, David C, 1994). Measuring software product quality and measuring software process quality are the two different methods to calculate the metrics of the software (Chou, David C, 1994).

...........................There is always confusion between the exact difference between the quality control and quality assurance. Quality control is operational activities which are used for the fulfilling of the requirements. Its basically product oriented approach rather than process oriented in quality assurance. Finding the defects is one of the important tasks in quality control; because of this it’s reactive in nature. Testing, inspection and check point review are considered to be the part of quality control. In a way we can conclude that quality assurance only concentrates on prevention of defects, within the QA quality control plays an important part too.


CASE tools

................................Computer aided software engineering tools are used for the purpose of simplifying the process of high complexity software engineering. From the early days, there has been an awareness of using automated tools to help the programming. Loader, linker, assembler etc are some tools used in the past. There was a huge difference in the approach towards the software product from the past to now. Software engineering expanded in the way of doing things (Carnegie Mellon University, 2007).The software process became large activity including a number of people from different departments. Delivering the software to the customer is not the end of the process, but there is a lot of scope in enhancing the software from the feedback from the end user. All these resulted in the improvement in the CASE tools itself (Carnegie Mellon University, 2007). One of the main problem is software project team which is using a CASE tool selects another tool, without the formal evaluations.

.................................In the early days CASE tool is mainly used for some specific tasks such as document production, version control and design method support. These kinds of tools are supporting the isolate processes which are not directly improving the engineering process as a whole. If all these isolated tools are used together in a particular scenario, then it will be considered as a CASE environment. Typical CASE environments basically consist of group of tools which works under the same hardware or software, although not every member is familiar with all the tools in the environment. For example software developers use the tools for the purpose of the designing and coding the application at the same time system administrator uses the tool to maintain and update the software and a hardware platform (Carnegie Mellon University, 2007). The different roles carried out by the people in the organization will interact with multiple CASE tools and the environment; eventually it creates a CASE environment.

.................................Software development team uses a CASE tool which is assembled over the period in the product life cycle. The new technologies and the tools which is introduced to the software industry makes the scenario more confusing, because its not easy to understand the tasks supported by the tool and to how much time the tool will save (Baik, 2000).


Effects of CASE tools

...............................CASE tools have got the capability of improving the software development productivity, reducing the cost and also improving the quality.During different phases in software development lifecycle software vendors use different tools. The user interface is also the same for different CASE tools, which is under the CASE environment. Analysis of CASE tool integration is generally separated into three functional areas: data, control, and presentation integration (Zarrella, 1990). It is clear that CASE tools improved the productivity and quality by automated processes in the life cycle. But it’s not widely acceptable in the case of evaluation criteria, even though there are many tools in the software industry, which hikes the productivity and the quality.


CASE tools-CRITICISM

..............................CASE tools which we are using now are capable to enforce a limited range of product standards. Although the capabilities of CASE tools are developing rapidly, still they are not flexible (Huff, Morris, Smith, Zarrella, 1992). The sequence of activities followed by and also the enforced actual standard is inflexible. In the case of automation of the software process CMMI tools supports only very few methods and supports very few auditing (Huff et .al, 1992). Zarrella (1990) stated that there are integration problem in the CASE tool which is identified on the basis of the perspective of the end-user. They are single-vendor tool integration, multiple-vendor tool integration, operating environment integration, development process integration, and end-user integration.

...............................When a single vendor offers a set of tools, the user may be constrained to a particular usefulness of the tool (Zarrella, 1990). The flexibility of changing the interfaces of the tool is much difficult in the case of the single vendor integration, so the user is restricted in a way which is not good. .The main problem with the external integration directly underlines the importance of standards and also the integration of the tool or interface with the other costs a lot. Ultimately, giving the standardization will cause more coding by end user to change that according to them. At the end the end user may act as integrator itself. Operating environment integration is an issue for the CASE tool in all the time. The tools used are always restricted to a particular environment which is surrounded by a specific operating system and may be by the hardware components (Zarrella, 1990). Configuration management is also an issue when it came into change from one particular tool to another, which causes a lot of time and money to change the things. End user integration is also a major challenge in adopting the CASE tools. Because by introducing some new tools for the organization is a big task. Since the time for learning and training the staff needs a time. The learning curve toward the new tools is of the employees is very steep in the case of introduction of tools (Zarrella, 1990).

............................CASE tools are capable of supporting the problems in reverse engineering and re-engineering in a limited way. Unfortunately, there is little support for the generation of data models from code (Huff et .al, 1992). Tool interoperability is also considered as one of the main issues in the CASE tools. The main reason in lack of tool interoperability is different standards put forwarded by the different vendors and the industry groups (Huff et .al, 1992). Poor interoperability also plays in between the vendors, so that customer is assumed to select a particular tool, which satisfies the requirements, but not all the requirement. Here customer is making them adjustable towards the tool in order to satisfy some requirement. Another main issue with the interoperability is use of different lifecycles during the software development process. So the transition takes a lot of time, as it needs a lot of time is needed to re enter output from one stage, which is supposed to be the input of the following stage (Huff et .al, 1992). Another main issue with the use of CASE tool is lack of proper data for the further use, in fact most of the coding and development is done by the tool itself, and the information is misleading and sometime its worse.

.............................The criticism mentioned till now is based on the work done by the CASE tool in a software development cycle. There are some aspects that cannot be done by the CASE tools at any time. Whatever may be the technology improves themselves, its all applied by human beings itself. So there are certain things in the software life cycle which cannot be done any kind of CASE tool. Fixing an organizational problem and getting involved in the insight of the requirement and also motivating themselves to the next level are only capable by the humans itself (Huff et .al, 1992). Measuring the entire quality of the software product as a whole is done completely by individuals.



CONCLUSION

..............................From the time, when we started using the computing as a tool there are a lot of tools are evolved to help the process of computing. These kinds of tools helped to improve the productivity and eventually it enhanced the quality of the system itself. The end user is considered to be most important factor in the case of software quality, so by satisfying the end user, we will get the maximum productivity. Quality as a whole is considered to be the most important aspect of the software product or services. For that there a lot quality management is done through out the entire phases of the product life cycle. CASE tools are also helping the programmers in designing and coding to a higher level. However there is certain issue which is concerned about the CASE tools. So by just applying the new tools towards the life cycle won’t improve the whole activity, it needs a lot of compromise to get the desired outcome. So the use of CASE tools must be in a particular way such that it should improve the environment and also at the same time its not good to rely completely on the CASE tools. The limited and the controlled use of the CASE tool is the only way to improve the quality of the entire software lifecycle, although the use of CASE tool is not the optimum to assure the quality of the software product or services.





References:

Florac, W. (1992).Software Quality Measurement: A Framework for Counting Problems and Defects, Software Engineering Institute.

ESA Board for Software Standardization and Control (BSSC), (1995), Guide to software quality assurance.


Baik. J, (2000), The effects of CASE tools on software development effort, Dissertation.

Zarrella.P, (1990), CASE Tool Integration and Standardization, CASE Technology Project for Software Engineering Institute.

Greene, J. (2001), Software Quality Assurance (SQA) Of Management Processes Using the SEI Core Measures, Quantitative Software Management Ltd.

Chou, David, C. (1994), Software quality assurance in CASE tools, Information Systems Management, 10580530, Vol. 11, Issue 2.


Huff.C, Morris.E, Smith.D, Zarrella.P, (1992) , Proceedings of the CA Management Workshop, CASE Technology Project for Software Engineering Institute.

http://www.sei.cmu.edu/legacy/case/case_whatis.html modified on 11 January 2009, viewed on 19 February 2009.






1 comment:

  1. Hello Praveen,

    Was you rather tired?.. interesting article on SQA...

    :)

    ReplyDelete