Software engineering research has di?erent pro?les in Europe and North Am- ica.WhileinNorthAmericathere isalotofknowhowinthepractical,technical, and organizational aspects of software engineering, in Europe the work conc- trates more on foundations and formal modeling of software engineering issues. Bothapproacheshavetheirindividualstrengthsandweaknesses. Researchdriven solelyby practice insoftware engineering runs in the danger ofdevelopinginto a shallow ?eld failing to ?nd a solid scienti?c basis or to contribute substantially to the progress in software engineering. Work concentrating on formal aspects alone is in the danger of becoming too theoretical and isolated from practice so that any transfer into practical application will fail. Substantial progress in software engineering can be achieved, however, by bringing together pragmatic and foundational work in software engineering - search. This can provide a step towards a common scienti?c basis for software engineering that allows us to integrate the various research results, leading to fruitful synergetic e?ects. It will also help to identify critical research paths and to develop an adequate paradigm for the scienti?c discipline of software en- neering. In software and systems engineering it is necessary to distinguish the en- mous di?erence between the dynamics in development we refer to and the l- ited scope assumed by manyof today’ssoftware managerswho stilluse outdated techniques. Many of the unsolved problems associated with the old techniques are symptoms of a lack of formalization and a lack of automation support. It was the goal of this workshop to bring together experts from science and practice in software and systems engineering from North America and Europe.
This book presents a variant of UML that is especially suitable for agile development of high-quality software. It adjusts the language UML profile, called UML/P, for optimal assistance for the design, implementation, and agile evolution to facilitate its use especially in agile, yet model based development methods for data intensive or control driven systems. After a general introduction to UML and the choices made in the development of UML/P in Chapter 1, Chapter 2 includes a definition of the language elements of class diagrams and their forms of use as views and representations. Next, Chapter 3 introduces the design and semantic facets of the Object Constraint Language (OCL), which is conceptually improved and syntactically adjusted to Java for better comfort. Subsequently, Chapter 4 introduces object diagrams as an independent, exemplary notation in UML/P, and Chapter 5 offers a detailed introduction to UML/P Statecharts. Lastly, Chapter 6 presents a simplified form of sequence diagrams for exemplary descriptions of object interactions. For completeness, appendixes A–C describe the full syntax of UML/P, and appendix D explains a sample application from the E-commerce domain, which is used in all chapters. This book is ideal for introductory courses for students and practitioners alike.
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.
Written by foremost experts in the field, Engineering Modeling Languages provides end-to-end coverage of the engineering of modeling languages to turn domain knowledge into tools. The book provides a definition of different kinds of modeling languages, their instrumentation with tools such as editors, interpreters and generators, the integration of multiple modeling languages to achieve a system view, and the validation of both models and tools. Industrial case studies, across a range of application domains, are included to attest to the benefits offered by the different techniques. The book also includes a variety of simple worked examples that introduce the techniques to the novice user. The book is structured in two main parts. The first part is organized around a flow that introduces readers to Model Driven Engineering (MDE) concepts and technologies in a pragmatic manner. It starts with definitions of modeling and MDE, and then moves into a deeper discussion of how to express the knowledge of particular domains using modeling languages to ease the development of systems in the domains. The second part of the book presents examples of applications of the model-driven approach to different types of software systems. In addition to illustrating the unification power of models in different software domains, this part demonstrates applicability from different starting points (language, business knowledge, standard, etc.) and focuses on different software engineering activities such as Requirement Engineering, Analysis, Design, Implementation, and V&V. Each chapter concludes with a small set of exercises to help the reader reflect on what was learned or to dig further into the examples. Many examples of models and code snippets are presented throughout the book, and a supplemental website features all of the models and programs (and their associated tooling) discussed in the book.
This book presents a set of principles for designing frameworks and practical techniques for adapting them efficiently. It also describes how UML may be used to model frameworks and their applications and proposes a set of extensions to the UML which apply specifically to framework design.
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
Processes for developing safety-critical systems impose special demands on ensuring requirements traceability. Achieving valuable traceability information, however, is especially difficult concerning the transition from requirements to design. Bernhard Turban analyzes systems and software engineering theories cross-cutting the issue (embedded systems development, systems engineering, software engineering, requirements engineering and management, design theory and processes for safety-critical systems). As a solution, the author proposes a new tool approach to support designers in their thinking in order to achieve traceability as a by-product to normal design activities and to extend traceability information with information about design decision rationale.
This book is a comprehensive presentation of entity-relationship (ER) modeling with regard to an integrated development and modeling of database applications. It comprehensively surveys the achievements of research in this field and deals with the ER model and its extensions. In addition, the book presents techniques for the translation of the ER model into classical database models and languages, such as relational, hierarchical, and network models and languages, as well as into object-oriented models.
Die nach dem Untergang Neros, dem Vierkaiserjahr und dem Aufstieg Vespasians entstandenen Argonautica des Valerius Flaccus weisen bedeutsame Unterschiede zu früheren Fassungen des Argonautenmythos auf. Die vorliegende Monographie untersucht, welche Bedeutungshorizonte die Vermischung von Eroberungsfahrt und Bürgerkrieg, die Zeichnung von Herrschern und Tyrannen und die beunruhigende Darstellung der Götter in diesem Epos im ursprünglichen Rezeptionskontext entfalten konnten. Die vorgeschlagenen Interpretationen erweisen die Argonautica als Gedicht, das eine positive Bewertung der Herrschaft Vespasians nahelegt, aber in ambivalenter Weise offenlässt, ob das flavische Rom eher einer unbegrenzten Friedenszeit oder einem weiteren Bürgerkrieg entgegensteuert. Written in the aftermath of Nero’s downfall, the Year of the Four Emperors and the rise of Vespasian, Valerius Flaccus’ Argonautica departs significantly from earlier treatments of the Argonautic myth. This monograph explores how the epic’s fusion of foreign conquest with civil war, its depiction of rulers and tyrants, and its disconcerting portrayal of the gods may have resonated with its contemporary audience. The proposed readings suggest that the poem reflects approval of Vespasian’s rule, yet ambiguously leaves open the question of whether the future of Flavian Rome will hold everlasting peace or another civil war.
This book presents a variant of UML that is especially suitable for agile development of high-quality software. It adjusts the language UML profile, called UML/P, for optimal assistance for the design, implementation, and agile evolution to facilitate its use especially in agile, yet model based development methods for data intensive or control driven systems. After a general introduction to UML and the choices made in the development of UML/P in Chapter 1, Chapter 2 includes a definition of the language elements of class diagrams and their forms of use as views and representations. Next, Chapter 3 introduces the design and semantic facets of the Object Constraint Language (OCL), which is conceptually improved and syntactically adjusted to Java for better comfort. Subsequently, Chapter 4 introduces object diagrams as an independent, exemplary notation in UML/P, and Chapter 5 offers a detailed introduction to UML/P Statecharts. Lastly, Chapter 6 presents a simplified form of sequence diagrams for exemplary descriptions of object interactions. For completeness, appendixes A–C describe the full syntax of UML/P, and appendix D explains a sample application from the E-commerce domain, which is used in all chapters. This book is ideal for introductory courses for students and practitioners alike.
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.
Written by foremost experts in the field, Engineering Modeling Languages provides end-to-end coverage of the engineering of modeling languages to turn domain knowledge into tools. The book provides a definition of different kinds of modeling languages, their instrumentation with tools such as editors, interpreters and generators, the integration of multiple modeling languages to achieve a system view, and the validation of both models and tools. Industrial case studies, across a range of application domains, are included to attest to the benefits offered by the different techniques. The book also includes a variety of simple worked examples that introduce the techniques to the novice user. The book is structured in two main parts. The first part is organized around a flow that introduces readers to Model Driven Engineering (MDE) concepts and technologies in a pragmatic manner. It starts with definitions of modeling and MDE, and then moves into a deeper discussion of how to express the knowledge of particular domains using modeling languages to ease the development of systems in the domains. The second part of the book presents examples of applications of the model-driven approach to different types of software systems. In addition to illustrating the unification power of models in different software domains, this part demonstrates applicability from different starting points (language, business knowledge, standard, etc.) and focuses on different software engineering activities such as Requirement Engineering, Analysis, Design, Implementation, and V&V. Each chapter concludes with a small set of exercises to help the reader reflect on what was learned or to dig further into the examples. Many examples of models and code snippets are presented throughout the book, and a supplemental website features all of the models and programs (and their associated tooling) discussed in the book.
Software engineering research has di?erent pro?les in Europe and North Am- ica.WhileinNorthAmericathere isalotofknowhowinthepractical,technical, and organizational aspects of software engineering, in Europe the work conc- trates more on foundations and formal modeling of software engineering issues. Bothapproacheshavetheirindividualstrengthsandweaknesses. Researchdriven solelyby practice insoftware engineering runs in the danger ofdevelopinginto a shallow ?eld failing to ?nd a solid scienti?c basis or to contribute substantially to the progress in software engineering. Work concentrating on formal aspects alone is in the danger of becoming too theoretical and isolated from practice so that any transfer into practical application will fail. Substantial progress in software engineering can be achieved, however, by bringing together pragmatic and foundational work in software engineering - search. This can provide a step towards a common scienti?c basis for software engineering that allows us to integrate the various research results, leading to fruitful synergetic e?ects. It will also help to identify critical research paths and to develop an adequate paradigm for the scienti?c discipline of software en- neering. In software and systems engineering it is necessary to distinguish the en- mous di?erence between the dynamics in development we refer to and the l- ited scope assumed by manyof today’ssoftware managerswho stilluse outdated techniques. Many of the unsolved problems associated with the old techniques are symptoms of a lack of formalization and a lack of automation support. It was the goal of this workshop to bring together experts from science and practice in software and systems engineering from North America and Europe.
This book introduces model-driven approaches in software development using a pragmatic presentation that includes foundational sidebars and industrial experiences. Suitable as a textbook for master students in software engineering, it is also an ideal reference for professional software engineers. The book leverages experiences from the modeling community to provide a broader view of the use of models in software development. It fills a gap in the literature by providing a body of knowledge representative of the recent evolution in the Model Driven Engineering domain.
This book presents a set of principles for designing frameworks and practical techniques for adapting them efficiently. It also describes how UML may be used to model frameworks and their applications and proposes a set of extensions to the UML which apply specifically to framework design.
This open access book provides an overview of the dissertations of the five nominees for the Ernst Denert Award for Software Engineering in 2019. The prize, kindly sponsored by the Gerlind & Ernst Denert Stiftung, is awarded for excellent work within the discipline of Software Engineering, which includes methods, tools and procedures for better and efficient development of high quality software. An essential requirement for the nominated work is its applicability and usability in industrial practice. The book contains five papers describing the works by Sebastian Baltes (U Trier) on Software Developers'Work Habits and Expertise, Timo Greifenberg's thesis on Artefaktbasierte Analyse modellgetriebener Softwareentwicklungsprojekte, Marco Konersmann's (U Duisburg-Essen) work on Explicitly Integrated Architecture, Marija Selakovic's (TU Darmstadt) research about Actionable Program Analyses for Improving Software Performance, and Johannes Späth's (Paderborn U) thesis on Synchronized Pushdown Systems for Pointer and Data-Flow Analysis - which actually won the award. The chapters describe key findings of the respective works, show their relevance and applicability to practice and industrial software engineering projects, and provide additional information and findings that have only been discovered afterwards, e.g. when applying the results in industry. This way, the book is not only interesting to other researchers, but also to industrial software professionals who would like to learn about the application of state-of-the-art methods in their daily work.
Annotation. This book constitutes the refereed proceedings of the 36th Conference on Current Trends in Theory and Practice of Computer Science, SOFSEM 2010, held in Špindleruv Ml & frac12;n, Czech Republic, in January 2009. The 53 revised full papers, presented together with 11 invited contributions, were carefully reviewed and selected from 134 submissions. SOFSEM 2010 was organized around the following four tracks: Foundations of computer science, principles of software construction, Data, knowledge, and intelligent systems and Web science.
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.