The capability to design quality software and implement modern information systems is at the core of economic growth in the 21st century. Nevertheless, exploiting this potential is only possible when adequate human resources are available and when modern software engineering methods and tools are used.
The recent years have witnessed rapid evolution of software engineering methodologies, including the creation of new platforms and tools which aim to shorten the software design process, raise its quality and cut down its costs. This evolution is made possible through ever-increasing knowledge of software design strategies as well as through improvements in system design and code testing procedures. At the same time, the need for broad access to high-performance and high-throughput computing resources necessitates the creation of large-scale, interactive information systems, capable of processing millions of transactions per seconds. These systems, in turn, call for new, innovative distributed software design and implementation technologies.
The purpose of this book is to review and analyze emerging software engineering technologies, focusing on the evolution of design and implementation platforms as well as on novel computer systems related to the development of modern information services. The eight chapters address the following topics covering a wide spectrum of contemporary software engineering:
1. Software Engineering Processes – software process maturity, process measurement and evaluation, agile software development, workflow management in software production,
2. UML-based Software Modeling – UML 2.0 features, usability of UML modeling, exception modeling, business environment elaboration with UML,
3. Software Process Methodologies – extreme programming, test-driven development, increasing source code quality, software complexity analysis,
4. Technologies for SOA – Grid systems and services, distributed component platforms, configuration management, system and application monitoring,
5. Requirements Engineering – gathering, analyzing and modeling requirements, analyzing and modeling business processes, requirements management,
6. Knowledge Base System and Prototyping – knowledge base system engineering, integrating ontologies, modular rule-based systems,
7. Software Modeling and Verification – modeling of rule-based systems, modeling and verification of reactive systems,
8. Selected Topics in Software Engineering – this part covers 8 selected topics related to various aspects of software engineering.
We believe that the presented topics are interesting for software engineers, project managers and computer scientists involved in the computer software development process. We would like to express our thanks to all authors, colleagues, and reviewers who have supported our efforts to prepare this book.
Krzysztof Zieliñski, Tomasz Szmuc