The fundamental concepts of meta-programming are still not thoroughly understood, in this well organized book divided into three parts the authors help to address this. Chapters include: Taxonomy of fundamental concepts of meta-programming; Concept of structural heterogeneous meta-programming based on the original meta-language; Model-driven concept and feature-based modeling to the development process of meta-programs; Equivalent meta-program transformations and metrics to evaluate complexity of feature-based models and meta-programs; Variety of academic research case studies within different application domains to experimentally verify the soundness of the investigated approaches.
Both authors are professors at Kaunas University of Technology with 15 years research and teaching experience in the field. Meta-Programming and Model-Driven Meta-Program Development: Principles, Processes and Techniques is aimed at post-graduates in computer science and software engineering and researchers and program system developers wishing to extend their knowledge in this rapidly evolving sector of science and technology.
Software Engineering provides the software engineering fundamentals, principles and skills needed to develop and maintain high quality software products. The software engineering processes and techniques covered include requirements specification, design, implementation, testing and management of software projects. This up-to-date book is modeled on the recommendations and guidelines prescribed in the Guide to the Software Engineering Body of Knowledge (SWEBOK) published by the IEEE Computer Society, and the Software Engineering Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering published by the IEEE Computer Society and the Association for Computing Machinery Joint Task Force on Computing Curricula.
At the end of each chapter, the reader will be able to perform tangible software engineering tasks by applying the learned techniques and methods, will be familiar with the terminology, the principles by mastering the subjects, and will be able to analyze existing task deliverables, compare and critique the different techniques. The book is designed as a text for an undergraduate first course in software engineering and graduate bridging courses in information technology. In addition, Software Engineering can be used by practitioners who need to refresh their knowledge with the latest in software engineering techniques and processes. The prerequisite to use this text is to have a background in an object-oriented programming language.
The book is divided into five major parts. Part I describes why we need a development process, the phases and steps of the software process, and how we use individual methods to support this process. Part II lays the foundation for the concepts included in OT. Part III describes how OT is used in the various phases of the software development process, including the domain analysis, system requirements analysis, system design, software requirements analysis, software design, and implementation. Part IV deals exclusively with design issues for an anticipated C++ implementation. Part V is devoted to object-oriented programming with C++.
This book is intended for practicing software developers, software managers, and computer science and software engineering students. Sufficient guidelines are included to aid project leaders in establishing an overall development process for small, medium, and large system applications.