Software ecosystem

Last updated

Software Ecosystem is a book written by David G. Messerschmitt and Clemens Szyperski that explains the essence and effects of a "software ecosystem", defined as a set of businesses functioning as a unit and interacting with a shared market for software and services, together with relationships among them. These relationships are frequently underpinned by a common technological platform and operate through the exchange of information, resources, and artifacts. [1] [2] [3] [4] [5]

Contents

The term in software analysis

In the context of software analysis, the term software ecosystem is defined by Lungu [6] as “a collection of software projects, which are developed and co-evolve in the same environment”. The environment can be organizational (a company), social (an open-source community), or technical (the Ruby ecosystem). The ecosystem metaphor is used in order to denote an analysis which takes into account multiple software systems. [7] The most frequent of such analyses is static analysis of the source code of the component systems of the ecosystem.

Related Research Articles

<span class="mw-page-title-main">Software architecture</span> High level structures of a software system

Software architecture is the set of structures needed to reason about a software system and the discipline of creating such structures and systems. Each structure comprises software elements, relations among them, and properties of both elements and relations.

<span class="mw-page-title-main">Eclipse Foundation</span> Belgian international nonprofit association (AISBL)

The Eclipse Foundation AISBL is an independent, Europe-based not-for-profit corporation that acts as a steward of the Eclipse open source software development community, with legal jurisdiction in the European Union. It is an organization supported by over 350 members, and represents the world's largest sponsored collection of Open Source projects and developers. The Foundation focuses on key services such as intellectual property (IP) management, ecosystem development, and IT infrastructure.

Enterprise architecture (EA) is a business function concerned with the structures and behaviors of a business, especially business roles and processes that create and use business data. The international definition according to the Federation of Enterprise Architecture Professional Organizations is "a well-defined practice for conducting enterprise analysis, design, planning, and implementation, using a comprehensive approach at all times, for the successful development and execution of strategy. Enterprise architecture applies architecture principles and practices to guide organizations through the business, information, process, and technology changes necessary to execute their strategies. These practices utilize the various aspects of an enterprise to identify, motivate, and achieve these changes."

<span class="mw-page-title-main">Meta-process modeling</span>

Meta-process modeling is a type of metamodeling used in software engineering and systems engineering for the analysis and construction of models applicable and useful to some predefined problems.

Several methods have been created to define an assessment process for free/open-source software. Some focus on some aspects like the maturity, the durability and the strategy of the organisation around the open-source project itself. Other methodologies add functional aspects to the assessment process.

Rigi is an interactive graph editor tool for software reverse engineering using the white box method, i.e. necessitating source code, thus it is mainly aimed at program comprehension. Rigi is distributed by its main author, Hausi A. Müller and the Rigi research group at the University of Victoria.

David G. Messerschmitt is an engineer and professor emeritus at the University of California, Berkeley in the Department of Electrical Engineering and Computer Sciences in the UC Berkeley College of Engineering. He retired from UC Berkeley in 2005. At present he is conducting research at Berkeley, is a visiting professor in the Software Business Laboratory at the Helsinki University of Technology, and is doing research on interstellar communications at the SETI Institute. Messerschmitt also serves on the Advisory Council of METI.

In software engineering, software aging is the tendency for software to fail or cause a system failure after running continuously for a certain time, or because of ongoing changes in systems surrounding the software. Software aging has several causes, including the inability of old software to adapt to changing needs or changing technology platforms, and the tendency of software patches to introduce further errors. As the software gets older it becomes less well-suited to its purpose and will eventually stop functioning as it should. Rebooting or reinstalling the software can act as a short-term fix. A proactive fault management method to deal with the software aging incident is software rejuvenation. This method can be classified as an environment diversity technique that usually is implemented through software rejuvenation agents (SRA).

John Krogstie is a Norwegian computer scientist, professor in information systems at the Norwegian University of Science and Technology (NTNU) in Trondheim, Norway, and an expert in the field of enterprise modelling.

Colette Rolland is a French computer scientist and Professor of Computer Science in the department of Mathematics and Informatics at the University of Paris 1 Pantheon-Sorbonne, and a leading researcher in the area of information and knowledge systems, known for her work on meta-modeling, particularly goal modelling and situational method engineering.

Software Business is the commercial activity of the software industry, aimed at producing, buying and selling software products or software services. The business of software differs from other businesses, in that its main good is intangible and fixed costs of production are high while variable costs of production are close to zero.

