Ivar Jacobson - Academia.edu (original) (raw)

Papers by Ivar Jacobson

Research paper thumbnail of The unified modelling language user guide" addison-wesley

Research paper thumbnail of Escaping Method Prison – On the Road to Real Software Engineering

The Essence of Software Engineering, 2017

Background The world has developed software for more than 50 years. Software has changed virtuall... more Background The world has developed software for more than 50 years. Software has changed virtually every aspect of our lives so we cannot live without it. Thus, the software industry as a whole has been very successful. We could choose to be happy and continue doing what we are doing. However, under the surface it is not as beautiful as it seams: too many failed endeavors, quality in all areas is generally too low, costs are too high, speed is too low, etc. Obviously, we need to have better ways of working or-which is the same-we need better methods. In this article a method provides guidance for all the things you need to do when developing software. These things are technical, such as work with requirements, work with code and conduct testing, or people related, such as work setting up a well-collaborating team and an efficient project, as well as improving the capability of the people and collecting metrics. The interesting discovery we made in 2003 was that even if the number of methods in the world is huge it seemed that all these methods were just compositions of a much smaller collection of 'mini-methods', maybe a few hundred of such (continued) This article had been published in 2017 at www.infoq.

Research paper thumbnail of Use Cases and Aspects –

Vol. 2, No. 4, July-August 2003 Aspect oriented programming (AOP) is “the missing link ” to allow... more Vol. 2, No. 4, July-August 2003 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 development. And it is here to be harvested—now. 1

Research paper thumbnail of Invited Article a First Course in Software Engineering Methods and Theory

How to cite Complete issue More information about this article Journal's homepage in redalyc... more How to cite Complete issue More information about this article Journal's homepage in redalyc.org Scientific Information System

Research paper thumbnail of The kernel of software engineering

The Essentials of Modern Software Engineering: Free the Practices from the Method Prisons!, 2019

Research paper thumbnail of The Essence of Software Engineering: Applying the SEMAT Kernel

SEMAT (Software Engineering Methods and Theory) is an international initiative designed to identi... more SEMAT (Software Engineering Methods and Theory) is an international initiative designed to identify a common ground, or universal standard, for software engineering. It is supported by some of the most distinguished contributors to the field. Creating a simple language to describe methods and practices, the SEMAT team expresses this common ground as a kernelor frameworkof elements essential to all software development. The Essence of Software Engineering introduces this kernel and shows how to apply it when developing software and improving a teams way of working. It is a book for software professionals, not methodologists. Its usefulness to development team members, who need to evaluate and choose the best practices for their work, goes well beyond the description or application of any single method. Software is both a craft and a science, both a work of passion and a work of principle. Writing good software requires both wild flights of imagination and creativity, as well as the h...

Research paper thumbnail of Running with user story lite

The Essentials of Modern Software Engineering: Free the Practices from the Method Prisons!, 2019

Research paper thumbnail of Semat — Three Year Vision 1

The purpose of writing this Three Year Vision paper is threefold. Firstly, it briefly recaps the ... more 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 like. Funding support is necessary to sustain the ongoing activities of Semat and its growth into a broader community effort, as most people working within Semat are volunteers. As such, the paper may be both too much and too little for the wider supporter base. However, we intend to make our work fully transparent, hence, we publish it widely. We seek feedback and comments from support! ers and signatories in order to improve the vision. In this context, other companion papers are being written to better address the specific needs for the practitioners, the industry and the academia.

Research paper thumbnail of Running with Scrum

The Essentials of Modern Software Engineering: Free the Practices from the Method Prisons!, 2019

Research paper thumbnail of The Road to the Unified Software Development Process

Research paper thumbnail of Industrial Scale Agile - from Craft to Engineering

Queue, 2016

There are many, many ways to illustrate how fragile IT investments can be. You just have to look ... more There are many, many ways to illustrate how fragile IT investments can be. You just have to look at the way that, even after huge investments in education and coaching, many organizations are struggling to broaden their agile adoption to the whole of their organization - or at the way other organizations are struggling to maintain the momentum of their agile adoptions as their teams change and their systems mature.

Research paper thumbnail of Object-oriented software engineering: a

Research paper thumbnail of Reengineering of old systems to an object-oriented architecture

Conference proceedings on Object-oriented programming systems, languages, and applications - OOPSLA '91, 1991

Most of our present-day information systems have been in use for a long time. They have been deve... more Most of our present-day information systems have been in use for a long time. They have been developed using the system development methods, programming tools, data base handlers, etc. that were available when the development work started. Even if the systems are adapted to changed requirements from the surrounding world, the basic structure and the original technical and methodological ties have been retained. Our goal is to show how an object-oriented development method can be used to gradually modernize an old system, i.e re-engineer the system. We do this by showing how three typical cases of re-engineering are related to object-oriented development. The technique is based on experiences from real projects. The basis of our technology is system development using object-oriented technique. The technology implies that occurrences from the application domain are modelled as objects and associations between objects. The resulting system model will be used as a mapping between the occurrences of the application domain and programming elements in the existing system. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission.

