Menu top image

Seminars

Follow the seminar announcements by joining our Google group.

[NEW] Joe Yoder and Graziela Simone Tonin Visiting AdvanSD

January 25 and 26, 2024 (see below for the exact time and room)

The AdvanSD research group at the Institute of Informatics, Information Systems and Software Engineering FIIT STU, is proud to host a workshop and two lectures with Joe Yoder and Graziela Simone Tonin, eminent experts in agile software development software architecture, and patterns. The event will take place on January 25 and 26 at FIIT STU in Bratislava, Slovakia. Attendance is free for all, but registration is required.

REGISTER HERE

Joseph (Joe) Yoder is a research collaborator at IME/USP, president and a fellow of the Hillside Group, a group dedicated to improving the quality of software development, and is a founder and principal of the Refactory, a company focused on software architecture, design, implementation, consulting, and mentoring on all facets of software development. He is best known as an author of the "Big Ball of Mud" pattern, illuminating fallacies in software architecture. Joe is also a co-author of "A Scrum Book: The Spirit of the Game"; which includes 94 patterns and 2 pattern languages about getting the most out of Scrum. Joe teaches and mentors developers on agile and lean practices, architecture, flexible systems, clean design, patterns, refactoring, and testing. Joe has presented many tutorials and talks, arranged workshops, given keynotes, and helped organize leading international agile and technical conferences. Joe believes software is still too hard to change. Recently, the ACM recognized Joe as a Distinguished Member in the category of "Outstanding Engineering Contributions to Computing" and the Hillside Group awarded Joe as a Hillside Fellow.

Graziela Simone Tonin has worked in the technology market for over 19 years in Brazil and abroad. Ph.D. in Computer Science. She received the US IBM World Award and the Women of Value Award. Graziela mentors and worked in several national entrepreneurship and innovation programs, such as Innovativa Brasil. Ambassador of Clube Bora Fazer, an entrepreneurship community. She works as a professor at Insper Institution, a Teacher of Executive Education and customized programs for C-Levels, and also is a professor in the Computer Science and Engineering program. She led the Women In Tech Project and co-leader in the Gender Front of the Diversity Committee at Insper. Graziela leads volunteer projects throughout Brazil through the Grupo Mulheres do Brasil. In addition, she is part of a worldwide research project that analyzes initiatives aimed at women in software engineering.

How Can Organizations Close the Gender Gap?

[CHANGE] January 26 25, 2024, 10.00–11.30am, Aula Minor (lecture), [NEW] also on Webex (password: advansd)

Graziela Simone Tonin (Insper, Brazil)

The technology industry, a rapidly growing and influential sector, has made significant strides in innovation and progress. However, the underrepresentation of women in technical and leadership roles still needs to be addressed. This gender gap has far-reaching consequences, including limiting diversity in problem-solving and innovation, fostering a hostile work environment for women, and missing out on the untapped potential of the entire tech workforce.

A multifaceted approach is necessary to address this issue and build a more inclusive tech industry. For this, some actions can be performed, for example, Mentorship Programs: Establishing mentorship programs specifically for women in tech can be immensely beneficial. Having experienced mentors who understand the challenges and opportunities in the industry can help women navigate their careers, build confidence, and foster a sense of belonging. Addressing Unconscious Bias: Conducting unconscious bias training for all employees can lead to a more inclusive workplace. Tech companies can create a culture of equality and fairness by raising awareness of implicit biases and providing tools to challenge them. Retention and Support: Implementing retention programs focused on supporting women in tech careers is essential. Companies should prioritize creating an environment where women feel valued and respected and have equal opportunities for growth and advancement.

Being Agile about Architecture

[CHANGE] January 25 26, 2024, 10.00–11.30am, Aula Minor (lecture) [NEW] also on Webex (password: advansd)

Joe Yoder (The Refactory, Inc., USA)

Being Agile, with its attention to extensive testing, frequent integration, and focus on important product features, has proven invaluable to many software teams. When building complex systems, it can be all too easy to primarily focus on features and overlook software qualities, specifically those related to the architecture. Some believe that by simply following Agile practices—starting as fast as possible, keeping code clean, and having lots of tests—a good architecture will magically emerge. While an architecture will emerge, if there is not enough attention paid to it and the code, technical debt, and design problems will creep in until it becomes muddy, making it hard to deliver new features quickly and reliably.

It is essential to have a sustainable architecture that can evolve through the project lifecycle. Sustainable architecture requires ongoing attention, especially when there are evolving priorities, a lot of technical risks, and many dependencies. This talk presents a set of patterns that focus on practices for creating and evolving a software architecture while being Agile. These practices include a set of tools that allow teams to define “enough” architecture at the beginning of the project and to manage the state and the evolution of the architecture as the project evolves.

Sustainable Development: Managing Technical Debt

[CHANGE] January 25 26, 2024, 2.00–5.00pm, meeting room 3.08 (workshop; limited to 50 participants)

