Matt Young 1. Patterns  Reusable solution to a problem  Demonstrates good design practices  Can speed up development 2.

Slides:



Advertisements
Similar presentations
Decision Analysis Tools in Excel
Advertisements

©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
ARCH-05 Application Prophecy UML 101 Peter Varhol Principal Product Manager.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Exploring Microsoft Access 97 Chapter 3 Information From the Database: Reports and Queries Office graphic copyright by Microsoft Corp.
Exploring Microsoft Access
The Sisyphus Database Retrieval Software Performance Antipattern Robert F. Dugan Jr. Dept. of Computer Science Stonehill College Easton, MA USA
The Relational Database Model
3/5/2009Computer systems1 Analyzing System Using Data Dictionaries Computer System: 1. Data Dictionary 2. Data Dictionary Categories 3. Creating Data Dictionary.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
Managing data Resources: An information system provides users with timely, accurate, and relevant information. The information is stored in computer files.
ETEC 100 Information Technology
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Architecture Eclipse Framework with Plugin Concept JTransformer Plugin Analysis + Transformation interface: logical Program.language keeps representation.
Chapter 10 Class and Method Design
Chapter 4: Database Management. Databases Before the Use of Computers Data kept in books, ledgers, card files, folders, and file cabinets Long response.
1 CS 691z / 791z Topics on Software Engineering Chapter 17: Interfaces and Subsystems [Arlow & Neustadt, 2002] March 6, 2007.
Chapter 4 Relational Databases Copyright © 2012 Pearson Education, Inc. publishing as Prentice Hall 4-1.
System Analysis and Design
A Guide to SQL, Seventh Edition. Objectives Understand, create, and drop views Recognize the benefits of using views Grant and revoke user’s database.
Configuration Management
Chapter 4 Relational Databases Copyright © 2012 Pearson Education 4-1.
Page - 1 Rocketdyne Propulsion & Power Role of EASY5 in Integrated Product Development Frank Gombos Boeing Canoga Park, CA.
Page 1 ISMT E-120 Introduction to Microsoft Access & Relational Databases The Influence of Software and Hardware Technologies on Business Productivity.
DATABASE MANAGEMENT SYSTEM ARCHITECTURE
Page 1 ISMT E-120 Desktop Applications for Managers Introduction to Microsoft Access.
Object Oriented Software Development
Design Patterns OOD. Course topics Design Principles UML –Class Diagrams –Sequence Diagrams Design Patterns C#,.NET (all the course examples) Design Principles.
Software Inspection A basic tool for defect removal A basic tool for defect removal Urgent need for QA and removal can be supported by inspection Urgent.
NHibernate in Action Web Seminar at UMLChina By Pierre Henri Kuaté 2008/08/27
Chapter 6: Foundations of Business Intelligence - Databases and Information Management Dr. Andrew P. Ciganek, Ph.D.
Introduction to Software Engineering
1 SYS366 Lecture 1: Introduction to Systems. 2 What is Software Development? Software Development implies developing some software – but it does not involve.
Detailed design – class design Domain Modeling SE-2030 Dr. Rob Hasker 1 Based on slides written by Dr. Mark L. Hornick Used with permission.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
Database Systems Microsoft Access Practical #3 Queries Nos 215.
An Introduction to Software Engineering. Communication Systems.
The Systems Development Life Cycle
Architectural Patterns Support Lecture. Software Architecture l Architecture is OVERLOADED System architecture Application architecture l Architecture.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
Chapter 38 Persistence Framework with Patterns 1CS6359 Fall 2011 John Cole.
9-1 © Prentice Hall, 2007 Chapter 9: Analysis Classes Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
6.1 © 2010 by Prentice Hall 6 Chapter Foundations of Business Intelligence: Databases and Information Management.
Michael Schloh von Bennewitz 1. Oktober 2002 The Unified Modeling Language Overview of theory and practice of the OMG Unified Modeling.
DATABASE MANAGEMENT SYSTEM ARCHITECTURE
The Software Development Process
Programming Logic and Design Fourth Edition, Comprehensive Chapter 16 Using Relational Databases.
PROGRAMMING LANGUAGES: PROLOG, CLOJURE, F# Jared Wheeler.
© FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 JSP Application Models.
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
7-1 © Prentice Hall, 2007 Topic 7: Analysis Classes Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
March 1, 2004CS WPI1 CS 509 Design of Software Systems Lecture #6 Monday, March 1, 2004.
1 SYS366 Week 1 - Lecture 1 Introduction to Systems.
Chapter 5 Introduction To Form Builder. Lesson C Objectives  Use sequences to automatically generate primary key values in a form  Create lists of values.
1 Unified Modeling Language Michael K. Wildes University of California, Riverside – Extension Program Presentation 2.
Metadata Driven Aspect Specification Ricardo Ferreira, Ricardo Raminhos Uninova, Portugal Ana Moreira Universidade Nova de Lisboa, Portugal 7th International.
What is this? SE-2030 Dr. Mark L. Hornick 1. Same images with different levels of detail SE-2030 Dr. Mark L. Hornick 2.
1 Management Information Systems M Agung Ali Fikri, SE. MM.
 System Requirement Specification and System Planning.
