Melanoma originates in the epidermis and becomes metastatic after invasion into the dermis. Prior... more Melanoma originates in the epidermis and becomes metastatic after invasion into the dermis. Prior interactions between melanoma cells and dermis are poorly studied. Here, we show that melanoma cells directly affect the formation of the dermal tumour niche by microRNA trafficking before invasion. Melanocytes, cells of melanoma origin, are specialized in releasing pigment vesicles, termed melanosomes. In melanoma in situ, we found melanosome markers in distal fibroblasts before melanoma invasion. The melanosomes carry microRNAs into primary fibroblasts triggering changes, including increased proliferation, migration and pro-inflammatory gene expression, all known features of cancer-associated fibroblasts (CAFs). Specifically, melanosomal microRNA-211 directly targets IGF2R and leads to MAPK signalling activation, which reciprocally encourages melanoma growth. Melanosome release inhibitor prevented CAF formation. Since the first interaction of melanoma cells with blood vessels occurs in the dermis, our data suggest an opportunity to block melanoma invasion by preventing the formation of the dermal tumour niche.
Design by contract is a practical methodology for evolving code together with its specification. ... more Design by contract is a practical methodology for evolving code together with its specification. The contract has important methodological implications on the design of the program. In addition, tools that instrument the code to check for contract violations help the development process by catching errors close to their sources. This is complicated by several factors, such as the need to collect preconditions from supertypes. There are two issues involved in the implementation of such a tool: the correct enforcement of the theoretical principles, and the instrumentation of the code. Most previous tools tackle both issues, but have subtle failures in one or the other. This paper describes Jose, a tool for design by contract in Java, which uses AspectJ, an aspect-oriented extension of Java, to instrument the program. This allows us to leverage the expertise of the AspectJ developers in instrumenting Java programs, and concentrate on the correct implementation of the designby-contract ...
Finding Source Code on the Web for Remix and Reuse, 2013
The open source community, as well as numerous technical blogs and community web sites, put onlin... more The open source community, as well as numerous technical blogs and community web sites, put online vast quantities of free source code, ranging from snippets to full-blown products. This code embodies the software development community’s domain knowledge, and mirrors the structure of the Internet: it is distributed rather than hierarchical; it is chaotic, incomplete, and inconsistent. StackOverflow.com is a Question and Answer (Q&A) website which uses social media to facilitate knowledge exchange between programmers by mitigating the pitfalls involved in using code from the Internet. Its design nurtures a community of developers, and enables crowd sourced software engineering activities ranging from documentation to providing useful, high quality code snippets to be used in production. In this chapter we review Stack Overflow from three perspectives: (1) its design and its social media characteristics, (2) the role it plays in the software documentation landscape, and (3) the use of Stack Overflow in the context of the example centric programming paradigm.
Human Aspects of Software Engineering on - HAoSE '10, 2010
ABSTRACT As part of our research on the use of code examples in professional programming, we focu... more ABSTRACT As part of our research on the use of code examples in professional programming, we focus on the developer's awareness and attentiveness to example usage. We identify three types of lack of attentiveness: lack of awareness that causes ...
Abstract The evaluation of an advanced software engineering (SE) course is a challenging task tha... more Abstract The evaluation of an advanced software engineering (SE) course is a challenging task that should be addressed as part of the course design. In this paper, we describe an implementation of the reflective practitioner perspective as part of an advanced SE course and introduce its use for feedback purposes. Reflective feedback goes beyond merely using feedback questionnaires.
Abstract Socio-professional websites such as LinkedIn use various mechanisms such as network of c... more Abstract Socio-professional websites such as LinkedIn use various mechanisms such as network of colleagues, groups and discussions to assist their users in maintaining their professional network and keeping up with relevant discussions. Software professionals post hundreds of thousands of comments each week in these group discussions regarding technological and methodological aspects of their work.
Abstract Modern Q&A websites, such as Stack Overflow, use social media to provide concise answers... more Abstract Modern Q&A websites, such as Stack Overflow, use social media to provide concise answers, and offer rich technical context with quality assessment capabilities. Although some of the answers may include executable code snippets, they are entangled in free text and are not easily extracted. Q&A websites are not designed for such direct code reuse. We present Example Overflow, a code search and recommendation tool which brings together social media and code recommendation systems.
Abstract Using code examples in professional software development is like teenage sex. Those who ... more Abstract Using code examples in professional software development is like teenage sex. Those who say they do it all the time are probably lying. Although it is natural, those who do it feel guilty. Finally, once they start doing it, they are often not too concerned with safety, they discover that it is going to take a while to get really good at it, and they realize they will have to come up with a bunch of new ways of doing it before they really figure it all out.
ABSTRACT NANDFS is a flash file system that exposes a memory-performance tradeoff to system integ... more ABSTRACT NANDFS is a flash file system that exposes a memory-performance tradeoff to system integrators. The file system can be configured to use a large amount of RAM, in which case it delivers excellent performance. In particular, when NANDFS is configured with the same amount of RAM that YAFFS2 uses, the performance of the two file systems is comparable (YAFFS2 is a file system that is widely used in embedded Linux and other embedded environments).
Abstract We use an empirical qualitative software engineering research to characterize Example Em... more Abstract We use an empirical qualitative software engineering research to characterize Example Embedding (EE) as a software activity-a collection of fine grained techniques which together assemble an abstract key notion in software development. This perspective lays the foundations for building an activity catalogue, forming new software practices, affecting the development process and motivating the development of new software tools.
Abstract Software engineering (SE) is a multidimensional field that involves activities in variou... more Abstract Software engineering (SE) is a multidimensional field that involves activities in various areas and disciplines, such as computer science, project management, and system engineering. Though modern SE curricula include designated courses that address these various subjects, an advanced summary course that synthesizes them is still missing.
Abstract Design by contract is a practical methodology for evolving code together with its specif... more Abstract Design by contract is a practical methodology for evolving code together with its specification. The contract has important methodological implications on the design of the program. In addition, tools that instrument the code to check for contract violations help the development process by catching errors close to their sources. This is complicated by several factors, such as the need to collect preconditions from supertypes.
Melanoma originates in the epidermis and becomes metastatic after invasion into the dermis. Prior... more Melanoma originates in the epidermis and becomes metastatic after invasion into the dermis. Prior interactions between melanoma cells and dermis are poorly studied. Here, we show that melanoma cells directly affect the formation of the dermal tumour niche by microRNA trafficking before invasion. Melanocytes, cells of melanoma origin, are specialized in releasing pigment vesicles, termed melanosomes. In melanoma in situ, we found melanosome markers in distal fibroblasts before melanoma invasion. The melanosomes carry microRNAs into primary fibroblasts triggering changes, including increased proliferation, migration and pro-inflammatory gene expression, all known features of cancer-associated fibroblasts (CAFs). Specifically, melanosomal microRNA-211 directly targets IGF2R and leads to MAPK signalling activation, which reciprocally encourages melanoma growth. Melanosome release inhibitor prevented CAF formation. Since the first interaction of melanoma cells with blood vessels occurs in the dermis, our data suggest an opportunity to block melanoma invasion by preventing the formation of the dermal tumour niche.
Design by contract is a practical methodology for evolving code together with its specification. ... more Design by contract is a practical methodology for evolving code together with its specification. The contract has important methodological implications on the design of the program. In addition, tools that instrument the code to check for contract violations help the development process by catching errors close to their sources. This is complicated by several factors, such as the need to collect preconditions from supertypes. There are two issues involved in the implementation of such a tool: the correct enforcement of the theoretical principles, and the instrumentation of the code. Most previous tools tackle both issues, but have subtle failures in one or the other. This paper describes Jose, a tool for design by contract in Java, which uses AspectJ, an aspect-oriented extension of Java, to instrument the program. This allows us to leverage the expertise of the AspectJ developers in instrumenting Java programs, and concentrate on the correct implementation of the designby-contract ...
Finding Source Code on the Web for Remix and Reuse, 2013
The open source community, as well as numerous technical blogs and community web sites, put onlin... more The open source community, as well as numerous technical blogs and community web sites, put online vast quantities of free source code, ranging from snippets to full-blown products. This code embodies the software development community’s domain knowledge, and mirrors the structure of the Internet: it is distributed rather than hierarchical; it is chaotic, incomplete, and inconsistent. StackOverflow.com is a Question and Answer (Q&A) website which uses social media to facilitate knowledge exchange between programmers by mitigating the pitfalls involved in using code from the Internet. Its design nurtures a community of developers, and enables crowd sourced software engineering activities ranging from documentation to providing useful, high quality code snippets to be used in production. In this chapter we review Stack Overflow from three perspectives: (1) its design and its social media characteristics, (2) the role it plays in the software documentation landscape, and (3) the use of Stack Overflow in the context of the example centric programming paradigm.
Human Aspects of Software Engineering on - HAoSE '10, 2010
ABSTRACT As part of our research on the use of code examples in professional programming, we focu... more ABSTRACT As part of our research on the use of code examples in professional programming, we focus on the developer's awareness and attentiveness to example usage. We identify three types of lack of attentiveness: lack of awareness that causes ...
Abstract The evaluation of an advanced software engineering (SE) course is a challenging task tha... more Abstract The evaluation of an advanced software engineering (SE) course is a challenging task that should be addressed as part of the course design. In this paper, we describe an implementation of the reflective practitioner perspective as part of an advanced SE course and introduce its use for feedback purposes. Reflective feedback goes beyond merely using feedback questionnaires.
Abstract Socio-professional websites such as LinkedIn use various mechanisms such as network of c... more Abstract Socio-professional websites such as LinkedIn use various mechanisms such as network of colleagues, groups and discussions to assist their users in maintaining their professional network and keeping up with relevant discussions. Software professionals post hundreds of thousands of comments each week in these group discussions regarding technological and methodological aspects of their work.
Abstract Modern Q&A websites, such as Stack Overflow, use social media to provide concise answers... more Abstract Modern Q&A websites, such as Stack Overflow, use social media to provide concise answers, and offer rich technical context with quality assessment capabilities. Although some of the answers may include executable code snippets, they are entangled in free text and are not easily extracted. Q&A websites are not designed for such direct code reuse. We present Example Overflow, a code search and recommendation tool which brings together social media and code recommendation systems.
Abstract Using code examples in professional software development is like teenage sex. Those who ... more Abstract Using code examples in professional software development is like teenage sex. Those who say they do it all the time are probably lying. Although it is natural, those who do it feel guilty. Finally, once they start doing it, they are often not too concerned with safety, they discover that it is going to take a while to get really good at it, and they realize they will have to come up with a bunch of new ways of doing it before they really figure it all out.
ABSTRACT NANDFS is a flash file system that exposes a memory-performance tradeoff to system integ... more ABSTRACT NANDFS is a flash file system that exposes a memory-performance tradeoff to system integrators. The file system can be configured to use a large amount of RAM, in which case it delivers excellent performance. In particular, when NANDFS is configured with the same amount of RAM that YAFFS2 uses, the performance of the two file systems is comparable (YAFFS2 is a file system that is widely used in embedded Linux and other embedded environments).
Abstract We use an empirical qualitative software engineering research to characterize Example Em... more Abstract We use an empirical qualitative software engineering research to characterize Example Embedding (EE) as a software activity-a collection of fine grained techniques which together assemble an abstract key notion in software development. This perspective lays the foundations for building an activity catalogue, forming new software practices, affecting the development process and motivating the development of new software tools.
Abstract Software engineering (SE) is a multidimensional field that involves activities in variou... more Abstract Software engineering (SE) is a multidimensional field that involves activities in various areas and disciplines, such as computer science, project management, and system engineering. Though modern SE curricula include designated courses that address these various subjects, an advanced summary course that synthesizes them is still missing.
Abstract Design by contract is a practical methodology for evolving code together with its specif... more Abstract Design by contract is a practical methodology for evolving code together with its specification. The contract has important methodological implications on the design of the program. In addition, tools that instrument the code to check for contract violations help the development process by catching errors close to their sources. This is complicated by several factors, such as the need to collect preconditions from supertypes.
Uploads
Papers by Ohad Barzilay