Graziela Simone Tonin (Insper, Brazil) and Joe Yoder (The Refactory, Inc., USA)

When building complex systems, it can be easy to focus primarily on features and overlook software qualities, specifically those related to the architecture and dealing with technical debt. Some believe that by following Agile practices—starting as fast as possible, keeping code clean, and having lots of tests—a good clean architecture will magically emerge. While an architecture will emerge, if there is not enough attention paid to the architecture and the code, technical debt, and design problems will creep in until it becomes muddy, making it hard to deliver new features quickly and reliably. Often, the technical debt items are unknown, unmonitored, and therefore not managed, thus resulting in high maintenance costs throughout the software lifecycle. This workshop discusses elements of sustainable development specifically for dealing with technical debt. The main topics that will be explained are the technical debt metaphor and concept, the impact of incurring technical debt, some types of technical debt, and what is not technical; debt. Additionally, we will discuss technical debt that teams may incur, where and how it arises, how to identify, monitor, and manage these debts to pay in the long term, and living with technical debt. This will be an interactive workshop with group discussions and exercises.


2023

Optimization of Sequence Diagram Generation Based on Static Source Code Analysis

Matej Delinčák (ÚISI FIIT STU)

November 24, 2023, 10.30–11.30am, meeting room 3.08

Behavioral diagrams, and especially UML sequence diagrams, play a crucial role in software design and communication among developers. However, creating and maintaining sequence diagrams can be time-consuming and error-prone, particularly for complex software systems. In legacy code, such documentation is often missing or incomplete. Creating documentation is not a priority even in emerging projects developed with an agile approach where the only measure of progress is the creation of working software. To address this, an automated approach to generating sequence diagrams directly from Java source code is proposed. A challenge in this area is the ability to generate even more sophisticated features of sequence diagrams, to include combined fragments, and to recognize the depth of the control flow corresponding to the implemented use cases and achieve this only by static code analysis. The meaningfulness of this intention grows in proportion to the scope of the project, the fluctuations in the team, and the need for further maintenance of the system.

Applying Drama Patterns

Aleksandra Vranić, Branislava Vranić, and Valentino Vranić (ÚISI FIIT STU)

June 20, 2023, 10am–12pm, Studio (in the library)

Drama patterns make possible to experience patterns as an essential design phenomenon from within and feel how they generate elements through the cultivation of the otherwise destructively powerful conflicts of contradicting forces. In this workshop, we will build a small play using drama patterns. We will also explore how drama patterns are connected to software patterns by dramatizing selected design and organizational patterns.

Creative Expository Writing – Artificial Intelligence – Patterns

Valentina Bošković Marković and Milena Škobo (Sinergija University, Republic of Srpska, Bosnia and Herzegovina)

June 21, 2023, 10am–12pm, Studio (in the library)

This workshop/seminar explores the dynamic relationship between creative writing and artificial intelligence (AI). We delve into how AI can augment and enhance storytelling, examining its capabilities in language generation and pattern recognition. Through hands-on exercises, participants experiment with AI tools as collaborators, while also addressing ethical considerations. Real-world examples highlight successful collaborations, inspiring participants to embrace the possibilities of this emerging field. Ultimately, these activities spark imagination and expand creative horizons in the digital age.

Spontaneous Re-Documentation of Use Cases Over a Naturally Maturing Project in an Agile Context

Alexandra Skyvová (ÚISI FIIT STU)

April 4, 2023, 4–5pm, meeting room 3.08

The development of a brand new system is often a solution in case of insufficient or missing documentation or the very specification of requirements for an existing but already technologically or otherwise obsolete system. An ex-post approach to automating the process of extracting the working logic from an existing system is not always easy. Even targeted ex-ante maintenance of still relevant artifacts supporting software development is non-trivial as time passes. The problem is not only the time factor, agile practices and intentional focus on functionality over documentation, but also the scope of accompanying documentation itself. Updating the relevant parts of the documentation itself is a difficult problem, given the requirement of operational changes and significant flexibility to focus attention only on the most important parts of the software. Therefore, one of the appropriate solutions appears to be the support of ongoing but formal re-documentation of important artifacts that stimulate development. In this presentation, we present an approach that engages the spontaneous re-documentation of use cases over a naturally maturing project in an agile context, in a non-invasive way, as an accompanying phenomenon of the Scrum framework, already during the development itself.


2022

Container-Oriented Software Architecture and Its Implications

Marko Ranković (Deputy General Manager, Executive Director at Regional Card Processing Centre, part of Raiffeisen Bank International)

November 29, 2022, 2–3.40pm, Aula Magna

Container-oriented software architecture was born with object-oriented programming. Since then, it is taking a more and more important place in software application development and deployment. This lecture will guide you through the world of application containers, what is the logic behind them, what are the utilization opportunities, and one story from the real life: why it was the chosen option, which business area it supports, how is it performing… Of course, you’ll be able to ask questions and learn more about card-payment processing, 24x7 availability and many other… Who knows, maybe there is something in there for you!

