Students can be accepted into the course if they are knowledgeable about two or more of the following topics:
• Software engineering
• Repository mining
• Process mining
• Web scraping and spiders
• Open source development / inner source development
Any student with a bachelor’s degree in information science or computer science should be able to follow the course.
In the course software ecosystems we explore the complex relationships between organizations and individuals that collaboratively serve a market for software. From highly active open source communities to overcrowded app stores; we study interactions and exchanges between actors as can be observed in behavior, source code, and APIs. These interactions provide insights into strategic decisions that are made to influence software ecosystem health on both systemic network level and actor level. We dive into the management decisions made by the mobile giants such as Apple and Google, but also into how to evaluate software health of small open source projects by mining software repositories.
The course is a hybrid seminar and course. Students will develop their own research project, which can range from mining a series of repositories to interviewing mobile developers, while also being rapidly introduced into the exciting domain of software ecosystems. The course is assessed through a project and a non-traditional open book exam, where the case of a software ecosystem strategy is questioned and evaluated.
The goals of this course are:
• To get students intimately familiar with the theory of software ecosystems, specifically management, modeling, and simulation
• To get students acquainted with the academic writing and publication process
• To contribute to the collection of knowledge on software ecosystems
• To show students the cutting edge of science in a field and to provoke thought about future developments
Software vendors no longer function as independent units, where all customers are end-users, where there are no suppliers, and where all software is built in-house. Instead, software vendors have become networked, i.e., software vendors are depending on (communities of) service and software component suppliers, value-added-resellers, and pro-active customers who build and share customizations. Software vendors now have to consider their strategic role in the software ecosystem to survive. With their role in the software ecosystem in mind, software vendors can become more successful by opening up their business, devising new business models, forging long-lasting relationships with partnership networks, and overcoming technical and social challenges that are part of these innovations.
A software ecosystem is a set of actors functioning as a unit and interacting with a shared market for software and services, together with the relationships among them. These relationships are frequently underpinned by a common technological platform or market and operate through the exchange of information, resources and artifacts. Several challenges lie in the research area of software ecosystems. To begin with, insightful and scalable modeling techniques for software ecosystems currently do not exist. Furthermore, methods are required that enable software vendors to transform their legacy architectures to accommodate reusability of internal common artifacts and external components and services. Finally, methods are required that support software vendors in choosing survival strategies in software ecosystems.
Software ecosystems introduce many new research challenges on both a technical and a business level. In a traditionally closed market, software vendors are now facing the challenge of opening up their product interfaces, their knowledge bases, and in some cases even their software. Software vendors must decide how open their products and interfaces are, new business models need to be developed, and new standards for component and service reuse are required. These challenges have been identified but have hardly been picked up by the research community.
The course is largely dependent on student participation. Some example topics for student projects are:
- Strategic advice for software vendors
- A software ecosystem analysis method
- Software ecosystem models
- API related topics: design, development, marketing
- Software ecosystem modeling
- Software ecosystem practices and experience
- Software business models
- Product software and software licensing
- Communities of practice and software reuse
- Economic impact of software ecosystems
- Software ecosystem creation
- Keystone and niche player survival strategy
- Architectural implications of reusability
- Formal modeling of business models
- API development
- Publishing APIs
- Software product management
- Software product lines
- Software development communities
- Software ecosystem orchestration
- Market-specific domain engineering
- Open source software ecosystems
- Virtualized software enterprises
- API compatibility over subsequent releases
- API hubs
The schedule can be found on the LIACS website
Detailed table of contents can be found in blackboard.
Mode of instruction
The course consists of:
• 5 lecture sessions
• Several group meetings
• Paper writing
• Peer reviews
• Reverse the classroom techniques (students create the exam)
• An exam
The course load is 6EC.
Assignment # Deliverable Weight Group or individual
0 Team Assignment 0 Group
1 Topic selection 0 Group
2 Paper abstract, research method, and outline (3-5 pages) 0,1 Group
3 Peer review of paper idea 0,1 Individual
4 Present your research plan 0 Group
5 Draft paper submission in EasyChair 0,3 Group
6 Final presentations 0
7 Exam questions 0,05 Individual
8 Paper review 0,05 Individual
9 Camera ready 0,1 Group
10 Exam 0,3 Individual
Please read the full assignment descriptions in this document.
• Students need to pass assignments 2, 5, and 9 with a grade 6 or higher.
• All other assignments can be passed with a grade 4 or higher.
• Assignments with no weight still need to be fulfilled for the course.
• Students need to achieve a grade 5 or higher on the exam to pass the course.
The required book for this course is:
Jansen, S., Cusumano, M., Brinkkemper, S. Software Ecosystems: Analyzing and Managing Business Networks in the Software Industry. Edward Elgar Publishers, 350 pages.
It is recommended that you get at least one of the following two books:
The Keystone Advantage: What the New Dynamics of Business Ecosystems Mean for Strategy, Innovation, and Sustainability - Marco Iansiti, Roy Levien - Harvard Business School Press - 2004
Software Ecosystem: Understanding an Indispensable Technology and Industry - David G. Messerschmitt, Clemens Szyperski - The MIT Press - 2005
Furthermore it is recommended to at least read the following papers in preparation:
Bosch, J. (2009). From Software Product Lines to Software Ecosystems. 13th International Software Product Line Conference (SPLC 2009)
Jansen, S., Brinkkemper, S., Finkelstein, A. (2009). A Sense of Community: A Research Agenda for Software Ecosystems. 31st International Conference on Software Engineering, New and Emerging Research Track.
You have to sign up for classes and examinations (including resits) in uSis. Check this [link]( https://www.student.universiteitleiden.nl/en/administrative-matters/registration--de-registration/course-and-exam-enrolment/course-and-exam-enrolment/science/ict-in-business-and-the-public-sector-msc?cf=science&cd=ict-in-business-and-the-public-sector-msc#classnumbers msc 1718) for more information and activity codes.
There is only limited capacity for external students. Please contact the programme Co-ordinator
Programme Co-ordinator: ms. Esme Caubo