Research paper thumbnail of Object-oriented development in an industrial environment

ACM SIGPLAN Notices, 1987

Object-oriented programming is a promising approach to the industrialization of the software deve... more Object-oriented programming is a promising approach to the industrialization of the software development process. However, it has not yet been incorporated in a development method for large systems. The approaches taken are merely extensions of well-known techniques when 'programming in the small' and do not stand on the firm experience of existing developments methods for large systems. One such technique called block design has been used within the telecommunication industry and relies on a similar paradigm as object-oriented programming. The two techniques together with a third technique, conceptual modeling used for requirement modeling of information systems, have been unified into a method for the development of large systems.

Research paper thumbnail of Language support for changeable large real time systems

ACM SIGPLAN Notices, 1986

A set of concepts for modeling large real time systems is discussed informally. The concepts supp... more A set of concepts for modeling large real time systems is discussed informally. The concepts support the design of centralized as well as distributed systems. They are object oriented in that they correspond to entities of the 'real world', and they are 'change oriented' in that they support not only the first development stage of a system but also its continuous change and evolution. In particularly, the concepts give a promising solution to 'on the fly' changes of existing, active entities.

Research paper thumbnail of What They Dont Teach You about Software at School: Be Smart!

Lecture Notes in Business Information Processing, 2009

One of the most popular buzzwords in software development is agile. Today everyone wants to be ag... more 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 experience your alternatives are too many and only a few of them are smart. Experience is of course something you can get sooner or later, but it takes time if you must learn by your own mistakes. This is where the utilization of “smart-cases” becomes essential. In this talk, we will describe a large number of smart-cases when developing software. It is about working with people, teams, projects, requirement, architecture, modeling, documentation, testing, process, and more.

Research paper thumbnail of The Unified Modeling Language

Research paper thumbnail of Panel - Which Method is Best?

Conference on Object-Oriented Programming Systems, Languages, and Applications, 1993

Research paper thumbnail of “methodology standards: help or hindrance?” held at OOPSlA 94 October 1994, Portland, Oregon

Addendum to the proceedings on Object-oriented programming systems, languages, and applications (Addendum) - OOPSLA '94, 1994

The proliferation of methodologies has prompted some to call for standards in this area. The memb... more The proliferation of methodologies has prompted some to call for standards in this area. The members of this panel, all prominent methodologists, stated their positions on this topic and then answered questions from the floor.

Research paper thumbnail of Methodology standards

Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications - OOPSLA '94, 1994

Research paper thumbnail of The unified modelling language user guide" addison-wesley

Research paper thumbnail of Escaping Method Prison – On the Road to Real Software Engineering

The Essence of Software Engineering, 2017

Background The world has developed software for more than 50 years. Software has changed virtuall... more Background The world has developed software for more than 50 years. Software has changed virtually every aspect of our lives so we cannot live without it. Thus, the software industry as a whole has been very successful. We could choose to be happy and continue doing what we are doing. However, under the surface it is not as beautiful as it seams: too many failed endeavors, quality in all areas is generally too low, costs are too high, speed is too low, etc. Obviously, we need to have better ways of working or-which is the same-we need better methods. In this article a method provides guidance for all the things you need to do when developing software. These things are technical, such as work with requirements, work with code and conduct testing, or people related, such as work setting up a well-collaborating team and an efficient project, as well as improving the capability of the people and collecting metrics. The interesting discovery we made in 2003 was that even if the number of methods in the world is huge it seemed that all these methods were just compositions of a much smaller collection of 'mini-methods', maybe a few hundred of such (continued) This article had been published in 2017 at www.infoq.

Research paper thumbnail of Use Cases and Aspects –

Vol. 2, No. 4, July-August 2003 Aspect oriented programming (AOP) is “the missing link ” to allow... more Vol. 2, No. 4, July-August 2003 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 development. And it is here to be harvested—now. 1

Research paper thumbnail of Invited Article a First Course in Software Engineering Methods and Theory

How to cite Complete issue More information about this article Journal's homepage in redalyc... more How to cite Complete issue More information about this article Journal's homepage in redalyc.org Scientific Information System

Research paper thumbnail of The kernel of software engineering

The Essentials of Modern Software Engineering: Free the Practices from the Method Prisons!, 2019

Research paper thumbnail of The Essence of Software Engineering: Applying the SEMAT Kernel

SEMAT (Software Engineering Methods and Theory) is an international initiative designed to identi... more SEMAT (Software Engineering Methods and Theory) is an international initiative designed to identify a common ground, or universal standard, for software engineering. It is supported by some of the most distinguished contributors to the field. Creating a simple language to describe methods and practices, the SEMAT team expresses this common ground as a kernelor frameworkof elements essential to all software development. The Essence of Software Engineering introduces this kernel and shows how to apply it when developing software and improving a teams way of working. It is a book for software professionals, not methodologists. Its usefulness to development team members, who need to evaluate and choose the best practices for their work, goes well beyond the description or application of any single method. Software is both a craft and a science, both a work of passion and a work of principle. Writing good software requires both wild flights of imagination and creativity, as well as the h...

