I am an associate professor at Sharif University of Technology. I received my PhD in mechanical engineering and my MSC in energy systems engineering from Sharif University of Technology in I. R. Iran. Also, I have graduated in chemical engineering from Ferdowsi University of Mashhad, in I. R. Iran. Education, research, and teaching in multi-disciplinary and trans-disciplinary areas regarding the energy systems highlight the problem of nexus for me as a challenging issue for future human developments. My main research interests are energy and environment, energy-health nexus, sustainable integration of energy systems, and life cycle analysis. In recent years, I have focused on methods to assess different nexuses in real case studies in power plants, waste water treatment units, desalination plants, bioenergy production units, etc. I am highly interested in collaborating in trans-disciplinary areas with highly-motivated researchers.
Ph.D. in Mechanical Engineering
Sharif University of Technology, Tehran, Iran
Thesis Topic: Development of optimal integrated and intensive model of energy processing and conversion
Area of Study: Process intensification, Biodiesel
Ph.D. in Process systems engineering
RWTH, Aachen, Germany
Area of Study: Conceptual design of reactive distillatio
M.S. in Energy Systems Engineering
Sharif University of Technology, Tehran, Iran
Thesis Topic: Optimal integrated of energy flows
Area of Study: Process integration
B.S. in Chemical Engineering
Ferdowsi University, Mashhad, Iran
Thesis Topic: Modeling and simulation of water softening using artificial neural network
Area of Study: Filteration, Neural Networks
Innovation center of the committee of energy efficiency and environment, Vice presidency for science and technology
Energy systems engineering group, Mechanical engineering department, K. N. Toosi university of technology, 2012-2014, Tehran, Iran.
[ResearchSummary]
I am and have always been fascinated with "emergence". How interaction among elements creates something more than the sum of its parts. That is what moved me through different levels of my education; from "Swarm Intelligence" in my Master's studies to "Network Theory" in my Doctorate studies.
My current research involves studying Open Source Software (OSS) for Socio-Technical Congruence. We look into social networks and technical networks in OSS, and try to understand how these networks emerge, and how they affect each other.
This is a list of my publications so far. Please note that for journal papers, the document available here, is different from the one published in the journal. This difference is mostly visual and due to copyright issues, but there may be some minute changes in the journal papers that are not reflected in the documents available here. Otherwise the contents of these versions are completely identical.
[Abstract]
Code reuse has well-known benefits on code quality, coding
efficiency, and maintenance. Open Source Software (OSS)
programmers gladly share their own code and they happily
reuse others'. Social programming platforms like GitHub have
normalized code foraging via their common platforms,
enabling code search and reuse across different projects.
Removing project borders may facilitate more efficient code
foraging, and consequently faster programming. But looking
for code across projects takes longer and, once found, may
be more challenging to tailor to one's needs. Learning how
much code reuse goes on across projects, and identifying
emerging patterns in past cross-project search behavior may
help future foraging efforts.
To understand cross-project code reuse, here we present an
in-depth study of cloning in GitHub. Using Deckard, a clone
finding tool, we identified copies of code fragments across
projects, and investigate their prevalence and
characteristics using statistical and network science
approaches, and with multiple case studies. By triangulating
findings from different methods, we find that cross-project
cloning is prevalent in GitHub, ranging from cloning few
lines of code to whole project repositories. Some of the
projects serve as popular sources of clones, and others seem
to contain more clones than their fair share. Moreover, we
find that ecosystem cloning follows an onion model: most
clones come from the same project, then from projects in the
same application domain, and finally from projects in
different domains. Our results show directions for new tools
that can facilitate code foraging and sharing within GitHub.
Developing and maintaining large software systems typically requires that developers collaborate on many tasks. During such collaborations, when multiple people work on the same chunk of code at the same time, they communicate with each other and employ safeguards in various ways. Recent studies have considered group co-development in OSS projects and found that it is an essential part of many projects. However, those studies were limited to groups of size two, i.e., pairs of developers. Here we go further and characterize co-development in larger groups. We develop an effective methodology for capturing distributed collaboration beyond groups of size two, based on synchronized commit activities among multiple developers, and apply it to data from 26 OSS projects from the Apache Software Foundation. We find that distributed collaborations is prevalent, but not as frequent as expected. We also find that while in distributed collaborative groups, developers’ behavior is different than when programming alone, e.g., high developer focus on specific code packages associates with lower team participation, while packages with higher ownership get less attention from groups than from individuals. Finally, we show that productivity effort during co-development is more often lower for developers while they co-develop in groups. To verify our results we use both quantitative and qualitative methods, including a developer survey. We conclude that these methods and results can be used to understand the effects of the collaborative dynamic in OSS teams on the software engineering process. Our code, along with our datasets and survey is available at http://www.gharehyazie.com/supplementary/teamwork/.
About 75% of plant yield potential has been estimated to be lost to environmental stresses, even in developed agricultures. To facilitate the biotechnological improvement of crop productivity, genes and proteins that control crop adaptation to a wide range of environments will need to be identified. Due to the challenges faced in text/data mining, there is a large gap between the data available to researchers and the hundreds of published plant stress proteomics articles. Plant stress proteome database (PlantPReS; www.proteome.ir) is an open online proteomic database, which currently (as of October 2015) comprises > 20,413 entries from 456 manually curated articles, and contains > 10,600 unique stress responsive proteins. Since every aspect of the experiments, including protein name, accession number, plant type, tissue, stress types, organelles, and developmental stage has been digitized, experimental data can be rapidly accessed and integrated. Furthermore, PlantPReS enables researchers to perform multiple analyses on the database using the filtration mode, and the results of each query indicate a series of proteins for which a set of selected criteria is met. The query results can be displayed in either text or graphical format.
Understanding users' behavioral patterns and quantifying users' expertise have a myriad applications, from predicting user actions and tailoring the environment to that specific user, to detecting masquerade attacks and assessing learning outcomes. Toward this end, we have conducted a study on three Unix command datasets, totaling 263 users and more than 1 million commands. We first introduce the notions of command expertise, command line expertise, and command category. Next, we use these metrics, combined with other attributes to define and quantify several user expertise metrics, e.g., category breadth, command line expertise. Our study has revealed many Unix commands characteristics, e.g., Unix command can be grouped into 25 categories; file management is the most common activity; the most commonly used commands are two-characters long. Our study has also revealed many insights into user expertise and behavior, such as: command line length is not an indicator of user expertise; users activity is highest on Monday and decreases every day through Saturday, picking up on Sunday; peak command usage hours are 11 a.m., 1 p.m. and 4 p.m.; development activities happen mostly in the afternoon.
Maintaining a productive and collaborative team of developers is essential to Open Source Software (OSS) success, and hinges upon the trust inherent among the team. Whether a project participant is initiated as a committer is a function of both his technical contributions and also his social interactions with other project participants. One’s online social footprint is arguably easier to ascertain and gather than one’s technical contributions e.g., gathering patch submission information requires mining multiple sources with different formats, and then merging the aliases from these sources. In contrast to prior work, where patch submission was found to be an essential ingredient to achieving committer status, here we investigate the extent to which the likelihood of achieving that status can be modeled solely as a social network phenomenon. For 6 different Apache Software Foundation OSS projects we compile and integrate a set of social measures of the communications network among OSS project participants and a set of technical measures, i.e., OSS developers’ patch submission activities. We use these sets to predict whether a project participant will become a committer, and to characterize their socialization patterns around the time of becoming committer. We find that the social network metrics, in particular the amount of two-way communication a person participates in, are more significant predictors of one’s likelihood to becoming a committer. Further, we find that this is true to the extent that other predictors, e.g., patch submission info, need not be included in the models. In addition, we show that future committers are easy to identify with great fidelity when using the first three months of data of their social activities. Moreover, only the first month of their social links are a very useful predictor, coming within 10% of the three month data’s predictions. Interestingly, we find that on average, for each project, one’s level of socialization ramps up before the time of becoming a committer. After obtaining committer status, their social behavior is more individualized, falling into few distinct modes of behavior. In a significant number of projects, immediately after the initiation there is a notable social cooling-off period. Finally, we find that it is easier to become a developer earlier in the projects life cycle than it is later as the project matures. These results should provide insight on the social nature of gaining trust and advancing in status in distributed projects.
Maintaining a productive and collaborative team of developers is essential to Open Source Software (OSS) success, and hinges upon the trust inherent among the team. Whether a project participant is initiated as a developer is a function of both his technical contributions and also his social interactions with other project participants. Oneâs online social footprint is arguably easier to ascertain and gather than oneâs technical contributions e.g., gathering patch submission information requires mining multiple sources with different formats, and then merging the aliases from these sources. In contrast to prior work, where patch submission was found to be an essential ingredient to achieving developer status, here we investigate the extent to which the likelihood of achieving that status can be modeled solely as a social network phenomenon. For 6 different OSS projects we compile and integrate a set of social measures of the communications network among OSS project participants and a set of technical measures, i.e. OSS developers patch submission activities. We use these sets to predict whether a project participant will become a developer. We find that the social network metrics, in particular the amount of two-way communication a person participates in, are more significant predictors of oneâs likelihood to becoming a developer. Further, we find that this is true to the extent that other predictors, e.g. patch submission info, need not be included in the models. In addition, we show that future developers are easy to identify with great fidelity when using the first three months of data of their social activities. Moreover, only the first month of their social links are a very useful predictor, coming within 10% of the three month dataâs predictions. Finally, we find that it is easier to become a developer earlier in the projects lifecycle than it is later as the project matures. These results should provide insight on the soci- l nature of gaining trust and advancing in status in distributed projects.
This paper proposes novel quantitative methods to measure the effects of social communications on individual working rhythms by analyzing the communication and code committing records in tens of Open Source Software (OSS) projects. Our methods are based on complex network and time-series analysis. We define the notion of a working rhythm as the average time spent on a commit task and we study the correlation between working rhythm and communication frequency. We build communication networks for code developers, and find that the developers with higher social status, represented by the nodes with larger number of outgoing or incoming links, always have faster working rhythms and thus contribute more per unit time to the projects. We also study the dependency between work (committing) and talk (communication) activities, in particular the effect of their interleaving. We introduce multi-activity time-series and quantitative measures based on activity latencies to evaluate this dependency. Comparison of simulated time-series with the real ones suggests that when work and talk activities are in proximity they may accelerate each other in OSS systems. These findings suggest that frequent communication before and after committing activities is essential for effective software development in distributed systems.
NIMAD and INSF
Sharif University of Technology
I would be happy to talk to you if you need my assistance in your research or anything else. I prefer to communicate through my Sharif email, but feel free to contact me however you like.
You can find me at my office located at Sharif University of Technology-Department of Energy Engineering.
I am available at my office on Sundays from 9:00 to 10:30 a.m. and Tuesdays from 9:00 to 10:30 a.m. However, please feel free to schedule an appointment at your convenience.