Chapter 2: LITERATURE REVIEW

Size: px
Start display at page:

Download "Chapter 2: LITERATURE REVIEW"

Transcription

1 Chapter 2: LITERATURE REVIEW 2.1 Introduction Earlier the programs were developed using low level languages which used to consume lot of time in processing a single instruction set. Then the approach shifted towards high level languages such as procedural and object based. In this chapter such techniques have been reviewed. Basically the survey has been presented based upon two aspects i.e. UML for Aspect Oriented Systems and Testability. Research based upon fuzzy logic has also been studied and presented in this chapter UML for Aspect Oriented Systems (AOS) Unified Modeling Language (UML) profile is necessary to design Object Oriented applications and it is required to extend it to Aspect Oriented Systems. UML is capable of expressing core components and aspect components as well as the associations between them. In UML profile each notion is identified, clarified, presented and associated to a discipline. The following section discussed the surveys related to AOSD UML. Pawlak, R., Duchien, L. et al. (2002) have proposed various graphical notations for designing Aspect Oriented Systems (AOS). These notations can be used for distributed environment of aspect oriented application. Three concepts of UML has been explained i.e. groups, pointcut relations and aspect class notations which are useful for programming. Groups have two properties; they represent set of objects that are not instances of the same class or upper-class. Through these properties the aspect designer explained that the set of heterogeneous objects belong to the same system i.e. semantics. Secondly, a group may be composed of members that are localized on different hosts. An aspect class has been represented like a regular class, except that it can contain methods that have particular semantics. One of the methods for extending aspect semantics is by using any one of the stereotypes i.e. before, after, around, replace and role. As these methods are not invoked directly so the arguments passed to the aspect methods are contextual arguments. Pointcut relations allow the designer to link some aspect methods to some points of the base class. The association between aspect class and base class is stereotype with <<pointcut>>. The above notations are explained by taking example for modeling real life aspects, thus providing full aspect oriented model of the JAC framework for future software development. 11

2 Stein, D., Hanenberg, S., et al. (2002) proposed a UML extension to the existing UML for Aspect Oriented Programming. Aspect oriented design model (AODM) is transformed into an ordinary UML design model. AODM basically explained how to design crosscutting in AOSD. Until this paper no feasible modeling language has been available that supports the design of aspect oriented concepts. AODM is a design model that extends the UML. AODM further provided AspectJ s weaving mechanism in the UML. Various weaving instructions explained which model elements in a base design model are to be crosscut. In AODM, aspects are represented as UML classes of a special stereotype. These classes of stereotypes may link in association dependency and generalization relationships just like standard UML classes. Structural crosscutting is specified by means of collaboration templates where collaboration describes a projection of a design model. It specifies instances and relationships with their members and set of interactions that describe their behavior. Behavioral crosscutting is visualized by highlighting message in UML interaction diagrams. It takes place at the link that is used to send message. Weaving instruction explains which class in a base hierarchy is to be crosscut. Behavioral crosscutting weaving instructions specify which link in base class collaboration is to be crosscut. Weaving instructions define the pointcut in the dynamic execution of a program, where the operation of <<advice >> is to be run. AODM provides a special pointcut concept but does not provide weaving instruction for structured crosscutting. UML of AOSD complications could be resolved by executing the design of structural crosscutting form the model representing the aspect. UML profile for AOSD provides a complete set of model elements that represents the concept of the system based on aspect oriented system. The concerns having low coupling in different dimensions can be easily modeled. Aspect Oriented Technology tries to modularize these scattered implementations in order to avoid tangling of codes. Aldawud, O., Elrad, T., et al. (2003) provided a UML extension for AO system. UML provides the facility by which one can extend its make model to fulfill the needs of a modeling concern. The extension mechanism allows customized UML model elements. UML profile for AOSD will give guidelines for applying standard UML to the graphical notation for AOSD to represent ASPECT profile as shown in figure

3 Figure 2.1 An Aspect Profile Extension mechanism is based on the concept of stereotype. Aspect behavior is expressed through employing state charts artifacts. The UML behavioral package is composed of collaboration, use case, state machine and activity graphs package. The behavior of an aspect in AspectJ is determined by pointer s advice and the code. AOP based UML profile tries to reduce the gap between OO and AO design troop. Junior, J., Camargo, V., V., et al. (2009) explained the design tool i.e. Aspect Oriented UML (AO-UML). It used to capture and manage early aspect using the aspect oriented component engineering methodology. This tool can be used throughout the development life cycle. It integrates various AOCE techniques that are needed to provide an integrated development environment. AOCE supports the identification explanation about the component s functional and non functional requirements. By using AOCE components will be automatically indexed by their early aspects. AO-UML tool includes a component-based system s functional requirement designs and component specification. The architecture of AO-UML consists of three main parts i.e. graphical user interface, repository and implementation factory. It provides different visual symbols for different parts. Although various AO-UML notations were described and explained by taking example of banking system, but still there is a problem of navigation for aspects and classes. User has to manually search through the diagrams to find related components. One has to identify his own aspect and design components manually in the tool which is more time consuming. Suzuki, J. and Yamamoto, Y. (1999) described how the aspect supports in the design level. Extended UML has been proposed to support design of aspects properly. It is 13

4 an extension of existing UML specification and an XML-based aspect description language. It also provided the aspect model information to develop tools. It captured aspect in the design level and expressed them in the XML format. Once the module has been encoded with XML, the aspect information can be reused for a wide range of different development tools with different strengths. A UXF/a (UML exchange format), an interchanging an aspect design model was also introduced. It stated how the semantics should be described explicitly and transferred precisely. UXF/a, an extension of UXF, is the format to describe UML model to capture aspect information. UML metamodel has been used to support aspects by adding new elements for the aspect and woven class. Some existing elements were reused for aspect-class relationship i.e. (Association, Generalization and dependency). The stereotype <<woven class>> was also introduced to represent a woven class as shown in figure 2.2. Figure 2.2 A woven class Herrero, J. L., Sanchez, F., et al (2000) defined the basic function of objects and their implementation. Their functional and non functional properties have been designed independently using the basic modeling mechanism provided by UML Base class and stereotyped classes by relating an association relationship. This association relationship has again been represented by a special stereotype which provided an additional metaproperty that specified a mapping of base class to the stereotyped class. Each class of stereotype <<syn>> has been associated with one state chart diagram of stereotype <<synchronization state chart Diagram>> as shown in figure

5 Figure 2.3 Mapping The mapping expression could behave like point cut declaration which specifies the operations that are to be crosscut by the aspect and the points in dynamic execution of base class at which the aspect is to be attached. Especially the author focused on specification of crosscutting behavior in separate entities which may be related to other entities. It also specified the points in dynamic execution of base class at which the aspect is to be attached. But the approach of author was not satisfactory for the design of aspect oriented systems especially for AspectJ. Clarket, S., and Walker, R. J. (2001) proposed a new design concept, i.e. composition patterns to model requirements that have crosscutting impacts on multiple classes. It described how composition patterns can be mapped onto program of AspectJ. Composition patterns are UML templates for designing subjects that expect classes and operations as template parameters and encapsulated all model elements related to a crosscutting requirement in it. A composition pattern may consist of more than one classes and each pattern class may contain multiple template operations. Pattern classes have been used to model structural crosscutting such as attributes and operations that are to be merged to actual base classes and template operations have been used to design behavioral crosscutting. Template parameter has been represented by sharp brackets to avoid mixing of pattern classes with simple operations as shown in figure

6 Figure 2.4 A sample composition pattern Bind composition relationship is proposed by bind attachment which shows the actual elements that replace the composition patterns. Composition relationships are used to relate more than one element that needs to be combined. Figure 2.5 shows how bind attachment bound the composition pattern with actual design subject. Figure 2.5 Bind attachment Pattern merge is an integration strategy that is applied on composition relationship with bind attachment adopts most characteristics of the merger integration strategy. These 16