PDF   [recording]

Visual Programming Languages and Their Evaluation Using the Theory of Physics of Notations

Zdena Dobešová (Palacký University Olomouc)

November 9, 2022, 2–3pm, Aula Minor (the discussion continues up to 4pm in meeting room 3.08)

The topic of the lecture will be familiarization with visual programming languages used in software for geographic information systems (GIS). The theory of Physics of Notations will be presented to evaluate the cognitive effectiveness of any visual notation of programming languages. The possibilities of applying this theory will be practically shown on visual programming languages for GIS. In addition, the possibility of testing the cognition of visual languages using eye movement tracking will also be mentioned.

Improving Comprehensibility of Organizational Patterns by Animation, Scenarios, and Variants

Tomáš Frťala (ÚISI FIIT STU)

June 30, 2022, 11.30am–12.30pm, meeting room 3.08

Organizational patterns are the key to a stepwise adoption of agile and lean approaches and to a piecemeal growth of agile and lean organization of work. They can be applied to correct particular problems within an organization or to build a new organization. Although there has been much research done on the agile methodologies, and lean software development, and in particular about patterns and pattern languages, little work has been done in finding how organizational patterns can enhance agile and lean software development. Using organizational patterns efficiently can help with identifying the best possible solution for tempering down problems of the ever-changing dynamic market conditions and enhancing the software development process. Furthermore, by mastering the correct recognition of contradictory problem forces in a context and how to mitigate them by appropriately applying organizational patterns can lead to improved strategic decision-making in software development. This seminar will show how three approaches proposed by the author can improve organizational pattern comprehension: animating organizational patterns, modeling pattern variations, and measuring agility using organizational patterns. Each approach was evaluated using nontrivial examples also including the involvement of external companies. Furthermore, a real-life situations are shown to illustrate how all these approaches can be applied either standalone or together in synergy.

Orwell vs. Huxley – Whose Prophecies Are Coming True?

Vedran Petričević (Sinergija University, Republic of Srpska, Bosnia and Herzegovina)

June 16, 2022, 11am–1pm, Studio (in the library)

The lecture deals with the comparison of two representative novels of dystopian fiction – Brave New World by Aldous Huxley and Nineteen Eighty-Four by George Orwell. The comparisons are both made and drawn from the standpoint of the extent to which the authors were right in their predictions about the future of our world. We will look at some of the most important themes and ideas the authors explored in their novels, and try to answer the question of whether our world, profoundly changed by modern information technologies, is becoming a Huxlian or Orwellian one.

IoT as a Backbone of Intelligent Homestead Automation

Miloš Dobrojević (Sinergija University, Republic of Srpska, Bosnia and Herzegovina / Singidunum University, Belgrade, Serbia)

June 13, 2022, 3–5pm, Studio (in the library)

The concepts of smart agriculture, with the aim of highly automated industrial mass production leaning towards self-farming, can be scaled down to the level of small farms and homesteads, with the use of more affordable electronic components and open-source software. The backbone of smart agriculture, in both cases, is the Internet of Things (IoT). Single-board computers (SBCs) such as a Raspberry Pi, working under Linux or Windows IoT operating systems, make affordable platform for smart devices with modular architecture, suitable for automation of various tasks by using machine learning (ML), artificial intelligence (AI), and computer vision (CV). Similarly, the Arduino microcontroller enables building of nodes in an IoT network, capable of reading various physical values, wirelessly sending them to other computers for processing and furthermore, controlling electronic elements and machines in the physical world based on the received data. This review gives a limited overview of currently available technologies for smart automation of industrial agricultural production and of alternative, smaller-scale projects applicable in homesteads, based on Arduino and Raspberry Pi hardware, as well as a draft proposal of an integrated homestead automation system based on the IoT.

RobotDay

(in Slovak)

Martin Komák (ÚISI FIIT STU)

June 3, 2022, 8am–4pm, DigiLab Samsung (-1.42)

This is a one-day training in which the participants will get acquainted with the programming of industrial robots and everything necessary to know about them. In the theoretical part, the participants will get acquainted with the areas of robot use and their categorization. We will talk more about what an industrial robot is, what it consists of, and where their development is directed. We will show special tools going through the concepts such as trajectories and point singularities, types of kinematic chains, and others. In the practical part, the participants will get acquainted with offline programming in the RobotStudio environment from ABB. They will get acquainted with the programming of ABB robots and the creation of a robotic workplace simulation. The training syllabus will be as follows: basics in the field of terminology and programming of industrial robotics, industrial robot movement, trajectory creation, tool creation, graphic modeling, workplace design, acquaintance with controllers, creation of simple mechanisms, work with signals and smart components, work with the Rapid programming language, getting acquainted with the visualization and video uploading, etc.


2021

Composing Organizational Patterns More Precisely

Waheedullah Sulaiman Khail (ÚISI FIIT STU)

