Hi Jeffrey,
I'm staff at UC Berkeley where I work on the Ptolemy project
(http://ptolemy.org). In 1999, we wrote a paper about software
development in an academic environment
(http://ptolemy.eecs.berkeley.edu/publications/papers/99/sftwareprac/)
At the time, we found that code reviews were quite effective at
teaching the art of software design to students. Back then, most
electrical engineering students had very little programming
experience. These days, they have much more. One thing we came
up with was a simple color scheme for the stability of software
(red, yellow, green and blue). We independently started doing
nightly builds with a web page showing the results that included
the rating, code coverage and cyclomatic complexity. We could use
this page to help determine what code should next get unit tests.
We moved from this home grown system to Hudson, then Jenkins and
we are no longer doing code coverage because the build takes 5
hours as it is.
I was pretty happy when I found McConnell's Code Complete and
realized that we had been doing many of his suggestions.
Unfortunately, these days we are not doing more formal code
reviews, though I tend to desk check software at least once with
each new student.
The Ptolemy project has a style guide, which is documented at
https://www2.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-164.html.
The abstract sums it up:
Collaborative software projects benefit
when participants read code created by other participants. The
objective of a coding style is to reduce the fatigue induced by
unimportant formatting differences and differences in naming
conventions. Although individual programmers will undoubtedly
have preferences and habits that differ from the recommendations
here, the benefits that flow from following these
recommendations far outweigh the inconveniences. Published
papers in journals are subject to similar stylistic and layout
constraints, so such constraints are not new to the academic
community. This document describes the coding style used in
Ptolemy II, a package with 550K lines of Java and 160
contributing programmers that has been under development since
1996.
One thing I think open source has failed at is that most projects
have almost no documentation for the methods. This makes it
difficult to know how to use the code.
These days, with Eclipse, I think the bottleneck is that setting
up a Eclipse project like Triquetrum
(http://wiki.eclipse.org/Triquetrum) has a very high "aha!"
factor, where doing simple things like setting up the Welcome
window is simple, but finding out precisely which lines to add
where can take quite a bit of time. I've found that looking at
Github code can help here, as does Stackoverflow. I've been
attempting to update the Eclipse wiki, or at least create pages
that describe what I did so that maybe the next person might find
my notes.
The other bottleneck I'm seeing is in a different project, called
Accessors, (proxies for IoT services and devices). _javascript_ was
selected because it runs in the browser and has asynchronous
atomic callbacks (AAC). Unfortunately, I feel that _javascript_ is
not very well designed and not suitable for large scale use.
_javascript_ made me be much more a fan of Python, which until I
used _javascript_, I was no fan of Python. Software engineering
for non-trivial systems written in languages like _javascript_ that
are not strongly typed is bad enough. _javascript_ just seems to
make it worse than it was say in Tcl.
_Christopher
On 6/12/17 2:58 PM, Jeffrey Carver
wrote:
Jay,
Thank you for
the introduction. Look forward to learning more about this
group and interacting with you. Just to provide a bit more
background, I’ve been doing research for more than 10 years
in understand how to best apply software engineering
principles to the development of scientific software, given
all of the constraints and uniqueness of this domain. If
anyone here is interested in talking more with me about your
experiences (either positive or negative), I would really be
interested. Furthermore, if anyone is interested in
collaborating to address any bottlenecks in your software
processes, I would really be interested in talking more.
Thanks in
advance!
Jeffrey
Carver
Professor
(effective 8/17)
Department
of Computer Science
University
of Alabama
205.348.9829
(v)
Everyone,
Allow me introduce you to a colleague
of mine, Professor Jeff Carver from the University of
Alabama. Jeff studies software engineering and does very
interesting research work on scientific software. He
recently asked me about the Science Working Group and I've
convinced him to join the list to learn more about your
projects.
Jay
--
Jay Jay Billings
Oak Ridge National Laboratory
Twitter Handle: @jayjaybillings
_______________________________________________
science-iwg mailing list
science-iwg@xxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.eclipse.org/mailman/listinfo/science-iwg
--
Christopher Brooks, PMP
Academic Program Manager
iCyPhy/Ptolemy/TerraSwarm
University of California, Berkeley
707.332.0670, cxh@xxxxxxxxxxxx, https://ptolemy.eecs.berkeley.edu/~cxh