ANTI PATTERNS Swathi Varadharajan sxv143030. What is an anti pattern?  A commonly used process, structure or pattern of action that despite initially.

Slides:



Advertisements
Similar presentations
Full life cycle support for security concerns minutes topics Wouter Joosen.
Advertisements

FROM INCEPTION TO ELABORATION Use Cases, Domain Models & SSDs Oh My!
2003 Mateusz Żochowski, Marcin Borzymek Software Life Cycle Analysis.
The Secrets of Practical Verification… © 2008 Think Verification.
Why Use Test Driven Development (TDD)?.  Why the need to change to TDD.  Talk about what TDD is.  Talk about the expectations of TDD.
Building a SOA roadmap for your enterprise Presented by Sanjeev Batta Architect, Cayzen Technologies.
© AgiliX Agile Development Consulting Agile Software Architecture Cesario Ramos.
Tietojärjestelmien peruskurssi Software engineering Malin Brännback.
GRASP Patterns M Taimoor Khan
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
Reverse Engineering: Legacy Systems Alexander Endert.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
Case Study The NextGen POS System
Presentation to CAREGROUP Board of Directors Governing Your Networked IT Organization Ken Peffers Applicable IT Research, Inc. November 21, 2002.
Health Informatics Series
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
An Approach to Case Analysis
NJIT Inception is not the Requirements Phase Chapter 4 Applying UML and Patterns Craig Larman.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
CS-499G 8/17/ Design Concepts and Principles.
Software Engineering Muhammad Fahad Khan
IS2210: Systems Analysis and Systems Design and Change Twitter:
Scrum’s Product Owner Role Jeff Patton Agile Product Design
Object Oriented Analysis and Design Introduction.
GRASP Principles. How to Design Objects The hard step: moving from analysis to design How to do it? –Design principles (Larman: “patterns”) – an attempt.
Software Project Failure Software Project Failure Night Two, Part One CSCI 521 Software Project Management.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
#ICANN51 1 Standing Committee on Improvements Implementation (SCI) Activities Update to the GNSO Council ICANN-51 Los Angeles Meeting 11 October 2014.
ERP Enterprise Resource Planning D Lewis 10/02. Definitions ERP is a process of managing all resources and their use in the entire enterprise in a coordinated.
Software Process Models.
Architecture GRASP Realization of use cases in interaction diagrams Design class diagram Design ( how )
Object-Oriented Analysis and Design An Introduction.
© 2007 by Prentice Hall 1 Introduction to databases.
Decision making, FUIEMS, 29 December, Decision-Making Process Engineering Economics Lecture # 15.
Chapter 17 GRASP: Designing Objects with Responsibilities. 1CS6359 Fall 2011 John Cole.
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
What is a case?  A written description of a business situation or problem  Provides factual information about a company’s background ○ organizational.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
SOFTWARE MAINTENANCE 1. TOPICS TO BE DISCUSSED.. Definition of Maintenance Software Maintenance Types of Maintenance Maintenance Process Need of Maintenance.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
Object Oriented Analysis and Design Chapter 1 Applying UML and Patterns -Craig Larman.
Software Design. A well-known phenomenon You will learn…. –Thinking "object oriented“ –Define requirements and analyze the problem domain. –Design of.
Doing a CIM Project. 22 CIM Design Center  A rule I learned about applying technology:  Understand the design center of the technology.  Use extreme.
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 9 Software Quality Assurance.
CSPC 464 Fall 2014 Son Nguyen.  Attendance/Roster  Introduction ◦ Instructor ◦ Students  Syllabus  Q & A.
Extreme programming (XP) Variant of agile Takes commonsense practices to extreme levels © 2012 by Václav Rajlich1.
Extreme Programming. Extreme Programming (XP) Formulated in 1999 by Kent Beck, Ward Cunningham and Ron Jeffries Agile software development methodology.
Copyright © Craig Larman All Rights Reserved COMP-350 Object-Oriented Analysis and Design GRASP: Designing Objects with Responsibilities Reference:
T Project Review Muuntaja I1 Iteration
Design Engineering 1. Analysis  Design 2 Characteristics of good design 3 The design must implement all of the explicit requirements contained in the.
Software Development Module Code: CST 240 Chapter 6: Software Maintenance Al Khawarizmi International College, AL AIN, U.A.E Lecturer: Karamath Ateeq.
Advanced Software Engineering Dr. Cheng
Software Development.
Using ERP to Streamline and Enhance Your Organization
CompSci 280 S Introduction to Software Development
Game Design, Development, and Technology
Version Control Combination of procedures and tools to manage different versions of the software configuration. Configuration management allows the user.
Pertemuan 08 Design Patterns & Anti-Patterns
Software Maintenance.
Software life cycle models
Programming Logic and Design Fourth Edition, Comprehensive
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
SISAI 2012 – Statistics Sweden
Agile Development – a new way of software development?
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation 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 patternPattern

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…..