7 are the integration of non-template properties of pattern classes like there attributes, their association and their dependencies relationship. In the collaborations, UML designer may refer to crosscut input operations and woven output is generated after binding the composition pattern to the actual subject with the composition relationship shown in figure 2.5. Clarke explained that composition patterns constitute a design model that is independent from any particular model. Authors purposed a mapping mechanism which can be used to map composition pattern, concepts to concepts in Aspect J. Still there are some problems like composition patterns did not appropriately represent advice as distinct feature of aspect. Interaction diagrams are not properly delineating the scope in which the advice is executed. AspectJ may contain simple java attribute and operations composition patterns, being stereotyped. With the help of composition patterns only static crosscutting can be designed but dynamic crosscutting is not possible to design. A new design model has to be developed that is suitable for AspectJ. Stein, D., and Hanenberg, S., (2002) provided a notation for all language constructs in AspectJ and specified a UML implementation of AspectJ weaving mechanism. An extension to existing UML concept using UML s standard extension mechanisms was proposed. This approach also reproduced AspectJ s weaving process in the UML and extended UML mechanism to provide standard means to existing UML with new properties called tagged values. These new blocks were called stereotypes having the same structure as the basic block from which they are derived. Stereotypes might be used to indicate a difference in meaning with identical structure. Links could be used as one model element which represents joinpoints in UML diagram. Links represented main points in dynamic execution of a joinpoint in AspectJ. Joinpoints might be visualized by highlighting message in UML interaction diagrams. These interaction diagrams had generally been used to represent communication between instances. This denoted stereotype for pointcut as <<point cut>>. Advice was also represented as an operation of a stereotype named <<advice>> and was also semantically comparable to a standard UML operation as it had dynamic features that affect behavior. An aspect is a defined class of special stereotype i.e. <<aspect>>. The AODM implemented weaving mechanism for advice with the help of collaboration composition of collaborations that could be done by indentifying and matching instances. In a UML diagram, the weaving order could be represented by AODM which refine the use case describing the base class operations. Multiple collaborations might be needed for weaving introduction. Basically there are three instances i.e. before, around & after. The AODM introduced a new relationship to 17

8 the UML to signify the crosscutting effects of aspects on their base classes. In this paper authors provided a suitable notation for all components of an aspect and extended these notations from existing UML. In AODM, the relationship and weaving process provide the developer to assess the crosscutting effects of aspect at design level. A theoretical idea for extension of UML has been proposed but still there is a need to develop tool for AODM. Asteasuain, F., Contreras, B., et al. (2004) presented different approaches to include aspect during the design phase and proposed some extension to the existing UML for aspect. In this extension, the collaboration diagram might be used to model the dynamic structure of the system. UML diagram has been used to show the structure and interactions modeling of the aspect oriented system. The diagram of the system has been shown by an object that interchange message with other objects and classes. Two ways have been proposed to extend UML. One was general extension in UML with whom it would be possible to construct good and simple models with required abstraction. The main disadvantage of this model was to be very general and chances to lose some concepts of aspect during modeling. The second model provided a higher level of abstraction. The main disadvantage of this model was that it would not support reusability of product. In this paper the authors recommended to use model which was suitable for application requirement. These models were then compared on the basic of traceability, user friendly etc. On the basis of these comparisons, the author suggested that if the system is simple and has a controllable number of aspects, then Specific Extension to UML (SEU) is effective. In this paper authors concluded that it was easy to represent aspect semantics but the way to express them is not up to the satisfaction level. Again this is theoretical concept and there is a need to develop an automated tool. The unified Modeling language (UML) is a graphic language notation widely used as a standard to support the subject oriented and component based software development process as described by Aldawud, O., Elrad, T., et al. (2001). UML is a standard modeling language endorsed by Object Management Group (OMG) 1997 as UML. The use of UML as a standard implies communication without ambiguity. Benefits of modeling AOSD are that when aspects are identified at an early stage of the development life cycle, it makes their design components more reusable and automatic code generation possible for AOP systems. UML profile introduced basic AOSD terminology for UML to enable the visual representation of AOSD systems. The OMG defined UML modeling language in four layer architecture. The UML metamodel was defined and standardized. The metamodel layer defined the modeling language. The metamodel layer explained the model and the 18

9 user object layer explained instance of the model. UML provides the facilities to extend its metamodel to fulfill the requirement of a modeling concern. Extension model could be customized and extended. To allow the modeling a specific domain UML profile provided a predefined set of stereotype, tagged value and graphical icons. UML profile took for AOSD provided graphical notation for AOSD. It provided every aspect & support for AOSD in UML. UML profile provides different stereotype of AOSD like <<aspect>> << join point>> and << point cut>>. The researchers recognized the importance of applying aspect oriented technique to all phases of software development life cycle. The aspectual properties of the problem were initially decomposed and eased to the next life cycle phase. The authors discussed UML profile for modeling the orthogonal concerns in the aspect oriented software system. Identification of an aspect at an early stage of the development life cycle it makes design components more reusable. In this paper a simple extension to UML package has been proposed in a UML profile for AO. It provided guidelines for use of graphical notations for AOSD. This extension mechanism was based on the concept of stereotypes. The authors suggested list of stereotypes for AOSD and not defined any association notation in this paper. Behavior of aspect and classes could be described with collaboration diagrams. These were the views of authors for UML profile. Still a formal modeling of AOS development is required. Losavio, F., Matteo, A., et al (2009) presented an AOSD UML core for early aspect and focused on the AOSD ontology documents of common foundation for AOSD and various UML extensions. This was explained by taking a case study for initial architecture of a web application and provided establishment of standards for unified AOSD terminology. The authors explained AOSD Modeling and UML extension for AOSD. UML can be extended into two ways; metamodel and profiles. Their extensions were also explained in this paper. Stereotype was used in profile modality. Various notations for UML by different methods for AOSD such as UML notation for aspect, composition, weaving, standpoint, and advice for modeling element and their stereotypes were also discussed in detail. Authors tried to reduce the gap between the requirements, use case and component models. Basically the authors worked on requirement and analysis phase. But there was a need to improve on initial step that could be included in product line aspect oriented architecture design approaches and need of automated tools design architect. Fuentes, L. and Sánchez, P. (2006) proposed the UML 2.0 profiles for aspect oriented system and extended the aspect oriented concept means of profiles. Various 19

10 techniques to platform specific models were discussed. The main advantage of using UML profile is a notation and concepts which are familiar to many designers. MOF metamodel has been created for each AO proposal by reusing elements from previously elaborated MOF metamodel. The generic metamodel was proposed using MOF best by reusing the maximum elements of UML 2.0 metamodel. This metamodel consisted of four basic packages i.e. package structure, entities package, joint point package and AO behavior package. Extra package like method for adding classes, interfaces and aspect composition were also proposed. Aspect composition rules model were defined for composition between aspect and base classes. Inter type composition rule model has been used for addition of new structural and behavioral features to entities. UML profile used stereotype <<aspect>> for aspect when they did not have the same structure as common classes. Intertype stereotype feature was represented as <<intertype>> and non-intertype as <<aspectual>>. Intertype binding could be between related aspect and base classifier and aspectual binding could be done between behaviors of base class. And aspect association and dependencies has been used to show relationship between classes and components. UML 2.0 provided wearing mechanism by using some classifiers like hooks, aspect binding, point cuts and AO behaviors. Basically this paper defined new alternative and modeling approach that was not specified in the previous survey. Jackson, A., Sánchez, P., et al (2006) focused on traceability support from AO architecture to AO design. The system design elements have been derived from architectural elements and these elements have well defined mapping between DAOP- ADL and UML (AOD) for providing traceability support. Every use case behavior has been mapped to a set of required methods of the components interface. After developing the architectural design, each component has been implemented. Reuse component has been marked so that previously developed components could be recognized. Traceability support has been supplied at instance where elements in design have been developed based on architectural elements. These alternatives for selecting a specific alternative were recorded. The information has been recorded in two iterations. In both iterations anticipated and unanticipated changes have been identified. It was observed that analyzing the justification for selection of alternative in the first alternative could help the designer to change the design decision in second iteration. Zakaria, A. A., Hosny, et al (2002) proposed a UML extension for model aspectoriented systems. The extension was applied to Rational Rose, CASE tool as an add-in to facilitate the use of proposed extension. The add-in generates skeleton file of an AspectJ 20

11 for Rational Rose tool. The main aim of this extension was to tailor the UML for modeling system aspects. This extension tool was based on stereotypes, tagged values and constrains. Stereotypes were used to extend the UML vocabulary and introduced a new type of model elements. Tagged values were used to specify the characteristics or attributes of model elements and constraints were used to represent how a UML element is to be treated. It suggested notation for aspect as shown in figure 2.6 (a). Figure 2.6 (a) Aspect, (b) Pointcut Aspect class relationship depends upon model system. It proposed three aspect Boolean tagged values; abstract, active aspect and passive aspect. A pointcut described where an aspect advice gets attached to class functionality. A join point is a pointcut whose expression is a function name or an attribute. The proposed stereotype for pointcut is as shown in figure 2.6 (b) and association with class is <<Point cut>>. Pointcut acts like an interface with the aspect to determine the point in the execution at which the advice is executed. Figure 2.7 shows two pointcuts circle and triangle of an aspect. Figure 2.7 Pointcut circle and triangle attached with an aspect The Unified Modeling Language provides both static and dynamic views for software specification by using several diagrams, such as class diagrams provide a static view of the classes of the objects that are used in the system and their relationships. Due to the lack of UML in aspect oriented language constructs, cross cutting concerns of a 21

