Download Software Design Anti

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Construction management wikipedia , lookup

Transcript
ANTI PATTERNS
Swathi Varadharajan
sxv143030
What is an anti pattern?


A commonly used process, structure or pattern of
action that despite initially appearing to be an
appropriate and effective response to a problem,
typically has more bad consequences than
beneficial results
A good alternative solution exists that is
documented, repeatable and proven to be effective
Why anti pattern?
Anti pattern
Pattern
Causes of anti pattern





Aggressive project deadlines
General lack of concern
Refusal to use patterns
Poor decision making
Failure to clearly understand the problem
Types of anti patterns




Organizational design patterns
Project management anti patterns
Software design anti pattern
Object oriented anti pattern
Organizational design pattern

Analysis paralysis
 Over
thinking of a situation and not taking any decision
 Solution: have deadlines, take a mental dry run…

Design by committee
 Too
many contributors with no unifying vision
 Solution: have a decision maker

Vendor lock-in
 Making
customer dependent on a particular vendor
 Solution: do not customize the application
Project management anti patterns

Death March
 Everyone
knows that the project is going to be a
disaster but keeps it alive till the day zero

Hero Mode
 Relies
on the heroism of a small number of capable
individuals

Give me estimates now
 Project
management forces the individual to make
immediate decisions
Object oriented design patterns
Anemic domain model
 The business logic is implemented outside the
domain object
 Result of not using information expert
 Solution: Create and assign a responsibility to the
information expert — the class that has the
information necessary to fulfill the responsibility
Circular dependency



Relation between two are more modules which
directly or indirectly depend on each other
Results in Tight coupling -> unwanted global effects
Solution: Follow Acyclic dependency principle ->
dependency must be directed acyclic graph
Software design anti patterns
Software bloat
 Successive versions demand more and more resources ,
adding features just to release a version
 Solution: Add updates to the existing software when the
requirements are less significant
Pattern Fetish
 Excessive use of patterns
 Solution : meaningful use of patterns
Big ball of mud (spaghetti code jungle)
 Lack of architecture
 Solution: Define and strictly adhere to an architecture from
the inception
THANK YOU…..