My slides for the presentation of our full technical paper at ICPC 2015 (International Conference on Program Comprehension).
Abstract–Developing software is a complex mental activity, requiring extensive technical knowledge and abstraction capabilities. The tangible part of development is the use of tools to read, inspect, edit, and manipulate source code, usually through an IDE (integrated development environment). Common claims about software development include that program comprehension takes up half of the time of a developer, or that certain UI (user interface) paradigms of IDEs offer insufficient support to developers. Such claims are often based on anecdotal evidence, throwing up the question of whether they can be corroborated on more solid grounds.
We present an in-depth analysis of how developers spend their time, based on a fine-grained IDE interaction dataset consisting of ca. 740 development sessions by 18 developers, amounting to 200 hours of development time and 5 million of IDE events. We propose an inference model of development activities to precisely measure the time spent in editing, navigating and searching for artifacts, interacting with the UI of the IDE, and performing corollary activities, such as inspection and debugging. We report several interesting findings which in part confirm and reinforce some common claims, but also disconfirm other beliefs about software development.
Computer Software Ultimate History and BenefitsTyler Aaron
Computer software is a couple of directions, data, or programs applied to use pcs and perform specific tasks. It is the alternative to equipment, which explains the bodily aspects of a computer. Actually, Computer software is just a universal term applied to reference purposes, texts, and programs that run using a device
For more details Please visit our Website
https://csubmit.com/
A computer programmer, sometimes called a software developer, programmer, or more recently coder (especially in more informal contexts), is a person who creates computer software. The term computer programmer can refer to a specialist in one area of computing or to a generalist who writes code for many types of software.
A programmer's commonly used computer language (eg, Assembly, COBOL, C, C++, C#, JavaScript, Lisp, Python ) may be prefixed to the term programmer. Some who work with web programming languages also prefix their titles with web .
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMInimmik4u
The Evolving role of Software – Software – The changing Nature of Software – Legacy software, Introduction to CASE tools, A generic view of process– A layered Technology – A Process Framework – The Capability Maturity Model Integration (CMMI) – Process Assessment – Personal and Team Process Models. Product and Process. Process Models – The Waterfall Model – Incremental Process Models – Incremental Model – The RAD Model – Evolutionary Process Models – Prototyping – The Spiral Model – The Concurrent Development Model – Specialized Process Models – the Unified Process.
Computer Software Ultimate History and BenefitsTyler Aaron
Computer software is a couple of directions, data, or programs applied to use pcs and perform specific tasks. It is the alternative to equipment, which explains the bodily aspects of a computer. Actually, Computer software is just a universal term applied to reference purposes, texts, and programs that run using a device
For more details Please visit our Website
https://csubmit.com/
A computer programmer, sometimes called a software developer, programmer, or more recently coder (especially in more informal contexts), is a person who creates computer software. The term computer programmer can refer to a specialist in one area of computing or to a generalist who writes code for many types of software.
A programmer's commonly used computer language (eg, Assembly, COBOL, C, C++, C#, JavaScript, Lisp, Python ) may be prefixed to the term programmer. Some who work with web programming languages also prefix their titles with web .
Evolving role of Software,Legacy software,CASE tools,Process Models,CMMInimmik4u
The Evolving role of Software – Software – The changing Nature of Software – Legacy software, Introduction to CASE tools, A generic view of process– A layered Technology – A Process Framework – The Capability Maturity Model Integration (CMMI) – Process Assessment – Personal and Team Process Models. Product and Process. Process Models – The Waterfall Model – Incremental Process Models – Incremental Model – The RAD Model – Evolutionary Process Models – Prototyping – The Spiral Model – The Concurrent Development Model – Specialized Process Models – the Unified Process.
International Journal of Engineering Research and DevelopmentIJERD Editor
Electrical, Electronics and Computer Engineering,
Information Engineering and Technology,
Mechanical, Industrial and Manufacturing Engineering,
Automation and Mechatronics Engineering,
Material and Chemical Engineering,
Civil and Architecture Engineering,
Biotechnology and Bio Engineering,
Environmental Engineering,
Petroleum and Mining Engineering,
Marine and Agriculture engineering,
Aerospace Engineering.
Know Software Engineering very well and see the difference between the Software Programming & Software Engineering. Including other concepts as well as where you will know how this Software engineering is different for the building the software compared to do only the programming.
CS266 Software Reverse Engineering (SRE)
Introduction to Software Reverse Engineering
Teodoro (Ted) Cipresso, teodoro.cipresso@sjsu.edu
Department of Computer Science
San José State University
Spring 2015
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docxedgar6wallace88877
Simulation Modelling Practice and Theory 47 (2014) 28–45
Contents lists available at ScienceDirect
Simulation Modelling Practice and Theory
j o u r n a l h o m e p a g e : w w w . e l s e v i e r . c o m / l o c a t e / s i m p a t
Insight Maker: A general-purpose tool for web-based modeling
& simulation
http://dx.doi.org/10.1016/j.simpat.2014.03.013
1569-190X/� 2014 The Author. Published by Elsevier B.V.
This is an open access article under the CC BY license (http://creativecommons.org/licenses/by/3.0/).
E-mail address: [email protected]
1 The exact search query used was ‘’’modeling tool’’ OR ‘‘simulation tool’’’ in the Topic field.
Scott Fortmann-Roe
University of California, Berkeley, Department of Environmental Science, Policy, and Management, 130 Mulford Hall, Berkeley, CA 94720-3114, United States
a r t i c l e i n f o a b s t r a c t
Article history:
Received 29 April 2013
Received in revised form 23 March 2014
Accepted 26 March 2014
Available online 14 June 2014
Keywords:
Modeling
Simulation
Web-based technologies
System Dynamics
Agent-Based Modeling
A web-based, general-purpose simulation and modeling tool is presented in this paper. The
tool, Insight Maker, has been designed to make modeling and simulation accessible to a
wider audience of users. Insight Maker integrates three general modeling approaches –
System Dynamics, Agent-Based Modeling, and imperative programming – in a unified
modeling framework. The environment provides a graphical model construction interface
that is implemented purely in client-side code that runs on users’ machines. Advanced fea-
tures, such as model scripting and an optimization tool, are also described. Insight Maker,
under development for several years, has gained significant adoption with currently more
than 20,000 registered users. In addition to detailing the tool and its guiding philosophy,
this first paper on Insight Maker describes lessons learned from the development of a com-
plex web-based simulation and modeling tool.
� 2014 The Author. Published by Elsevier B.V. This is an open access article under the CC BY
license (http://creativecommons.org/licenses/by/3.0/).
1. Introduction
The field of modeling and simulation tools is diverse and emergent. General-purpose modeling tools (e.g. MATLAB’s
Simulink or the Modelica language [1]) sit beside highly focused and domain-specific applications (e.g. [2] for modeling
network control systems, [3] for simulating the behavior of wireless network routing protocols, or [4] for the simulation
and control of turbines). Interest in and published works on such tools has grown over time. The ISI Web of Knowledge
reports a substantial growth in papers published on modeling or simulation tools with 299 such papers published in the span
of 1985–1989, 1482 published from 1995 to 1999, and 3727 published from 2005 to 2009.1
For end-users, simulation and modeling tools are generally designed as executables to be run on a consumer operating
system such as W.
The comprehension of very large-scale software system evolution remains a challenging problem due to the sheer amount of time-based (i.e., a sequence of changes) data and its intrinsically complex nature (i.e., heterogeneous changes across the entire system source code). It is a necessary step for program comprehension, as systems are not simply created out of thin air in a bang, but are the sum of many changes over long periods of time, by various actors and due to various circumstances.
We present SYN, a web-based tool that uses versatile visualization and data processing techniques to create scalable depictions of ultra-scale software system evolution. SYN has been successfully applied on several systems versioned on GitHub, including the nearly 20-year history of the Linux operating system, which totals more than one million commits on more than 100k evolving files.
Software development is carried out using Integrated Development Environments (IDEs). An IDE is a collection of tools and facilities to support the most diverse software engineering activities such as writing code, debugging, and program comprehension. Each activity is composed of many basic events, such as clicking on a menu item, opening a new tab to browse the source code of a method, or adding a new statement in the body of a method. These events are generally known as interaction data.
In my Ph.D. dissertation, we proposed the concept of "Interaction-Aware Development Environments": IDEs that collect, mine, and leverage the interactions of developers to support and simplify the workflow of developers. To support this vision, we developed DFlow: a plugin for the Pharo IDE to model, record, and interpret interaction data. Pharo is a pure object-oriented programming language and environment that is very suitable for research. Besides I do not regret doing research inside a niche development environment, after my doctoral studies I felt the desire to transfer my knowledge to a more popular IDE. In this talk, I will describe my journey alongside CodeLounge that led from DFlow to Tako, an extension for Visual Studio Code that collects, aggregates, and visualizes interaction data.
More Related Content
Similar to I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]
International Journal of Engineering Research and DevelopmentIJERD Editor
Electrical, Electronics and Computer Engineering,
Information Engineering and Technology,
Mechanical, Industrial and Manufacturing Engineering,
Automation and Mechatronics Engineering,
Material and Chemical Engineering,
Civil and Architecture Engineering,
Biotechnology and Bio Engineering,
Environmental Engineering,
Petroleum and Mining Engineering,
Marine and Agriculture engineering,
Aerospace Engineering.
Know Software Engineering very well and see the difference between the Software Programming & Software Engineering. Including other concepts as well as where you will know how this Software engineering is different for the building the software compared to do only the programming.
CS266 Software Reverse Engineering (SRE)
Introduction to Software Reverse Engineering
Teodoro (Ted) Cipresso, teodoro.cipresso@sjsu.edu
Department of Computer Science
San José State University
Spring 2015
Simulation Modelling Practice and Theory 47 (2014) 28–45Cont.docxedgar6wallace88877
Simulation Modelling Practice and Theory 47 (2014) 28–45
Contents lists available at ScienceDirect
Simulation Modelling Practice and Theory
j o u r n a l h o m e p a g e : w w w . e l s e v i e r . c o m / l o c a t e / s i m p a t
Insight Maker: A general-purpose tool for web-based modeling
& simulation
http://dx.doi.org/10.1016/j.simpat.2014.03.013
1569-190X/� 2014 The Author. Published by Elsevier B.V.
This is an open access article under the CC BY license (http://creativecommons.org/licenses/by/3.0/).
E-mail address: [email protected]
1 The exact search query used was ‘’’modeling tool’’ OR ‘‘simulation tool’’’ in the Topic field.
Scott Fortmann-Roe
University of California, Berkeley, Department of Environmental Science, Policy, and Management, 130 Mulford Hall, Berkeley, CA 94720-3114, United States
a r t i c l e i n f o a b s t r a c t
Article history:
Received 29 April 2013
Received in revised form 23 March 2014
Accepted 26 March 2014
Available online 14 June 2014
Keywords:
Modeling
Simulation
Web-based technologies
System Dynamics
Agent-Based Modeling
A web-based, general-purpose simulation and modeling tool is presented in this paper. The
tool, Insight Maker, has been designed to make modeling and simulation accessible to a
wider audience of users. Insight Maker integrates three general modeling approaches –
System Dynamics, Agent-Based Modeling, and imperative programming – in a unified
modeling framework. The environment provides a graphical model construction interface
that is implemented purely in client-side code that runs on users’ machines. Advanced fea-
tures, such as model scripting and an optimization tool, are also described. Insight Maker,
under development for several years, has gained significant adoption with currently more
than 20,000 registered users. In addition to detailing the tool and its guiding philosophy,
this first paper on Insight Maker describes lessons learned from the development of a com-
plex web-based simulation and modeling tool.
� 2014 The Author. Published by Elsevier B.V. This is an open access article under the CC BY
license (http://creativecommons.org/licenses/by/3.0/).
1. Introduction
The field of modeling and simulation tools is diverse and emergent. General-purpose modeling tools (e.g. MATLAB’s
Simulink or the Modelica language [1]) sit beside highly focused and domain-specific applications (e.g. [2] for modeling
network control systems, [3] for simulating the behavior of wireless network routing protocols, or [4] for the simulation
and control of turbines). Interest in and published works on such tools has grown over time. The ISI Web of Knowledge
reports a substantial growth in papers published on modeling or simulation tools with 299 such papers published in the span
of 1985–1989, 1482 published from 1995 to 1999, and 3727 published from 2005 to 2009.1
For end-users, simulation and modeling tools are generally designed as executables to be run on a consumer operating
system such as W.
The comprehension of very large-scale software system evolution remains a challenging problem due to the sheer amount of time-based (i.e., a sequence of changes) data and its intrinsically complex nature (i.e., heterogeneous changes across the entire system source code). It is a necessary step for program comprehension, as systems are not simply created out of thin air in a bang, but are the sum of many changes over long periods of time, by various actors and due to various circumstances.
We present SYN, a web-based tool that uses versatile visualization and data processing techniques to create scalable depictions of ultra-scale software system evolution. SYN has been successfully applied on several systems versioned on GitHub, including the nearly 20-year history of the Linux operating system, which totals more than one million commits on more than 100k evolving files.
Software development is carried out using Integrated Development Environments (IDEs). An IDE is a collection of tools and facilities to support the most diverse software engineering activities such as writing code, debugging, and program comprehension. Each activity is composed of many basic events, such as clicking on a menu item, opening a new tab to browse the source code of a method, or adding a new statement in the body of a method. These events are generally known as interaction data.
In my Ph.D. dissertation, we proposed the concept of "Interaction-Aware Development Environments": IDEs that collect, mine, and leverage the interactions of developers to support and simplify the workflow of developers. To support this vision, we developed DFlow: a plugin for the Pharo IDE to model, record, and interpret interaction data. Pharo is a pure object-oriented programming language and environment that is very suitable for research. Besides I do not regret doing research inside a niche development environment, after my doctoral studies I felt the desire to transfer my knowledge to a more popular IDE. In this talk, I will describe my journey alongside CodeLounge that led from DFlow to Tako, an extension for Visual Studio Code that collects, aggregates, and visualizes interaction data.
Intervento in occasione del TEDxItalianGathering 2019 tenutosi a Trento dal 31 maggio al 2 giugno. La presentazione è un breve viaggio nel magico mondo dei traduttori TED: dai processi standard fino agli ultimi strumenti informatici realizzati a supporto del processo di sottotitolazione.
Intervento in occasione del TEDxItalianGathering 2018 tenutosi a Bovino, Foggia il 3 novembre. L'obiettivo era spiegare il processo di creazione di un "talk in stile TED ." Dalla scelta del tema a quella dei protagonisti, da un'idea astratta a un talk vero e proprio.
Slides used for my PhD dissertation defense (13 November 2017).
Thesis: “Interaction-Aware Development Environments enable novel and in-depth analyses of the behavior of software developers and set the ground to provide developers with effective and actionable support for their activities inside the IDE.”
— Roberto Minelli, 2017
Abstract:
Nowadays, software development is largely carried out using Integrated Development Environments, or IDEs. An IDE is a collection of tools and facilities to support the most diverse software engineering activities, such as writing code, debugging, and program comprehension. The fact that they are integrated enables developers to find all the tools needed for the development in the same place. Each activity is composed of many basic events, such as clicking on a menu item in the IDE, opening a new user interface to browse the source code of a method, or adding a new statement in the body of a method. While working, developers generate thousands of these interactions, that we call fine-grained IDE interaction data. In essence, this data captures the behavior of developers inside the IDE, but it is largely neglected by modern development environments. We believe that this data is a valuable source of information that can be leveraged to enable retrospective analyses and to offer novel support to developers.
In this dissertation we propose the concept of "Interaction-Aware Development Environments": IDEs that collect, mine, and leverage the interactions of developers to support and simplify their workflow. We formulate our thesis as follows: Interaction-Aware Development Environments enable novel and in-depth analyses of the behavior of software developers and set the ground to provide developers with effective and actionable support for their activities inside the IDE. For example, by monitoring how developers navigate source code, the IDE could suggest the program entities that are potentially relevant for a particular task.
Our research focuses on three main directions:
1. Modeling and Persisting Interaction Data.
2. Interpreting Interaction Data.
3. Supporting Developers with Interaction Data.
Dissertation Committee:
– Prof. Michele Lanza, Università della Svizzera italiana, Switzerland (Research Advisor)
– Dr. Andrea Mocci, Università della Svizzera italiana, Switzerland (Research Co-Advisor)
– Prof. Matthias Hauswirth, Università della Svizzera italiana, Switzerland (Internal Member)
– Prof. Cesare Pautasso, Università della Svizzera italiana, Switzerland (Internal Member)
– Prof. Serge Demeyer, University of Antwerp, Belgium (External Member)
– Prof. Radu Marinescu, University of Timisoara, Romania (External Member)
As part of their daily work, developers interact with Integrated Development Environments (IDE), generating thousands of events. Together with other aspects of development, this data also captures the modus operandi of the developer, including all the program entities she interacted with during a development session. This "working set" (or context) is leveraged by developers to create and maintain their mental model of the software system at hand. Understanding how developers navigate and interact with source code during a development session is an open question.
We present a novel visual approach to understand how working sets evolve during a development session. The visualization incrementally depicts all the program entities involved in a development session, the intensity of the developer activity on them, and the navigation paths that occurred between them. We visualized about a thousand development sessions, and categorized them according to their visual properties.
Taming the IDE with Fine-Grained Interaction Data Roberto Minelli
Integrated Development Environments (IDEs) lack effective support to browse complex relationships between source code elements. As a result, developers are often forced to exploit multiple user interface components at the same time, bringing the IDE into a complex, "chaotic" state. Keeping track of these relationships demands increased source code navigation and cognitive load, leading to productivity deficits documented in observational studies. Beyond small-scale studies, the amount and nature of the chaos experienced by developers in the wild is unclear, and more importantly it is unclear how to tame it.
Based on a dataset of fine-grained interaction data, we propose several metrics to characterize and quantify the ``level of chaos'' of an IDE. Our results suggest that developers spend, on average, more than 30\% of their time in a chaotic environment, and that this may affect their productivity. To support developers, we devise and evaluate simple strategies that automatically alter the UI of the IDE. We find that even simple strategies may considerably reduce the level of chaos both in terms of effective space occupancy and time spent in a chaotic environment.
A short presentation of Interaction-Aware Development Environments, an IDE that records and exploits the interactions of the developer to support her workflow.
The Plague Doctor: A Promising Cure for the Window PlagueRoberto Minelli
My slides for the presentation of our ERA paper at ICPC 2015 (International Conference on Program Comprehension).
Abstract–Modern Integrated Development Environments (IDEs) are often affected by the “window plague”, an overly crowded workspace with many open windows and tabs. The main cause is the lack of navigation support in IDEs, also due to the many—and not always obvious—complex relationships that exist between program entities. Researchers have shown that it is possible to mitigate the window plague by exploiting the data obtained by monitoring how developers interact with the user interface of the IDE. However, despite initial results the approach was never fully integrated in an IDE.
In our previous work, we implemented DFlow, an automatic interaction profiler that monitors all the fine-grained interactions of the developer with the IDE. Here we present a first prototype of the Plague Doctor, a tool that seamlessly detects the windows that are less likely to be used in the future and automatically closes them. We discuss our long term vision on how to fully exploit the interaction data recorded by DFlow to provide a more effective cure for the window plague.
Free Hugs — Praising developers for their actions [ICSE2015]Roberto Minelli
My slides for the presentation of our vision at ICSE 2015 (International Conference on Software Engineering).
Abstract–Developing software is a complex, intrinsically intellectual, and therefore ephemeral activity, also due to the intangible nature of the end product, the source code. There is a thin red line between a productive development session, where a developer actually does something useful and productive, and a session where the developer essentially produces “fried air”, pieces of code whose quality and usefulness are doubtful at best. We believe that well-thought mechanisms of gamification built on fine-grained interaction information mined from the IDE can crystallize and reward good coding behavior.
We present our preliminary experience with the design and implementation of a micro-gamification layer built into an object-oriented IDE, which at the end of each development session not only helps the developer to understand what he actually produced, but also praises him in case the development session was productive. Building on this, we envision an environment where the IDE reflects on the deeds of the developers and by providing a historical view also helps to track and reward long-term growth in terms of development skills, not dissimilar from the mechanics of role-playing games.
Quantifying Program Comprehension with Interaction Data [QSIC2014]Roberto Minelli
It is common knowledge that program comprehension takes up a substantial part of software development. This “urban legend” is based on work that dates back decades, which throws up the question whether the advances in software development tools, techniques, and methodologies that have emerged since then may invalidate or confirm the claim.
We present an empirical investigation which goal is to confirm or reject the claim, based on interaction data which captures the user interface activities of developers. We use interaction data to empirically quantify the distribution of different developer activities during software development: In particular, we focus on estimating the role of program comprehension. In addition, we investigate if and how different developers and session types influence the duration of such activities. We analyze interaction data from two different contexts: One comes from the ECLIPSE IDE on Java source code development, while the other comes from the PHARO IDE on Smalltalk source code development. We found evidence that code navigation and editing occupies only a small fraction of the time of developers, while the vast majority of the time is spent on reading & understanding source code. In essence, the importance of program comprehension was significantly underestimated by previous research.
Integrated Development Environments (IDEs) have become the de facto standard vehicle to develop software systems. The user interface (UI) of an IDE offers a staggering amount of facilities to manipulate source code, such as inspectors, debuggers, recommenders, alternative viewers, etc.
It is unclear how developers use the UI of an IDE and whether such UIs actually give appropriate support to the developers.
We present a visual approach to understand and characterize development sessions from the UI perspective. The tool supporting our approach mines and processes the finest-grained UI-level events making up development sessions and presents them visually. We have collected, visualized, and analyzed hundreds of development sessions and report on our findings.
Visual Storytelling of Development Sessions [ICSME2014] Roberto Minelli
Most development activities, like program understanding, source code navigation and editing, are supported by Integrated Development Environments (IDEs). They provide different tools and user interfaces (UI) to interact with the source code, such as browsers, debuggers, and inspectors. It is uncertain how and when programmers use different UI elements of an IDE and to what extent they appropriately support development.
Previously we developed DFLOW, a tool that seamlessly records and processes interaction data. Our long-term goal is to assess to what extent the UIs of IDEs support the workflow of developers and whether they can be improved. As a first step we present our approach to analyze development sessions in the form of visual storytelling. We illustrate our initial catalogue of visualizations through two development stories.
Developers use Integrated Development Environments (IDEs) to maintain and evolve software systems. IDEs facilitate development activities such as navigating, reading, understanding, and writing source code. Development activities are composed of many basic events, such as browsing the source code of a method or editing the body of a method. We call these actions “interaction data”. We believe that collecting, processing, and exploiting these interactions at run-time can potentially augment the productivity of developers.
Our goal is to create self-adaptive IDEs: IDEs that collect, mine, and leverage the interactions of developers to better support the developers’ workflow. We envision a development environment that automatically and seamlessly adapts itself to support developers while maintaining and evolving software systems. To reach our goal, we will develop means to reshape the user interface of the IDE, interaction-based recommenders, and integrate live and adaptive visualizations inside the IDE.
As a first step towards our vision, we have developed DFlow, a tool that non-intrusively records all IDE interactions while a developer is programming. At the moment DFlow collects all the interactions between the developer and the IDE, and enables retrospective analysis by means of software visualizations.
Visualizing the Workflow of Developers [VISSOFT2013]Roberto Minelli
We present an approach to visualize the activities of developers within the IDE, implemented in a tool: DFlow. DFlow records all IDE interactions that occur during a development session and visualizes them through a web-based visualization platform.
Slides used at VISSOFT 2013 (http://icsm2013.tue.nl/VISSOFT)
SAMOA – A Visual Software Analytics Platform for Mobile Applications [ICSM2013]Roberto Minelli
We present Samoa, a visual web-based software analytics platform for mobile applications. It mines software repositories of apps and uses a set of visualization techniques to present the mined data. We describe Samoa, detail the analyses it supports, and describe a methodology to understand apps from a structural and historical perspective.
Software Analytics for Mobile Applications – Insights & Lessons Learned [CSMR...Roberto Minelli
Mobile applications, known as apps, are software systems running on handheld devices, such as smartphones and tablet PCs. The market of apps has rapidly expanded in the past few years into a multi-billion dollar business. Being a new phenomenon, it is unclear whether approaches to maintain and comprehend traditional software systems can be ported to the context of apps.
We present a novel approach to comprehend apps from a structural and historical perspective, leveraging three factors for the analysis: source code, usage of third-party APIs, and historical data. We implemented our approach in a web-based software analytics platform named SAMOA.
We detail our approach and the supporting tool, and present a number of findings obtained while investigating a corpus of mobile applications. Our findings reveal that apps differ significantly from traditional software systems in a number of ways, which calls for the development of novel approaches to maintain and comprehend them.
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Mind IT Systems
Healthcare providers often struggle with the complexities of chronic conditions and remote patient monitoring, as each patient requires personalized care and ongoing monitoring. Off-the-shelf solutions may not meet these diverse needs, leading to inefficiencies and gaps in care. It’s here, custom healthcare software offers a tailored solution, ensuring improved care and effectiveness.
May Marketo Masterclass, London MUG May 22 2024.pdfAdele Miller
Can't make Adobe Summit in Vegas? No sweat because the EMEA Marketo Engage Champions are coming to London to share their Summit sessions, insights and more!
This is a MUG with a twist you don't want to miss.
Into the Box Keynote Day 2: Unveiling amazing updates and announcements for modern CFML developers! Get ready for exciting releases and updates on Ortus tools and products. Stay tuned for cutting-edge innovations designed to boost your productivity.
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamtakuyayamamoto1800
In this slide, we show the simulation example and the way to compile this solver.
In this solver, the Helmholtz equation can be solved by helmholtzFoam. Also, the Helmholtz equation with uniformly dispersed bubbles can be simulated by helmholtzBubbleFoam.
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Globus
The U.S. Geological Survey (USGS) has made substantial investments in meeting evolving scientific, technical, and policy driven demands on storing, managing, and delivering data. As these demands continue to grow in complexity and scale, the USGS must continue to explore innovative solutions to improve its management, curation, sharing, delivering, and preservation approaches for large-scale research data. Supporting these needs, the USGS has partnered with the University of Chicago-Globus to research and develop advanced repository components and workflows leveraging its current investment in Globus. The primary outcome of this partnership includes the development of a prototype enterprise repository, driven by USGS Data Release requirements, through exploration and implementation of the entire suite of the Globus platform offerings, including Globus Flow, Globus Auth, Globus Transfer, and Globus Search. This presentation will provide insights into this research partnership, introduce the unique requirements and challenges being addressed and provide relevant project progress.
In software engineering, the right architecture is essential for robust, scalable platforms. Wix has undergone a pivotal shift from event sourcing to a CRUD-based model for its microservices. This talk will chart the course of this pivotal journey.
Event sourcing, which records state changes as immutable events, provided robust auditing and "time travel" debugging for Wix Stores' microservices. Despite its benefits, the complexity it introduced in state management slowed development. Wix responded by adopting a simpler, unified CRUD model. This talk will explore the challenges of event sourcing and the advantages of Wix's new "CRUD on steroids" approach, which streamlines API integration and domain event management while preserving data integrity and system resilience.
Participants will gain valuable insights into Wix's strategies for ensuring atomicity in database updates and event production, as well as caching, materialization, and performance optimization techniques within a distributed system.
Join us to discover how Wix has mastered the art of balancing simplicity and extensibility, and learn how the re-adoption of the modest CRUD has turbocharged their development velocity, resilience, and scalability in a high-growth environment.
Quarkus Hidden and Forbidden ExtensionsMax Andersen
Quarkus has a vast extension ecosystem and is known for its subsonic and subatomic feature set. Some of these features are not as well known, and some extensions are less talked about, but that does not make them less interesting - quite the opposite.
Come join this talk to see some tips and tricks for using Quarkus and some of the lesser known features, extensions and development techniques.
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Globus
Large Language Models (LLMs) are currently the center of attention in the tech world, particularly for their potential to advance research. In this presentation, we'll explore a straightforward and effective method for quickly initiating inference runs on supercomputers using the vLLM tool with Globus Compute, specifically on the Polaris system at ALCF. We'll begin by briefly discussing the popularity and applications of LLMs in various fields. Following this, we will introduce the vLLM tool, and explain how it integrates with Globus Compute to efficiently manage LLM operations on Polaris. Attendees will learn the practical aspects of setting up and remotely triggering LLMs from local machines, focusing on ease of use and efficiency. This talk is ideal for researchers and practitioners looking to leverage the power of LLMs in their work, offering a clear guide to harnessing supercomputing resources for quick and effective LLM inference.
We describe the deployment and use of Globus Compute for remote computation. This content is aimed at researchers who wish to compute on remote resources using a unified programming interface, as well as system administrators who will deploy and operate Globus Compute services on their research computing infrastructure.
Experience our free, in-depth three-part Tendenci Platform Corporate Membership Management workshop series! In Session 1 on May 14th, 2024, we began with an Introduction and Setup, mastering the configuration of your Corporate Membership Module settings to establish membership types, applications, and more. Then, on May 16th, 2024, in Session 2, we focused on binding individual members to a Corporate Membership and Corporate Reps, teaching you how to add individual members and assign Corporate Representatives to manage dues, renewals, and associated members. Finally, on May 28th, 2024, in Session 3, we covered questions and concerns, addressing any queries or issues you may have.
For more Tendenci AMS events, check out www.tendenci.com/events
Enterprise Resource Planning System includes various modules that reduce any business's workload. Additionally, it organizes the workflows, which drives towards enhancing productivity. Here are a detailed explanation of the ERP modules. Going through the points will help you understand how the software is changing the work dynamics.
To know more details here: https://blogs.nyggs.com/nyggs/enterprise-resource-planning-erp-system-modules/
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfJay Das
With the advent of artificial intelligence or AI tools, project management processes are undergoing a transformative shift. By using tools like ChatGPT, and Bard organizations can empower their leaders and managers to plan, execute, and monitor projects more effectively.
Unleash Unlimited Potential with One-Time Purchase
BoxLang is more than just a language; it's a community. By choosing a Visionary License, you're not just investing in your success, you're actively contributing to the ongoing development and support of BoxLang.
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisGlobus
JASMIN is the UK’s high-performance data analysis platform for environmental science, operated by STFC on behalf of the UK Natural Environment Research Council (NERC). In addition to its role in hosting the CEDA Archive (NERC’s long-term repository for climate, atmospheric science & Earth observation data in the UK), JASMIN provides a collaborative platform to a community of around 2,000 scientists in the UK and beyond, providing nearly 400 environmental science projects with working space, compute resources and tools to facilitate their work. High-performance data transfer into and out of JASMIN has always been a key feature, with many scientists bringing model outputs from supercomputers elsewhere in the UK, to analyse against observational or other model data in the CEDA Archive. A growing number of JASMIN users are now realising the benefits of using the Globus service to provide reliable and efficient data movement and other tasks in this and other contexts. Further use cases involve long-distance (intercontinental) transfers to and from JASMIN, and collecting results from a mobile atmospheric radar system, pushing data to JASMIN via a lightweight Globus deployment. We provide details of how Globus fits into our current infrastructure, our experience of the recent migration to GCSv5.4, and of our interest in developing use of the wider ecosystem of Globus services for the benefit of our user community.
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Globus
The Earth System Grid Federation (ESGF) is a global network of data servers that archives and distributes the planet’s largest collection of Earth system model output for thousands of climate and environmental scientists worldwide. Many of these petabyte-scale data archives are located in proximity to large high-performance computing (HPC) or cloud computing resources, but the primary workflow for data users consists of transferring data, and applying computations on a different system. As a part of the ESGF 2.0 US project (funded by the United States Department of Energy Office of Science), we developed pre-defined data workflows, which can be run on-demand, capable of applying many data reduction and data analysis to the large ESGF data archives, transferring only the resultant analysis (ex. visualizations, smaller data files). In this talk, we will showcase a few of these workflows, highlighting how Globus Flows can be used for petabyte-scale climate analysis.
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns
Unlocking Business Potential: Tailored Technology Solutions by Prosigns
Discover how Prosigns, a leading technology solutions provider, partners with businesses to drive innovation and success. Our presentation showcases our comprehensive range of services, including custom software development, web and mobile app development, AI & ML solutions, blockchain integration, DevOps services, and Microsoft Dynamics 365 support.
Custom Software Development: Prosigns specializes in creating bespoke software solutions that cater to your unique business needs. Our team of experts works closely with you to understand your requirements and deliver tailor-made software that enhances efficiency and drives growth.
Web and Mobile App Development: From responsive websites to intuitive mobile applications, Prosigns develops cutting-edge solutions that engage users and deliver seamless experiences across devices.
AI & ML Solutions: Harnessing the power of Artificial Intelligence and Machine Learning, Prosigns provides smart solutions that automate processes, provide valuable insights, and drive informed decision-making.
Blockchain Integration: Prosigns offers comprehensive blockchain solutions, including development, integration, and consulting services, enabling businesses to leverage blockchain technology for enhanced security, transparency, and efficiency.
DevOps Services: Prosigns' DevOps services streamline development and operations processes, ensuring faster and more reliable software delivery through automation and continuous integration.
Microsoft Dynamics 365 Support: Prosigns provides comprehensive support and maintenance services for Microsoft Dynamics 365, ensuring your system is always up-to-date, secure, and running smoothly.
Learn how our collaborative approach and dedication to excellence help businesses achieve their goals and stay ahead in today's digital landscape. From concept to deployment, Prosigns is your trusted partner for transforming ideas into reality and unlocking the full potential of your business.
Join us on a journey of innovation and growth. Let's partner for success with Prosigns.
Prosigns: Transforming Business with Tailored Technology Solutions
I Know What You Did Last Summer – An Investigation of How Developers Spend Their Time [ICPC2015]
1. I Know What You Did Last Summer
An Investigation of How Developers Spend Their Time
Roberto Minelli, Andrea Mocci, Michele Lanza
REVEAL @ Faculty of Informatics — University of Lugano, Switzerland
@robertominelli
7. write
read
navigate
user interface
program
understanding
Program understanding:
Challenge for the 1990s
In the Program Understanding Project at IBM's Re-search Division, work began in late 1986 on toolswhich could help programmers in two key areas: staticanalysis (reading the code) and dynamic analysis (run-ning the code). The work is reported in the companionpapers by Cleveland and by Pazel in this issue. Thehistory and background which motivated and whichled to the start of this research on tools to assistprogrammers in understanding existing program codeis reported here.
" If the poor workman hates his tools, the goodworkman hates poor tools. The work of theworkingman is, in a sense, defined by his tool-witness the way in which the tool is so often taken tosymbolize the worker:the tri-squarefor the carpenter,the trowelfor the mason, the transit for the surveyor,the camera for the photographer, the hammerfor thelaborer, and the sickle for the farmer.
"Working with defective or poorly designed tools,even the finest craftsman is reduced to producinginferior work, and is thereby reduced to being aninferior craftsman. No craftsman, ifhe aspires to thehighest work in his profession, will accept such tools;and no employer, if he appreciates the quality ofwork, will ask the craftsman to accept them. "I
Today a variety of motivators are causing corpora-tions to invest in software tools to increase softwareproductivity, including: (1) increased demand forsoftware, (2) limited supply of software engineers, (3)rising expectations of support from software engi-neers, and (4) reduced hardware costs.' A key moti-
by T. A. Corbi
vator for software tools in the 1990swill be the resultof having software evolve over the previous decadesfrom several-thousand-line, sequential programmingsystems into multimillion-line, multitasking "busi-ness-critical" systems. As the programming systemswritten in the 1960s and 1970s continue to mature,the focus for software tools will shift from tools thathelp develop new programming systems to tools thathelp us understand and enhance aging programmingsystems.
In the 1970s, the work of Belady and Lehman"?strongly suggested that all large programs wouldundergo significant change during the in-servicephase of their life cycle, regardless of the a prioriintentions of the organization. Clearly, they wereright. As an industry, we have continued to growand change our large software systems to:
• Remove defects
• Address new requirements
• Improve design and/or performance
• Interface to new programs
• Adjust to changes in data structures or formats• Exploit new hardware and software features
As we extended the lifetimes of our systems bycontinuing to modify and enhance them, we also
e Copyright 1989by International BusinessMachines Corporation.Copying in printed form for private use is permitted withoutpayment of royalty provided that (I) each reproduction is donewithout alteration and (2)the Journalreference and IBM copyrightnotice are included on the first page. The title and abstract, but noother portions, of this paper may be copied or distributed royaltyfree without further permission by computer-based and otherinformation-service systems. Permission to republish any otherportion of this paper must be obtained from the Editor.
…up to 50%
8. write
read
navigate
user interface
program
understanding
workman hates his tools, the good
hates poor tools. The work of the
in a sense, defined by his tool-
in which the tool is so often taken to
orker:the tri-squarefor the carpenter,
e mason, the transit for the surveyor,
he photographer, the hammerfor the
sickle for the farmer.
defective or poorly designed tools,
craftsman is reduced to producing
nd is thereby reduced to being an
n. No craftsman, ifhe aspires to the
is profession, will accept such tools;
r, if he appreciates the quality of
e craftsman to accept them. "I
of motivators are causing corpora-
software tools to increase software
uding: (1) increased demand for
ed supply of software engineers, (3)
s of support from software engi-
uced hardware costs.' A key moti-
hat all large programsundergo significant change during the inphase of their life cycle, regardless of the aintentions of the organization. Clearly, theright. As an industry, we have continued tand change our large software systems to:
• Remove defects
• Address new requirements
• Improve design and/or performance
• Interface to new programs
• Adjust to changes in data structures or form• Exploit new hardware and software feature
As we extended the lifetimes of our systecontinuing to modify and enhance them, w
e Copyright 1989by International BusinessMachines CorpoCopying in printed form for private use is permittedpayment of royalty provided that (I) each reproductionwithout alteration and (2)the Journalreference and IBM conotice are included on the first page. The title and abstract,other portions, of this paper may be copied or distributedfree without further permission by computer-based andinformation-service systems. Permission to republish anyportion of this paper must be obtained from the Editor.
9. write
read
navigate
user interface
program
understanding
workman hates his tools, the good
hates poor tools. The work of the
in a sense, defined by his tool-
in which the tool is so often taken to
orker:the tri-squarefor the carpenter,
e mason, the transit for the surveyor,
he photographer, the hammerfor the
sickle for the farmer.
defective or poorly designed tools,
craftsman is reduced to producing
nd is thereby reduced to being an
n. No craftsman, ifhe aspires to the
is profession, will accept such tools;
r, if he appreciates the quality of
e craftsman to accept them. "I
of motivators are causing corpora-
software tools to increase software
uding: (1) increased demand for
ed supply of software engineers, (3)
s of support from software engi-
uced hardware costs.' A key moti-
hat all large programsundergo significant change during the inphase of their life cycle, regardless of the aintentions of the organization. Clearly, theright. As an industry, we have continued tand change our large software systems to:
• Remove defects
• Address new requirements
• Improve design and/or performance
• Interface to new programs
• Adjust to changes in data structures or form• Exploit new hardware and software feature
As we extended the lifetimes of our systecontinuing to modify and enhance them, w
e Copyright 1989by International BusinessMachines CorpoCopying in printed form for private use is permittedpayment of royalty provided that (I) each reproductionwithout alteration and (2)the Journalreference and IBM conotice are included on the first page. The title and abstract,other portions, of this paper may be copied or distributedfree without further permission by computer-based andinformation-service systems. Permission to republish anyportion of this paper must be obtained from the Editor.
Does this myth hold?
14. DFlow
MetaUser InterfaceLow-Level
Opening/closing a window
Activating a window, i.e., window in focus
Resizing/moving/minimize/maximize a window class
Mouse button up/down
Scroll wheel up/down
Mouse move
Mouse-out/in
Keystroke pressed
Smalltalk IDE
15. DFlow
MetaUser InterfaceLow-Level
Opening/closing a window
Activating a window, i.e., window in focus
Resizing/moving/minimize/maximize a window class
Mouse button up/down
Scroll wheel up/down
Mouse move
Mouse-out/in
Keystroke pressed
DFLOW
Smalltalk IDE
Recorder Analyzer …
HTTP
DFLOW
Server
16. DFlow
Meta
Opening a Finder UI
Selecting a package, method, or class in the code browser
Opening a system browser on a method or a class
electing a method in the Finder UI
Starting a search in the Finder UI
Inspecting an object
Browsing a compiled method
Do-it/Print-it on a piece of code (e.g., workspace)
Stepping into/Stepping Over/Proceeding in a debugger
Run to selection in a debugger
Entering/exiting from an active debugger
Browsing full stack/stack trace in a debugger
Browsing hierarchy, implementors or senders of a class
Browsing the version control system
Browse versions of a method
Creating/removing a class
Adding/removing instance variables from a class
Adding/removing a method from a class
Automatically creating accessors for a class
17. DFlow
Meta
Opening a Finder UI
Selecting a package, method, or class in the code browser
Opening a system browser on a method or a class
electing a method in the Finder UI
Starting a search in the Finder UI
Inspecting an object
Browsing a compiled method
Do-it/Print-it on a piece of code (e.g., workspace)
Stepping into/Stepping Over/Proceeding in a debugger
Run to selection in a debugger
Entering/exiting from an active debugger
Browsing full stack/stack trace in a debugger
Browsing hierarchy, implementors or senders of a class
Browsing the version control system
Browse versions of a method
Creating/removing a class
Adding/removing instance variables from a class
Adding/removing a method from a class
Automatically creating accessors for a class
User Interface
Opening/closing a window
Activating a window, i.e., window in focus
Resizing/moving/minimize/maximize a window class
18. DFlow
Meta
Opening a Finder UI
Selecting a package, method, or class in the code browser
Opening a system browser on a method or a class
electing a method in the Finder UI
Starting a search in the Finder UI
Inspecting an object
Browsing a compiled method
Do-it/Print-it on a piece of code (e.g., workspace)
Stepping into/Stepping Over/Proceeding in a debugger
Run to selection in a debugger
Entering/exiting from an active debugger
Browsing full stack/stack trace in a debugger
Browsing hierarchy, implementors or senders of a class
Browsing the version control system
Browse versions of a method
Creating/removing a class
Adding/removing instance variables from a class
Adding/removing a method from a class
Automatically creating accessors for a class
User Interface
Low-Level
Opening/closing a window
Activating a window, i.e., window in focus
Resizing/moving/minimize/maximize a window class
Mouse button up/down
Scroll wheel up/down
Mouse move
Mouse-out/in
Keystroke pressed
22. Research
Questions
1) What is the time spent in
program
about the other
2) How much time do developers
spend in fiddling with the user
interface of the IDE?
23. Research
Questions
1) What is the time spent in
program
about the other
2) How much time do developers
spend in fiddling with the
interface
3) What is the impact of the
fragmentation of the development
flow?
24. Interaction Histories
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
t
Search
starts
>RT
Search
ends
DOI
Active
Windows t
Window
activated
Out / In
in the IDE
Window
activated
W1 W2 W3 W2 W4
Method
saved
>RT >RT
25. Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
t
Search
starts
>RT
Search
ends
DOI
Active
Windows t
Window
activated
Out / In
in the IDE
Window
activated
W1 W2 W3 W2 W4
Method
saved
>RT >RT
No duration
Interaction Histories
26. >RT
Windows W1 W2
>RT >RT
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
Interaction Histories
27. The Reaction Time (0.15 to 1.5 seconds)
>RT
Windows W1 W2
>RT >RT
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
How the Mind Works
S. Pinker
W. W. Norton, 1997Interaction Histories
28. >RT
Windows W1 W2
>RT >RT
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
Interaction Histories
29. >RT
Windows W1 W2
>RT >RT
MS1 MS2KS1 KS2 KS3
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
Sprees and Activities
Mouse Keyboard
Activity
Interaction Histories
30. >RT
Windows W1 W2
>RT >RT
MS1 MS2KS1 KS2 KS3
A1 A3A2
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
Sprees and Activities
Mouse Keyboard
Activity
Interaction Histories
31. >RT
Windows W1 W2
>RT >RT
MS1 MS2KS1 KS2 KS3
A1 A3A2
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
Sprees and Activities
Mouse Keyboard
Activity
Interaction Histories
5,052,386
events
31,609
activities
32. >RT
Windows W1 W2
>RT >RT
MS1 MS2KS1 KS2 KS3
A1 A3
Editing
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
Sprees and Activities
Mouse Keyboard
Activity
A2
Interaction Histories
33. >RT
Windows W1 W2
>RT >RT
MS1 MS2KS1 KS2 KS3
A1 A3
Editing
Understanding
Events
Mouse Keyboard
Window Meta
Windows
Workspace Code Browser
Finder
Sprees and Activities
Mouse Keyboard
Activity
A2
Interaction Histories
47. Fragmentation:
Outside the IDE
vs.
Time spent
outside the IDE
Number of times
outside the IDE
Understanding
time
Understanding
time
PCC=0.46
p < 10-16
PCC=0.63
p < 10-16
51. write
read
navigate
user interface
program
understanding
Program understanding:
Challenge for the 1990s
In the Program Understanding Project at IBM's Re-search Division, work began in late 1986 on toolswhich could help programmers in two key areas: staticanalysis (reading the code) and dynamic analysis (run-ning the code). The work is reported in the companionpapers by Cleveland and by Pazel in this issue. Thehistory and background which motivated and whichled to the start of this research on tools to assistprogrammers in understanding existing program codeis reported here.
" If the poor workman hates his tools, the goodworkman hates poor tools. The work of theworkingman is, in a sense, defined by his tool-witness the way in which the tool is so often taken tosymbolize the worker:the tri-squarefor the carpenter,the trowelfor the mason, the transit for the surveyor,the camera for the photographer, the hammerfor thelaborer, and the sickle for the farmer.
"Working with defective or poorly designed tools,even the finest craftsman is reduced to producinginferior work, and is thereby reduced to being aninferior craftsman. No craftsman, ifhe aspires to thehighest work in his profession, will accept such tools;and no employer, if he appreciates the quality ofwork, will ask the craftsman to accept them. "I
Today a variety of motivators are causing corpora-tions to invest in software tools to increase softwareproductivity, including: (1) increased demand forsoftware, (2) limited supply of software engineers, (3)rising expectations of support from software engi-neers, and (4) reduced hardware costs.' A key moti-
by T. A. Corbi
vator for software tools in the 1990swill be the resultof having software evolve over the previous decadesfrom several-thousand-line, sequential programmingsystems into multimillion-line, multitasking "busi-ness-critical" systems. As the programming systemswritten in the 1960s and 1970s continue to mature,the focus for software tools will shift from tools thathelp develop new programming systems to tools thathelp us understand and enhance aging programmingsystems.
In the 1970s, the work of Belady and Lehman"?strongly suggested that all large programs wouldundergo significant change during the in-servicephase of their life cycle, regardless of the a prioriintentions of the organization. Clearly, they wereright. As an industry, we have continued to growand change our large software systems to:
• Remove defects
• Address new requirements
• Improve design and/or performance
• Interface to new programs
• Adjust to changes in data structures or formats• Exploit new hardware and software features
As we extended the lifetimes of our systems bycontinuing to modify and enhance them, we also
e Copyright 1989by International BusinessMachines Corporation.Copying in printed form for private use is permitted withoutpayment of royalty provided that (I) each reproduction is donewithout alteration and (2)the Journalreference and IBM copyrightnotice are included on the first page. The title and abstract, but noother portions, of this paper may be copied or distributed royaltyfree without further permission by computer-based and otherinformation-service systems. Permission to republish any otherportion of this paper must be obtained from the Editor.
…up to 50%
52. write
read
navigate
user interface
program
understanding
Program understanding:
Challenge for the 1990s
In the Program Understanding Project at IBM's Re-search Division, work began in late 1986 on toolswhich could help programmers in two key areas: staticanalysis (reading the code) and dynamic analysis (run-ning the code). The work is reported in the companionpapers by Cleveland and by Pazel in this issue. Thehistory and background which motivated and whichled to the start of this research on tools to assistprogrammers in understanding existing program codeis reported here.
" If the poor workman hates his tools, the goodworkman hates poor tools. The work of theworkingman is, in a sense, defined by his tool-witness the way in which the tool is so often taken tosymbolize the worker:the tri-squarefor the carpenter,the trowelfor the mason, the transit for the surveyor,the camera for the photographer, the hammerfor thelaborer, and the sickle for the farmer.
"Working with defective or poorly designed tools,even the finest craftsman is reduced to producinginferior work, and is thereby reduced to being aninferior craftsman. No craftsman, ifhe aspires to thehighest work in his profession, will accept such tools;and no employer, if he appreciates the quality ofwork, will ask the craftsman to accept them. "I
Today a variety of motivators are causing corpora-tions to invest in software tools to increase softwareproductivity, including: (1) increased demand forsoftware, (2) limited supply of software engineers, (3)rising expectations of support from software engi-neers, and (4) reduced hardware costs.' A key moti-
by T. A. Corbi
vator for software tools in the 1990swill be the resultof having software evolve over the previous decadesfrom several-thousand-line, sequential programmingsystems into multimillion-line, multitasking "busi-ness-critical" systems. As the programming systemswritten in the 1960s and 1970s continue to mature,the focus for software tools will shift from tools thathelp develop new programming systems to tools thathelp us understand and enhance aging programmingsystems.
In the 1970s, the work of Belady and Lehman"?strongly suggested that all large programs wouldundergo significant change during the in-servicephase of their life cycle, regardless of the a prioriintentions of the organization. Clearly, they wereright. As an industry, we have continued to growand change our large software systems to:
• Remove defects
• Address new requirements
• Improve design and/or performance
• Interface to new programs
• Adjust to changes in data structures or formats• Exploit new hardware and software features
As we extended the lifetimes of our systems bycontinuing to modify and enhance them, we also
e Copyright 1989by International BusinessMachines Corporation.Copying in printed form for private use is permitted withoutpayment of royalty provided that (I) each reproduction is donewithout alteration and (2)the Journalreference and IBM copyrightnotice are included on the first page. The title and abstract, but noother portions, of this paper may be copied or distributed royaltyfree without further permission by computer-based and otherinformation-service systems. Permission to republish any otherportion of this paper must be obtained from the Editor.
…up to 50%
53. “When developers stare at their screens
without any movement: Don’t worry,
they’re ok, leave them alone.”
Roberto Minelli, Andrea Mocci, Michele Lanza
REVEAL @ Faculty of Informatics — University of Lugano, Switzerland
@robertominelli