Eder Andr&#233&#59;s

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.



Re: Architecture General Software engineering and software architecture resources?

Martin Platt

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.






Re: Architecture General Software engineering and software architecture resources?

LivetoCodeCodetoLive!

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.






Re: Architecture General Software engineering and software architecture resources?

Martin Platt

I forgot about ARCast, that's an awesome thing to listen to, as is polymorphicpodcast, and going deep....

Martin.






Re: Architecture General Software engineering and software architecture resources?

Constantin K.

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:

-






Re: Architecture General Software engineering and software architecture resources?

Stanly Johnson

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.





Re: Architecture General Software engineering and software architecture resources?

Javahar

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