Student Blogs - Carnegie Mellon Silicon Valley - Carnegie Mellon University

Student Blogs

MS in Software Engineering, Technical Track Blog

Wondering if a Carnegie Mellon degree is right for you? Read about our students' experiences through the MS in Software Engineering, Technical Track program.

Rahul is a full-time MS Software Engineering, Technical Track student. He loves traveling, trekking, swimming and is a complete movie buff.
Anthony is a 2nd year part time student in the MS Software Engineering, Technical track program and works at OSIsoft as a Software Engineer. He loves spending time with his family, hiking, biking, gardening, cooking, and sometimes photography.
Suma is an alumna of the MS Software Engineering, Technical Track program. A Mechanical Engineering undergrad, she loves writing and is passionate about music, shopping and dogs.
Minh is a Software Design Engineer at Microsoft and alumnus of the MS Software Engineering program. He is also a Vietnamese community activist, a cat-lover and passionate fan of film music.
Nick is a Software Engineer at Google and a first-year grad student at Carnegie Mellon Silicon Valley. He loves hiking, gaming, and both really extremely good and extremely bad movies.

Monday, May 21, 2007

Software Architecture Before and After (Part I)


I can’t believe how fast time flies. I am starting my third semester at CMU West this month, and by the time I finish this semester, I will be half-way through my grad program already. This semester, I am taking the course “Architecture and Design” and I can’t wait to delve into this topic. The whole reason I am pursuing this master’s degree in Software Engineering is to prepare myself for my long-term goal of being a software architect. As such, I am very committed to this class.

As we learned during The Gathering, architecting is a process that requires careful decision-making based on technical insight, experience, and a good understanding of the business requirements. Decisions made for software architectures have long-lasting effects on a software’s performance, modifiability, scalability and ultimately, its future existence. In other words, if the software doesn’t perform or scale in the field, it’s clearly your fault, and you’ll have to buy a ticket for the next flight out to Mexico.

I have a lot of expectations for this class and thought it would be a good idea to state these out now, and revisit them at the end of the semester to see if I will have learned what I expected.
Needless to say, I expect to learn about a variety of software architectures that are commonly used in this industry: classic architectures such as client/server, new architectures such as peer-to-peer, and any other emerging architectures such as those used in artificial intelligence. Learning and knowing about each architecture’s advantages, disadvantages and its applicability will enable me as a future software architect to make more informed decisions.

I also expect to learn patterns in software architecting. I imagine that besides choosing a high-level architecture for a given software, there must also be many small “design patterns for architecture,” or best practices that one can apply to subsystems of a software, and I hope to gain further insights in these common best practices.

In addition to just acquiring the knowledge about software architecture, I also expect to learn how to apply this knowledge to a given business problem. What makes software architects so vital is that they can evaluate the applicability of each software architectural style to a given software, which is something I hope to learn from this class as well. Which architecture suits best for a given business requirement? How do I determine/test whether a given architecture will work once developed? When should I choose one architecture over another? I’d like to be able to confidently answer questions like these after this class.

Lastly, I want to learn about how to properly document architecture using common standards such as UML.

Glancing over this semester’s curriculum, I am pleased to say that it promises to deliver my expectations, and it does so by looking at case studies of some well-known applications, which is something that I am very thrilled about. How cool is it to learn about peer-to-peer architecture by studying Skype and BitTorrent? How cool is this to study the architectures of products that I’ve used before, like Sony Vegas and Housing Maps? This shows again how applicable and hands-on doing a master’s degree at CMU West is!

As you can tell, I very much look forward to this semester. My oh-my-God-I’m-in-grad-school enthusiasm that had slightly declined last semester (see previous post) is now fully back, so let the games begin.

Next: The New Software Industry and other networking opportunities at CMU West

posted by Carnegie Mellon Silicon Valley @ 2:11 PM 

0 Comments:

Post a Comment

<< Home

Previous Posts