July 19, 2021, 9am–10am, https://fiit-stu.webex.com/meet/vranic

Organizing people is very important and one of the great challenges, and particularly in software development. Organizational patterns document organizational knowledge, which can be used to build an organization from the start or solve existing issues within organizations. Although patterns in isolation are not uncommon, they are more effective when they are composed and applied together in sequences. In order to apply organizational patterns, one has to understand not only the patterns, but also the relationships between them. Although there has been much research done on the patterns and how patterns are applied, little work has been done in finding out the relationships between patterns. What the thesis reported in this paper states is that if organizational patterns are composed more precisely, that will improve the accessibility, comprehensibility, and applicability of the organizational knowledge. The main contributions of the thesis are all in favor of the thesis statement: identifying the relationships between patterns in a pattern format makes these relationships explicit, using text mining techniques and natural language processing techniques helps identify and extract further relationships between patterns, formalizing the relationships between patterns with a context free grammar makes the relationships exact, while applying the pattern format once again to capture whole pattern languages makes them more comprehensible. Each of the approaches was evaluated on nontrivial examples. Additionally, a comprehensive study involving thirty participants from ten organizations and five countries was conducted. It embraced sixteen organizational patterns. Furthermore, a scenario was developed where these approaches were applied in synergy. The study results confirm that applying the approaches proposed in the thesis reported here makes organizational knowledge more accessible, comprehensible, and applicable. These approaches also help practitioners navigate through patterns. which allow them to identify, learn, and apply proven techniques in their organizations.

Waheedullah Sulaiman Khail. Use Case Driven Modularization . Information Sciences and Technologies Bulletin of the ACM Slovakia, 2021.


2019

Description and Identification of Software Project Anti-Patterns

Přemek Brada (University of West Bohemia)

November 11, 2019, 3.30–4.30pm, meeting room 4.08

For software project managers and other practitioners, an important activity is to detect, and consequently find solutions to, insufficiencies and mistakes in process and other project management activities. Particularly interesting among these are anti-patterns: commonly occurring solutions with known negative effects. In this workshop we will first review the anti-patterns existing in known sources, their variations in terminology and description format, relation to software development methodologies. We will present and discuss the design of an online catalogue of project management and process anti-patterns, based on the knowledge obtained from the review. Then, a method of detecting process and project management anti-patterns in project data will be described, based on a model for pattern operationalization over data extracted from application lifecycle management tools used by a software project.

Software Visualization and City Metaphors

Clinton Jeffery (University of Idaho, USA)

May 31, 2019, 10.00–11.30am AdvanSD Lab (3D Lab), Room 3.38

A city metaphor has become a popular method of visualizing properties of program code. Thus far projects employing the city metaphor have primarily focused on visualizing static and dynamic properties of software repositories, also how a programs source code structure is changing over time, and who is changing what. This workshop will feature several software visualization methods of software city, also in augmented and virtual reality. We will discuss an overview of research projects that employ this metaphor for a wide range of software engineering tasks, future experiments, and the evaluation of these methods.

Modeling and Visualization in Software Engineering

Michel Chaudron (Chalmers University in Gothenburg, Sweden), Rodi Jolak (Chalmers University in Gothenburg, Sweden), http://www.rodijolak.com/ Juraj Vincúr (ÚISI FIIT STU), and Ivan Polášek (ÚISI FIIT STU)

April 17, 2019, 10.30-11.30am / 1–2pm, AdvanSD Lab (3D Lab), Room 3.38

This workshop will feature several software visualization methods, tools, and prototypes employing augmented reality, collaborative sketching, and modeling in virtual reality. We will discuss future experiments and the evaluation of these methods, tools, and prototypes using NASA-TLX, EEG, and eye tracking, in a broader context of empirical studies into the effectiveness of modeling in software design.

Initial Results and Further Experimentation

Nghia Pham van (ÚISI FIIT STU)

March 14, 2019, 3–4pm, meeting room 4.08

For a successful support of peripheral perception in distributed teams by automatic message displaying in chat, it is crucial to filter irrelevant communication. This can be achieved by using up-to-date information about the developers’ work context. For this, the developers’ activity via created and accessed artifacts and code repository changes are continuously monitored. The correctness of comparing the context to chat messages is improved by taking into account synonyms and related words. Initial results based on a small-scale experiment are promising, The main topic of this seminar is the design and planned assessment of more extensive experiments, which are to be conducted with several teams.

Experience Drama Patterns

Aleksandra Vranić (Súkromná základná umelecká škola, Ružová dolina č. 29, 82109 Bratislava)

January 29, 2019, 6–8pm, meeting room 4.08

The knowledge of drama building is somehow an inherent part of us. Albeit, it tends to be suppressed and forgotten. This is leveraged by a common, director or instructor supervised approach, which favors learning lines to produce them without making a mistake. But the essence of drama is in archetypal situations that tend to repeat over and over without ever being the same. These are known as patterns and are best established in software development, although their origins are in Christopher Alexander's approach to building architecture. Transposed into drama, the patterns set frames within which the actors act, but they also give them a freedom to develop their roles in a natural and unaffected way in accordance with Stanislavski's approach. In this seminar, we will experience some of the drama patterns, such as Reversed Advantage, Amazing Similarity, Disbelieved Identity, Reflection, or Thoughts Reflecting Environment, and discuss their potential.


