This book focuses on the methodological treatment of UML/P and addresses three core topics of model-based software development: code generation, the systematic testing of programs using a model-based definition of test cases, and the evolutionary refactoring and transformation of models. For each of these topics, it first details the foundational concepts and techniques, and then presents their application with UML/P. This separation between basic principles and applications makes the content more accessible and allows the reader to transfer this knowledge directly to other model-based approaches and languages. After an introduction to the book and its primary goals in Chapter 1, Chapter 2 outlines an agile UML-based approach using UML/P as the primary development language for creating executable models, generating code from the models, designing test cases, and planning iterative evolution through refactoring. In the interest of completeness, Chapter 3 provides a brief summary of UML/P, which is used throughout the book. Next, Chapters 4 and 5 discuss core techniques for code generation, addressing the architecture of a code generator and methods for controlling it, as well as the suitability of UML/P notations for test or product code. Chapters 6 and 7 then discuss general concepts for testing software as well as the special features which arise due to the use of UML/P. Chapter 8 details test patterns to show how to use UML/P diagrams to define test cases and emphasizes in particular the use of functional tests for distributed and concurrent software systems. In closing, Chapters 9 and 10 examine techniques for transforming models and code and thus provide a solid foundation for refactoring as a type of transformation that preserves semantics. Overall, this book will be of great benefit for practical software development, for academic training in the field of Software Engineering, and for research in the area of model-based software development. Practitioners will learn how to use modern model-based techniques to improve the production of code and thus significantly increase quality. Students will find both important scientific basics as well as direct applications of the techniques presented. And last but not least, the book will offer scientists a comprehensive overview of the current state of development in the three core topics it covers.
Zusammenfassung: This textbook concentrates on processes, activities and results related to software architectures. It describes the separation of architecture artefacts corresponding to their nature, their logical or their modeling level on one hand and at the same time emphasizes their integration based on their mutual relations. Design or development processes demand for integration, as different artifacts must be elaborated, which are mutually dependent and need to be in a consistent form. The book is structured in four parts. The introductory Part I deals with the relevance of architectures, the central role of the design subprocess both in development or maintenance, and the importance of the decisions and artefacts in the overall result. Another topic is the spectrum of views an architecture language has to offer, and that there are different architectures to be regarded, from abstract and static to detailed, technical, and specific. Part II then discusses "important topics" on the architecture level. It deals with adaptability especially for embedded systems, with integrating styles/ pattern notations, with different reuse forms and how to find them, with the role of architectures for integrating different existing systems, and with reverse and reengineering of legacy systems. Next, Part III covers architecture modeling and its relation to surrounding activities, as well as architectures to surrounding other results. The single chapters are on transformation between requirements and architectures, architectures and programming, architectures and project management and organization, as well as architectures and their relations to quality assurance or documentation. Eventually, Part IV summarizes the main messages and presents open problems, both for every single chapter and across chapters. Every chapter focuses on a specific problem it addresses, a question it answers, the attention it demands, a message it conveys, and further open questions it raises. The chapters are mostly independent, which implies a certain redundancy, yet it allows lecturers (and their students) to either use the book as the basis of teaching software architecture or design, or to just pick those aspects that need special attention in a more advanced course
A guide to motorcycling for the novice, including information on aspects of buying, licensing, riding, and maintaining motorcycles as well as giving advice on safety, abiding the laws, and sensible protection.
This will help us customize your experience to showcase the most relevant content to your age group
Please select from below
Login
Not registered?
Sign up
Already registered?
Success – Your message will goes here
We'd love to hear from you!
Thank you for visiting our website. Would you like to provide feedback on how we could improve your experience?
This site does not use any third party cookies with one exception — it uses cookies from Google to deliver its services and to analyze traffic.Learn More.