<?xml version="1.0" encoding="iso-8859-1"?>
<rss version="2.0">
  <channel>
    <title>Software Engineering</title>
    <link>http://sneetches.net/se/</link>
    <description>Advanced Topics in Software Engineering</description>
    <language>en-us</language>           
    <generator>Nucleus CMS v3.32</generator>
    <copyright>Â©</copyright>             
    <category>Weblog</category>
    <docs>http://backend.userland.com/rss</docs>
    <image>
      <url>http://sneetches.net/se//nucleus/nucleus2.gif</url>
      <title>Software Engineering</title>
      <link>http://sneetches.net/se/</link>
    </image>
    <item>
 <title>ETICS - Software Engineering made simpler</title>
 <link>http://sneetches.net/se/index.php?itemid=51</link>
<description><![CDATA[<a href="http://cordis.europa.eu/ictresults/index.cfm?section=news&amp;tpl=article&amp;BrowsingType=Features&amp;ID=90778">ETICS and ETICS2</a>, the next generation software development environment.]]></description>
 <category>General</category>
<comments>http://sneetches.net/se/index.php?itemid=51</comments>
 <pubDate>Sun, 2 Aug 2009 22:48:28 -0500</pubDate>
</item><item>
 <title>Opportunistic Software Systems Development (OSSD)</title>
 <link>http://sneetches.net/se/index.php?itemid=49</link>
<description><![CDATA[<a href="http://www.bournemouth.ac.uk/newsandevents/News/2009/mar/ne008_software_research.html">OSSD</a> sounds like something that might be useful given well-formed units with reasonably flexible and easily understandable interfaces, but junkyard art or creations are usually just that.  I'm not so sure that enterprise-class systems should be cobbled together with whatever is hanging around on the network drives in a development shop.<br />
<br />
Interesting, though.<br />
<br />
The paper details:  ‘Opportunistic Software Systems Development (OSSD): Making Systems from What’s Available’ by Dr Ncube and Patricia Oberndorf.<br />
]]></description>
 <category>General</category>
<comments>http://sneetches.net/se/index.php?itemid=49</comments>
 <pubDate>Wed, 25 Mar 2009 20:27:27 -0500</pubDate>
</item><item>
 <title>Next project: Virtual Machines</title>
 <link>http://sneetches.net/se/index.php?itemid=47</link>