2018

Adapting Domain Driven Design to Game Development

Martin Fris and Jozef Hrnčár (Pixel Federation)

November 26, 2018, 3–4pm, meeting room 4.08

Domain Driven Design (DDD)—a new approach to building complex software—has become quite popular in recent years. This is happening mainly in scenarios when complex business domains like automotive or transportation, which need to be modeled and automated. Currently, DDD is spreading even into smaller scale projects, whose lifetime is planned to span over multiple years and their domain is complex enough not to use CRUD based architecture. DDD focuses on connecting domain experts with developers in the process of domain modeling, strongly emphasising the domain language. DDD also looks at the domain from multiple contexts, which helps creating easier maintainable models, even while using ambiguity. From the implementation point of view, DDD isolates domain level code from everything technical (called the infrastructure layer), which improves control over software complexity.

Since Pixel Federation games’ lifetime spans over multiple years and the specific parts of the game domain change quite often, it is crucial to implement the projects as flexible as possible. We try to achieve this using DDD, which promises better gains in maintainability in long term. By isolating the domain complexity in the domain model and making it independent of the infrastructure layer, we achieved higher control over software complexity which grows each year by adding new use cases and changing the old ones. We also try to gain from the other strong parts of DDD and would like to talk about our journey towards releasing our first two projects using this methodology. Our use cases—games—aren’t the ideal case for an off the book implementation of DDD, so we needed to make a few alterations in the officially recommended implementation patterns, which would make a better fit for our use case.

Use Case Driven Modularization

Michal Bystrický (ÚISI FIIT STU)

July 9, 2018, 11am–12.30pm, meeting room 3.08

How well is software comprehensible and maintainable is highly dependent on code modularity. Common object-oriented modularity, for instance, puts forward technical concerns such as reusability, but mystifies other concerns, especially usage scenarios, which greatly help with comprehending software systems, but they are completely dissolved in code. Although there are approaches able to modularize code according to use cases, they fail to gather all the code related to a use case in one module and to reflect its steps. Such modularization would improve software comprehensibility and maintainability. This talk briefly introduces use case driven modularization approaches achieving this. Multiple studies were conducted to evaluate the proposed approaches. Use case driven modularization requires less effort to follow code and to apply a change in code than common object-oriented modularization. DCI and aspect-oriented software development with use cases add more complexity to following a use case flow in code than the use case driven modularization approach.

Use Case and Test Driven Modularization website

Michal Bystrický. Use Case Driven Modularization . Information Sciences and Technologies Bulletin of the ACM Slovakia, 2018.

Complex Networks in Software Systems

Miloš Savić (University of Novi Sad, Serbia)

July 3, 2018, 2–3.30pm, meeting room 3.08

Modern software systems are complex artifacts. The complexity of a large-scale software system stems not only from a large number of software entities (packages, modules, classes, interfaces, functions, variables, and so on) defined in its source code, but also from dependencies among those entities. More specifically, we can distinguish two layers of complexity in software systems: the internal (algorithmic) complexity of software entities (e.g. the complexity of control flow within an entity) and the structural (design) complexity of dependencies among software entities. Dependency structures present in a software system can be modeled by various types of software networks which provide different granularity views to the architecture of the system. Analysis of software networks can help software engineers and researchers to understand and quantify software design complexity and evaluate software systems according to software design quality principles. In this talk, we present a novel network-based methodology to analyze software systems. The proposed methodology utilizes the notion of enriched software networks, i.e. software networks whose nodes are augmented with metrics vectors containing both software metrics and metrics used in complex network analysis. The proposed methodology is empirically evaluated on enriched software networks that represent large-scale Java software systems at different levels of abstraction.

Miloš Savić, Mirjana Ivanović, and Lakhmi C. Jain. Complex Networks in Software, Knowledge, and Social Systems. Springer, 2018.

Peripheral Perception in Distributed Software Development: Work Context, Written Electronic Communication, and Visual Stimuli

Nghia Pham van and Gabriela Hózová (ÚISI FIIT STU)

April 19, 2018, 11am–12pm, Room 1.40

Peripheral perception, in which developers and possibly other stakeholders effortlessly get the information from their working environment without a direct participation in communication probably accounts for the most of communication effectiveness and efficiency in agile software development. Here, we look at how peripheral perception can be utilized in distributed teams via written electronic communication, such as chat or e-mail, and visual stimuli, which embraces the presence of other people nearby, but also the activity of team members. Software development is a complex process where various artifacts are created and used by developers. These artifacts, combined with the developers' intent, environment, other team members' work, and various other factors, contribute to creating and maintaining a work context. In a team, a shared work context exists between its members, but each member also has a personal work context that changes over time. This personal work context, if properly extracted, can be a rich source of information for filtering written electronic communication and visual stimuli for their relevance to peripheral perception.