12 software system cannot model modularly in class diagrams. A simple extension of UML class diagram has been proposed by Zhang, G. (2005) which implements the concept of aspect-orientation in UML class diagrams. Aspects were introduced into class diagrams as first class elements that consist of a pointcut and an advice. The static structures of various software systems like Logging system, Airline system and Library System were modeled more modularly and redundancy in models has been reduced. An Aspect oriented domain specific language called Program Description Logic (PDL) is developed by Morgan, C., Volder, K., D. et al. (2007) for the specific purpose of checking the design rules. PDL has been based on a fully static and expression pointcut language. A PDL program consisted of a list of point cut advice pairs where each pointcut advice pair represented a design rule. The point cut matches violations of a design rule and the advice specified a corresponding error massage. The syntax of PDL point cut was similar to AspectJ but the PDL joint point model was static, such that the evaluation of PDL points cut has been done statically. The evaluation of PDL has been done by comparing it to Fxcop, an industrial strength tool for checking the design rules. The approach was comparable to Fxcop and could scale to large codebase. As aspect-oriented software development (AOSD) is gaining wide attention, it requires a new assessment framework to measure the reusability and maintainability. Sant Anna, C., Garcia, A., et al (2003) presented an assessment framework for AOSD, which was composed of two components: a suite of metrics and a quality model. The quality model defined precisely how to measure reusability and maintainability based on a set of proposed metrics. The proposed metrics captures information about the design and code in terms of coupling cohesion and size. The suite is composed of five design metrics and five code metrics. An assessment framework has been development to capture the understanding of coupling cohesion and size attributes to provide support for assessment of reusability and maintainability of aspect-oriented systems based on the proposed metrics suite. The basic components of the framework are the suite of metrics and the quality model. The quality model establishes a relationship between external, internal attributes and metrics. The metrics and model have been evaluated by using two different empirical studies with different characteristics. The first study was an experiment to compare the use of object-oriented approach and Aspect oriented approach to design and implement a multi agent system. Second study defined the implementation of proposed framework to evaluate Hahnemann s Java implementation and AspectJ implementation of the GOF design patterns. The proposed metrics of the framework satisfy the important requirements 22

13 in order to achieve successful measurements in AOSD context. The model also assists software engineers to interpret the data gathered from measurement process. The proposed framework show a justified result in the assessment of design decisions in AOSD and in comparison of both aspect oriented solutions and object-oriented solutions. A UML based design notation based on the limited time devotion on analysis and design is described by Bustos, A., and Eterovic, Y. (2007). It used to model the main concepts of aspect, its behavior and relationship with the base system. UML s class, software and state diagrams have been used in which the notation added a few new elements to model pointcut specification and pointcut activation. The notation considered two views of the relationships between an aspect and the base system: a static view and dynamic view. To show the dynamic nature of aspect both state and sequence diagrams are used. The state diagram is used to represent the internal behavior of the aspect and the sequence diagram is used to represent interaction between the aspect and the base system. To represent the static view of an aspect, a class diagram is used that shows the relationships between the aspect and the rest of the system. The proposed notation allowed giving reasons about the weaving process between the aspect and base system. A method has also been proposed to develop the static view in three stages. The methodology has been applied to design a bottle neck detection system for a real system i.e. major mobile communication service provider and systems seem to give good results. Zakaria, A. A., and Hosny, H. (2003) described the effect of CK metric of Aspect oriented system. In this paper most of the work has been done at the implementation level. Aspect oriented technology builds on the basic concepts of object oriented technology. So the metrics used for Object Oriented systems are applicable for Aspect Oriented systems. It defined the effect of aspect oriented on the following CK metrics i.e. WMC, depth of inheritance tree, number of children, lack of cohesion in methods, coupling between objects and response for a class. Still empirical validation is required. The attribute significant from design testability is called class interaction. The interaction points out of the design need to improve driving structural modifications or constraints specifications for reducing the final testing effort. Bandry, B., Traon, Y., L., et al. (2002) proposed a testability measurement approach that counts the number and the complexity of interactions that must be covered during testing. The authors were concerned with the issue of testability of object-oriented static design based on the UML class diagrams. It aimed at pinpointing the parts of the software architecture, where complex interactions may appear and lead to difficulties in testing. 23

14 By using the bottom-up methodology, various concrete applications are studied in order to indentify the attributes that impact the testability in a precise testing context. To do that, a testing task is defined and an effort is done to test a piece of software according to the criterion that is evaluated such that evaluation of all the interactions and their complexities was done. Defined global test cost is equal to the number of detected testability anti-patterns. A testability anti-pattern is a design solution that presents a configuration in the class diagram which increases the testing efforts. Testability antipatterns and class interaction or self-usage interaction were identified as two main configurations that make the code complex. These anti-patterns between classes might be implemented as interactions between objects due to which the final software may become difficult to test. The proposed test criterion covered all the interactions and a model has also been defined that could be derived from a class diagram from which it was possible to detect all the anti-patterns in an ambiguous way. By using the proposed model it was possible to compute the complexity of anti-patterns which is the maximum number of object interactions that could exist in further work Bandry, B., Traon, Y., L., et al. (2003) had shown an improvement by using UML extension mechanisms to better specify design information that could make implementation more testable. UML extension mechanisms such as tagged values and stereotypes were the main features used to specify the roles of the relationships in the class diagram. By using the ideas investigated in the previous work various solutions are proposed to improve the testability of the design. The idea was to add information on the design to make implementation more testable. The goal was to give the intuition of the testability issues that could be objected from class diagrams and to improve the proposed models for making the design more testable. An interesting technique has been proposed to identify the testability anti-patterns as particular part in the design on which a particular attention should be taken to limit testability problems in implementation. UML stereotypes were also proposed that add information on relationships in the class diagrams which helps to improve the testability of the design Testability Concepts Testability of a software system is defined as attributes of software that bear on the effort needed to validate a software product, i.e., it is indicative of the amount of effort required to test the system. Predicting the testability at the early stage of software development may lessen the time and cost of a software project. The following section presents a review of various testability concepts. 24

15 Jungmays, S. (2002) explained the testability usage related to dependence during design phase and also discussed new approach based on metric to handle critical usage for testing. The factor for testability facto complexity, separatism of concerns coupling, fault locality, controllability, observably, automaticity built in test capability and diagnostic capability were considered. But during design level some usage are considered for testability like hard-wired dependencies on class. It may be possible that a server class depends upon hard-wired dependencies to classes, cyclic dependencies between classes, cyclic links between objects, dense object network etc. Reduction matrices were proposed to evaluate the impact of a particular dependency on testability. Still there are many parameters to be discussed which make negative impact on system structure. These measures are also for Object Oriented Systems. Kassab, M., Ormandjieva, O., et al. (2005) identified and defined the occurrence of crosscutting during software requirement and design phase. Some quality measurement associated with initial phase of aspect-oriented software development was considered for functional requirements and non functional requirements. Authors took two use case diagrams to check the modularity. In use case model object-oriented software metrics, MOOD has been used to measure the coupling in the domain model interaction point to identify where other requirement may crosscut. Then relative size was defined i.e. at a particular interaction point how many crosscuts effect. The relative parameter like local conflict, inter dependency, interaction point has been evaluated. For design phase they define cohesion and coupling for separation of requirement. But still this frame work will assist in existing crosscut at the design level only. Gupta, V., Aggarwal, K.K., et al. (2005) proposed testability index for objectoriented software. This single value testability index can be used to calculate the testability of class. Fuzzy technique and concept was used to evaluate the testability index. Object oriented metrics were used with respect to their capabilities to evaluate the effort needed for testing. For this Chidember and Kemerer (CK) metric are used i.e. WMC, RFC, CBO and DIT. Testability index is a combination measure of renewal characteristics of Object Oriented Software like CK metrics, abstraction, polymorphism and inheritance. These characteristics and metrics are integrated with the help of fuzzy model to process their value in fuzzy domain, knowledge based index or information supplied by domain experts. Proposed fuzzy model consider four inputs where each input consists of three terms. It will create 81 rules for all these combinations of inputs. After applying these rules the testability index was evaluated. On the basis of testability index, testing effort could be 25

