Thursday, 23 June 2016

What are the Decomposition strategies ?


Decomposition StrategiesChoose one of the strategies from the group, and move to next.
 
Group 1. Layering or Distribution
  • Layering 
    • Ordering of principles like, Abstraction
    • It can be by Layers or Tiers
  • Distribution 
    • Distributed computing : Primary technique for building scalable systems
    • Distribution is among computational resources

Group 2. Exposure, Functionality, or Generality

  • Exposure 
    • How the component is exposed and consumes other components
    • 3 aspects of a component :
  1. Services deals with how other components access this component
  2. Logic deals with how the component implements the work necessary to accomplish its task
  3. Integration deals with how it accesses other components services
  • Functionality 
    • Grouping within the problem space
    • Example: Login module, Customer module, Order module etc.
  • Generality
    • Determining whether you have a reusable component that can be used across many systems
    • Note : Don't make assumptions that a component may be used by another system in the future (Doesn't exists currently)

Group 3. Coupling and Cohesion or Volatility

  • Cohesion
    • degree to which the elements of a module belong together
  • Coupling
    • degree of interdependence between software modules
         * Note: Try to achieve High Cohesion and Low/Loose Coupling
  • Volatility
    • Isolating things that are more likely to change
    • Example : GUI changes are more likely than the underlying business rules

Group 4. Configuration

  • Having a target system that must support different configurations, maybe for security, performance, or usability
  • Having multiple architectures with a shared core, and the only thing that changes is the configuration

Group 5. Planning and Tracking or Work Assignment

  • Planning and Tracking
    • Attempt to develop a fine-grained project plan that takes into account :
      1. Ordering : To understand the dependencies between packages and realize which must be completed first
      2. Sizing : Break down the work into small-enough parts so you can develop in a iterative fashion without an iteration taking several months
  • Work Assignment
    • Assignment of work based on :
      • Physically distributed teams
      • Skill-set matching
      • Security areas

No comments:

Post a Comment

Note: only a member of this blog may post a comment.