Composing Organizational Patterns

Waheedullah Sulaiman Khail (ÚISI FIIT STU)

January 17, 2018, 3.30–4.30pm, meeting room 4.08

Much of the research work on organizational patterns has been focused on discovering and documenting organizational patterns. With organizational patterns, we can build an organization, plug a gap, or correct a hole in an organization. To get the most out of organizational patterns, we need to develop techniques for composing organizational patterns. These techniques should define a composition mechanism through which organizational patterns can be integrated, which will help in the application of organizational patterns. In this presentation, we will talk about the need for organizational pattern composition. We will also look into how patterns from other domains are composed. Furthermore, we propose to formalize the pattern relationship with a pattern language grammar, which will help in creating pattern sequences.


2017

Enhanced and Adaptable Collaboration over Multilevel Interrelated Heterogeneous Software Knowledge

Valentino Vranić (ÚISI FIIT STU)

November 6, 2017, 2–3pm, meeting room 4.08

Software development is an extremely complex activity that involves working with large amounts of heterogeneous data. This includes source code, formal and informal specification documents, and models, but also examples of application domain documents or other artifacts. All these artifacts embody software knowledge. But what really makes knowledge out of these heterogeneous data is how they are related, which mostly remains unrecorded, consequently relying on human memory.

We envision an approach that will mitigate this by providing a way to interrelate all artifacts that embody software knowledge in a non-invasive, yet tangible way orthogonal to the use of other software development tools. Software knowledge is interrelated at multiple levels not only in terms of general software dependencies and meta to instance level relationships, but also in numerous domain specific ways. For this, a layered 3D representation comes out as a natural choice. An implied 3D visual environment would consequently act as a collaboration space for all participants in software development with a possibility to be enhanced with generic and custom analyzers and generators over the captured software knowledge. Human related part of software knowledge – both implicit (who works or has worked on what and when) and explicit (communication traces) – could be visualized, too, and used to improve shorten communication paths relying on peripheral perception, which accounts for the effectiveness of agile software development, and which is almost completely lacking in distributed teams.

All this would involve working with large amounts of most often sensitive data, so it would be necessary to incorporate security and privacy, as well as safety and overall quality aspects.

Algorithms for Decision Trees in Refactoring Systems

Lukáš Hamacek, Miroslav Haščič, and Ivan Polášek (ÚISI FIIT STU)

October 27, 2017, 1–2pm, meeting room 3.08

This presentation analyses abilities of selected algorithms to find the minimal path in a decision tree containing refactoring combinations and sequences of removed anti-patterns or bad smells (removing bad smell can reduce or induce another bad smell). We will compare the A* algorithm, artificial bee colony (ABC) algorithm, and ant colony optimization (ACO) algorithm. Part of our work is reducing complexity of these algorithms, their parallelization, and their enhancement with fuzzy logic. In future, we will implement these algorithms in our refactoring tool using a rule based approach.

Inception Phase Software Modeling Support

Pavel Sluka and Ján Lang (ÚISI FIIT STU)

June 6, 2017, 3–4pm, meeting room 4.08

In the introductory phase of software development it is essential to sufficiently capture customers' requirements. The challenge is not only in capturing requirements, but also in representing them in an appropriate way. Commonly, requirements are modeled by a detailed use case description and their visualization in the form of UML use case diagrams. An interesting way to capture cognitive ideas is also through mind mapping. The possibility of transformation mind maps into UML class diagrams has already been explored. Here, we will look at the possibilities to gain behavioral aspects from mind maps. Finally, our proposed transformations have succeeded in acquiring interesting behavioral model artifacts.

Configuring and Composing Existing Software Components According to Natural Language Specifications

Michal Kráľ (ÚISI FIIT STU)

May 17, 2017, 3–4pm, meeting room 4.08

Existing approaches that target natural language programming force programmers to use specific language intended, and, moreover, they do not support defining complex specifications. In this presentation, we will demonstrate a new approach to natural language programming addressing these two problems. The approach employs keyword based and sentence similarity text processing methods to extract the information from a natural language specification. Subsequently, it configures and composes existing software components according to this information. The approach opens the possibilities for extensive natural language programming support. Combining the approach with user interface generation tools is particularly promising.

Abstract Layers as a Basis for Versatile Graphical Software Modeling

Adam Neupauer and Valentino Vranić (ÚISI FIIT STU)

March 20, 2017, 3–4pm, meeting room 4.08