Jacobus Nicolaas (Sjaak) Brinkkemper is a Dutch computer scientist, and Full Professor of organisation and information at the Department of Information and Computing Sciences of Utrecht University.

<span class="mw-page-title-main">Method engineering</span> Term

Method engineering in the "field of information systems is the discipline to construct new methods from existing methods". It focuses on "the design, construction and evaluation of methods, techniques and support tools for information systems development".

<span class="mw-page-title-main">Arne Sølvberg</span> Norwegian computer scientist

Arne Sølvberg is a Norwegian computer scientist, professor in computer science at the Norwegian University of Science and Technology (NTNU) in Trondheim, Norway, and an expert in the field of information modelling.

Sir Anthony Charles Wiener Finkelstein is a British engineer and computer scientist. He is the President of City, University of London. He was Chief Scientific Adviser for National Security to HM Government until 2021.

Software architecture description is the set of practices for expressing, communicating and analysing software architectures, and the result of applying such practices through a work product expressing a software architecture.

Janis Askolds Bubenko junior was a Swedish computer scientist and Professor Emeritus at the Department of Computer and Systems Science, Royal Institute of Technology and Stockholm University.

In software engineering, a microservice architecture is a variant of the service-oriented architecture structural style. It is an architectural pattern that arranges an application as a collection of loosely coupled, fine-grained services, communicating through lightweight protocols. One of its goals is that teams can develop and deploy their services independently of others. This is achieved by the reduction of several dependencies in the code base, allowing for developers to evolve their services with limited restrictions from users, and for additional complexity to be hidden from users. As a consequence, organizations are able to develop software with fast growth and size, as well as use off-the-shelf services more easily. Communication requirements are reduced. These benefits come at a cost to maintaining the decoupling. Interfaces need to be designed carefully and treated as a public API. One technique that is used is having multiple interfaces on the same service, or multiple versions of the same service, so as to not disrupt existing users of the code.

Andreas Lothe Opdahl is a Norwegian computer scientist and Professor of Information Systems Development at the University of Bergen, known for his theory about Security requirements engineering, and for with Guttorm Sindre coining the term Misuse case.

Software Intelligence is insight into the inner workings and structural condition of software assets produced by software designed to analyze database structure, software framework and source code to better understand and control complex software systems in Information Technology environments. Similarly to Business Intelligence (BI), Software Intelligence is produced by a set of software tools and techniques for the mining of data and software's inner-structure. End results are automatically produced and feed a knowledge base containing technical documentation and make it available to all to be used by business and software stakeholders to make informed decisions, measure the efficiency of software development organizations, communicate about the software health, prevent software catastrophes.

References

  1. David G. Messerschmitt; Clemens Szyperski (2003). Software Ecosystem: Understanding an Indispensable Technology and Industry. Cambridge, MA, USA: MIT Press. ISBN   978-0-262-13432-3.
  2. Slinger Jansen; Sjaak Brinkkemper; Michael A. Cusumano (2013). Software Ecosystems: Analyzing and Managing Business Networks in the Software Industry. Edward Elgar. ISBN   978-1781955628.
  3. Karl M. Popp; Ralf Meyer (2010). Profit from Software Ecosystems: Business Models, Ecosystems and Partnerships in the Software Industry. Norderstedt, Germany: BOD. ISBN   978-3-8423-0051-4.
  4. Barbara Farbey; Anthony Finkelstein (2001). "Software acquisition: A business strategy analysis" (PDF). Proceedings of the Fifth IEEE International Symposium on Requirements Engineering. IEEE. pp. 76–83. doi:10.1109/ISRE.2001.948546.
  5. Slinger Jansen; Anthony Finkelstein; Sjaak Brinkkemper (2007). "Providing transparency in the business of software: A modeling technique for software supply networks". Proceedings of the 8th IFIP Working Conference on Virtual Enterprises. IFIP. doi:10.1007/978-0-387-73798-0. hdl: 10773/9367 . ISBN   978-0-387-73797-3.
  6. Lungu, Mircea (2009). Reverse Engineering Software Ecosystems (Ph.D.). University of Lugano.
  7. "Why apps are more than icons on your mobile and they're more often software ecosystems. | Blog | Crystalnix". Archived from the original on 2013-01-20. Retrieved 2012-11-23.