Friday, July 17, 2009

Why New Systems Fail

Why New Systems Fail x/.

http://books.slashdot.org/article.pl?sid=09/07/15/1255258

"Over the last forty years, a small set of classic works on risks and pitfalls in software engineering and IT project management have been published and remained in print.

The authors are well known, or should be:
Gerry Weinberg, Fred Brooks, Ed Yourdon, Capers
Jones,
Stephen Flowers, Robert Glass, Tom DeMarco, Tim Lister,
Steve
McConnell, Steve Maguire.

These books all focus largely on projects where actual software development is going on. A new book by Phil Simon, Why New Systems Fail, is likewise a risks-and-pitfalls book, but Simon covers largely uncharted territory for the genre: selection and implementation of enterprise-level, customizable, off-the-shelf (COTS) software packages, such as accounting systems, human resource systems, and enterprise resource planning (ERP) software. As such, Simon's book is
not only useful, it is important." Read on for the rest of Bruce's thoughts on this book.

This story continues at:
http://books.slashdot.org/article.pl?sid=09/07/15/1255258

Discuss this story at:
http://books.slashdot.org/comments.pl?sid=09/07/15/1255258

Links:
0. http://bfwa.com/

Thursday, July 9, 2009

Software Architecture 2009

Priorities in selecting SW Architectures
- Simplicity
- Don't Repeat Yourself (DRY)
- Law of Dementer (locality of concern)
- Clear and Simple Responsibilities
- Separation of Concerns
- Commonality versus Variability
- Clear and Simple Interfaces. System Design is Interface Design
- Favour Composition over Inheretance
- Delay decision as late as possible
- Encapsulate what might change
- Model View Controller (MVC)
- Bottom up design - Engineers start with the details and manage to system
- Top Down design - Architect defines system shape and engineers fill in the components
- Round Trip - merges Top Down and Bottom Up

Buzz-words:
- Loose coupling
- High Cohesion
- Existing solution Frameworks
- UML / AADL / Structured Programming
- MDA
- TDD
....
- Client Server & Interprocess comms (pipes, filters, sockets)
- Event Based & (Pure & Extended) Finite State Machines
- ADTs
- Layering (OSI)
- Corba ...

UML Diagrams are :
- Class & SubClass Diagrams (is-a, has-a, ...)
- Interaction Diagrams / Message Sequence Charts / Collaboration Diagrams
- Use cases / activity diagrams
- State Charts

Old code :
- defined and reliable
- original architecture may be lost, or eroded, making evolution difficult