You may have to register before you can download all our books and magazines, click the sign up button below to create a free account.
An engaging, illustrated collection of insights revealing the practices and principles that expert software designers use to create great software. What makes an expert software designer? It is more than experience or innate ability. Expert software designers have specific habits, learned practices, and observed principles that they apply deliberately during their design work. This book offers sixty-six insights, distilled from years of studying experts at work, that capture what successful software designers actually do to create great software. The book presents these insights in a series of two-page illustrated spreads, with the principle and a short explanatory text on one page, and a dr...
For more and more systems, software has moved from a peripheral to a central role, replacing mechanical parts and hardware and giving the product a competitive edge. Consequences of this trend are an increase in: the size of software systems, the variability in software artifacts, and the importance of software in achieving the system-level properties. Software architecture provides the necessary abstractions for managing the resulting complexity. We here introduce the Third Working IEEFlIFIP Conference on Software Architecture, WICSA3. That it is already the third such conference is in itself a clear indication that software architecture continues to be an important topic in industrial soft...
Software architecture is foundational to the development of large, practical software-intensive applications. This brand-new text covers all facets of software architecture and how it serves as the intellectual centerpiece of software development and evolution. Critically, this text focuses on supporting creation of real implemented systems. Hence the text details not only modeling techniques, but design, implementation, deployment, and system adaptation -- as well as a host of other topics -- putting the elements in context and comparing and contrasting them with one another. Rather than focusing on one method, notation, tool, or process, this new text/reference widely surveys software architecture techniques, enabling the instructor and practitioner to choose the right tool for the job at hand. Software Architecture is intended for upper-division undergraduate and graduate courses in software architecture, software design, component-based software engineering, and distributed systems; the text may also be used in introductory as well as advanced software engineering courses.
Software engineering for complex systems requires abstraction, multi-domain expertise, separation of concerns, and reuse. Domain experts rarely are software engineers and should formulate solutions using their domain's vocabulary instead of general purpose programming languages (GPLs). Successful integration of domain-specific languages (DSLs) into a software system requires a separation of concerns between domain issues and integration issues while retaining a loose enough coupling to support DSL reuse in different contexts. Component-based software engineering (CBSE) increases reuse and separation of concerns by encapsulating functionalities in components. Components are GPL artifacts, whi...
On behalf of the Organizing Committee I am pleased to present the proceedings of the 2005 Symposium on Component-Based Software Engineering (CBSE). CBSE is concerned with the development of software-intensive systems from reusable parts (components), the development of reusable parts, and system maintenance and improvement by means of component replacement and c- tomization. CBSE 2005, “Software Components at Work,” was the eighth in a series of events that promote a science and technology foundation for achieving predictable quality in software systems through the use of software component technology and its associated software engineering practices. We were fortunate to have a dedicate...
Collaboration among individuals – from users to developers – is central to modern software engineering. It takes many forms: joint activity to solve common problems, negotiation to resolve conflicts, creation of shared definitions, and both social and technical perspectives impacting all software development activity. The difficulties of collaboration are also well documented. The grand challenge is not only to ensure that developers in a team deliver effectively as individuals, but that the whole team delivers more than just the sum of its parts. The editors of this book have assembled an impressive selection of authors, who have contributed to an authoritative body of work tackling a w...
This book constitutes the thoroughly refereed post-proceedings of the 5th International Workshop on Product-Family Engineering, PFE 2003, held in Siena, Italy in November 2003. The 36 revised full papers presented together with an introductory overview and 3 keynote presentations were carefully selected during two rounds of reviewing and improvement. The papers are organized in topical sections on variation mechanisms, requirements analysis and management, product derivation, transition to family development, industrial experience, evolution, and decision and derivation.
The scientific analysis of design thinking continues to burgeon and is of considerable interest to academic scholars and design practitioners across many disciplines. This research tradition has generated a growing corpus of studies concerning how designers think during the creation of innovative products, although less focus has been given to analysing how designers think when creating less tangible deliverables such as concepts and user-insights. Analysing Design Thinking: Studies of Cross-Cultural Co-Creation brings together 28 contributions from internationally-leading academics with a shared interest in design thinking who take a close look at professional designers working on a project...
On behalf of the Organizing Committee for this event, we are glad to welcome you to IWASE 2006, the First International Workshop on Advanced Software Engineering. We hope you will enjoy the traditional Chilean hospitality and, of course, please tell us how we can make your visit a pleasant and useful experience. The goal of this Workshop is to create a new forum for researchers, professionals and educators to discuss advanced software engineering topics. A distinctive feature of this Workshop is its attempt to foster interactions between the Latin-American software engineering community and computer scientists around the world. This is an opportunity to discuss with other researchers or simp...
Deployment is the act of taking components and readying them for productive use. There may be steps following deployment, such as installation or m- agement related functions, but all decisions about how to con?gure and c- pose/assemble a component are made at the deployment stage. This is therefore the one opportunity in the software lifecycle to bridge the gap between what the component developer couldn’t know about the deployment environment and what the environment’s developer couldn’t know about the open set of depl- able components. It is not surprising that deployment as a dedicated step gains importance when addressing issues of system-wide qualities, such as coping with constr...