Graphical software modeling serves a broad spectrum of purposes ranging from conceptualization of ideas to executable models. Apart from UML as a general purpose modeling notation, there is a growing tendency towards domain specific modeling languages. Freedom to chose different kinds of visualization some of which are even three-dimensional, seems to be essential. What models actually represent and how this can be used further constitutes another varying perspective: interpretation. To accommodate this versatility in visualization and interpretation, a sufficiently general internal representation is necessary. Pages in a book, sheets of paper in general, blackboards in a classroom, or even diagrams in contemporary software modeling tools, they all indicate layering as a way of coping with complexity is natural to humans. Making layers and elements they consist of, along with their relationships, abstract and allowing them to be visualized and interpreted in different ways might be a key to the internal representation we look for. From this point of view, it seems that the main problem of common approaches to graphical software modeling is interweaving visualization, interpretation, and internal representation, or giving priority to the former two over the internal representation.

Collaborative Software Modelling and Extended UML Model Visualization

Matej Ferenc and Jakub Ondik (ÚISI FIIT STU)

March 6, 2017, 3–4pm, meeting room 4.08

Standard software modelling tools support basic UML diagram visualization and isolate activities of developers via locks in a shared software model or in their own versions of a software model. Thus, developers have restricted collaboration possibilities, e.g. developers are not allowed to edit the same diagram and they must manually compare versions of UML diagrams to identify and review modifications. We will discuss possibilities of real-time collaboration in software modelling, visualization of UML diagrams in multiple dimensions, and adaptable visualization of modifications in UML diagrams with their explanations.


2016

Bringing Virtuality to Software Development – Benefits and Practical Demonstrations

Juraj Vincúr (ÚISI FIIT STU)

December 14, 2016, 4–5pm, 3D SD Lab (3.38-2)

Software is virtual and intangible complex structure difficult to understand, which hinders its development. Graphical visualization of software has the potential to result in a better and faster comprehension of its design and functionality. 2D software visualizations have actually been the subject of many studies and began to appear in commercial products, but the recent trend is to explore 3D software visualizations. Existing 3D approaches are mainly criticized due to intrinsic 3D navigation problems that amplify possible information overload. The latest breakthroughs in virtual and augmented reality bring new devices capable of intuitive interaction with 3D objects in both virtual or augmented reality environments. We will discuss the main benefits of the third dimension in software visualizations, potential of their migration to virtual and augmented environments, related problems, and possible solutions. For these purposes, we will present an HTC Vive head-mounted display, which is available in our 3D software development lab, its features and limitations, how to develop software for it, and its applications. Selected aspects will be demonstrated on few early prototypes of both web and desktop applications.

TRACKS and DevACTs Infrastructures for Collecting, Making Accessible, and Analyzing Software Development Data

Karol Rástočný and Martin Konôpka (ÚISI FIIT STU)

December 7, 2016, 1.30–2.30pm, UISI meeting room (3.08)

Data about software development process are stored in different repositories, e.g., source code and its versions are stored in version control systems like Git or SVN, tasks and plans are stored in issue tracking systems like Jira or Bugzilla, same with code reviews, activities and CQA systems. These data sources are loosely interconnected, mostly only by textual reference in description (e.g., a task’s identifier in a commit message), and expose different APIs. This imposes challenges for mining, linking and reasoning upon such data across data sources. These problems are addressed by the TRACKS infrastructure, which uses a distributed architecture for mining, representing, storing, and reasoning upon data from various data sources about software development, with the main focus on linking these data sources together. Linked data about software development process are a good prerequisite for solving and evaluating multiple research problems, but they contain only discrete, resultant information about the process. More detailed information can be discovered from developers’ activities. These activities are collected and interpreted by the DevACTs infrastructure.

Transforming Organizational Patterns into a Comprehensible and Immersive Format

Tomáš Frťala (ÚISI FIIT STU)

December 2, 2016, 2.30–3.30pm, UISI meeting room (3.08)

Organizational patterns show us how to solve a problems caused by forces in a specific context. By utilizing organizational patterns in a right way, an organization can become agile and lean while preserving its own culture. This can be achieved fully only if all stakeholders comprehend them. Mastering organizational patterns is challenging because of several reasons. One of them is the way they are presented in a text form. Further, organizational patterns deal mainly with dynamic forces from the sociological perspective in the domain of software engineering and thus cover many interpersonal contexts, which people find difficult to associate with their own experience. We proposed a method of transforming organizational patterns into their animated version. Pattern dynamics are modeled at multiple levels using UML state machine diagrams. Interactions are ensured as in text adventure games. Mediation of experience is supplemented by the use Erickson’s conversational hypnosis language patterns. Method was used to transform six selected organizational patterns, which revealed the necessity to deal with pattern variants and to express their relationships in an object-oriented fashion. The method is intended to be usable by a broader community to easily produce animations of further organizational patterns.

Presenting Organizational Pattern Languages More Precisely

Waheedullah Sulaiman Khail (ÚISI FIIT STU)

November 23, 2016, 1.30–2.30pm, UISI meeting room (3.08)

