About
161
Publications
95,039
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
31,341
Citations
Publications
Publications (161)
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The first course in software engineering is the most critical. Education must start from an understanding of the heart of software development, from familiar ground that is common to all software development endeavors. This book is an in-depth introduction to software engineering that uses a systematic, universal kernel to teach the essential eleme...
The Industrial Internet Consortium predicts the Internet of Things (IoT) will become the third technological revolution after the Industrial Revolution and the Internet Revolution. Its impact across all industries and businesses can hardly be imagined. Existing software (business, telecom, aerospace, defense, among others) will likely be modified o...
The Industrial Internet Consortium predicts the IoT (Internet of Things) will become the third technological revolution after the Industrial Revolution and the Internet Revolution. Its impact across all industries and businesses can hardly be imagined. Existing software (business, telecom, aerospace, defense, etc.) is expected to be modified or red...
IN HIS PAPER entitled "Industrial Scale Agile,"⁹ Roly Stimson characterizes industrial-scale agile as: "Agile at any scale." "Agile as the rule, not the exception." "Agile sustainably, forever," not just as an unrepeatable "one-off".
Essence is instrumental in moving software development toward a true engineering discipline.
Use cases have been around for almost 30 years as a requirements approach and have been part of the inspiration for more recent techniques such as user stories. Now the inspiration has flown in the other direction. Use-Case 2.0 is the new generation of use-case-driven development-light, agile.
Use cases have been around for almost 30 years as a requirements approach and have been part of the inspiration for more-recent techniques such as user stories. Now the inspiration has flown in the other direction. Use-Case 2.0 is the new generation of use-case-driven development-light, agile, and lean-inspired by user stories and the agile methodo...
The special issue of Science of Computer Programming focuses on the theme of general theories of software engineering. A general theory aims at answering the big questions in its field. Ideally, it should be able to explain and predict important phenomena in the field. A general theory of electromagnetism should help readers to understand why one t...
The kernel-based Essence approach to software engineering truly represents a profound change of viewpoint for the software engineering community. Essence can, indeed, be considered a paradigm shift in two ways. First, those steeped in the old school of software engineering have to start thinking about the true engineering of software specifically,...
Software Engineering Method and Theory (SEMAT) is a collaborative initiative whose mission is to provide software engineering with a foundation, based on a kernel of practice-independent elements, supported by a language that allows best practices to be described in as light or as detailed a way as needed. These can then be selected by teams for th...
Becoming better, faster, cheaper, and happier
Even though the software engineering curriculum has been designed many times, some problems still remain: the gap between academy and industry, the failure to continuously update the courses, the difficulties for combining theory and practice, and the lack of a sound, widely accepted theoretical basis. The SEMAT (Software Engineering Methods and Th...
Many different initiatives are under way to improve the ways in which software is developed. The most popular and prevalent of these is the agile movement. One of the newer kids on the block is the Software Engineering Method and Theory (SEMAT) initiative. The agile movement has provided a new way of looking at the day-to-day activities of software...
Most academic disciplines emphasize the importance of their general theories. Examples of well-known general theories include the Big Bang theory, Maxwell's equations, the theory of the cell, the theory of evolution, and the theory of demand and supply. Less known to the wider audience, but established within their respective fields, are theories w...
software knows it is a complex and risky business, and its participants are always on the lookout for new ideas that will lead to better software. Fortunately, software engineering is still a young and growing profession that sees innovations and improvements in best practices every year. Just look, for example, at the improvements and benefits tha...
Software engineering is a practical engineering discipline without scientific ambitions where rules of thumb and guidelines assume the role of theory. Most of the theories are casual, proposed by the authors but rarely subjected to extended studies, and they explain only a limited set of phenomena. Furthermore, most of these theories aren't subject...
A thinking framework in the form of an actionable kernel
Software engineering is gravely hampered by immature practices. Specific problems include: The prevalence of fads more typical of the fashion industry than an engineering discipline; a huge number of methods and method variants, with differences little understood and artificially magnified; the lack of credible experimental evaluation and validatio...
The new software engineering initiative, Semat, is in the process of developing a kernel for software engineering that stands on a solid theoretical basis. So far, it has suggested a set of kernel elements for software engineering and basic language constructs for defining the elements and their usage. This paper describes a session during which Se...
The purpose of writing this Three Year Vision paper is threefold. Firstly, it briefly recaps the progress Semat has made thus far; secondly, it lays out the future directions for people working actively within the Semat community; thirdly, it provides the background for seeking funding support from agencies, such as the European Community and the l...
Semat and its large supporter base believes that software engineering is gravely hampered by immature practices. Specific
problems include: The prevalence of fads more typical of the fashion industry than an engineering discipline, lack of a sound,
widely accepted theoretical basis, a huge number of methods and method variants, with differences lit...
One of the most popular buzzwords in software development is agile. Today everyone wants to be agile. That is good! However,
being agile is not enough.You also need to be smart. What does that mean? Smart is about being agile, but it is also about
doing the right things, the right way. You can become smarter through training. However, without exper...
Summary form only given. One of the most popular buzzwords in software development is agile. Today everyone wants to be agile. That is good! However, being agile is not enough. For several years Dr. Ivar Jacobson has expressed that the most important character you need to have to be a great software developer is to be smart. What does that mean? Mo...
All modern software development processes try to help project teams conduct their work. While there are some important differences between them, the commonalities are far greater - and understandably, since the end goal of them all is to produce working software quickly and effectively. Thus, it doesn't matter which process you adopt as long as it...
The innovations that are needed to make a practice-based approach work, innovations related to the way the practices are collected, presented and applied, are discussed. Cards are used to describe practices, to plan projects and to guide in software development process. The cards present a concise summary of the most important information that is n...
Several software developers have adopted an alternative strategy of practices, to overcome the problems associated with software-development processes. Some of these problems include, denied commonality, incompleteness, knowledge acquisition, and other problematic processes. These practices offer several benefits over the processes, including allow...
Various problems associated with the software development process and the relevance of EssWork in realizing their investment in learning, developing, and documenting best practices are presented. A new approach for the software development process called 'EssWork' integrates certain practices, which are composed and integrated into their developmen...
The Essential Unified Process (EssUP) is a new process that is designed to improve the development of modern software. EssUP is a fresh start that cautiously integrates successful practices from the unified process camp, the agile methods camp, and the process improvement camp, each contributing different capabilities. It embodies the idea of Seper...
Everybody recognizes the need for processes to improve how software is developed. Everybody recognizes the need for agility, flexibility, and adaptability. And everybody agrees on the need for quality. But many of us find that existing processes are cumbersome, constraining, and a hindrance to our creative juices.
Aspect-oriented software development (AOSD) has a lot of interest in the research community. It has also found early adopters in application development and middleware. This panel discusses the potential expansion and use of AOP into mainstream software development.This question is not just directed to the aspect research community, but also to pra...
To my knowledge, no other software engineering language construct as significant as use cases has been adopted so quickly and so widely among practitioners. I believe this is because use cases play a role in so many different aspects of software engineering.
Although I first used the term in 1986, I had actually been working on and evolving the con...
“A refreshingly new approach toward improving use-case modeling by fortifying it with aspect orientation.” -Ramnivas Laddad, author of AspectJ in Action “Since the 1980s, use cases have been a way to bring users into software design, but translating use cases into software has been an art, at best, because user goods often don't respect code bounda...
Aspect oriented programming (AOP) is "the missing link" to allow you slice a system, use case by use case, over "all" lifecycle models. This will dramatically change the way complex systems are understood, how new features are added to systems, and how systems are implemented and tested. AOP will also add a new dimension of reuse to software develo...
Model Driven Architecture (MDA) is a technology that has been in the process of evolution for many years. Today, many vendors are now producing products that support MDA. We are hearing more and more success stories that indicate that this technology is the "real deal". But, with the failed promises of CASE in the late 1980's, many people still hav...
This panel (part of the 2003 Onward! program) will discuss libraries, repositories, and reuse. While there is so much hype and noise about repositories and metadata - so little understood about how hard it is to design for reuse and to encourage systematic reuse.
This panel (part of the 2003 Onward! program) will discuss libraries, repositories, and reuse. While there is so much hype and noise about repositories and metadata - so little understood about how hard it is to design for reuse and to encourage systematic reuse.
Model Driven Architecture (MDA) is a technology that has been in the process of evolution for many years. Today, many vendors are now producing products that support MDA. We are hearing more and more success stories that indicate that this technology is the "real deal". But, with the failed promises of CASE in the late 1980's, many people still hav...
From the Book:At one time, the title for this book was Executable UML For Model-Driven Architectures (MDA) Using Aspect-Oriented (AO) Techniques with Extreme Programming (XP), Agile Modeling (AM), and Other Agile Alliance (AA) Processes as an Instance of the Rational Unified Process (RUP). Eventually, we settled instead on Executable UML: A Foundat...
The Educators' Symposium is a unique forum for educators from both academia and industry who have a vested interest in OO education and training. The Educators' Symposium facilitates the exchange of ideas in a number of ways, including featured talks ...
One of the claimed advantages of object-oriented (OO) development is that developers can use objects in a uniform modeling approach throughout the process. In particular, they can coherently apply the same notation for representing these objects and their relations in both analysis and design. Given this, the claims by many OO methodologists (see,...
The Unified Software Development Process, a culmination of more than 30 years of experience is a potential solution to the software problem. This approach is unique in that it is use-case driven, architecture-centric, and iterative and incremental. The Unified Process provides guidance to the order of a team's activities, directs the tasks of indiv...
For nearly ten years, the Unified Modeling Language (UML) has been the industry standard for visualizing, specifying, constructing, and documenting the artifacts of a software-intensive system. As the de facto standard modeling language, the UML facilitates communication and reduces confusion among project stakeholders. The recent standardization o...
Software reuse technology is ready now. In fact, enough companies
have demonstrated substantial improvement-often as much as 90% reuse-to
assure that it can be achieved. If we take 15% as an approximation of
the current rate of “passive” reuse that individual
engineers achieve anyway, and 90% as the figure that more than a few
organizations are ach...
An abstract is not available.
An abstract is not available.