1 SQL SERVER 2005 Express CE-105 SPRING 2007 Engr. Faisal ur Rehman.
Understanding Data Storage
Analysis Classes Unit 5.
CIS 207 The Relational Database Model
Service-centric Software Engineering
Data Base System Lecture 2: Introduction to Database
Normalization Referential Integrity
Software Design CMSC 345, Version 1/11.
Introduction To software engineering
Presentation transcript:

Matt Young 1

Patterns  Reusable solution to a problem  Demonstrates good design practices  Can speed up development 2

Antipatterns  Similar to patterns  Detail poor solutions to problems  Can have adverse effects on: Performance Maintainability  Offers solutions to correct issues 3

Origins of Antipatterns  Upgrading legacy systems  Time/Budget constraints  Limited knowledge of good practices  Laziness (As long as it works!) 4

The God Class  Class having the majority of the responsibility  Two types Contains most of the logic of the system Contains most of the data referenced by other objects  Increases class to class interactions, reducing performance 5

God Class Example  System contains two classes: Controller Valve  Controller methods: openValve() closeValve()  Valve methods getStatus() Open() Close() 6

God Class Example  Controller.openValve() { if(Valve.getStatus() == true) Valve.open(); }  Eliminate Controller as a god class: Valve.open() should check its own status and to determine to open the valve Controller.openValve() will simply call Valve.open() Message traffic reduced by half 7

Sisyphus Database Retrieval Antipattern  Retrieval of database records displayed in paged format  Full record set returned for each page request  Discarding unneeded records repeatedly causes performance concerns 8

Sisyphus Antipattern Solutions 1. Row Limit Reduces processing on early pages but original issue remains for the last pages 2. Upper/Lower Bounds Only applicable on unique bounding fields 9

Sisyphus Antipattern Solutions 3. Sequence Numbers Set needed for every sort method 4. Caching Additional hardware resources 10

Solutions Presented to eCal  Developers believed the performance issues were minimal  Agreed that with large datasets, issues may arise  Implemented sequence number solution for large lists 11

Detection Methods  Manual Requires vast knowledge of identified antipatterns  Logic based Rule based detection  Model driven Identification based on software models 12

Prolog Rules (God Class) 1. JTransform converts Java code to a Prolog fact base Contains all class data and dependencies 2. Prolog queries designed to find key attributes Calculate average number of data members Flag classes exceeding average as candidates Flag classes whose method calls exceed member_average*factor 13

Prolog Rules (God Class) 3. Determine if flagged classes interact with data classes 4. If all criteria is met, a god class is likely present 14

Model Driven 15

Antipattern Modeling Language (APML)  Serves as generic representation of antipatterns  Software Modeling Language (SML) – contains minimal modeling components describing the antipattern system  SML+ - An extension of SML which includes the performance parameters  Refactoring Modeling Language (RML) – contains the changes that need performed to solve the antipattern 16

Antipattern Modeling Language (APML)  Mapped to standardized language like UML 17

Antipattern Modeling Language (APML)  Object Constraint Language (OCL) expressions created from AP and system models  OCL expressions compared to determine presence of antipattern 18

Future Work  Continued solving of known antipatterns  Prolog rules method verification  APML framework 19

Questions? 20