<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-3094886395888154171</id><updated>2012-02-16T06:33:56.666-08:00</updated><category term='CS527-1'/><title type='text'>HillaTechno CS 527</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hillatechnocs527.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094886395888154171/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hillatechnocs527.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>hillatechno</name><uri>http://www.blogger.com/profile/09413428053016482372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_X_Genymaeys/Sp4zXuFyFhI/AAAAAAAAAAM/1dBsDb4Hblk/S220/cartoonme.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3094886395888154171.post-4724755743440721615</id><published>2009-09-03T08:06:00.000-07:00</published><updated>2009-09-03T09:20:25.862-07:00</updated><title type='text'>Beautiful Architecture: A Tale of Two Systems...</title><content type='html'>&lt;span style="font-family: lucida grande;"&gt;The author discusses the tale of two systems that are very similar but they end up in two different sides of the pole (One bad and one good).&lt;br /&gt;&lt;br /&gt;What I really appreciate about this chapter is the fact that it emphasizes not only on the design aspect of the systems but also the people aspects of the system. In particular the book mentions..."There had been personality struggles in the original team, and so a few key programmers had begun to build their own little software empires". &lt;br /&gt;&lt;br /&gt;I have had experienced this in many companies.  The personality struggle is not confined to individuals only but also to groups/teams.  This can be seen in large companies where products cross company have duplicated efforts where each one solving the similar issue differently. Millions of dollars goes to waste since one team wants to do the same job differently without collaboration with other teams or research to see if the problem has already been solved externally (e.g. open source).&lt;br /&gt;&lt;br /&gt;I have also witnessed cases where the team or organization is not willing to let go of the architecture/design in order to find better alternatives that can help their product/ business. This again can be also be seen in larger groups as well.&lt;br /&gt;&lt;br /&gt;I would say the solution to many architectural issues have already been solved one way or another.  It is the architect+leadership that can bring either harmony or dissonance to the system.&lt;br /&gt;&lt;br /&gt;By no means, I am lessening the other factors that the book has mentioned...upfront design, the quality of the designer, etc. Just wanted to point out the key source.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: lucida grande;"&gt;Your view, as always, is very much appreciated.&lt;br /&gt;&lt;br /&gt;-Hilla&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094886395888154171-4724755743440721615?l=hillatechnocs527.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hillatechnocs527.blogspot.com/feeds/4724755743440721615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hillatechnocs527.blogspot.com/2009/09/beautiful-architecture-tale-of-two.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094886395888154171/posts/default/4724755743440721615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094886395888154171/posts/default/4724755743440721615'/><link rel='alternate' type='text/html' href='http://hillatechnocs527.blogspot.com/2009/09/beautiful-architecture-tale-of-two.html' title='Beautiful Architecture: A Tale of Two Systems...'/><author><name>hillatechno</name><uri>http://www.blogger.com/profile/09413428053016482372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_X_Genymaeys/Sp4zXuFyFhI/AAAAAAAAAAM/1dBsDb4Hblk/S220/cartoonme.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3094886395888154171.post-1905622349208802370</id><published>2009-08-30T10:36:00.000-07:00</published><updated>2009-08-30T12:23:33.045-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CS527-1'/><title type='text'>Advance Topic in CS and Beautiful Architecture (Part 1)</title><content type='html'>I have decided to take an online course on Advance Topics in Computer Science at University of Illinois (Champagne Illinois). Luckily my instructor is Professor Ralph Johnson, one of the authors of Design Patterns.   This course is mainly focused on software architecture and one of the topic it will eventually cover will be on  "Parallelism" which has been one of my favorite topics.&lt;br /&gt;&lt;br /&gt;As part of this course, we have to read the first four chapter of "Beautiful Architecture" by Diomidis Spinellis and Georgios Gousios (repeat those names multiple times if you can). I have just finished the first chapter and I will blog with you few topics that I found to be worth sharing.&lt;br /&gt;&lt;br /&gt;The chapter tries to define the software architecture based on an old definition of architecture, which is &lt;span style="font-style: italic;"&gt;beauty, firmness and utility.  &lt;/span&gt;If I would have defined beauty, I would defined it by simplicity and ease of use.   I have seen many architectures from monolithic to client/server architecture and so far I can say only a handful would be labeled as beautiful.  I will definitely mentions those in later blogs.&lt;br /&gt;&lt;br /&gt;Now lets get to the meaty part of the chapter and what the software architect need to address...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Meets customer requirements&lt;/li&gt;&lt;li&gt;Safely build-able on required schedule&lt;/li&gt;&lt;li&gt;It performs adequately&lt;/li&gt;&lt;li&gt;It is reliable&lt;/li&gt;&lt;li&gt;It is usable and safe to use&lt;/li&gt;&lt;li&gt;It is secure&lt;/li&gt;&lt;li&gt;It is affordable&lt;/li&gt;&lt;li&gt;It conforms to legal standards&lt;/li&gt;&lt;li&gt;It will outlast its predecessors and competitors&lt;/li&gt;&lt;/ul&gt;From this list, the one that stands out the most for me is  "It will outlast its predecessors and competitors".  Now predecessors part, I believe is easy for any architect to figure out, what I have noticed, in my experience, is that many architects fail to understand the competition.  From my own experience, I have seen few reasons for this and one is, the architect is too focused on outlasting the predecessors, the architecture is so complicated that by the time it is released, the competition is two steps ahead, the architect doesn't communicate with rest of the organization as the chapter also touches on this point as one of the roles of an architect.&lt;br /&gt;&lt;br /&gt;The chapter thens move on to common architectural concerns:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Functionality&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Changeability&lt;/li&gt;&lt;li&gt;Performance&lt;/li&gt;&lt;li&gt;Capacity&lt;/li&gt;&lt;li&gt;EcoSystem&lt;/li&gt;&lt;li&gt;Modularity&lt;/li&gt;&lt;li&gt;Buildability&lt;/li&gt;&lt;li&gt;Producibility&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Security&lt;/li&gt;&lt;/ul&gt;So for me, Changeability  stood out the most. Changeability again is something that is very crucial but is easy to overlook and ignore.  This has been one of the major reason for software refactoring.  This problem can be reduced if we put more efforts on Functionality and Buildability.  Of course, this could also become the cause of overly complicated system.&lt;br /&gt;&lt;br /&gt;Now how does the architect deal with these concerns, the chapter mentions the need to organize the system into structures where each structure defines specific relationship among different types of component.  And the structures are:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The Information Hiding Structure&lt;/li&gt;&lt;li&gt;The Uses Structure&lt;/li&gt;&lt;li&gt;The Process Structure&lt;/li&gt;&lt;li&gt;The Access Structure&lt;/li&gt;&lt;/ol&gt;The Information Hiding Structure reminds me of OO concept of class encapsulation and its relationship in relation to its super/sub class.  The Uses Structure reminds me of callback routines/classes or RPCs. The Process Structure would be similar to threads that the system will spawn with their respective Access Structure which defines the limitation that those processes/threads will have in using resources.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The chapter continues with defining the &lt;span style="font-style: italic;"&gt;Good Architecture &lt;/span&gt;and the fact that for a given set of functional and quality requirements, there is no single correct architecture and no single "right answer".  The chapter ends by providing examples of known good architectures based on some of the criteria mentioned here plus the "test of time".   The two worth mentioning here are the World Wide Web and Unix. I am sure we all have at least one architecture we consider good but of course most of them are not publicly shared for us to agree upon.&lt;br /&gt;&lt;br /&gt;Overall, I found the chapter little too abstract but it does touch on prime areas of software architecture. I do however believe that we need to cover some of these topics in undergraduate courses in computer science for obvious reasons.&lt;br /&gt;&lt;br /&gt;Please feel free to provide your feedback.&lt;br /&gt;&lt;br /&gt;-Hilla&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3094886395888154171-1905622349208802370?l=hillatechnocs527.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hillatechnocs527.blogspot.com/feeds/1905622349208802370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://hillatechnocs527.blogspot.com/2009/08/advance-topic-in-cs-and-beautiful.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3094886395888154171/posts/default/1905622349208802370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3094886395888154171/posts/default/1905622349208802370'/><link rel='alternate' type='text/html' href='http://hillatechnocs527.blogspot.com/2009/08/advance-topic-in-cs-and-beautiful.html' title='Advance Topic in CS and Beautiful Architecture (Part 1)'/><author><name>hillatechno</name><uri>http://www.blogger.com/profile/09413428053016482372</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_X_Genymaeys/Sp4zXuFyFhI/AAAAAAAAAAM/1dBsDb4Hblk/S220/cartoonme.gif'/></author><thr:total>0</thr:total></entry></feed>
