Skip to main content

Design and Architecture

Tutorials

MI Design Patterns Explained: From Analysis through Implementation
Ken Pugh, Net Objectives
Mon, 11/11/2013 - 8:30am

Ken Pugh takes you beyond thinking of design patterns as “solutions to a problem in a context.” Patterns are really about handling variations in your problem domain while keeping code from becoming complex and difficult to maintain as the system evolves. Ken begins by describing the classic use of patterns. He shows how design patterns implement good coding practices and then explains key design patterns including Strategy, Bridge, Adapter, Façade, and Abstract Factory.

Read more
TF Design for Testability: A Tutorial for Devs and Testers
Peter Zimmerer, Siemens AG
Tue, 11/12/2013 - 8:30am

Testability is the degree to which a system can be effectively and efficiently tested. This key software attribute indicates whether testing (and subsequent maintenance) will be easy and cheap—or difficult and expensive. In the worst case, a lack of testability means that some components of the system cannot be tested at all. Testability is not free; it must be explicitly designed into the system through adequate design for testability.

Read more
TK Essential Test-Driven Development
Rob Myers, Agile Institute
Tue, 11/12/2013 - 1:00pm

Test-driven development (TDD) is a powerful technique for combining software design, unit testing, and coding in a continuous process to increase reliability and produce better code design. Using the TDD approach, developers write programs in very short development cycles: first the developer writes a failing automated test case that defines a new function or improvement, then produces code to pass that test, and finally refactors the new code to acceptable standards. The developer repeats this process many times until the behavior is complete and fully tested.

Read more