Enterprise Integration Zone is brought to you in partnership with:

Behind DotNetBlocks.com is a software engineer with over 10 years of experience in Microsoft technologies and is currently obtaining a Masters in IT. His primary focus is typically on software architecture, web applications, and interactions amongst various systems. Todd is a DZone MVB and is not an employee of DZone and has posted 47 posts at DZone. You can read more from them at their website. View Full User Profile

Domain Specific Software Engineering (DSSE)

  • submit to reddit
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
Published at DZone with permission of Todd Merritt, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)