Domain Specific Software Engineering (DSSE)

Posted on DotNetBlocks See other posts from DotNetBlocks
Published on Tue, 06 Sep 2011 00:09:00 -0500 Indexed on 2011/11/11 18:21 UTC
Read the original article Hit count: 178

Domain Specific Software Engineering (DSSE) believes that creating every application from nothing is not advantageous when existing systems can be leveraged to create the same application in less time and with less cost.  This belief is founded in the idea that forcing applications to recreate exiting functionality is unnecessary. Why would we build a better wheel when we already have four really good and proven wheels? DSSE suggest that we take an existing wheel and just modify it to fit an existing need of a system. This allows developers to leverage existing codebases so that more time and expense are focused on creating more usable functionality compared to just creating more functionality. As an example, how many functions do we need to create to send an email when one can be created and used by all other applications within the existing domain?

Key Factors of DSSE

  • Domain
  • Technology
  • Business

A Domain in DSSE is used to control the problem space for a project. This control allows for applications to be developed within specific constrains that focus development is to a specific direction.
Technology in DSSE offers a variety of technological solutions to be applied within a domain.

Technology Examples:

  • Tools
  • Patterns
  • Architectures & Styles
  • Legacy Systems

Business is the motivator for any originations to use DSSE in there software development process.

Business reason to use DSSE:

  • Minimize Costs
  • Maximize market and Profits

When these factors are used in combination additional factors and benefits can be found.

Result of combining Key Factors of DSSE

  • Domain + Business  = Corporate Core Competencies
    • Domain expertise improved by market and business expertise
  • Domain + Technology = Application Family Architectures
    • All possible technological solutions to problems in a domain without any business constraints. 
  • Business + Technology =  Domain independent infrastructure
    • Tools and techniques for building systems  independent of all domains 
  • Domain + Business + Technology = Domain-specific software engineering
    • Applies technology to domain related goals in the context of business and market expertise

© DotNetBlocks or respective owner

Related posts about Development Methodologies