Many people view SoftwareArchitecture as the design of the infrastructure that ties software together. It is often used to provide a foundation and structure for software application development. The user interface is an important component, but not the driving concern. (Analogy: Designing and building the engine and then wrapping the car around it.) SoftwareDesign is a fairly new discipline (as described by folks like TerryWinograd, AlanCooper and others). It is focused on ''describing the user's experience with a piece of software''. They tend to view engineering as a separate task. SoftwareDesign isn't concerned with how the code is built or how it works. The user is first and foremost in the mind of the designer. (Analogy: Designing the car body and dropping an engine in later.) It seems to me that the two disciplines more than often overlap in the real world. A single lead engineer often does SoftwareDesign (describing the system in terms of its use) and SoftwareArchitecture (describing the system in terms of its structure). Engineers often look at user interfaces in terms of objects (for example: Model-View-Controller). Designers often look at the software as a black box (magic happens...). I don't find many books that treat both disciplines equally. Can anyone recommend books that approach software system design from both perspectives? (Sure, you can buy 2 books (one on software architecture and the other on interface design), but they more than often don't transition very well...) -- ToddCoram