16 produced. This fuzzy model has been proposed for Object Oriented System. The testability index could be used to estimate the testability of software. Mouchawrab, S., Briand, L., C., et al. (2005) proposed a framework for objectoriented software testability. They defined design attributes that have affected testability, directly or indirectly. Design suggestion can be made to improve testability before implementation starts. Another objective of this paper was to identify a set of potential measures and model elements in UML design models which participate to evaluate the measures and change the design to improve testability. Firstly three levels of testing i.e. unit testing, integration testing and system testing were explained. Then an effort intensive testing sub-activities like specifying test cases, developing drivers, developing stubs and developing oracles were defined. A hypothesis is provided to describe the cues effect relationship between attributes and testability and was based on a thorough and systematic review of the literature. The authors supposed that measures must be defined from the information available in UML use case, class, state chart, and interaction diagrams. Proposed framework was generic and not limited to any specific development. The measures of a given testability attribute may vary according to the situation considered as unit coupling affects the integration testing. This paper provided hypotheses that how and why the attributes affect testability. The author provided 20 hypotheses on different attributes like inherited feature, inheritance design properties and discussed which may impact testability. This impact is not always controllable or avoidable. After that they defined OCL expression complexities i.e. many attributes depend on the complexity of constraint expression (OCL) which play important role is many UML diagrams. Use case model and system interface complexity has been defined. During evaluation they found that integration testing involved different attributes than unit testing. The authors defined a detailed table of attributes at each level of testing with their measure and remark. Measure could not be interpreted independently and bench marks on multiple dimensions helps decision making. This paper provided a framework for predicting the testability of designs by specifically focusing on the UML. Still empirical validation is required for these hypotheses. Phogat, M., and Kumar, D. (2011) proposed the factor of testability for object oriented system. Framework for software metrics has been defined to assess the testability of the class of an object-oriented system. The approach used to analyze a set of object-oriented metrics with respect to their contribution to evaluate a system s testability such as testing 26

17 criterion, documentation implementation, test suite, test tools and process capability. The author classified the already proposed measures into three groups. 1. Program-based measurement methods 2. Model-based measurement methods 3. Dependability assessment methods Program-based measurement was evaluated through Arithmetic Expression, Assignment Predicates and Boolean Predicates. Then they defined Model Based Testability by checking data flow model. Black box approach was used for Dependency Based Testability measurement. The authors focused on Program input and outputs. Simplicity of system was evaluated by complexity, and simplicity is inversely proportional to the complexity. Testability of a method into the class depends upon the visibility component, i.e. TM = Constant*(VC) Testability of class is Q = MIN(TM) VC = Visibility component-possible input/output Cyclomatic Complexity was computed by using control flow graph. They defined testability metrics for object-oriented system by using the R. Binder work for testability. Predicting class testability using object-oriented Metric; Bruntink, M., Deursen, A. (2004) defined factors of the testability of software system. Software testability was characterized using source code metrics and forced on object-oriented white box unit testing. An adapted version of fish bone diagram is used for identifying test case construction factors to evaluate testability. Metrics used were DIT, fan-out, LCOM, LOCC, number of children, number of Fields, number of methods, response for class and weighted method per class. The authors evaluated these metrics using the GQM/MEDEA frame work proposed by Basili et al. DLOCC and NOTC metrics were also defined to indicate the size of attest suite, where d is a dependent variable. Statistical analysis was used to investigate the hypotheses proposed in this paper. The main aim of this paper is to increase understanding of what makes code hard to test. Still this work is also related to object-oriented system and source code base testability. Aspect oriented Architectural framework has been focused on the problem developing software system that fulfill non functional of requirements such as performance, testability adaptability etc. Cooper, K., Dai, L., et al. (2003) defined the problem in Formal Design Analysis Framework (FDAF) using formal architectural 27

18 description language. FDAF was used to define aspect oriented design and analyze multiple non functional properties with the help of Non Functional Requirement (NFR), UML and a set of formal methods. The formal design analysis framework consisted of extended UML design model, NFR framework for design, existing formal methods, aspect oriented formal Models, Automate the design and analyze non-functional properties, which used semiformal and formal methods. It assisted the designer to choose an appropriate formal method, analyze and identify conflicting properties using on extended version of the NFR. It already defined the notations used an architecture design, including UML and formal methods to help the analysis of a design. Still it defined a single non functional properly and there is a need to work for other non functional property. Zhao, L., (2006) defined problems in existing research work. Beta distribution had been used to indicate software testability. There are some limitations of existing research. Many researchers have defined their own definitions to process analysis like controllability, prediction of the failures to be observed during random black box testing, potential conflict that may observe during test, estimate effort to test the software according to certain criterion etc. These definitions reflect the nature of testability and aim at different targets without any operational guidelines. It provides research hypothesis and proposed solution of research objectives. Basically three main steps were defined, testing criterion s effectiveness measure by using fault detection probability. Secondly it evaluates the express ability of beta distribution, which affected all factors that have negative impact on testability. Third is the experiment, which validates the usability of the model. It observes the effectiveness of several testing criterion on various program. Nazir, M., Khan, R. A., et al. (2010) defined a framework for testability estimation of an object oriented system. Author validated the acceptability and used the frame work for estimating testability in design phase which consisted of seven steps like testability factorization, software characterization metric selection, correlation establishment, testability quantification and qualitative assessment. It also consider design review quantitative estimate of testability help in defining design hierarchy. Testability quantification has been mentioned by execution steps it is observe that various factors play a significant role in predicting software testability. Two factors; understandability and complexity having great significance on quantifying object oriented software testability for that understandability estimation model and complexity estimation model have been developed to quantify the understand and complexity of software design. A statistical 28

19 analysis has been made to prove the correlation of testability with understandability and complexity in empirical validation of the model is also carried out. Bruntink, M., Deursen, A., (2006) defined a framework to predict testability of classes in an object-oriented system static analysis of source code. Object oriented metrics like depth of intendance tree, number of children line of code of a class has been used to evaluate testability. The size of test framework is considered as estimates of testing effort. Test framework is measured by metrics such as number of test cases is used. It defined the correlations between the object oriented properties and the test framework size by statistical analysis. Singh, Y., and Saha, A. (2010) have predicted testability at package level. Eclipse Plug-in has been developed to evaluate the value of source code metrics and test metrics from Eclipse project. These metrics were calculated at package level and obtain from Junit test classes. These package level metrics were defined from class level metrics to identify some test metrics based on Junit test classes. These metrics were calculated at package level and obtained from Junit test classes. These package level matrices were defined from class level metrics which identified some test metrics based on Junit test classes like TLOC, TM, TA and NT class etc. On the basic of these metrics several hypothesis have been proposed and evaluated. It also defined a relation between source code metrics and test metrics. This correlation was defined by using system related metrics (LOC, LOA, NOM, WMC), cohesion metrics (LOCM, ICH, TCC), coupling metrics (CBO, DAC, MPC & RFC) and inheritance related metrics. It has been observed that the source code metrics affect the testing efforts and testability at the package level. It was observed that as the size of the software increases and the testing efforts also increase. Massicotte, P., Badri, M., et al. (2005) relate testability with aspect-class integration testing sequences. A new technique has been proposed to generate test sequences based on the dynamic interactions between aspect and classes. Major part of this paper covered the unit testing of aspect oriented programs. The sequence diagrams generated from given collaboration diagrams have been verified by checking their working and errors. The errors not related with aspect have been eliminated and incremented to integrate the aspect. Gao, J., Wu. Y., et al. (2003) introduced three basic approaches to increase software component testability: framework based testing facility, Built-in tests, and Automatic component wrapping for testing. These three mechanisms constructed testable components. Framework based testing facility approach is a well-defined framework (such 29

20 as a class library) used to develop and allow engineers to add program testing code into software components. Built-in tests method required component developers to add test code and tests inside a software component to support self-checking and self-testing. Automatic component wrapping for testing method used a systematic way to convert a software component into a testable component by wrapping it with the program code, which facilitated software testing. Coelho, R., Staa, A. et al. (2009) proposed an exception handling mechanisms to make programs more reliable and robust. First the exploratory study was performed to assess the error proneness of AOP mechanisms on exception flow of programs. Second was the development of SAFE (static Analysis for the Flow of Exceptions) tool for exception flow analysis in AspectJ programs. A framework was defined that enables the developer to find faults on the exception handling code statically. The authors also introduced a set of bug patterns related to the exception handling code of AO programs that were characterized based on empirically data collected. Join point models were also specified to enable aspects to add new exception at specific point in the code, potentially causing the bug patterns found here Fuzzy models Fuzzy approach is a problem-solving control system methodology for implementing simple and small to very large multi-layered systems. It can be implemented in software characteristic evaluation through approximation by providing a simpler way to achieve definite results based upon ambiguous or imprecise crisp input variables. This section discusses the approaches to develop a fuzzy model. Kumar, R., Grover, P. S., Kumar, A. (2010) developed a framework for evaluating the complexity of an aspect-oriented system has been defined. It developed a tool using fuzzy logic to automate the measurement of complexity. It has proposed new complexity metrics for AO system. Design of metrics depends on internal characteristics like cohesion, coupling and complexity. The tool proposed by authors to automate complexity measurement using fuzzy logic has three different inputs related to complexity. For these inputs, 96 fuzzy rules have been defined to measure the complexity of generic AO systems. The complexity has been divided into two categories: 1. Code Complexity 2. Interaction complexity Complexity is CMP G = CM P +CMP I 30

