locked
Software engineering and software architecture resources? RRS feed

  • Question

  • Hello:

     

    I want to update my own knownledge about software engineering and software architecture. So, I'm looking for new resources. Can you recommend me  books, e-books, journals, web sites and communities? I'll aprreciate your help.

     

    Thanks.

    Wednesday, August 15, 2007 5:02 PM

All replies

  • Anything specifically, as software engineering is a fairly broad subject.

     

    Also, are you a complete beginner, intermediate, advanced, or a guru?

     

    Generally speaking, I look in forums, on coding sites, architecture sites and so forth.  It's good to get a good spread of information from different sources.

     

    You're already in a good forum (also look at language forums around here too, they can be good at times)

    Sites like codeproject are very good to look at the various aspects of software, not always the most traditionally correct, but good for ideas, and thought provoking.

    there are books on programming, such as "Framework design guidelines" by K Cwalina abd B Abrams which is an interesting read from the point of view of putting together software, and the quality inherent in thinking about how it will be used.

     

    If you can be more specific I might know some other places to look, but as I say in general, I have a number of places and don't really favour one over another since I get more balance that way.

     

    Martin.

    Wednesday, August 15, 2007 10:39 PM
  • Dear Eder,

     

    Here are my main resources:

     

    1. The MSDN architecture site

    2. Ron Jacobs Arcast

    The arcast is a great way to get to know about the latest in architecture while relaxing and even driving your car.

    "Patterns and Anti patterns of SOA" is a must, this is a 2 part arcast and it is my favourite.

     

    For  Design patterns:

    http://www.dofactory.com/Default.aspx

     

    I hope this was helpful.

    Thursday, August 16, 2007 1:50 AM
  • I forgot about ARCast, that's an awesome thing to listen to, as is polymorphicpodcast, and going deep....

     

    Martin.

     

    Thursday, August 16, 2007 1:54 AM
  • Eder,

     

    Get an update on Software Architecture discipline (history and future) by reading the 2006 Spring issue of IEEE Software.  Specifically this article on the Golden Age of Software Architecture.

     

    The Microsoft Architecture Journal provides a set of well thought through eloquent articles. I highly recommend this.

     

    As far as the books on the software architecture discipline I recommend the following two to start with:

    -

    Thursday, August 16, 2007 3:12 AM
  • Hi Eder,

     

                 If you are getting into software arch / software engineering this will be the path you should take.

     

    1) Technology- You should already be one. (Java / .NET/ any software that you use to develop software). Keep updating yourself on it. Spend minimum one hour on code. No excuses.

     

    2) Process and methodologies - Yes, is you are not sore about the process you cannot be a good arch. When I mean process I don’t mean that you should master all the KPA of CMMI. But you should know how you should convert the input (Functional spec / use cases / etc) into deliverables. So here you should understand Process like RUP, MSF, XP. Don’t think that one process recommendation will perfectly suit all your projects. Once you have mastered these processes you should be able to draft one for each of your projects. But be sure that the process is implemented and also controlled.

     

    Some good resources i have come across for this are

    Applying UML and Patterns

    Extreme Programming

    MSF

     

    You should also know about Unit testing, TDD, Refactoring (Martin Flowler)

     

    3) Requirements Analysis

    You should also master in the skill of Requirements analysis. The Craig Larmans book i specified above should be able to give you enough insight. But you should look into more information of the best practices of business analysis.

     

    4) Quality Attributes

    Get the list of non functional requirements (Quality Attributes) and prioritize it. You cannot give all that the client wants.  Be more specific. (For E.g. for 1000 Concurrent users the latency will be x). You should also know how you will achieve the Quality Attributes. Some of the Quality Attributes that you should master are

     

    Performance (Designing for performance, Load testing, stress testing, etc)

    Security (Threat modeling, etc)

    Manageability (Domain driven design, Frameworks, Codespewers, ORM Tools etc)

    Usability

    Interoperability

     

    There is no complete book on this and there never will (at least for the next 20-30 years). The more you are capable to deliver a system with these attributes, you are a great architect.

     

     

    5) Low level Design

     

    This is the interesting part. There are many approaches of doing this. Some references on this are

     

     OOAD with Application or try the Head first series on OOAD for a quick shortcut

     GOF design patterns  or try the Head first series on OOAD for a quick shortcut

     DDD by eric evans or try Jimmy neilsons Applying DDD patterns with example

     PoEAA by Martin Flowler

     Database Design

     

    Designing objects and then using and ORM tool to create the database schemas can give you more manageability. Designing good database schemas can give you better performance.

     

    So you should again weigh things according to your project and also at the expertise you have.

     

    Bottom line: as long as you can deliver what the customer has asked you are a great software engineer / Architect

     

    6) High Level Design (The Architecture)

    Once you have all the above things right your high level design should be fine. The best Reference will be SEIs Software architecture in practice

     

    There are also some pattern books like POSA Series which is worth reading

     

    7) Human Dynamics

    Last but not the lease is Human dynamics. This is the most importance aspect of an architect. It will include things like customer relationship, Leadership, Mentorship, Negotiation, presentation, selling, Etc. But you don’t have much resource for this. So just Practice.

     

     

     

    Tuesday, August 28, 2007 7:58 AM
  • A good place to start is the MSDN Architecture site http://msdn.microsoft.com/architecture then also take a look at Do factory site for dsign patterns http://www.dofactory.com/Default.aspx

     

    Subscribe to the MSDN Architecture journal; check blogs online

    Tuesday, August 28, 2007 3:27 PM