9 Agent Systems in Software Engineering Vasilios S. Lazarou 1 , Spyridon K. Gardikiotis 2 and Nicos Malevris 2 1 National & Kapodistrian University of Athens 2 Athens University of Economics and Business Greece 1. Introduction During the last decade the continuous growth of the Web resulted in a significant development shift from simple types of software applications to distributed multi-tier web-based applications. In general, distributed systems are by nature more complex than centralized systems. As a result, the software engineering tasks of these systems are also complicated. Unlike traditional software applications, Web-based applications are associated with a plethora of special characteristics that impede the appliance of conventional software engineering techniques. Among them, the most important include the distributed and stateless nature of the Web, the impressively high changing frequency of implementation technologies and the spread of dynamic Web pages. Furthermore, the vital role of databases in both web and distributed applications raises a demand for introducing software engineering techniques tailored for these applications. These applications, known as database applications (DA), contain embedded SQL statements in the source code. Similarly to web applications, the presence of such special statements turns out to impose a number of limitations to the applicability of existing software engineering techniques while also originating new issues. In this chapter, the use of agent technology to confront with the software engineering task will be illustrated. More precisely, the focus will be on the application of agent systems in order to confront with the requirements of the software engineering process for distributed software systems in general, paying particular attention to distributed database applications and web applications. Software agents can be described as intelligent and autonomous software entities that have the ability to exhibit proactive behaviour and to collaborate with each other. The software engineering process can be greatly enhanced by utilising agent technology and adopting the architecture of an intelligent, flexible and extensible agent system. The multi-tier architecture of most distributed applications offers a suitable foundation because of its inherent complication that highlights the significant and novel contribution of a multi-agent architecture. The rationale behind utilizing agent technology has to do with the interoperability of the software resources belonging to potentially disparate application components and disparate domains. Towards this direction, agents offer a unified platform of interaction through agent communication. The application of agent technology for the software engineering task is certainly a new and promising research area. However, a variety of approaches that attempt to exploit the www.intechopen.com