21 All the complexity metrics can be added only if all metric values are in same unit. There may be hundreds of combination of complexity weight values of operational. It proposed solution of above said problem by using fuzzy logic approach. This fuzzy model integrates all the AO component complexity. It evaluated code complexity for generic AO Software. For large software projects testing is a major part of software life cycle to make the project acceptable and of good quality. Testability of object oriented software can be effectively measured from testability effort and time required to test the software. Testability effort can be calculated using object oriented metrics system. Fuzzy logic can be used to determine precise testability index. Two approaches have been used by Kaur, N., Singh, M. (2011). Mamdani and Sugeno models of fuzzy logic have been used to calculate the precise testability index of software project. Various metrics were used to find testability like Average Cyclomatic Complexity (ACC), CBO, RFC and DIT. These metrics were applied as a convex set of all geometric figures, Polygons, Triangles etc. The value of metric were calculated as ACC = 2, RFC = 8, CBO = 0, DIT = 2. For triangle the value of DIT = 1. These metrics have been measured manually or using tools like JHawk. Fuzzy logic model has also been used by Mamdani model logic to find out the Precise Testability Index (PTI) as shown in figure 2.8. The Mamdani Testability Index and Sugeno model of fuzzy logic has also been used to find out the Sugeno Testability Index. Figure 2.8 Fuzzy model 31

22 2.2 Conclusion In this chapter, two main topics have been reviewed in detail i.e. UML for Aspect Oriented Systems (AOS) and Testability of Software Systems. From this survey it has been found that many of the researchers have worked on UML design for Aspect Oriented Systems, and each one has suggested his own notation for designing AOS. Further it has been observed that there is no standardized tool which satisfies all the AOS design requirements. To satisfy the problem definition of the proposed work, Suzuki s notations for class diagrams are followed. In this chapter a detailed review has also been carried out on testability of Object Oriented Systems (OOS). Metric suites for testability such as cohesion, coupling, complexity, inheritance for AOS have also been reviewed. It has been found that the proposed metrics are applicable for AspectJ since they affect the external characteristics such as testability. It has been observed that some of the metrics can also be applied for AOS to evaluate the testability as AOS is an extension of OOS. In short, an up to date research has been studied which is very useful for carrying out the further work in this area. The next chapter describes our work related to testability framework for AOS and its validity. 32

Aspect-Orientation from Design to Code

Aspect-Orientation from Design to Code Aspect-Orientation from Design to Code Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany groher@informatik.tu-darmstadt.de Thomas Baumgarth Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739

More information

Using FDAF to bridge the gap between enterprise and software architectures for security

Using FDAF to bridge the gap between enterprise and software architectures for security Science of Computer Programming 66 (2007) 87 102 www.elsevier.com/locate/scico Using FDAF to bridge the gap between enterprise and software architectures for security Lirong Dai, Kendra Cooper Seattle

More information

University of Huddersfield Repository

University of Huddersfield Repository University of Huddersfield Repository Ghareb, Mazen and Allen, Gary Improving the Design and Implementation of Software Systems uses Aspect Oriented Programming Original Citation Ghareb, Mazen and Allen,

More information

Science of Computer Programming. Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach

Science of Computer Programming. Aspect-oriented model-driven skeleton code generation: A graph-based transformation approach Science of Computer Programming 75 (2010) 689 725 Contents lists available at ScienceDirect Science of Computer Programming journal homepage: www.elsevier.com/locate/scico Aspect-oriented model-driven

More information

Vragen. Intra-modular complexity measures. The uses relation. System structure: inter-module complexity

Vragen. Intra-modular complexity measures. The uses relation. System structure: inter-module complexity Vragen Intra-modular complexity measures Wat wordt bedoeld met het ontwerpsprincipe: Anticipate obsolence? Wat is het voordeel van strong cohesion en weak coupling? Wat is het gevolg van hoge complexiteit

More information

Measuring the quality of UML Designs

Measuring the quality of UML Designs Measuring the quality of UML Designs Author: Mr. Mark Micallef (mmica@cs.um.edu.mt) Supervisor: Dr. Ernest Cachia (eacaci@cs.um.edu.mt) Affiliation: University of Malta (www.um.edu.mt) Keywords Software

More information

CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS

CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS CHAPTER 4 HEURISTICS BASED ON OBJECT ORIENTED METRICS Design evaluation is most critical activity during software development process. Design heuristics are proposed as a more accessible and informal means

More information

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz

AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz AOSA - Betriebssystemkomponenten und der Aspektmoderatoransatz Results obtained by researchers in the aspect-oriented programming are promoting the aim to export these ideas to whole software development

More information

Chapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring

Chapter 7. Modular Refactoring. 7.1 Introduction to Modular Refactoring Chapter 7 Modular Refactoring I n this chapter, the role of Unified Modeling Language (UML) diagrams and Object Constraint Language (OCL) expressions in modular refactoring have been explained. It has

More information

Investigation of Metrics for Object-Oriented Design Logical Stability

Investigation of Metrics for Object-Oriented Design Logical Stability Investigation of Metrics for Object-Oriented Design Logical Stability Mahmoud O. Elish Department of Computer Science George Mason University Fairfax, VA 22030-4400, USA melish@gmu.edu Abstract As changes

More information

Spemmet - A Tool for Modeling Software Processes with SPEM

Spemmet - A Tool for Modeling Software Processes with SPEM Spemmet - A Tool for Modeling Software Processes with SPEM Tuomas Mäkilä tuomas.makila@it.utu.fi Antero Järvi antero.jarvi@it.utu.fi Abstract: The software development process has many unique attributes

More information

Designing Aspect-Oriented Crosscutting in UML

Designing Aspect-Oriented Crosscutting in UML Designing Aspect-Oriented Crosscutting in UML Dominik Stein, Stefan Hanenberg, and Rainer Unland Institute for Computer Science University of Essen, Germany {dstein shanenbe unlandr}@cs.uni-essen.de ABSTRACT

More information

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML Ingegneria del Software Corso di Laurea in Informatica per il Management Introduction to UML Davide Rossi Dipartimento di Informatica Università di Bologna Modeling A model is an (abstract) representation

More information

Research Article ISSN:

Research Article ISSN: Research Article [Agrawal, 1(3): May, 2012] IJESRT INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY Use Of Software Metrics To Measure And Improve The Quality Of The Software Design

More information

Towards Cohesion-based Metrics as Early Quality Indicators of Faulty Classes and Components

Towards Cohesion-based Metrics as Early Quality Indicators of Faulty Classes and Components 2009 International Symposium on Computing, Communication, and Control (ISCCC 2009) Proc.of CSIT vol.1 (2011) (2011) IACSIT Press, Singapore Towards Cohesion-based Metrics as Early Quality Indicators of

More information

Aspect Design Pattern for Non Functional Requirements

Aspect Design Pattern for Non Functional Requirements Aspect Design Pattern for Non Functional Requirements FAZAL-E-AMIN¹, ANSAR SIDDIQ², HAFIZ FAROOQ AHMAD³ ¹ ²International Islamic University Islamabad, Pakistan ³NUST Institute of Information Technology,

More information

Presenter: Dong hyun Park

Presenter: Dong hyun Park Presenter: 200412325 Dong hyun Park Design as a life cycle activity bonds the requirements to construction Process of breaking down the system into components, defining interfaces and defining components

More information

Object Oriented Measurement

Object Oriented Measurement Object Oriented Measurement Diego Chaparro González dchaparro@acm.org Student number: 59881P 17th January 2003 Abstract This document examines the state of art in software products measurement, with focus

More information

Usability Evaluation of Software Testing Based on Analytic Hierarchy Process Dandan HE1, a, Can WANG2

Usability Evaluation of Software Testing Based on Analytic Hierarchy Process Dandan HE1, a, Can WANG2 4th International Conference on Machinery, Materials and Computing Technology (ICMMCT 2016) Usability Evaluation of Software Testing Based on Analytic Hierarchy Process Dandan HE1, a, Can WANG2 1,2 Department

More information

Approach for Modeling Aspects in Architectural Views

Approach for Modeling Aspects in Architectural Views Approach for Modeling Aspects in Architectural Views ABSTRACT This document presents the approach for modeling aspects in architectural views. It builds on earlier deliverables that have not explicitly

More information

Information Hiding and Aspect-Oriented Modeling