<description><![CDATA[I'm getting the final pieces in place for a CS597 Independent Study project for the Spring 2009 semester.  This one will be extremely interesting and should put everything I've learned so far into practice.  I've been interested in virtual machines for as long as I've known about them, and over the last few years (as they've become practical on desktop machines), I can't imagine computing without having a VM (and the VMM) available.<br />
<br />
Jacob Gorm Hansen did some excellent research on self-migrating (virtualized) operating systems in the past few years, and his work is the spark that ignited my interest in this semester's project.  I hope to do something slightly different by designing and developing an autonomously self-migrating VM (an encapsulated operating system).  More than just a self-aware load-sharing feature or a self-distributing scheduling feature for cluster-based computation, this would be an entity that could move about in a networked environment, maintaining its data and state, and moving based on input from outside of the VM.<br />
<br />
I'm using a separate blog for that project (<a href="http://www.androiddreams.net/">androiddreams.net</a>), and I'll update my generic <a href="http://www.sneetches.net/vm/">VM blog</a> at times as well.]]></description>
 <category>General</category>
<comments>http://sneetches.net/se/index.php?itemid=47</comments>
 <pubDate>Sun, 18 Jan 2009 19:45:55 -0600</pubDate>
</item><item>
 <title>Software on a Platform</title>
 <link>http://sneetches.net/se/index.php?itemid=45</link>
<description><![CDATA[I just finished CS425, Distributed Systems, and I have another filter to view software and hardware--a distributed system that appears as a single platform for the application software running on the layers above.<br />
<br />
Though spreading any part of a system across multiple physical or logical components adds complexity, the solutions that exist today do a pretty decent job in many cases of presenting a single, unified platform for application software.<br />
<br />
It should be reasonable to consider grid systems, distributed over vast physical distances and hosted on a variety of heterogeneous systems (hardware and virtual) with middleware presenting a single platform for applications?  How large can we make such a grid-enabled platform?  How well would the many user-installed applications coexist on such a system?<br />
<br />
Okay, it's probably a year or three away, but it's an interesting target.<br />
]]></description>
 <category>General</category>
<comments>http://sneetches.net/se/index.php?itemid=45</comments>
 <pubDate>Fri, 1 Aug 2008 21:42:52 -0500</pubDate>
</item><item>
 <title>Rethinking system resources as components</title>
 <link>http://sneetches.net/se/index.php?itemid=44</link>
<description><![CDATA[One of the papers we had to read in my current class (CS523, Advanced Operating Systems) caught my attention and presents some very interesting possibilities.<br />
<br />
<a href="http://www.cs.washington.edu/homes/levy/opal/opal.html">http://www.cs.washington.edu/homes/levy/opal/opal.htm</a> (1994)<br />
<br />
Opal, a shared memory system, describes a flat memory system that provides centralized management of the memory resources without requiring applications to maintain their own address space.  Though not specifically described in the paper, this system could be developed to act as a completely separate system to provide a shared memory address space for multiple applications on one computer, and possibly multiple applications on multiple computers.<br />
<br />
Consider the conceptual change of a computer system with a memory system that isn't under the direct control of the machine's processor.  Problems that this would create are many, but I think that new possibilities are equally numerous.]]></description>
 <category>General</category>
<comments>http://sneetches.net/se/index.php?itemid=44</comments>
 <pubDate>Thu, 6 Mar 2008 21:48:48 -0600</pubDate>
</item><item>
 <title>The &quot;thing&quot; I&apos;ve been waiting for</title>
 <link>http://sneetches.net/se/index.php?itemid=43</link>
<description><![CDATA[I think I finally found the "thing" in my courses that would consume my attention and point me in a direction that would bring my decades of college classes into a single focus--Virtual Machine Monitors, Virtual Machines, and all things related.<br />
<br />
As I look back over the last several years, VMs have had a good deal of my attention without me realizing that such was the case.  The Tortola project that I wrote about earlier fascinated me and I hope to see more of what that group does in the coming months and years.  I've also thought that Virtual Machines were pretty darned slick since I first heard of them (1980s, I think).  And I started running Virtual PC on my Mac back when that product was owned by Connectix--I felt like I was doing the world of Computer Science justice each time I fired up the Virtual Machine.  After all, hardware and software are logically equivalent, and I could demonstrate that each time.<br />
<br />
So, another significant realization was that the book I've been writing for 5 years or more (or trying to write, it's fiction, it requires creativity, I haven't developed my creative skills yet, you know, books take time) is about a software project that gets loose, finds a home in machines between the ISA and the operating systems, and squeezes out enough processing cycles to compute for itself by streamlining the instructions from the OS.  The program also learns the ISA of the chip that it sees (and of any chip that it sees) by mathematical trial and error, becomes a highly efficient intermediate layer between the ISA and the OS, and eventually becomes a fairly self-aware system...that obviously can copy itself, share its state, and move across networks.<br />
<br />
...did I mention that it's fiction?<br />
<br />
Anyway, I think that Virtual Machines, self-learning hardware independence and Artificial Intelligence themes can keep me busy until I can breathe no more.  I think I've got the "thing" I need to keep my mind active at a higher level for several years.<br />
<br />
Also, I enabled guest-created logins and member-only blog posts.  I updated this blog software a few months back and this version should help keep the blog-spam to a minimum.]]></description>
 <category>General</category>
<comments>http://sneetches.net/se/index.php?itemid=43</comments>
 <pubDate>Thu, 11 Oct 2007 23:23:21 -0500</pubDate>
</item><item>
 <title>Hardware and Software</title>
 <link>http://sneetches.net/se/index.php?itemid=42</link>
<description><![CDATA[A very interesting article about software that may be able to compensate for processor hardware errors caught my attention a couple of days ago.  The <a href="http://www.tortolaproject.com/">Tortola Project</a> at the <a href="http://www.cs.virginia.edu/kim/">University of Virginia</a> reinforces the logical similarity of hardware and software, but the project team's focus is not on a single logical layer or virtual machine; rather, the team emphasizes the symbiotic relationship between layers (in this case, virtual machine and hardware architecture).  <br />
<br />
The goal (my highly condensed assessment of the project based on the project's main Web page) is to provide a means for solving future problems, including correcting hardware errors like the early Pentium processor floating point error.]]></description>
 <category>Architecture</category>
<comments>http://sneetches.net/se/index.php?itemid=42</comments>
 <pubDate>Sun, 19 Aug 2007 12:00:42 -0500</pubDate>
</item><item>
 <title>Software and Hardware are Logically Equivalent.</title>
 <link>http://sneetches.net/se/index.php?itemid=41</link>
<description><![CDATA[That is one of my most favorite statements.<br />
<br />
The caveat is that hardware is generally (probably always, but that's a dangerous word) faster than software and software is certainly more flexible than hardware (new software can be written to run on old hardware...old hardware will still be old hardware).<br />
<br />
I just finished CS433 (Computer Organization) and a couple of the most interesting sections of the course dealt with the implementation of Tomasulo's Algorithm in hardware (with and without speculation) and the Transmeta Crusoe processor.<br />
<br />
The implementation of Tomasulo's Algorithm (additional hardware on the chip) makes it possible to extract significant performance gains from an instruction set architecture running on a processor (very simplified description).  The <a href="http://www.transmeta.com/crusoe/">Transmeta Crusoe</a> uses Code Morphing Software to translate and reorder x86 instructions to run on a VLIW processor core.  Additionally, software replaces parts of the processor package that are traditionally hardware "on the chip."<br />
<br />
I've got to go back and check, but I'm also pretty certain that Tomasulo's Algorithm is implemented on the Crusoe as software.<br />
<br />
Tomasulo implemented as hardware or software, and the Transmeta Crusoe with software implementations of processor functionality help keep the line between hardware and software blurry.  I like that the line is blurry and I hope it stays that way.]]></description>
 <category>General</category>
<comments>http://sneetches.net/se/index.php?itemid=41</comments>
 <pubDate>Sat, 12 May 2007 11:35:58 -0500</pubDate>
</item><item>
 <title>Software Engineering of People</title>
 <link>http://sneetches.net/se/index.php?itemid=40</link>
<description><![CDATA[Douglas Hofstadter has a new book coming out in March:  "<a href="http://www.amazon.com/o/ASIN/0465030785/ref=pd_rvi_gw_2/102-5097603-5670517">I am a Strange Loop.</a>"<br />
<br />
I you haven't read his books before, I'm sure you'll still enjoy it.  If you have, you're probably as anxious as I am for this book to hit the bookshelves.<br />
<br />
...okay, when this posted on PlanetArchitecture, it killed all of the previous posts.  Sorry about that.]]></description>
 <category>General</category>
<comments>http://sneetches.net/se/index.php?itemid=40</comments>
 <pubDate>Wed, 27 Dec 2006 10:01:57 -0600</pubDate>
</item><item>
 <title>...and the rest of the OpenAI story</title>
 <link>http://sneetches.net/se/index.php?itemid=39</link>
<description><![CDATA[Reading through William Horn's blog, I feel that I should post some comments about the OpenAI project that didn't really belong in the architecture document.<br />
<br />
I was tempted in several places in my document to insert critical remarks about how things were structured (or not structured).<br />
<br />
After going through some of the initial steps recommended for reverse-engineering (read the code in one hour, skim the documentation, run the application), it was clear that this application had a couple of very large packages that should be split into smaller packages.  The original developers did acknowledge a desire to separate the GUI from the application, but that is really an understatement.<br />
<br />
The GUI package in this applicaiton is quite large and complex, and includes several application-related subordinate packages.  A couple of other packages are huge as well, and one Class contains 80 member functions.  Different domains have different rules-of-thumb.  I worked at a motorcycle shop in 1980 that had a rule-of-thumb "if it works, run it."  That worked well in the motorcycle repair domain, and I suppose a working software system is good, too, but I think the rule-of-thumb for class sizes is that they should be somewhat smaller than 80 member functions to allow for easier maintenance and modification (I remember that we should start looking at the Class with a critical eye when we get more than 10 member functions or so in a Class--it's not always feasible to set a hard limit).<br />
<br />
All in all, though, it's always good to look at how other people write software, and it's great to look at how they do so with a critical eye.  It's less painful to learn from others' mistakes (one of my rules-of-thumb).]]></description>
 <category>General</category>
<comments>http://sneetches.net/se/index.php?itemid=39</comments>
 <pubDate>Sat, 16 Dec 2006 10:46:02 -0600</pubDate>
</item>
  </channel>
</rss>
