jagomart
digital resources
picture1_Design Patterns Pdf 184443 | Ijisa V6 N10 6


 103x       Filetype PDF       File size 0.31 MB       Source: www.mecs-press.org


File: Design Patterns Pdf 184443 | Ijisa V6 N10 6
i j intelligent systems and applications 2014 10 41 46 published online september 2014 in mecs http www mecs press org doi 10 5815 ijisa 2014 10 06 impact of ...

icon picture PDF Filetype PDF | Posted on 01 Feb 2023 | 2 years ago
Partial capture of text on file.
                 I.J. Intelligent Systems and Applications, 2014, 10, 41-46 
                 Published Online September 2014 in MECS (http://www.mecs-press.org/) 
                 DOI: 10.5815/ijisa.2014.10.06 
                                 Impact of Design Patterns on Software 
                                                                 Maintainability 
                                                                                       
                                            Fatimah Mohammed Alghamdi, M. Rizwan Jameel Qureshi 
                           Faculty of Computing and Information Technology, King Abdulaziz University, Jeddah, Saudi Arabia 
                                                         Emails:  f_t_m.g@hotmail.com,  anriz@hotmal.com 
                                                                                       
                                                                                       
                 Abstract—  This  paper  mainly  studies  the  effect  of  design       face the experienced designer which is time consuming to 
                 patterns  on  the  Software  maintainability.  Design  patterns        understanding,  identification  and  investigation  of  the 
                 describe solutions for common design problems and they were            design pattern appropriate to his applications [3].  
                 introduced to improve software quality and accelerate software            In this paper we have attempt to evaluate the effect of 
                 development.  However, there are some difficulties to choose an        GoF design patterns on software maintainability to draw 
                 optimal pattern adapted to a certain application and problem. So       safe conclusion about this issue. We have proposed a tool 
                 until now the results on the effect of design patterns on software     to    investigate     which     of   design     provide     easier 
                 quality are controversial. In this context, we propose a tool for      maintainability  under  considering  the  most  common 
                 design pattern guided that retrieves the appropriate pattern with 
                 respect to software maintainability from a repository of patterns.     factor  which  is  the  system  size.  This  tool  helps  the 
                 It  measures  the  maintainability  of  design  pattern  by  some      experienced  and  even  the  inexperienced  designer  for 
                 metrics  and  candidate  the  more  maintainable  pattern  to  the     choosing  the  more  maintainable  pattern  because  it  is 
                 designer or developer. It provides a support for decision making       supplied by a repository of patterns. 
                 during  system  design  and  refactoring.  As  the  results,  the         In the next section, we review the most recently related 
                 decision of applying a certain design pattern is usually a trade-      works. In Section III, the problem statement is stated, and 
                 off since the effect of design pattern on software maintainability     proposed solution is summarized at Section IV. Then a 
                 is  influenced by some factors such as the pattern size and the        validation  of  this  solution  is  presented  in  Section  V. 
                 prior expertise of the developer.                                      Conclusion is given in Section VI.   
                  
                 Index  Terms—  Design  Patterns,  Software  Maintainability,               
                 Metrics, Pattern Size, Tool 
                                                                                                                II. RELATED WORK 
                                       I.  INTRODUCTION                                    Design  patterns  have  been  subjected  to  limited 
                    A design pattern is a general reusable solution to a                empirical evaluation, and that much of this has also only 
                 commonly occurring problem in software design. It can                  been  studying  patterns  indirectly  [1].  Until  now, 
                 be defined as a description or template for how to solve a             researchers  attempted  to  investigate  the  outcome  of 
                 problem that can be used in many different situations [1].             design patterns with respect to software quality through 
                 There are three  main types of  design patterns that are               empirical  methods,  i.e.  case  studies,  surveys  and 
                                                                                        experiments, but safe conclusions cannot be drawn since 
                 architectural  patterns,  Gang  of  Four  (GoF)  design                the results are controversial [4]. 
                 patterns and idiom patterns. In this paper we focus in the                The original  study  to  evaluate  the  impact  of  design 
                 GoF  design  patterns  that  are  cataloged  in  the  widely           patterns on software maintenance was applies by Prechelt 
                 referenced book by the “Gang of Four” [2]. The authors                 et al. [5]. They conducted an experiment called PatMain 
                 classified  23  patterns  according  to  the  purpose  and             by comparing the maintainability of two implementations 
                 according  to  the  scope.  The  purpose  reflects  what  a            of an application, one using a design pattern and the other 
                 pattern does; patterns can have creational, structural, or             using  a  simpler  alternative.  They  used  four  different 
                 behavioral  purpose.  The  scope  classification  specifies            subject  systems  in  same  programming  language.  They 
                 whether  the  pattern  applies  primarily  to  classes  or  to         addressed five patterns: Decorator,  Composite, Abstract 
                 objects.  In  [2],  the  authors  suggest  that  using  design         Factory, Observer and Visitor. The researchers measured 
                 patterns  provide  easier  maintainability  and  reusability,          the time and correctness of the given maintenance tasks 
                 more understandable implementation and  more  flexible                  for  professional  participants.  They  found  that  it  was 
                 design. In recent years, many researchers have attempted               useful to use a design pattern but in case where simple 
                 to evaluate the effect of GoF design patterns on software              solution  is  preferred,  it  is  good  to  follow  the  software 
                 maintainability,     they    conducted  several         empirical      engineer common sense about whether to use a pattern or 
                 methods such case studies, surveys and experiments, but                not, and in case of uncertainty, it is better to use a pattern 
                 safe conclusions cannot be drawn since the results lead to             as  a  default  approach.  A  thorough  understanding  of 
                 different  directions.  A  design  pattern  needs  to  be              specific  design  patterns  is  often  helpful  for  program 
                 investigated  before  it  is  used  and  the  designers  are           maintenance. 
                 expected to have a good understanding and experience                      PatMain  experiment  [5]  replicated  by  Prechelt  and 
                 with design patterns. In this situation, some problem still            Liesenberg [6] but in much reduced form. They used two 
                  Copyright © 2014 MECS                                                           I.J. Intelligent Systems and Applications, 2014, 10, 41-46 
                42                                 Impact of Design Patterns on Software Maintainability 
                systems out of the four used in the original experiment           the software  quality  because  the  available  studies  were 
                and in different programming languages. The participants          inadequate. 
                were 13 students. Their results confirmed the result of the         Ali  and  Elish  [11]  performed  a  literature  survey  to 
                original  experiment  but  due  to  the  small  size  of  the     understand the  impact  of  the  GoF  design  patterns  on 
                experiment they found only one statistically significant          software  quality  attributes  by  comparing  the  existing 
                result: the non-pattern based version of one of systems           empirical evidence in the literature. They investigated the 
                was more maintainable and can be extended more quickly.     impact  of  design  patterns  on  four  quality  attributes: 
                  Juristo  and  Vegas  [7]  conducted  another  replication       maintainability,  evaluation,  performance  and  fault-
                study for PatMain experiment [5]. They conducted their            proneness. The results show that in general, the impact of 
                study on two software systems in two different languages.         design patterns on maintainability, evolution and change 
                They addressed three different patterns: Abstract Factory,        proneness is negative.  For  performance,  the  number  of 
                Composite and Decorator. The participants were 8 master           studies  that  addressed  performance  and  the  number  of 
                students. The dependent variable was only the time (in            covered patterns make it difficult to draw a conclusion. 
                minutes) to complete each maintenance task. Their results         Finally for fault- proneness, the results are different from 
                were inconsistent with the original study. They found that        one  study  to  the  other,  thus  it  is  difficult  to  make  a 
                systems with design patterns were less maintainable.              decision regarding their impact.    
                  Nanthaamornphong and Carver [8] also replicated the               Hsueh et al. [12] proposed an analytical assessment to 
                PatMain experiment [5]. In their experiments they used            evaluate  the  effectiveness  of  design  patterns  to  help 
                the  same  systems  of  the  original  experiment.  They          programmers to inspect the correctness of the application 
                focused  on  four  patterns:  Observer,  Visitor,  Decorator      of these design patterns. They also proposed two different 
                and  Composite.  Eighteen  students  in  a  graduate-level        measurement ways for the application of design patterns: 
                Software  Engineering course participated in the study.           Occasion  and  effectiveness  analysis  to  evaluate  some 
                The results of this replication were different from those in      well-known  open  source  systems.  They  defined  their 
                the original study. They  found that the design patterns did      context and their anticipated changes and then checked 
                not   improve  either      the    maintainability    or   the     whether  they  held  up  to  the  expectations.  Their 
                understandability of these systems.                               conclusion provides that although design patterns can be 
                  Krein et  al.  [9]  performed  also  a  replication  for  the   misused, they are effective to some degree in either early 
                same  experiment  done  by  Prechelt  et  al.  [5].  In  this     stage or late stage of maintenance. 
                experiment  they  used  two  systems  in  two  different            Nadia et al [3] presented approach assists the designers 
                languages.  They  studied  three  different  patterns:            choosing  their  appropriate  design  patterns.  Their 
                Decorator, Composite and Abstract Factory. They found             approach was supported by an interactive tool and was 
                that  by  performing  some  modifications  on  the  two           guided by set of comparison criteria and recommendation 
                versions, the pattern version and the non-pattern version,        rules.  The  tool  allows  the  designer  to  draw  a  design 
                the pattern based designs took longer time and have more          fragment,  present  the  problem  then  re-phrases  the 
                faults  than  non-pattern  designs  except  for  one              problem  in  order  to  obtain  the  intention  of  a  certain 
                modification task.                                                pattern.  Then,  it  explores  the  candidate  solutions  by 
                  Hegedus  et  al.  [10]  evaluated  the  impact  of  design      filtering patterns that meet the intentions through the use 
                patterns  on  maintainability  directly  by  conducting  an       of recommendation rules. 
                empirical  analysis.  They  analyzed  more  than  300               Ampatzoglou et al. [4] conducted study to propose a 
                revisions of the JHotDraw software system which relies            theoretical  methodology  by  comparing  three  design 
                heavily  on  some  design  patterns.  They  calculated  the       patterns  with  two  alternative  solutions,  with  respect  to 
                maintainability  values  with  their  probabilistic  quality      several  quality  attributes,  through  the  mathematical 
                model and mined the design pattern instances parsing the          formulation and well known metrics. They investigated 
                comments  in  the  source  code.  They  calculated  the           designs by studying the literature,  open-source  projects 
                maintainability  values  with  their  probabilistic  quality      and by using design patterns. They have created decision 
                model and mined the design pattern instances parsing the          support  tool  that  aids  the  developer  to  choose  the 
                comments in the source code. They found that there is a           appropriate  design  pattern.  The  input  of  the  tool  is  the 
                strong relation between the rate of design patterns in the        pattern  under  consideration,  the  estimated  system  size 
                source  code  and  the  maintainability.  Therefore  using        and the goals of the design team with respect to quality 
                design patterns improve the code maintainability.                 attributes. The tool simulates all the steps of the proposed 
                  Zhang  and  Budgen  [1]  conducted  a  systematic               methodology.  The  results  show  that  the  decision  of 
                literature  review  in  the  form  of  a  mapping  study  to      applying a design pattern is usually a trade-off because 
                examine the extent and form of the empirical knowledge            patterns are not universally good or bad, but it should be 
                that is available for GoF design patterns. They augmented         preferred  for  systems  that  are  intended  to  be  heavily 
                their analysis by including some “experience” reports that        reused  and/or  maintained.  Furthermore,  two  additional 
                described  application  of  patterns  using  less  rigorous       factors  have  been  highlighted:  pattern  size  and 
                observational  forms.  They  found  some  support  for  the       developers‟ prior experience with pattern. 
                usefulness  of  patterns  in  providing  a  framework  for          Table 1 gives a brief description for the related works 
                maintenance but they could not identify firm guidelines           regarding some limitations which are found in them. 
                about the efficient use of particular patterns to improve            
                                                                                     
                Copyright © 2014 MECS                                                           I.J. Intelligent Systems and Applications, 2014, 10, 41-46 
                                                        Impact of Design Patterns on Software Maintainability                                                 43 
                                                                  Table 1. Summarization for the related works 
                                                Title of Paper                                                           Limitations 
                   Design Patterns in Software Maintenance:                                      The experiment is not described in enough detail, having missed 
                   An Experiment Replication at Freie University at Berlin [6].                  important information, such as:     
                   Design Patterns in Software Maintenance: An Experiment Replication at          o why particular software artifacts selected  
                   UPM - Experiences with the RESER'11 Joint Replication Project [7].             o why particular design patterns addressed 
                   Design Patterns in Software Maintenance:                                       o why a new programming language is added 
                   An Experiment Replication at University of Alabama [8].                       Their  results  produce  conflict  to  identify  the  real  impact  of 
                   Design Patterns in Software Maintenance:                                      design patter. 
                   An Experiment Replication at Brigham Young University [9].                    Not provide clear decision to select the efficient design pattern. 
                   Myth or Reality? Analyzing the Effect of Design Patterns on                  It  analyzed only one system with a relatively  few  number of 
                   Software Maintainability [10].                                                patterns. 
                                                                                                Its result should be handled with caution.  
                                                                                                 The survey is need for more design-centric evidence. 
                   What Do We Know about the Effectiveness of                                    The  undertaken  studies  identified  a  small  number  of  design 
                   Software Design Patterns? [1].                                                patterns. 
                                                                                                 Not provide clear decision to select the efficient design pattern. 
                                                                                                 The undertaken studies have several variable factors that could 
                   A Comparative Literature Survey of                                            produce differences in their results.  
                   Design Patterns Impact on Software Quality [11].                              Not all the GoF design patterns were covered in the literature. 
                                                                                                 Its result should be handled with caution. 
                   An Approach for Evaluating the Electiveness of                               Not provide clear way to select the appropriate design pattern. 
                   Design Patterns in Software Evolution [12]. 
                   A design pattern recommendation approach [3].                                Mixture between detection and select pattern. 
                   A methodology to assess the impact of                                        The method cannot be applied to all design patterns. 
                   design patterns on software quality [4]. 
                  
                                                                                           participant,  modifying the existing interface participants 
                                     III. PROBLEM STATEMENT                                or introducing a new client, and the first one is the most 
                    Which  of  the  design  patterns  improve  the  software               common type of maintenance according to that study [13]. 
                 maintainability,  and under what factors?                                 So  this  way  is  selected  to  maintain  the  system  and 
                                                                                           accordingly the axes of change were chose. The major 
                                                                                           axes  of  change  in  the  design  pattern  [13]  are:  adding 
                                      IV.  PROPOSED SOLUTION                               refined  abstractions,  adding  concrete  implementers, 
                                                                                           adding clients and adding methods and attributes to any 
                    Design patterns are not universally good or bad as the                 class  of  pattern.  I  have  chosen  to  extend/maintain  the 
                 previous authors suggested in their empirical studies [5,9],              system  in  the  first  two  axes,  i.e.  add  new  refined 
                 but until now there is no study that identifies  which of                 abstractions and add new concrete implementers. These 
                 design patterns improve the  software maintainability and                 axes are base for construct the equations of the metrics 
                 which of them has weaken effect. The effect of design                     that  used  for  comparing.  At  this  point  it  is  suitable  to 
                 patterns on the software maintainability  is governed by                  clarify that proposed tool provides for comparing design 
                 different factors such as pattern size, prior expertise of                pattern  with  its  alternative  patterns  that  describe 
                 the developer with pattern and the most important quality                 equivalent  functionality  and  have  specified  axes  of 
                 attributes that must achieved by pattern [4], and before all              change. So according to the selected axes, the patterns 
                 of these is fitting the pattern to a certain design problem               under  consideration  are  all  GoF  patterns  that  involve 
                 [3]. In [4] the authors have created a decision support tool              class  hierarchies  and  client  classes,  shown  in  table  2. 
                 that helps the developer to choose between three of GoF                   Theses  pattern  are  gathered  by  inspecting  the  class 
                 design  patterns  and  equivalent  alternative  design                    diagram for each one as presented in the standard form 
                 solutions,  it  calculates  metrics  scores  of  each  solution           according  to  GoF  book  [2].  Also  these  patterns  are 
                 based on the system size, then it presents where a design                 categorized such each one put with its alternative which 
                 solution  is  getting  better  than  another  with  respect  to           share same functionality according to the GoF purpose 
                 several quality attributes. This paper have proposed a new                classification [2]. 
                 version  of  this  tool  that  aims  to  compare  the                     B. Metrics as measurement of maintainability 
                 maintainability  of  GoF  design  patterns  with  each other                 There  are  ten  object  oriented  metrics  used  as 
                 based on the maintainability  predictors.                                 maintainability predictors [14,15] to investigate the effect 
                 A.  Design Patterns under Consideration                                   of  design  pattern,  all  these  metrics  defined  in  table  3. 
                    Design patterns can be maintained  in three possible                   Each  metric  has  constructed  equation  based  on  the 
                 ways  [13]  which  are  adding  a  class  as  a  concrete                 selected axes of change; hence the comparison is done by 
                  Copyright © 2014 MECS                                                           I.J. Intelligent Systems and Applications, 2014, 10, 41-46 
                   44                                       Impact of Design Patterns on Software Maintainability                                                            
                   calculating the equations and comparing the result values. 
                   The pattern with the higher count of lower metric values 
                   is considered more maintainable [16,17]. 
                      
                               Table 2. Design pattern under consideration 
                            Creational        Structural           Behavioral                                            Designer/ 
                                                                                                                         developer 
                         Abstract Factory     Bridge         Interpreter 
                         Builder              Composite      Chain of Responsibility 
                         Prototype            Decorator      Observer 
                                              Flyweight      State 
                                              Proxy          Strategy 
                                                             Visitor                                    System                               Design 
                                                                                                         size            Interested          pattern 
                                                                                                                          metrics 
                                    Table 3. Maintainability predictors 
                      Metric                          Description 
                                 Depth of the inheritance tree (=inheritance level                   Calculate metric scores based in the                  Repository of 
                        DIT      number of the class, 0 for the root class). Range of                 system size for the selected pattern                design patterns 
                                 value [0,+1)                                                             and each equivalent ones 
                       NOC       Number of children (=number of direct sub-classes 
                                 that the class has). Range of value [0,+1) 
                       MPC       Message-passing couple (=number of send statements                      Display the more               Display the average metric scores 
                                 defined in the class). Range of value [0,+1)                           maintainable pattern                     for each pattern 
                                 Response for a class (=total number of local methods           
                        RFC      and the number of methods called by local methods in                                                    
                                 the class). Range of value [0,+1)                                               Fig. 1. Architecture of the proposed tool 
                                 Lack of cohesion of methods (=number of disjoint                     
                      LCOM  sets of local methods, i.e. number of sets of local 
                                 methods that do not interact with each other, in the                        V.  VALIDATION OF THE PROPOSED TOOL 
                                 class). Range of value [0,+1) 
                       DAC       Data abstraction coupling (=number of abstract data                 Survey was conducted for the validation purpose. A 
                                 types defined in the class). Range of value [0,+1)                questionnaire  consisting  of  17  close  ended  questions 
                                 Weighted method per class (=sum of McCabe‟s                      divided into 3 goals was used for data gathering on basis 
                      WMPC  cyclomatic complexity of all local methods in the                     of  a  5-point  likert  scale,  which  is  given  in  table  4. 
                                 class). Range of value [0,+1)                                    Questions were arranged according to their relevancy to 
                       NOM       Number of methods (=number of local methods in the               defined goals. We preferred to use an electronic survey 
                                 class). Range of value [0,+1)                                    because it is it's not  take too much time and gives the 
                       SIZE1     Lines of code (=number of semicolons in the class).              respondent much of time to think  and answer questions 
                                 Range of value [0,+1)                                            be credible, then we shared the link of that survey with 
                                 Number of properties (=total number of attributes and 
                       SIZE2     the number of local methods in the class). Range of              some  people  who  are  specialized  in  the  software 
                                 value [0,+1)                                                     engineering. Once the responders are collected they are 
                                                                                                  statistically  analyzed  for  cumulative  evaluation  to  find 
                   C. Tooling                                                                     support to our hypothesis or vice versa, as shown below. 
                      The proposed tool aims to help the designer/developer                          Following  are  the  three  basic  goals  that  divided 
                   to  choose  the  appropriate  design  pattern  that  produces                  questions in the electronic survey: 
                   more maintainable system. The input of the tool is the                             
                   pattern under investigation and the estimated pattern size                        Goal 1: The necessity of the proposed  tool 
                   which is number of refined abstractions classes (n) and                            This  goal  provides  the  answers  of  the questions  that 
                   number  of  concrete  implementers  classes  (m).  The                         will  be  explored  the  extent  of  the  necessity  of  the 
                   functional  architecture  of  proposed  tool  is  shown  in                    proposed  tool.  The  more  maintainable  design  pattern 
                   figure 1,  the user selects the pattern he wants to examine                    makes the system easier in the maintenance, but there is 
                   then  selects  the  metrics  he  is  interested  in  and  finally              some difficult to find the perfect pattern especially if the 
                   defines the (n) and (m)  for the pattern.                                      developer  has  not  sufficient  experience  in  the  design 
                      The tool retrieves all patterns that describe equivalent                    patterns. 
                   functionality  from  a  repository  of  patterns,  and  then                       
                   calculates the  mathematic equations of selected  metrics                                               Table 4. Likert scale 
                   for each equivalent pattern. The tool displays the results                                1     Strongly Disagree 
                   in  two  phases:  first  phase  indicates  the  average  metric                           2     Disagree 
                   scores for each pattern in the given range of (n) and (m),                                3     Neutral- Neither Agreed Nor Disagree 
                   and the second phase determines which pattern produces 
                   „„best‟‟ results i.e. has the higher count of lower  metric                               4     Agreed 
                   values then consider as more maintainable.                                                5     Strongly Agreed 
                   Copyright © 2014 MECS                                                           I.J. Intelligent Systems and Applications, 2014, 10, 41-46 
The words contained in this file might help you see if this file matches what you are looking for:

...I j intelligent systems and applications published online september in mecs http www press org doi ijisa impact of design patterns on software maintainability fatimah mohammed alghamdi m rizwan jameel qureshi faculty computing information technology king abdulaziz university jeddah saudi arabia emails f t g hotmail com anriz hotmal abstract this paper mainly studies the effect face experienced designer which is time consuming to understanding identification investigation describe solutions for common problems they were pattern appropriate his introduced improve quality accelerate we have attempt evaluate development however there are some difficulties choose an gof draw optimal adapted a certain application problem so safe conclusion about issue proposed tool until now results investigate provide easier controversial context propose under considering most guided that retrieves with respect from repository factor system size helps it measures by even inexperienced metrics candidate more...

no reviews yet
Please Login to review.