Research paper thumbnail of Running with user story lite

The Essentials of Modern Software Engineering: Free the Practices from the Method Prisons!, 2019

Research paper thumbnail of Semat — Three Year Vision 1

The purpose of writing this Three Year Vision paper is threefold. Firstly, it briefly recaps the ... more 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 like. Funding support is necessary to sustain the ongoing activities of Semat and its growth into a broader community effort, as most people working within Semat are volunteers. As such, the paper may be both too much and too little for the wider supporter base. However, we intend to make our work fully transparent, hence, we publish it widely. We seek feedback and comments from support! ers and signatories in order to improve the vision. In this context, other companion papers are being written to better address the specific needs for the practitioners, the industry and the academia.

Research paper thumbnail of Running with Scrum

The Essentials of Modern Software Engineering: Free the Practices from the Method Prisons!, 2019

Research paper thumbnail of The Road to the Unified Software Development Process

Research paper thumbnail of Industrial Scale Agile - from Craft to Engineering

Queue, 2016

There are many, many ways to illustrate how fragile IT investments can be. You just have to look ... more There are many, many ways to illustrate how fragile IT investments can be. You just have to look at the way that, even after huge investments in education and coaching, many organizations are struggling to broaden their agile adoption to the whole of their organization - or at the way other organizations are struggling to maintain the momentum of their agile adoptions as their teams change and their systems mature.

Research paper thumbnail of Object-oriented software engineering: a

Research paper thumbnail of Reengineering of old systems to an object-oriented architecture

Conference proceedings on Object-oriented programming systems, languages, and applications - OOPSLA '91, 1991

Most of our present-day information systems have been in use for a long time. They have been deve... more Most of our present-day information systems have been in use for a long time. They have been developed using the system development methods, programming tools, data base handlers, etc. that were available when the development work started. Even if the systems are adapted to changed requirements from the surrounding world, the basic structure and the original technical and methodological ties have been retained. Our goal is to show how an object-oriented development method can be used to gradually modernize an old system, i.e re-engineer the system. We do this by showing how three typical cases of re-engineering are related to object-oriented development. The technique is based on experiences from real projects. The basis of our technology is system development using object-oriented technique. The technology implies that occurrences from the application domain are modelled as objects and associations between objects. The resulting system model will be used as a mapping between the occurrences of the application domain and programming elements in the existing system. Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission.

Research paper thumbnail of Object-oriented development in an industrial environment

ACM SIGPLAN Notices, 1987

Object-oriented programming is a promising approach to the industrialization of the software deve... more Object-oriented programming is a promising approach to the industrialization of the software development process. However, it has not yet been incorporated in a development method for large systems. The approaches taken are merely extensions of well-known techniques when 'programming in the small' and do not stand on the firm experience of existing developments methods for large systems. One such technique called block design has been used within the telecommunication industry and relies on a similar paradigm as object-oriented programming. The two techniques together with a third technique, conceptual modeling used for requirement modeling of information systems, have been unified into a method for the development of large systems.

Research paper thumbnail of Language support for changeable large real time systems

ACM SIGPLAN Notices, 1986

A set of concepts for modeling large real time systems is discussed informally. The concepts supp... more A set of concepts for modeling large real time systems is discussed informally. The concepts support the design of centralized as well as distributed systems. They are object oriented in that they correspond to entities of the 'real world', and they are 'change oriented' in that they support not only the first development stage of a system but also its continuous change and evolution. In particularly, the concepts give a promising solution to 'on the fly' changes of existing, active entities.

Research paper thumbnail of What They Dont Teach You about Software at School: Be Smart!

Lecture Notes in Business Information Processing, 2009

One of the most popular buzzwords in software development is agile. Today everyone wants to be ag... more 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 experience your alternatives are too many and only a few of them are smart. Experience is of course something you can get sooner or later, but it takes time if you must learn by your own mistakes. This is where the utilization of “smart-cases” becomes essential. In this talk, we will describe a large number of smart-cases when developing software. It is about working with people, teams, projects, requirement, architecture, modeling, documentation, testing, process, and more.

Research paper thumbnail of The Unified Modeling Language

Research paper thumbnail of Panel - Which Method is Best?

Conference on Object-Oriented Programming Systems, Languages, and Applications, 1993

Research paper thumbnail of “methodology standards: help or hindrance?” held at OOPSlA 94 October 1994, Portland, Oregon

Addendum to the proceedings on Object-oriented programming systems, languages, and applications (Addendum) - OOPSLA '94, 1994

The proliferation of methodologies has prompted some to call for standards in this area. The memb... more The proliferation of methodologies has prompted some to call for standards in this area. The members of this panel, all prominent methodologists, stated their positions on this topic and then answered questions from the floor.

Research paper thumbnail of Methodology standards

Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications - OOPSLA '94, 1994