Andrea Mocci

Learn More
This paper describes an approach (SPY) to recovering the specification of a software component from the observation of its run-time behavior. It focuses on components that behave as data abstractions. Components are assumed to be black boxes that do not allow any implementation inspection. The inferred description may help understand what the component does(More)
PURPOSE In this study, we evaluated the results of arthroscopic stabilization of the shoulder using knotless anchors and the lesions associated with anterior-inferior labrum avulsion. TYPE OF STUDY Retrospective clinical study. METHODS Twenty consecutive patients affected with anterior unidirectional post-traumatic shoulder instability were treated with(More)
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(More)
Stack Overflow is the de facto Question and Answer (Q&A) website for developers, and it has been used in many approaches by software engineering researchers to mine useful data. However, the contents of a Stack Overflow discussion are inherently heterogeneous, mixing natural language, source code, stack traces and configuration files in XML or JSON(More)
PURPOSE Anterior cruciate ligament (ACL) reconstructive surgery has seen significant progress since bioabsorbable interference screws have replaced synthetic metallic screws for ligament graft fixation within the femoral and tibial osseous tunnel. Our study compared the MR images of patients who underwent ACL reconstruction using bioabsorbable interference(More)
This work compares the results of 2 different techniques of anterior cruciate reconstruction performed by 2 surgeons with the same rehabilitation program and same criteria of results evaluation. Forty-five patients were operated on using semitendinous tendon autograft, (average followup, 8 years 4 months), and 30 patients using bone patellar tendon bone(More)
Java is a safe language. Its runtime environment provides strong safety guarantees that any Java application can rely on. Or so we think. We show that the runtime actually does not provide these guarantees---for a large fraction of today's Java code. Unbeknownst to many application developers, the Java runtime includes a "backdoor" that allows expert(More)
Specification recovery is a necessary step of many reverse engineering and reuse efforts. This paper deals with recovering the semantic part of a component's interface. It focuses on stateful components that provide data abstractions. Recovery is achieved by following a black-box strategy, i.e. by observing the component's dynamic behavior. Among the(More)
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(More)
We consider the problem of run-time discovery and continuous monitoring of new components that live in an open environment. We focus on extracting a formal model—which may not be available— by observing the behavior of the running component. We show how the model built at run time can be enriched through new observations (dynamic model update). We also use(More)