Information Hiding and Aspect-Oriented Modeling Information Hiding and Aspect-Oriented Modeling Wisam Al Abed and Jörg Kienzle School of Computer Science, McGill University Montreal, QC H3A2A7, Canada Wisam.Alabed@mail.mcgill.ca, Joerg.Kienzle@mcgill.ca

More information

Technical Metrics for OO Systems

Technical Metrics for OO Systems Technical Metrics for OO Systems 1 Last time: Metrics Non-technical: about process Technical: about product Size, complexity (cyclomatic, function points) How to use metrics Prioritize work Measure programmer

More information

Modeling the Evolution of Aspect Configurations using Model Transformations

Modeling the Evolution of Aspect Configurations using Model Transformations Modeling the Evolution of Aspect Configurations using Model Transformations Uwe Zdun, Mark Strembeck Institute of Information Systems, New Media Lab Vienna University of Economics, Austria {uwe.zdun mark.strembeck}@wu-wien.ac.at

More information

A Query-Based Approach for the Analysis of Aspect-Oriented Systems by

A Query-Based Approach for the Analysis of Aspect-Oriented Systems by A Query-Based Approach for the Analysis of Aspect-Oriented Systems by Eduardo Salomão Barrenechea A thesis presented to the University of Waterloo in fulfillment of the thesis requirement for the degree

More information

METRIC ATTITUDE PLUG-IN FOR ECLIPSE USER GUIDE

METRIC ATTITUDE PLUG-IN FOR ECLIPSE USER GUIDE METRIC ATTITUDE PLUG-IN FOR ECLIPSE USER GUIDE Metric Attitude Pag. 0 CONTENTS CONTENTS... 1 INTRODUCTION... 2 ECLIPSE... 2 1. INSTALLING ECLIPS FOR WINDOWS SYSTEM... 3 2. INSTALLING METRIC ATTITUDE...

More information

Existing Model Metrics and Relations to Model Quality

Existing Model Metrics and Relations to Model Quality Existing Model Metrics and Relations to Model Quality Parastoo Mohagheghi, Vegard Dehlen WoSQ 09 ICT 1 Background In SINTEF ICT, we do research on Model-Driven Engineering and develop methods and tools:

More information

Risk-based Object Oriented Testing

Risk-based Object Oriented Testing Risk-based Object Oriented Testing Linda H. Rosenberg, Ph.D. Ruth Stapko Albert Gallo NASA GSFC SATC NASA, Unisys SATC NASA, Unisys Code 302 Code 300.1 Code 300.1 Greenbelt, MD 20771 Greenbelt, MD 20771

More information

09. Component-Level Design

09. Component-Level Design 09. Component-Level Design Division of Computer Science, College of Computing Hanyang University ERICA Campus 1 st Semester 2017 What is Component OMG UML Specification defines a component as OO view a

More information

Metrics and OO. SE 3S03 - Tutorial 12. Alicia Marinache. Week of Apr 04, Department of Computer Science McMaster University