Organizing people in an organization is very important and one of the great challenges. Organizational patterns are the key to piecemeal growth of the organization or growing the organization incrementally. They can be applied to correct a specific problem within an organization or to build a new organization from scratch. Patterns are existing from late 70’s, yet there are difficulties implementing patterns and putting the right pattern in the right context which will contribute to the wholeness of some whole. Different reasons have been identified by researchers which include the understanding of pattern itself as well. While patterns are difficult to understand their implementation is even more difficult as it is very important to identify the pattern for the specific problem. Understanding the relationship between patterns and choosing the right pattern is very important. There are different way and explanations given to follow in selecting the right pattern for your problem, however it is still confusing and most often recursion occur and one will be in the middle of injecting some patterns and losing their way and forgetting where they have started and what is the main goal. Easy ways of understanding the relation between patterns and switching between patterns should be recommended. We should put patterns together based on some rules to get an organizational pattern language which will clearly illustrate the role of every pattern in the organizational pattern language, the importance of the pattern in the organizational pattern language and its relation with other patterns in the organizational pattern language. one way of representing organizational pattern language can be a pattern itself, which will be illustrating organizational pattern language through state machine.

Overview of Research at School of Computing in Pilsen, Czech Republic

Přemek Brada (University of West Bohemia)

September 27, 2016, 5pm, Room 4.26

The talk will provide an overview of research performed at the School of Computing, Faculty of Applied Sciences in Pilsen. More focus will be provided on software analysis and verification, software visualization and process analysis.

Přemek Brada is associate professor in software engineering, leader of the Reliable Software Architectures group and currently serves as the Head of Department.

Behavioral Tests Employed in Literal Use Case Driven Modularization

Michal Bystrický (ÚISI FIIT STU)

June 23, 2016, 3–4pm, meeting room 4.08

The intent is well readable from use cases. Literal use case driven modularization employs use cases as modules in code making the intent visible right in code. We further expose the intent by adding behavioral tests into code, which seem to be low-level use cases, in addition to use cases. In the demonstration, we will present a new tool that supports behavioral tests in literal use case driven modularization. The tool allows to gather and synchronize these artifacts (use cases, code and tests), and enforce consistency among them.

Agilné prístupy a modelovanie softvéru

Peter Šinkovič (Managing partner, ideas2markets, s.r.o)

January 1, 2015, 5–7pm, UISI meeting room (3.08)

V kontexte súčasnej rýchlej doby, kedy je kladený čoraz väčší nárok na dodanie softvéru v krátkej dobe a vysokej kvalite, je potrebné, aby sa zmenili aj prístupy ku tvorbe požiadaviek na takýto softvér, jeho technické popísanie, realizáciu implementácie a testovanie. Agilné prístupy pomáhajú nastaviť prostredie tak, aby bol výsledný produkt dobre naimplementovaný a popísaný, pričom sa splnili očakávania zákazníka na jednotlivé funkcionality systému. Pri komplexných požiadavkách je veľmi ťažké myslieť na všetko dopredu a preto tak zadanie, špecifikácia, modelovanie, ako aj vývoj a testovanie prebiehajú v iteráciách. Výsledkom je maximalizovanie biznisovej hodnoty produktu.

Animating Organizational Patterns

Tomáš Frťala (ÚISI FIIT STU)

May 6, 2015, 2–3pm, UISI meeting room (3.08)

Organizational patterns are the key to a stepwise adoption of agile and lean approaches and to a piecemeal growth of agile and lean organization of work. However, their text description is not easy to comprehend. In this paper, we introduce our initial efforts towards establishing an approach to animate organizational patterns as text adventure games. Players pass through a series of scenes described using Erickson's conversational hypnosis language patterns in order to better evoke their experience. The game scenario space is expressed using UML state machine diagrams. The approach is presented on adventure games we created for the Architect Also Implements organizational pattern.

Prípady použitia ako cesta k čitateľnému zdrojovému kódu

Michal Bystrický (ÚISI FIIT STU)

April 8, 2015, 2–3pm, UISI meeting room (3.08)

Zmeny vo vývoji softvéru sú časté, najmä pri agilných prístupoch, ktoré by mali byť adaptabilné a flexibilne odpovedať na zmenu. Tieto zmeny vyžadujú časté zásahy do kódu, preto by kód mal byť čitateľný a zároveň modulárny. Objektovo-orientované programovacie jazyky dosahujú modulárnosť fragmentovaním kódu do tried, avšak čítať taký kód vyžaduje veľa úsilia, pretože tento kód je zložený z veľa fragmentov a referencii. Prípady použitia vďaka ich podobnosti k zdrojovému kódu a vysokej čitateľnosti predstavujú cestu, ako dosiahnuť obe vlastnosti čitateľnosti a modulárnosti naraz. Ukážeme nový prístup k modularizácii podľa prípadov použitia taký, že textová forma prípadov použitia ako ju poznáme môže byť súčasťou kódu a nielen to, ale aj môže kód ovplyvňovať. Takto dosiahneme čitateľný zdrojový kód. Dokonca, takýto kód dokáže upravovať aj koncový používateľ.