Tuesday, July 6, 2010

Pattern Study - Structural

Design Pattern Grouping:

  1. Structural Patterns
    1. Adapter
    2. Bridge
    3. Composite
    4. Decorator
    5. Facade
    6. Flyweight
    7. Proxy
  2. Creational Patterns
  3. Behavioral Patterns
Links:


Pattern Study - The Future of

I got this from Judith Bishop book, C# Design Patterns, page 256.

Some problems with design patterns:

  • Traceability - hard to maintain when programming language doesn't support the underlying pattern.  Pattern can be spread across several classes.
  • Reusability - design pattern is not encapsulated and must be reimplemented each time it is used.  {What about a design pattern template, several template classes that ease the implementation of a pattern?}
  • Writability - methods with trivial behavior not support be language can be tedious to write and maintain.
  • Maintainability - multiple patterns can lead to a large cluster of mutually dependent classes causing high coupling between the classes.
The current research is how to transform design patterns into reusable artifacts so the programmer doesn't have to implement them over and over again.  {Addressing all the above problems.}

Pattern Study - UML

Class 
  • Class
  • - attribute
  • + operations()
Interface
  • <<interface>>
  • IClass
  • +operations()
Note
  • descriptive text
Package (grouping of classes and interfaces
  • Package
Inheritance
  • A <--- B (horizontal) : B inherits from A
Realization
  • A <-- B (horizontal): B implements A
Association
  • A --- B: A and B call and access each other's elements
Association (one way)
  • A --> B: A can call and access B's elements, but no vice versa
Aggregation
  • A <>--- B:  A has a B, and B can outlive A
Composition
  • A <<>>--- B:  A has a B, and B depends on A.

Friday, July 2, 2010

Scrum Software Development

http://en.wikipedia.org/wiki/Scrum_(development)

An iterative, incremental fremwork for project management and agile software development.  Many spell it with capital letters, but it is not an acronym.

Take from a rugby technique.  First mention by name in 1991.

Groups:

Scrum Master
Product Owner
Team

Roles:

Pig: "their becon on the line"

Chicken:  customer

Thursday, July 1, 2010

Re: Absolute and Relative Paths

absolute path vs relative path

On Fri, May 28, 2010 at 4:35 AM, Stan Hughes <hughes.stan@gmail.com> wrote:
path

Wednesday, June 30, 2010

Using MSBUILD and DEVENV to Clean

http://msdn.microsoft.com/en-us/library/5ak1w89s%28VS.80%29.aspx

devenv /clean Debug Solution.sln

One can also specify the project and project configuration.

Can also run the application after it is built.




Monday, June 21, 2010

msvcprtd.lib(MSVCP100D.dll) : error LNK2005: already defined in gtestd.lib(gtest.obj)

This error occurs when the C/C++ Code Generation Runtime Library in gtest is defined differently from testing code using it.  The gtest project was defined as MTd (Multi-threaded Debug) and the testing project defined as MDd (Multi-threaded DLL).

Fix:  Changed the testing project to use MTd.  From the Property Pages select Configuration Properties ==> C/C++ ==> Code Generation ==> Runtime Library ==> Multi-threaded (/MT).