Metrics and OO. SE 3S03 - Tutorial 12. Alicia Marinache. Week of Apr 04, Department of Computer Science McMaster University and OO OO and OO SE 3S03 - Tutorial 12 Department of Computer Science McMaster University Complexity Lorenz CK Week of Apr 04, 2016 Acknowledgments: The material of these slides is based on [1] (chapter

More information

On the Impact of Aspect-Oriented Programming on Object-Oriented Metrics

On the Impact of Aspect-Oriented Programming on Object-Oriented Metrics On the Impact of Aspect-Oriented Programming on Object-Oriented Metrics Jean-Yves Guyomarc h and Yann-Gaël Guéhéneuc GEODES - Group of Open and Distributed Systems, Experimental Software Engineering Department

More information

History of object-oriented approaches

History of object-oriented approaches Prof. Dr. Nizamettin AYDIN naydin@yildiz.edu.tr http://www.yildiz.edu.tr/~naydin Object-Oriented Oriented Systems Analysis and Design with the UML Objectives: Understand the basic characteristics of object-oriented

More information

Crosscutting Interfaces for Aspect-Oriented Modeling *

Crosscutting Interfaces for Aspect-Oriented Modeling * * Christina Chavez 1, Alessandro Garcia 2, Uirá Kulesza 3, Cláudio Sant Anna 3 and Carlos Lucena 3 1 Depto de Ciência da Computação, UFBA Av. Adhemar de Barros, s/n Salvador Brasil flach@dcc.ufba.br 2

More information

Object-Oriented Design

Object-Oriented Design Object-Oriented Design Lecture 14: Design Workflow Department of Computer Engineering Sharif University of Technology 1 UP iterations and workflow Workflows Requirements Analysis Phases Inception Elaboration

More information

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN NOTES ON OBJECT-ORIENTED MODELING AND DESIGN Stephen W. Clyde Brigham Young University Provo, UT 86402 Abstract: A review of the Object Modeling Technique (OMT) is presented. OMT is an object-oriented

More information

An Empirical Study into Class Testability 1

An Empirical Study into Class Testability 1 An Empirical Study into Class Testability 1 Magiel Bruntink a, Arie van Deursen a b a CWI, P.O Box 94079, 1098 SJ Amsterdam, The Netherlands b Delft University, Faculty of Electrical Engineering, Mathematics

More information

1 Introduction. Abstract

1 Introduction. Abstract An MVC-based Analysis of Object-Oriented System Prototyping for Banking Related GUI Applications Correlationship between OO Metrics and Efforts for Requirement Change Satoru Uehara, Osamu Mizuno, Yumi

More information

Empirical Evaluation and Critical Review of Complexity Metrics for Software Components

Empirical Evaluation and Critical Review of Complexity Metrics for Software Components Proceedings of the 6th WSEAS Int. Conf. on Software Engineering, Parallel and Distributed Systems, Corfu Island, Greece, February 16-19, 2007 24 Empirical Evaluation and Critical Review of Complexity Metrics

More information

Software Design. Levels in Design Process. Design Methodologies. Levels..

Software Design. Levels in Design Process. Design Methodologies. Levels.. Design Software Design Design activity begins with a set of requirements Design done before the system is implemented Design is the intermediate language between requirements and code Moving from problem

More information

HOW AND WHEN TO FLATTEN JAVA CLASSES?

HOW AND WHEN TO FLATTEN JAVA CLASSES? HOW AND WHEN TO FLATTEN JAVA CLASSES? Jehad Al Dallal Department of Information Science, P.O. Box 5969, Safat 13060, Kuwait ABSTRACT Improving modularity and reusability are two key objectives in object-oriented

More information

Programming AspectJ with Eclipse and AJDT, By Example. Chien-Tsun Chen Sep. 21, 2003

Programming AspectJ with Eclipse and AJDT, By Example. Chien-Tsun Chen Sep. 21, 2003 Programming AspectJ with Eclipse and AJDT, By Example Chien-Tsun Chen Sep. 21, 2003 ctchen@ctchen.idv.tw References R. Laddad, I want my AOP!, Part 1-Part3, JavaWorld, 2002. R. Laddad, AspectJ in Action,

More information

Object Oriented Metrics. Impact on Software Quality

Object Oriented Metrics. Impact on Software Quality Object Oriented Metrics Impact on Software Quality Classic metrics Lines Of Code Function points Complexity Code coverage - testing Maintainability Index discussed later Lines of Code KLOC = 1000 Lines

More information

COSC 3351 Software Design. An Introduction to UML (I)

COSC 3351 Software Design. An Introduction to UML (I) COSC 3351 Software Design An Introduction to UML (I) This lecture contains material from: http://wps.prenhall.com/esm_pfleeger_softengtp_2 http://sunset.usc.edu/classes/cs577a_2000/lectures/05/ec-05.ppt

More information

Darshan Institute of Engineering & Technology for Diploma Studies

Darshan Institute of Engineering & Technology for Diploma Studies REQUIREMENTS GATHERING AND ANALYSIS The analyst starts requirement gathering activity by collecting all information that could be useful to develop system. In practice it is very difficult to gather all

More information

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1

Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Automation of Semantic Web based Digital Library using Unified Modeling Language Minal Bhise 1 1 Dhirubhai Ambani Institute for Information and Communication Technology, Gandhinagar, Gujarat, India Email:

More information

J2EE Development Best Practices: Improving Code Quality

J2EE Development Best Practices: Improving Code Quality Session id: 40232 J2EE Development Best Practices: Improving Code Quality Stuart Malkin Senior Product Manager Oracle Corporation Agenda Why analyze and optimize code? Static Analysis Dynamic Analysis

More information

UML Aspect Specification Using Role Models

UML Aspect Specification Using Role Models UML Aspect Specification Using Role Models Geri Georg Agilent Laboratories, Agilent Technologies, Fort Collins, USA geri_georg@agilent.com Robert France Department of Computer Science, Colorado State University

More information

CASE TOOLS LAB VIVA QUESTION

CASE TOOLS LAB VIVA QUESTION 1. Define Object Oriented Analysis? VIVA QUESTION Object Oriented Analysis (OOA) is a method of analysis that examines requirements from the perspective of the classes and objects found in the vocabulary

More information

Idioms for Building Software Frameworks in AspectJ

Idioms for Building Software Frameworks in AspectJ Idioms for Building Software Frameworks in AspectJ Stefan Hanenberg 1 and Arno Schmidmeier 2 1 Institute for Computer Science University of Essen, 45117 Essen, Germany shanenbe@cs.uni-essen.de 2 AspectSoft,

More information

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University Metamodeling Janos ISIS, Vanderbilt University janos.sztipanovits@vanderbilt.edusztipanovits@vanderbilt edu Content Overview of Metamodeling Abstract Syntax Metamodeling Concepts Metamodeling languages

More information

Pattern-Based Architectural Design Process Model

Pattern-Based Architectural Design Process Model Pattern-Based Architectural Design Process Model N. Lévy, F. Losavio Abstract: The identification of quality requirements is crucial to develop modern software systems, especially when their underlying

More information

An Aspect-Based Approach to Modeling Security Concerns

An Aspect-Based Approach to Modeling Security Concerns An Aspect-Based Approach to Modeling Security Concerns Geri Georg Agilent Laboratories, Agilent Technologies, Fort Collins, USA geri_georg@agilent.com Robert France, Indrakshi Ray Department of Computer

More information

UML 2.0 State Machines

UML 2.0 State Machines UML 2.0 State Machines Frederic.Mallet@unice.fr Université Nice Sophia Antipolis M1 Formalisms for the functional and temporal analysis With R. de Simone Objectives UML, OMG and MDA Main diagrams in UML

More information

Assessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method

Assessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method Assessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method Eduardo Figueiredo 1, Alessandro Garcia 2, Cláudio Sant Anna 1, Uirá Kulesza 1, Carlos Lucena 1 1 PUC-Rio, Computer Science

More information

Using Metrics To Manage Software Risks. 1. Introduction 2. Software Metrics 3. Case Study: Measuring Maintainability 4. Metrics and Quality

Using Metrics To Manage Software Risks. 1. Introduction 2. Software Metrics 3. Case Study: Measuring Maintainability 4. Metrics and Quality Using Metrics To Manage Software Risks 1. Introduction 2. Software Metrics 3. Case Study: Measuring Maintainability 4. Metrics and Quality 1 1. Introduction Definition Measurement is the process by which

More information

Designing Loop Condition Constraint Model for Join Point Designation Diagrams (JPDDs)

Designing Loop Condition Constraint Model for Join Point Designation Diagrams (JPDDs) Designing Loop Condition Constraint Model for Join Point Designation Diagrams (JPDDs) Bahram Zarrin Master Student Bahram.zarrin@gmail.com Rodziah Atan Doctor rodziah@fsktm.upm.edu.my Muhammad Taufik Abdullah

More information

Chapter 1: Principles of Programming and Software Engineering

Chapter 1: Principles of Programming and Software Engineering Chapter 1: Principles of Programming and Software Engineering Data Abstraction & Problem Solving with C++ Fifth Edition by Frank M. Carrano Software Engineering and Object-Oriented Design Coding without

More information

A Survey on Aspect-Oriented Modeling Approaches

A Survey on Aspect-Oriented Modeling Approaches A Survey on Aspect-Oriented Modeling Approaches A. Schauerhuber 1, W. Schwinger 2, E. Kapsammer 3, W. Retschitzegger 3, M. Wimmer 1, and G. Kappel 1 1 Business Informatics Group Vienna University of Technology,

More information

Impact of Dependency Graph in Software Testing

Impact of Dependency Graph in Software Testing Impact of Dependency Graph in Software Testing Pardeep Kaur 1, Er. Rupinder Singh 2 1 Computer Science Department, Chandigarh University, Gharuan, Punjab 2 Assistant Professor, Computer Science Department,

More information

Quality Metrics Tool for Object Oriented Programming

Quality Metrics Tool for Object Oriented Programming Quality Metrics Tool for Object Oriented Programming Mythili Thirugnanam * and Swathi.J.N. Abstract Metrics measure certain properties of a software system by mapping them to numbers (or to other symbols)

More information

Employing Query Technologies for Crosscutting Concern Comprehension

Employing Query Technologies for Crosscutting Concern Comprehension Employing Query Technologies for Crosscutting Concern Comprehension Marius Marin Accenture The Netherlands Marius.Marin@accenture.com Abstract Common techniques for improving comprehensibility of software

More information

3rd Lecture Languages for information modeling

3rd Lecture Languages for information modeling 3rd Lecture Languages for information modeling Agenda Languages for information modeling UML UML basic concepts Modeling by UML diagrams CASE tools: concepts, features and objectives CASE toolset architecture

More information

IDERA ER/Studio Software Architect Evaluation Guide. Version 16.5/2016+ Published February 2017

IDERA ER/Studio Software Architect Evaluation Guide. Version 16.5/2016+ Published February 2017 IDERA ER/Studio Software Architect Evaluation Guide Version 16.5/2016+ Published February 2017 2017 IDERA, Inc. All rights reserved. IDERA and the IDERA logo are trademarks or registered trademarks of

More information

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis

OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis UNIT I INTRODUCTION OBJECT ORIENTED SYSTEM DEVELOPMENT Software Development Dynamic System Development Information system solution Steps in System Development Analysis Design Implementation Testing Maintenance

More information

Chapter 32. Aspect-Oriented Software Development (AOSD) Ian Sommerville 2006 Software Engineering. Chapter 32 Slide 1

Chapter 32. Aspect-Oriented Software Development (AOSD) Ian Sommerville 2006 Software Engineering. Chapter 32 Slide 1 Chapter 32 Aspect-Oriented Software Development (AOSD) Ian Sommerville 2006 Software Engineering. Chapter 32 Slide 1 Objectives To explain the principle of separation of concerns in software development

More information

Unit 1 Introduction to Software Engineering

Unit 1 Introduction to Software Engineering Unit 1 Introduction to Software Engineering João M. Fernandes Universidade do Minho Portugal Contents 1. Software Engineering 2. Software Requirements 3. Software Design 2/50 Software Engineering Engineering

More information

Composition Graphs: a Foundation for Reasoning about Aspect-Oriented Composition

Composition Graphs: a Foundation for Reasoning about Aspect-Oriented Composition s: a Foundation for Reasoning about Aspect-Oriented - Position Paper - István Nagy Mehmet Aksit Lodewijk Bergmans TRESE Software Engineering group, Faculty of Computer Science, University of Twente P.O.

More information

Unified Modeling Language (UML)

Unified Modeling Language (UML) Unified Modeling Language (UML) Troy Mockenhaupt Chi-Hang ( Alex) Lin Pejman ( PJ ) Yedidsion Overview Definition History Behavior Diagrams Interaction Diagrams Structural Diagrams Tools Effect on Software

More information

Topic : Object Oriented Design Principles

Topic : Object Oriented Design Principles Topic : Object Oriented Design Principles Software Engineering Faculty of Computing Universiti Teknologi Malaysia Objectives Describe the differences between requirements activities and design activities

More information

Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas

Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas Welcome to Design Patterns! For syllabus, course specifics, assignments, etc., please see Canvas What is this class about? While this class is called Design Patterns, there are many other items of critical

More information

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach? Department: Information Technology Questions Bank Class: B.E. (I.T) Prof. Bhujbal Dnyaneshwar K. Subject: Object Oriented Modeling & Design dnyanesh.bhujbal11@gmail.com ------------------------------------------------------------------------------------------------------------

More information

An Extensible Use Case Modeling Approach for Cyber- Physical Systems (CPSs)

An Extensible Use Case Modeling Approach for Cyber- Physical Systems (CPSs) An Extensible Use Case Modeling Approach for Cyber- Physical Systems (CPSs) Gong Zhang 1, Tao Yue 2, Shaukat Ali 2 and Ji Wu 1 1 School of Computer Science and Engineering, Beihang University, Beijing,

More information

Assessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method

Assessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method Assessing Aspect-Oriented Artifacts: Towards a Tool-Supported Quantitative Method Eduardo Figueiredo 1, Alessandro Garcia 2, Cláudio Sant Anna 1, Uirá Kulesza 1, Carlos Lucena 1 1 PUC-Rio, Computer Science

More information

VOL. 3, NO. 1, January 2013 ISSN ARPN Journal of Systems and Software AJSS Journal. All rights reserved

VOL. 3, NO. 1, January 2013 ISSN ARPN Journal of Systems and Software AJSS Journal. All rights reserved Model-Based Testing for Contractual Software using Aspects 1 Bouchaib Falah, 2 Farah Boukfal, 3 Basma Iraqi 1 Assistant Professor, School of Science and Engineering, Al Akhawayn University in Ifrane, Ifrane,

More information

Part I: Preliminaries 24

Part I: Preliminaries 24 Contents Preface......................................... 15 Acknowledgements................................... 22 Part I: Preliminaries 24 1. Basics of Software Testing 25 1.1. Humans, errors, and testing.............................

More information

Open Reuse of Component Designs in OPM/Web

Open Reuse of Component Designs in OPM/Web Open Reuse of Component Designs in OPM/Web Iris Reinhartz-Berger Technion - Israel Institute of Technology ieiris@tx.technion.ac.il Dov Dori Technion - Israel Institute of Technology dori@ie.technion.ac.il

More information

Application of Object Oriented Metrics to Java and C Sharp: Comparative Study

Application of Object Oriented Metrics to Java and C Sharp: Comparative Study International Journal of Computer Applications (9 888) Volume 64 No., February Application of Object Oriented Metrics to Java and C Sharp: Comparative Study Arti Chhikara Maharaja Agrasen College,Delhi,India

More information

XWeave: Models and Aspects in Concert

XWeave: Models and Aspects in Concert XWeave: Models and Aspects in Concert Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81730 Munich, Germany +49 89 636 49477 iris.groher.ext@siemens.com Markus Voelter Independent Consultant Ziegelaecker

More information

Quantify the project. Better Estimates. Resolve Software crises

Quantify the project. Better Estimates. Resolve Software crises Quantify the project Quantifying schedule, performance,work effort, project status Helps software to be compared and evaluated Better Estimates Use the measure of your current performance to improve your

More information

A Quantitative Assessment

A Quantitative Assessment Design Patterns as Aspects: A Quantitative Assessment Cláudio Sant Anna Software Engineering Laboratory Computer Science Department PUC-Rio claudios@inf.puc-rio.br Alessandro Garcia Software Engineering

More information

International Journal for Management Science And Technology (IJMST)

International Journal for Management Science And Technology (IJMST) Volume 4; Issue 03 Manuscript- 1 ISSN: 2320-8848 (Online) ISSN: 2321-0362 (Print) International Journal for Management Science And Technology (IJMST) GENERATION OF SOURCE CODE SUMMARY BY AUTOMATIC IDENTIFICATION

More information

Reusability Metrics for Object-Oriented System: An Alternative Approach

Reusability Metrics for Object-Oriented System: An Alternative Approach Reusability Metrics for Object-Oriented System: An Alternative Approach Parul Gandhi Department of Computer Science & Business Administration Manav Rachna International University Faridabad, 121001, India

More information

Topics in Object-Oriented Design Patterns

Topics in Object-Oriented Design Patterns Software design Topics in Object-Oriented Design Patterns Material mainly from the book Design Patterns by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides; slides originally by Spiros Mancoridis;

More information

Design Metrics for Object-Oriented Software Systems

Design Metrics for Object-Oriented Software Systems ECOOP 95 Quantitative Methods Workshop Aarhus, August 995 Design Metrics for Object-Oriented Software Systems PORTUGAL Design Metrics for Object-Oriented Software Systems Page 2 PRESENTATION OUTLINE This

More information

Chapter 2 Overview of the Design Methodology

Chapter 2 Overview of the Design Methodology Chapter 2 Overview of the Design Methodology This chapter presents an overview of the design methodology which is developed in this thesis, by identifying global abstraction levels at which a distributed

More information

Software Engineering from a

Software Engineering from a Software Engineering from a modeling perspective Robert B. France Dept. of Computer Science Colorado State University USA france@cs.colostate.edu Softwaredevelopment problems Little or no prior planning

More information

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT. Object Oriented Programming

BCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT. Object Oriented Programming BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT Object Oriented Programming Examiner s Report March 2017 A1. a) Explain what is meant by the following terms:

More information

Unified Modeling Language (UML)

Unified Modeling Language (UML) Appendix H Unified Modeling Language (UML) Preview The Unified Modeling Language (UML) is an object-oriented modeling language sponsored by the Object Management Group (OMG) and published as a standard

More information

Agenda. Tool-Supported Detection of Code Smells in Software Aspectization. Motivation. Mistakes in Software Aspectization. Advice-related mistakes

Agenda. Tool-Supported Detection of Code Smells in Software Aspectization. Motivation. Mistakes in Software Aspectization. Advice-related mistakes Agenda Tool-Supported Detection of Code Smells in Software Aspectization Péricles Alves and Diogo Santana Recurring Mistakes Code Smells ConcernReCS Tool ConcernReCS Extension 1 Motivation AOP is about

More information

Application of a Fuzzy Inference System to Measure Maintainability of Object-Oriented Software

Application of a Fuzzy Inference System to Measure Maintainability of Object-Oriented Software Application of a Fuzzy Inference System to Measure Maintainability of Object-Oriented Software Nasib Singh Gill and Meenakshi Sharma Department of Computer Science & Applications Maharshi Dayanand University,

More information

A Study of Software Metrics

A Study of Software Metrics International Journal of Computational Engineering & Management, Vol. 11, January 2011 www..org 22 A Study of Software Metrics Gurdev Singh 1, Dilbag Singh 2, Vikram Singh 3 1 Assistant Professor, JIET

More information

ARiSA First Contact Analysis

ARiSA First Contact Analysis ARiSA First Contact Analysis Applied Research In System Analysis - ARiSA You cannot control what you cannot measure Tom DeMarco Software Grail Version 1.3 Programming Language Java 1.4 Date 2 nd of December,

More information

Taxonomy Dimensions of Complexity Metrics

Taxonomy Dimensions of Complexity Metrics 96 Int'l Conf. Software Eng. Research and Practice SERP'15 Taxonomy Dimensions of Complexity Metrics Bouchaib Falah 1, Kenneth Magel 2 1 Al Akhawayn University, Ifrane, Morocco, 2 North Dakota State University,

More information

Towards the re-usability of software metric definitions at the meta level

Towards the re-usability of software metric definitions at the meta level Towards the re-usability of software metric definitions at the meta level - Position Paper - Jacqueline A. McQuillan and James F. Power Department of Computer Science, National University of Ireland, Maynooth,

More information

Driving component composition from early stages using aspect-oriented techniques

Driving component composition from early stages using aspect-oriented techniques Driving component composition from early stages using aspect-oriented techniques Pedro J. Clemente, Juan Hernández and Fernando Sánchez University of Extremadura. Spain Quercus Software Engineering Group.

More information

Enhancing Object Oriented Coupling Metrics w.r.t. Connectivity Patterns

Enhancing Object Oriented Coupling Metrics w.r.t. Connectivity Patterns Enhancing Object Oriented Coupling Metrics w.r.t. Connectivity Patterns Thesis submitted in partial fulfillment of the requirements for the award of degree of Master of Engineering in Software Engineering

More information

An Integrated Approach to Documenting Requirements with the Rational Tool Suite

An Integrated Approach to Documenting Requirements with the Rational Tool Suite Copyright Rational Software 2002 http://www.therationaledge.com/content/dec_02/t_documentreqs_kd.jsp An Integrated Approach to Documenting Requirements with the Rational Tool Suite by Kirsten Denney Advisor

More information

Analyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern

Analyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern Analyzing effect of Aspect Oriented concepts in design and implementation of design patterns with case study of Observer Pattern Deepali A. Bhanage 1, Sachin D. Babar 2 Sinhgad Institute of Technology,

More information

Detecting Redundant Unit Tests for AspectJ Programs

Detecting Redundant Unit Tests for AspectJ Programs Detecting Redundant Unit Tests for AspectJ Programs Tao Xie 1 Jianjun Zhao 2 Darko Marinov 3 David Notkin 4 1 North Carolina State University 2 Shanghai Jiaotong University 3 University of Illinois at

More information

Language Oriented Modularity: From Theory to Practice

Language Oriented Modularity: From Theory to Practice Language Oriented Modularity: From Theory to Practice Arik Hadas Dept. of Mathematics and Computer Science The Open University of Israel Joint Work With: David H. Lorenz Language Oriented Modularity (LOM)

More information

A Systematic Review of Bad Smells Metrics. Luiz Paulo Coelho Ferreira

A Systematic Review of Bad Smells Metrics. Luiz Paulo Coelho Ferreira A Systematic Review of Bad Smells Metrics Luiz Paulo Coelho Ferreira Motivation One of the main goals in Software Engineering is to transform software development in a process predictable and controlled.

More information