Some Perspectives Software Engineering

download Some Perspectives Software Engineering

of 80

Transcript of Some Perspectives Software Engineering

  • 8/12/2019 Some Perspectives Software Engineering

    1/80

    VOL 8 NO 6

    2010

    SOmE PErSPEcTIVES ON

    SOfTwarE ENgINEErINg

  • 8/12/2019 Some Perspectives Software Engineering

    2/80

    SETLabs BriefingsAdvisory Board

    Gaurav RastogiVice President,

    Head - Learning Services

    George Eby MathewSenior Principal,Infosys Australia

    Kochikar V P PhDAssociate Vice President,

    Education & Research Unit

    Raj JoshiManaging Director,

    Infosys Consulting Inc.

    Ranganath MVice President &Chief Risk Officer

    Subu GoparajuSenior Vice President & Head,

    Software Engineering &Technology Labs

    Svo Soe ExtenlThought LedeshipHello redes!

    at SETLbs Biengs e e lys oitted tod deliveing to you the

    best thought ledeship in hosen theti es. In the eent ties you hve

    seen you jounl hieving nee nd nee heights, pssing though ny

    ilestones nd going in sttue both ntionlly nd intentionlly. I hve

    lys believed tht it is the oitted, pssionte nd hdoking thought

    ledes o Inosys ho hve helped us so nothds in ou quest to hieve

    intelletul exellene.

    The uent issue is speil in ny ys. while you e e tht e hve

    been ying thid pty intevies nd opinions in ou issues o tie

    to tie, this is the st tie e hve opiled n issue tht is dointed by

    ontibutions o thought ledes outside o Inosys.

    Inosys hs hd the oppotunity to o-sponso the 3d Indi Sote Engineeing

    coneene (ISEc) t mysoe duing febuy 25-27, 2010 ith soe vey senio

    thought ledes o Inosys nhoing the eg event. at SETLbs Biengs,

    e elt tht the pesenttions de in the oneene ee top noth nd nted

    to bing soe o the to you, post king soe tiultion level hnges. To

    this eet, e sought peission o the oneene ognizes, hih they

    gldly gve. Soe long disussions ith the oneene ledeship hve helped

    us pik hndul o ppes hih e elt e elevnt nd ould be o inteest

    to you.

    Thee is no ginsying the t tht only hen knoledge tnsends

    boundies n its tue oth be enjoyed. whethe the ontibutos in this

    opiltion e o Inosys o o othe ogniztions, pssion o eseh

    is ht unies the ll. Thee is no set thee bout the opiltion. In t, e

    did not nt to eve the ontibutions ound ny ognized thee. Sine

    sote engineeing is the ous e o the opiltion e hve titled it

    Soe Pespetives on Sote Engineeing, else the issue hs s ny vos

    s you desie.

    The ides in the ontibutions nd ssoited eseh inputs e oned by

    the espetive uthos nd the oiginl opyight o these ontibutions is

    ith ISEc. Neithe SETLbs Biengs no Inosys vouh o the veity in the

    opiltion no e they esponsible o ny IP elted issues. The ole o the

    jounl ngeent te s estited only to ontent seletion nd outine

    opy editing.

    Do let us kno i you ound the olletion inteesting. This ill help us bing

    oe nd oe extenl thought ledeship into ou jounl though syndition.

    Hppy eding!

    Pveen B. mll [email protected]

  • 8/12/2019 Some Perspectives Software Engineering

    3/80

    3

    15

    29

    45

    55

    61

    73

    SETLabs BriefingsVOL 8 NO 6

    2010

    Research Review: Usability of Refactoring Tools for Java DevelopmentBy Jeffrey Mahmood and Prof. Y Raghu ReddyRefactoring tools available commercially and on open source have not been

    efficiently developed for Java. The authors do a usability assessment of the

    available tools and suggest ways of improvement to make them more effective.

    Model: Information Feedback Model for Scalability in Distributed

    Software ArchitectureBy Manjunath Ramachandra, Narendranath Udupa and Shyam Vasudev RaoComponents added at later stages in distributed software architecture affect the

    network. Prediction of the s tatus of network can overcome such sudden change

    in load. The authors propose a mechanism based on information feedback to

    manage various components that act as a bottleneck when the architecture is

    scaled up.

    Framework: Creating and Benchmarking OWL and Topic Map

    Ontologies for UBL ProcessesBy Kiran Prakash Sawant and Suman Roy PhDThis paper discusses two knowledge representation formalisms topic maps and

    OWL. The authors discuss the results of their experiment by taking the payment

    process of UBL as a case study.

    Practitioners Perspective: Automated Test Case Generation from C

    Program by Model Checking through Re-engineering

    By Suman Roy PhD and Kuntal ChakrabortySeveral mainstream industries are implementing model-based development intheir software development life cycle as they realize the benefits of following

    this mode. In this paper the authors have discussed a model-based approach

    to generate test cases from C program through model checking with suitable

    coverage cri teria.

    Practitioners Solution: Architecture Reconstruction from Code for

    Business Applications - A Practical ApproachBy Santonu Sarkar PhD and Vikrant KaulgudApplication development today is multiplatform, multisite and multilingual and

    hence is complex. Comprehending and maintaining such a system remains achallenge. The new system needed to be developed has to co-exist with several

    existing applications. The authors propose a semi-automated, iterative approach

    to model the hierarchical functional architecture of a family of applications.

    Spotlight: A Knowledge Transaction Approach for the Request Lifecycle

    in Application MaintenanceBy Himanshu Tyagi and Kapil ShindeApplication maintenance is a major challenge that software vendors face, post

    implementation. Given the multiple dependencies involved, the knowledge

    gathered and required for maintenance is often lost or becomes inaccessible. The

    authors suggest a much needed solution for a knowledge base when handling amaintenance request lifecycle.

    Index

  • 8/12/2019 Some Perspectives Software Engineering

    4/80

    There are as many prescriptions as there are perceptions.

    Ontology helps in developing an overarching framework

    to standardize the distinct perceptions.

    Suman Roy PhDSenior Research ScientistSoftware Engineering Research GroupSETLabs, Infosys Technologies Limited

    Cost effective application maintenance sounds oxymoronic

    unless maintenance projects are powered with the right mix

    of efficacy and domain knowledge.

    Himanshu TyagiProduct ManagerMaintenance Center of ExcellenceSETLabs, Infosys Technologies Limited

  • 8/12/2019 Some Perspectives Software Engineering

    5/80

    3

    SETLabs BriefingsVOL 8 NO 6

    2010

    Usability of Refactoring Tools forJava Development

    By Jeffrey Mahmood and Y Raghu Reddy

    Proper usage of refactoring tools can pare downthe probability of compile time and run time errors

    Refactoring is a technique of changingexisting source code to improve the designwithout changing the external system behavior

    [1]. At times, while refactoring, developers or

    maintainers may inadvertently inject compile

    time or run time errors due to code complexities.

    Refactoring can be a time consuming task and

    various factors contribute to the complexity of

    refactoring. The amount of time consumed in

    refactoring mainly depends on the size of the

    system, the extent to which the system needs to

    be restructured, availability of tools and how

    well developers understand the system.

    Refactoring tools can be used bydevelopers to prevent human errors and to

    perform refactoring tasks faster. However,

    a survey of programmers at Agile Open

    Northwest 2007 revealed that although 90% of

    the developers had access to refactoring tools,

    only 40% used them [2]. Some of the reasons

    cited by developers for avoiding software

    refactoring tools were -- being able to re-factor

    by hand faster, too many steps or screens,

    complex key sequences, linear menus, code

    selection and no general purpose mechanism

    for refactoring several pieces of code at once.

    Moreover, some of the other reasons for not

    using software refactoring tools were the lack of

    automated support and multi-stage integration

    [3, 4].

    The ability to re-factor by hand faster

    potentially implies the tools inability to

    provide a positive user experience and a lack

    of efciency when using the tools. Developers

    responses regarding too many steps or screens

    and complex key sequences imply that the tools

    are not matching the users mental model of the

    system or in minimizing memorization. A lack

    of general purpose mechanism for refactoringseveral pieces of code at once describes the tools

    inability to assist developers with automating

    mundane or computable tasks. These attributes

    are categorized under the usability guidelines

    and imply that the tools poor usability is

    deterring developers from using them [4].

    Developers understanding of the system

    also plays a key role in using refactoring tools.

    Often, developers are unsure of a specific

    refactoring that may need to be applied.

    Also, lack of good tool support that can

  • 8/12/2019 Some Perspectives Software Engineering

    6/80

    4

    increase the understandability of a systemadds to the problem. Providing tool support for

    identication and selection of the refactoring

    type can reduce the amount of time a developer

    spends on refactoring. At the same time, it is

    important to characterize the complexity of the

    refactoring to be undertaken and automated

    tools can aid developers in prioritizing their

    efforts [5].

    The goal of this study is to evaluate the

    usability of four different software refactoring

    tools, compare the results to other studies

    of similar nature and suggest improvements

    for tools that can help reduce the perceived

    ineffectiveness of software refactoring tools.

    A large software usability gap can

    lead to users getting confused, frustrated or

    panicky and can result in the software system

    being misused or not used at all [6]. A software

    system should be easy to use, and quick and

    pleasant in order to promote learning and recall

    for end-user supported tasks. The consistency

    of software applications usability results in

    reducing user training time by 25% to 50% [6].

    Minimal usage of software refactoring tools

    by developers/maintainers suggests that they

    suffer from a large software usability gap.

    R e f a c t o r i n g m a n u a l l y r e q u i r e s

    developers to validate their re-factorings by

    updating the affected modules to compensatefor the changes. Li and Thompson agree that

    compensating for refactoring is a exible but

    fault-prone method for validating refactoring

    [7]. The other types of validation for refactoring

    are preservation of pre- and post-condition.

    Pre-condition check is the method used by

    most software refactoring tools and is dened

    as preserving all the behavior involved before

    allowing the refactoring to take place. In most of

    the tools, precondition checks are implemented

    using abstract syntax trees (ASTs) derived from

    the source code or using control, ow graphsand program dependency graphs [8]. Another

    approach of implementing pre-condition checks

    is to formalize the proposed transformations

    as constrained types [8]. Pre-conditions can

    also be checked using analysis functions that

    describe the relationships amongst the source

    code entities such as classes, methods, and

    fields [9]. A post-condition check relies on

    testing the code after a refactoring and does

    not apply to refactoring tools since it requires

    a test suite to verify the changes [7]. However,

    the aforementioned analysis functions have

    not been used to check the post conditions of a

    refactoring [9]. For most refactoring tools, when

    a pre-condition is violated the user is notied

    via an error message. This error message allows

    the user to identify where the error was made

    in order to x it. The failure to produce and

    properly display error messages has deterred

    developers from using software refactoring

    tools [2, 10].

    Automation of refactoring can reduce

    some of the errors caused by manual refactoring.

    The benefit of automated tools lies in their

    ability to be customized. For example, users can

    set their preferred automation level by selecting

    specic refactorings that can be automated.

    Three suggested levels of automation are

    assisted, global, and severity based [5]. At theassisted level code-smells are identied by the

    integrated development environment (IDE)

    and suggested resolutions are provided to the

    user. The global level implies full-automation

    where the IDE automatically resolves any issues

    found. The severity based level detects issues

    the same way as the other levels, but it only

    automates a solution based on a complexity

    threshold specied by the user.

    In the authors experience the assisted

    level of automation is the most prevalent

  • 8/12/2019 Some Perspectives Software Engineering

    7/80

    5

    amongst IDEs. As discussed later in the paper,the IntelliJ IDEA and Eclipse IDEs are packaged

    with default plug-ins that visually highlight

    code smells and provide suggestions to fix

    the code smell. These code smell indicators

    provide refactorings at a base level in most

    cases and can be used to semi-automatically

    fix the code. However, certain refactorings

    require more thorough examination and do not

    provide an automated solution. In large projects

    with numerous developers and even in small

    projects with inexperienced developers, these

    code smells can grow unchecked. The simple

    changes that these plug-ins draw attention to

    help keep the code clean and maintainable. Such

    small scale changes are not restricted to just

    syntactical code formatting. Some of the code

    smells the tools detect are more symptomatic

    of poor design choices such as long and overly

    complex methods, method signatures with too

    many parameters and large classes with too

    many elds.

    The Agile Open Northwest 2007 survey

    results imply lack of sufficient refactoring

    tools leads to developers performing manual

    refactorings [2]. One of the goals of the IDE

    and refactoring tools should be to facilitate

    the development of software by providing

    meaningful tools to minimize defects injected

    by the developer. Refactoring tools shouldallow developers to perform code refactorings

    with relative ease from the syntax level to the

    component design level to the package level.

    Providing refactoring tools with high usability

    has the potential to improve overall code quality

    and maintainability and minimize future rework.

    EXPERIMENTAL METHOD

    The study method can be used for commercial

    as well as open source tools. The refactoring

    tools chosen were two commercial IDEs and

    two open source projects which supportedJa va deve lopm en t. The comm er ci al IDE s

    selected for this study are IntelliJ IDEA 7.0.4

    and JBuilder 2008; the open source refactoring

    tools are RefactorIT 2.7 beta and open source

    IDE, Eclipse 3.5.1. In a previous study, Mealy et

    al., used the RefactorIT 2.5 plugin version and

    an earlier version of Eclipse with and without a

    refactoring plug-in [4]. In our study we use the

    standalone version of RefactorIT and the latest

    default version of Eclipse. When this study was

    initially conducted, IntelliJ IDEA was available

    as a 30 day trial with all available functionalities

    and JBuilder 2008 is the free for download,

    limited functionality release of JBuilder. IntelliJ

    now offers a free community edition of IDEA

    that provides the same refactorings and similar

    functionality as the one tested. For JBuilder,

    two commercially available versions exist that

    charge per seat or per license.

    For the evaluation of the tools a small

    scale undergraduate level student project and

    a considerably larger open source project was

    used. The student project was an implementation

    of a bowling game simulator that had 24 classes

    and approximately 2000 lines of code. The

    open source project used was Google Web

    Toolkit, in particular only its /dev/src module

    was evaluated and contained 421 classes and

    approximately 110,000 lines of code. The bowlingalley simulation was used because of its relative

    ease in understanding and the open source

    project Google Web Toolkit was chosen because

    of its maturity and considerably larger size.

    Each software refactoring tool chosen

    supported more than 20 refactorings and each

    one was applied to the two software systems

    selected. IntelliJ IDEA supported refactorings

    for rename, change signature, make static,

    convert to instance method, move, copy, safe

    delete, extract method, replace method code

  • 8/12/2019 Some Perspectives Software Engineering

    8/80

    6

    duplicates, invert Boolean, introduce variable,introduce eld, introduce constant, introduce

    parameter, extract interface, extract superclass,

    use interface where possible, pull members

    up, push members down, replace inheritance

    with delegation, inline, convert anonymous

    to inner, encapsulate eld, replace temp with

    query, replace constructor with factory method,

    generify and migrate.

    JBuilder 2008 supported refactorings

    for rename, move, change method signature,

    extract method, extract constant, inline,

    convert anonymous class to nested, convert

    member type to local, convert local variable

    to eld, extract superclass, extract interface,

    use supertype where possible, push down,

    pull up, introduce indirection, introduce

    factory, introduce parameter object, introduce

    parameter and encapsulate eld.

    RefactorIT supported refactorings for

    undo, redo, add delegate methods, change

    method signature, clean imports, convert

    temp to eld, create constructor, create factory

    method, extract superclass/interface, inline,

    introduce explaining variable, minimize access

    rights, move, override/implement methods,

    pull up/push down, rename and use supertype

    where possible.

    Eclipse supported refactorings for

    rename, move, change method signature,extract method, extract local variable, extract

    constant, inline, convert anonymous class

    to nested, convert member type to top level,

    convert local variable to eld, extract superclass,

    extract interface, use supertype where possible,

    pull members up, push members down, extract

    class, introduce parameter object, introduce

    indirection, introduce factory, introduce

    parameter, encapsulate fields, generalize

    declared type, infer generic type arguments,

    migrate jar le, create script and apply script.

    The usability guidelines used to evaluatethe usability of the software refactoring tools

    comprised of eight categories: consistency,

    errors, user experience, ease of use, design for

    the user, information processing, user control

    and goal assessment. The specic criteria for

    each category can be seen below.

    Consistency (C)

    (C1) Ensure that things that look the

    same act the same and things that look

    different act different.

    (C2) Be consistent with any interface

    standards (either explicit or implicit) for

    the domain/environment.

    Errors (E)

    (E1) Assist the user to prevent errors

    (through feedback, constrained interface,

    use of redundancy).

    (E2) Be tolerant of others.

    (E3) Provide understandable, polite,

    meaningful, informative error messages.

    (E4) Provide a strategy to recover from

    errors.

    (E5) Permit reversal of actions/ability

    to restart.

    (E6) Allow the user to nish their entry/

    action before requiring errors to be

    xed. Do not interrupt the task beingcompleted.

    (E7) Automate error-prone tasks/sub-

    tasks.

    User Experience (UX)

    (UX1) Make interface minimal, simple

    to understand, organized, without

    redundancy, socially relevant (especially

    for communication) and aesthetically

    pleasing.

    (UX2) Provide the information, or access

  • 8/12/2019 Some Perspectives Software Engineering

    9/80

    7

    to the information, needed for a decisionwhen/where the decision is made.

    (UX3) Use the fewest number of steps/

    screens/actions to achieve the users

    goals.

    Ease of Use (EU)

    (EU1) Make the system exible.

    (EU2) Make the system simple to use.

    (EU3) Make the system efcient to use.

    (EU4) Make the system enjoyable to use.

    (EU5) Automate tedious/repetitive/

    time-consuming tasks/sub-tasks.

    Design for the User (DU)

    (DU1) Dene the user and match the

    system to the user.

    (DU2) Use the users mental model and

    language (avoid codes).

    (DU3) Automate mundane/computable

    tasks/sub-tasks.

    Information Processing (IP)

    (IP1) Assist the user to understand the

    system.

    (IP2) Minimize memorization (i.e., reduce

    short-term memory load), through use

    of selection rather than entry, names

    and not numbers, predictable behavior

    and access to required data at decisionpoints.

    (IP3) Make commands and system

    responses self-explanatory.

    (IP4) Use abstract ion or layered

    approaches to assist understanding.

    (IP5) Provide help and documentation,

    including tutorials and diagnostic tools.

    (IP6) Assist the user to maintain a mental

    model of the structure of the application

    system/data/task.

    (IP7) Maximize the users understanding

    of the application system/task/data atthe required levels of detail.

    User Control (UC)

    (UC1) Adapt to the users ability, allow

    experienced users to use shortcuts/

    personalize the system, and use multiple

    entry formats or styles.

    (UC2) Put the user in control of the

    system, ensure that they feel in control

    and can achieve what they want to

    achieve. Allow users to control level of

    detail, error messages and the choice of

    system style.

    Goal Assessment (GA)

    ( G A 1 ) E n s u r e t h e u s e r a l w a y s

    knows what is happening. Respond

    quickly, meaningfully, informatively,

    consistently and cleanly to user requests

    and actions.

    (GA2) Make it easy for the user to nd

    out what to do next.

    (GA3) Make clear the cause of every

    system action or response.

    (GA4) Provide an action/response for

    every possible type of user input/action.

    (GA5) Provide feedback/assessment/

    diagnostics to allow the user to evaluate

    the application system/data/tasks.

    Each criterion is rated on an integer scale

    from 1 to 5 based on the compliance agreement

    of the usability guideline where 1 is strongly

    disagree, 2 is disagree, 3 is neutral, 4 is agree

    and 5 is strongly agree. Each tool evaluated in

    this study is assumed to provide the adequate

    set of refactorings necessary for refactoring

    both applications. So, tool adequacy has not

    been considered as a category in the usability

    guidelines.

  • 8/12/2019 Some Perspectives Software Engineering

    10/80

    8

    Mealy et al., were able to conceive 81usability requirements that they rated based

    on 34 usability guidelines [4]. These usability

    requirements were not made available at the

    time of this particular study. For the basis of

    the comparison, the 1 to 5 scale was used in

    order to add a ner level of granularity to the

    assessment of the guidelines in the absence of

    the individual requirements.

    RESULTS

    The entire set of the compliance scores relative

    to the refactoring tool is tabulated in Exhibit 1.

    Table 1 shows the raw data for the most

    significant usability guidelines scores. From

    the percentage usability scores in Table 1 it

    can be seen that all four tools were similar in

    their compliance agreement of the usability

    guidelines. RefactorIT scored lower than

    IntelliJ IDEA, JBuilder and Eclipse because

    of its strict precondition validation rules

    that do not allow the user to modify the

    code by means of a built-in text editor. This

    was especially bad in instances where new

    variables needed to be created to continue a

    sequence of refactorings or the introduction

    of a new parameter in a method signature

    could not be extracted. As a result, the ease

    of use category for RefactorIT brought down

    its overall score.The strategy for error recovery row in

    Table 1 refers to the error handling capabilities

    of the refactoring tools. For each tool the most

    common way to handle improper use of the

    refactoring was an obtuse error message.

    Clearing the error message provided no further

    assistance about the refactoring and the user

    is left to empirically figure out what had

    caused the error. In more than one instance the

    refactoring was never performed and resulted

    in manual refactoring.

    Full Set ofCompli-

    ance

    Scores

    Intellij

    Jbuilder RefactorIT Eclipse

    C

    C1 4 4 4 4

    C2 4 4 4 4

    E

    E1 3 4 3 4

    E2 4 3 3 4

    E3 3 2 2 3

    E4 1 1 1 1

    E5 5 5 5 5

    E6 4 4 4 4

    E7 1 1 1 1

    UX

    UX1 3 3 3 3

    UX2 5 5 2 4

    UX3 4 3 3 4

    EU

    EU1 4 4 1 4

    EU2 3 4 1 4

    EU3 4 4 3 4

    EU4 4 4 1 4EU5 1 1 1 1

    DU

    DU1 5 4 4 4

    DU2 5 5 3 4

    DU3 2 1 1 1

    IP

    IP1 4 4 3 4

    IP2 4 4 4 4

    IP3 3 3 3 3

    IP4 4 4 4 4

    IP5 5 3 5 4

    IP6 3 3 3 3

    IP7 3 4 3 3

    UC

    UC1 3 3 1 3

    UC2 1 1 1 1

    GA

    GA1 5 5 5 5

    GA2 4 4 3 4

    GA3 4 4 3 4

    GA4 4 4 3 4

    GA5 2 2 3 4

    Total 118 114 94 115% 69% 67% 55% 68%

    Exhibit 1: Full Set of Compliance Scores

  • 8/12/2019 Some Perspectives Software Engineering

    11/80

    9

    The tools provide a means of reversing

    actions when a refactoring is carried out

    improperly. This is represented in Table 1 by

    high marks in the permit reversal of actions row.

    The tools evaluated allowed reversal of actions

    by integrating the refactoring tools undo and

    redo commands with the overall undo and redo

    commands of the IDE.

    The low scores in the automate error

    prone tasks and automate tedious/time

    consuming tasks rows of Table 1 is a reflection

    of the lack of automation in the refactoring

    tools in general. Performing refactorings on

    the bowling simulation student project had

    numerous instances where array indexes andstring constants were extracted as constants.

    The only failing was that once the constant

    had been extracted, unless it was extracted

    at the field level, the constant could not

    be propagated throughout the class, or

    more efficiently, throughout the project.

    This left the developer to then perform any

    replacements using the newly extracted

    constants by hand.

    The user control rows of Table 1 were

    derived from the ability to provide variable,

    parameter and class names when performing

    refactorings such as introduce eld, introduce

    variable, convert anonymous to inner and

    encapsulate field. The refactoring tools

    themselves did not allow customizations,

    but IntelliJ IDEA provided a set of templates

    to create new files and classes that can be

    customized.

    In Table 2 overleaf Mealy et als previous

    scores can be seen. Again, the scores of

    the usability guidelines show that there is

    little difference in terms of usability of the

    software refactoring tools with the exception

    of Condenser. A calculation of the percentage

    of raw points earned in the Mealy et al., studyshows that the minimum percentage for

    compliance was 55% and the maximum was

    67%. This is almost the same exact range as the

    compliance percentages from Table 1 that show

    a minimum compliance of 55% and maximum

    compliance of 69%. This shows that there is no

    discernable difference between the commercial

    tools and the open source tools evaluated

    by Mealy et al., and there is no discernable

    difference between the previous RefactorIT

    plug-ins and the RefactorIT standalone version.

    Intellij 7.0.4 Jbuilder 2008 RefactorIT2.7beta Eclipse 3.5.1

    Errors

    Strategy for error recovery 1 1 1 1

    Permit reversal of actions 5 5 5 5

    Automate error-prone tasks 1 1 1 1

    Ease of use

    Automate tedious / t ime consuming tasks 1 1 1 1

    User Control

    Adapt to the users, customizat ion 3 3 2 3

    Allow users to control details, error

    messages, style

    1 1 1 1

    Usability Totals 118 114 94 115

    Table 1: Usability Guidelines Compliance Significant Results

  • 8/12/2019 Some Perspectives Software Engineering

    12/80

    10

    The versions of Eclipse 3.2 and Eclipse

    3.2 with the Simian UI plug-in showed a

    marked improvement with the Simian UI

    plug-in in the previous Mealy et al., study [4].

    The Simian UI was used in the Mealy et al.,

    study because of the code smell inspection

    properties the plug-in added to the Eclipse

    IDE [2]. With the similarity in compliance of

    usability between Eclipse 3.5 and Eclipse 3.2

    with the Simian plug-in the conclusion can be

    made that the Eclipse platform has since been

    updated to incorporate code smell inspections

    that improve the refactoring usability of the

    IDE similar to the Simian UI plug-in. This was

    also apparent because the code smell inspection

    capabilities of IntelliJ IDEA and Eclipse were

    very similar.

    Since there is no difference between theprevious tools evaluated and the current one,

    we can state that there has been no signicant

    improvement in the usability of software

    refactoring tools since the previous evaluation.

    The raw score numbers confirm that the

    automation of the tools is still non-existent and

    that user control is still lacking.

    Since the goal of the study was to

    evaluate the usability of the refactoring tools,

    there was no difference between the usability

    of the tools between the student project and

    open source project evaluated and therefore

    the results are presented as a single table. The

    two projects proved useful in providing ample

    opportunities to attempt all the refactorings

    offered by the tools.

    DISCUSSION

    A major issue not discussed in the previous

    section that consistently scored low according

    to the raw data in Table 1 was the strategy for

    error recovery. In the current state of software

    refactoring tools whenever a pre-condition

    is violated, an error message is displayed

    to the user. It was the ineffectiveness of this

    error message that lead Murphy-Hill and

    Black to develop their plug-ins for Eclipse to

    enhance extract method [11]. Once an error

    is encountered, the user is notified and therefactoring is either canceled or allowed to

    continue based on the users discretion, and it

    is up to the user to compensate for any errors

    injected into the system.

    In order to improve the usability of the

    tool, the tool should instead analyze the users

    code selection, and based on the context of the

    refactoring suggest a set of corrective actions

    necessary to complete the refactoring. For

    instance, in the scope of an extract method, if

    the user has an incomplete selection then the

    Refactoring Tool Consis-tency Errors Infor-mation

    Pro-

    cessing

    UserExperi-

    ence

    Denefor

    User

    UserControl GoalAs-

    sess-

    ment

    Total %

    Eclipse 3.2 4 8.5 9 7 7.5 6 3.5 45.5 56%

    Condenser 1.05 0.5 5 1 3 2.5 1.5 3 16.5 20%

    RefactorIT 2.5.1 4 10.5 7 9 7 4 6 47.5 59%

    Eclipse 3.2 with Simian

    2.2.12

    4 12 9 9 7.5 7 6 54 67%

    Total Requirements by

    Category

    4 15 10 10 9 25 8 81 100%

    Table 2: Usability Compliance of Mealy et al - Analysis [4]

  • 8/12/2019 Some Perspectives Software Engineering

    13/80

    11

    refactoring tool should display a correctiveaction such as Did you mean, where the

    display is the suggested block of highlighted

    text that would make the refactoring feasible.

    The user can then conrm the intended action

    and the tool can perform the refactoring as

    expected. In the instance of a change signature

    refactoring, if a method variable name clashes

    with a parameter name then the tool could

    suggest appending the name withparamor local

    for the appropriate case where the suggested

    suffix is presented in an editable text field.

    Currently this scenario either brings the user

    back to the initial refactoring screen or allows

    the user to continue and leaves them to resolve

    the error post refactoring. By making the

    system more tolerant to errors and providing

    suggestions, the user will be able to refactor

    the code more quickly and relate it with a more

    enjoyable user experience.The automation of tasks is another failing

    of the refactoring tools highlighted in the ease of

    use row in Table 1. When extracting a constant,

    most tools already provide an option for

    replacing all instances the constant is replacing

    that are already pre-existing within the class.

    However, these constants can then be moved to

    a superclass or interface level and propagating

    these new constants to other classes within the

    hierarchy, package or project is still an exercise

    in performing refactorings manually.

    At the package level, refactoringthe location of classes is still left to be

    performed manually. For the student project

    all the classes were created at the default

    package level. The only refactorings that

    provided any assistance in this area were

    relegated to refactorings related to the class

    hierarchy. Between the four tools, none

    of them provided a simple refactoring for

    grouping classes as packages or provided

    a code smell that provided suggestions for

    grouping classes into appropriate packages.

    This could be done with a tool to check

    the dependencies amongst the classes and

    suggesting improvements in the current

    packaging of the classes.

    The c losest too l for automated

    refactorings was provided by Eclipse 3.5. The

    Eclipse 3.5 IDE provided a method for creating

    custom scripts based on previous refactoringscarried out by the user that could then be saved

    and applied later on or in another project. Since

    most of the refactorings carried out are very

    specic according to variable, method and class

    name this is a very difcult process to make

    generic to be used across multiple projects.

    CONCLUSION

    From the results of comparison of the

    usability guidelines we found that sufcient

    improvements have not been made to open

    An error-tolerant system will enable the userto refactor the code more quickly

  • 8/12/2019 Some Perspectives Software Engineering

    14/80

    12

    source as well as commercially availablerefactoring tools available for Java development.

    However, in the case of extract method - one of

    the refactorings singled out by Martin Fowler

    as being fundamental to refactoring - work has

    been done to aid developers in increasing their

    efciency with the development of the Selection

    Assist, Box View and Refactoring Annotations

    plug-ins available for Eclipse.

    Work is currently being done to address

    the automation and integration of the entire

    refactoring process and applying additional

    user control to the proposed automation

    improvements. Identification of problem

    code is an area that needs improvement and

    better identication tools will allow further

    automation of refactoring either by mapping

    from a code-smell to a transformation or from

    a single transformation to numerous source

    code candidates.Certain refactorings such as the

    introduction of constants, removal of unused

    code and even extraction of method can be

    done automatically. These types of code-

    smells require a simple change and can be

    carried out automatically. In the case of an

    extract method, performing this refactoring

    automatically can be done by identifying

    repeated code and encapsulating the code

    block into a parameter-constrained method.

    However such refactoring requires an explicit

    pre- and post-condition check. Any type ofrefactoring that requires redesign, such as

    long methods, large classes, too many method

    parameters, or high coupling can be detected

    and brought to the users attention, but any

    type of fix would be at the users discretion.

    These types of refactorings can stil l be

    identified at the assisted level, but are most

    likely to be categorized above the complexity

    threshold of a severity level automated

    refactoring.

    An example of an assisted level tool

    is the Inspection Gadgets plug-in for IntelliJ

    IDEA. This tool detects a large range of code

    smells such as abstraction issues, class structure,

    control issues, data ow issues, inheritance

    issues, pattern validation, probable bugs and

    a myriad of others and ags the developer via

    yellow bars in the text editor. Each category

    mentioned, as well as the others, has a morene-grained list of the specic inspections that

    are carried out on the static source code. Users

    are able to select which inspections to turn on

    or off and select which inspections they wish

    to address. Each agged inspection provides

    suggestions for xing the problem that can be

    carried out semi-automatically, ignored with

    the addition of a code comment, or simply

    ignored by the user by not addressing the

    ag. The breadth of the tool is impressive as

    well as the ability to aid developers without

    Robust automation of refactoring can be attainedwith the help of the right identification tools

  • 8/12/2019 Some Perspectives Software Engineering

    15/80

    13

    being distractive and allowing a level ofcustomization.

    Incorporating the use of refactoring tools

    into the educational process can give future

    developers more exposure to their possibilities.

    Since the refactorings themselves are universal

    to object-oriented systems, and the tools show a

    high correlation of the same refactorings being

    available this would not be an issue of IDE

    selection, but rather a lack of exposure to these

    types of tools.

    Proper usage of software refactoring

    tools reduces the chance of compile time and

    run time errors that are inherent in manual

    refactorings. It is the belief of these researchers

    that a developers time spent on refactoring

    could be signicantly reduced by removing the

    barriers of usability for software refactoring

    tools.

    A tool for IntelliJ IDEA is being developed

    to aid with automated design level refactoring.

    The tool would work at an Assisted and Severity

    based level. Based on the user settings the tool

    would be able to identify candidates for design

    improvement and based on the detected level

    of complexity either carry out the refactoring

    automatically or provide suggestions to the

    developer. The tool will leverage the XML

    framework used in previous studies.

    REFERENCES

    1 . Fowler , M. (1999) , Refac tor ing:

    Improving the Design of Existing Code,

    Addison-Wesley: New Jersey.

    2. Murphy-H ill, E. (2007), Activating

    Refactorings Faster, in the Companion to

    the 22nd ACM SIGPLAN Conference on

    Object Oriented Programming Systems

    and Applications Companion, pp. 925-

    926.

    3. Mealy, E. and Strooper, P. (2006)

    Evaluating Software Refactoring ToolSupport, in the Proceedings of the

    Austral ian Software Engineering

    Conference, pp. 331-340.

    4. Mealy, E., Carrington, D., Strooper, P. and

    Wyeth, P. (2007), Improving Usability

    of Software Refactoring Tools, in the

    Proceedings of the Australian Software

    Engineering Conference, pp. 1-10.

    5. Drozdz, M. Z. (2008), A Critical Analysis

    of Two Refactoring Tools, Masters

    Dissertation, University of Pretoria,

    South Africa.

    6 . Henry, P. (1998) , User-Centered

    Information Design for Improved

    Software Usability, Artech House:

    Norwood, Massachusetts.

    7. Li, H. and Thompson, S. (2008), Tool

    Support for Refactoring Functional

    Programs, in the Proceedings of the

    2008 ACM SIGPLAN Symposium on

    Partial Evaluation and Semantics-based

    Program Manipulation, pp. 199-203.

    8. Maruyama, K. and Yamamoto, (2005),

    Design and Implementation of an

    Extensible and Modiable Refactoring

    Tool, in the Proceedings of the 13th

    International Workshop on Program

    Comprehension, pp. 195-204.

    9. Mendona, N.C., Maia, P.H.M., Fonseca,L.A., e Andrade, R. M. (2004), RefaX: A

    Refactoring Framework Based on XML,

    in the Proceedings of the 20th IEEE

    International Conference on Software

    Maintenance, pp. 147-156.

    10. Murphy-Hill, E. and Black, A. P. (2008),

    Breaking The Barriers To Successful

    Refactoring: Observations And Tools

    For Extract Method, in the Proceedings

    of the 30th International Conference on

    Software Engineering, pp. 421-430.

  • 8/12/2019 Some Perspectives Software Engineering

    16/80

    14

    11. Murphy-H ill, E. (2 006), ImprovingUsability of Refactoring Tools, in the

    Companion to the 21st ACM SIGPLAN

    s y m p o s i u m o n O b j e c t - o r i e n t e dprogramming systems, languages, and

    applications, pp. 746-747.

  • 8/12/2019 Some Perspectives Software Engineering

    17/80

    15

    SETLabs BriefingsVOL 8 NO 6

    2010

    Information Feedback Model forScalability in Distributed

    Software ArchitectureBy Manjunath Ramachandra, Narendranath Udupa and Shyam Vasudev Rao

    Pre-empting and appropriately predictingnetwork status through simulation can help

    overcome network load related issues

    Software architecture that has scalableand extensible components is usefulin meeting the requirements of reuse and

    re-configurability. However, it involves

    increased message handling and inter-

    process communication. The addition of new

    components to the scalable and extensible

    software architecture poses the issue of

    increased memory requirements, delay/

    latencies, blockheads in the queue, etc.In this paper, a novel mechanism based

    on information feedback is suggested to

    control these parameters while scaling up the

    architecture. Accurate models are required to

    gear up performance with the scaling of the

    software components. Although a good amount

    of literature exists on the effects of scaling on

    performance, they do not provide an insight

    for improving or retaining performance. In

    this paper, scaling is linked to the time shifts

    of the feedback signal provided to the source

    component through active control mechanism

    such as, Random Early Detection (RED).

    The paradigm of component based

    software engineering has signicantly reduced

    the software development cycle time and cost

    [1]. It comes with attractive features such as

    parallel development, software reuse, pluggable

    maintenance, etc.

    In the distributed software architecture,

    the inter-component communication hasincreased burden over the available resources

    such as bandwidth and buffer space. The

    support ing network provides l imi ted

    infrastructure. With the addition of every

    component to the network, the contention for

    the resources increases.

    DISTRIBUTED COMPONENT

    ARCHITECTURE

    Components cluster the reusable portions of the

    code together and provide appropriate interfaces

  • 8/12/2019 Some Perspectives Software Engineering

    18/80

    16

    to the external world. The programmer can usethem with the right conguration minimizing

    the code. As a result, software development

    efforts have been greatly reduced.

    The component based software model

    has been extended to support distributed

    software architecture spanning multiple

    machines [2]. As a result, the components

    or pieces of software residing on the other

    machines can be used conveniently. It led to

    the practice of distributed component based

    software development being widely practiced

    today. This calls for the transfer of components

    to the runtime environment and conguration

    of the same. Each instance of the component

    can bear separate congurations accordingly.

    The containers embedding the components

    take the responsibility of communication with

    reliability, scalability, etc.

    The Model-based Approach

    Simulation model is used for a variety of

    applications. It provides a better understanding

    of the issues, based on which the design

    parameters are ne tuned. To make it happen,

    the model and the actual network over which the

    components communicate are to be compared

    apple-to-apple.

    The actual network and simulation

    model are shown in Figures 1 and 2. The details

    of implementation of the model are provided inthe next sections. It is expected that the model

    is to catch the behavior of the inter-component

    communication.

    Relevance of the Quality of Service (QoS) in

    the Distributed Component Architecture

    A component provides a variety of services to

    the users. It includes locating other components,

    ins tant ia t ing , serv ic ing, computat ion,

    communication, etc. In applications that involve

    graphical user interface (GUI) the real time

    response is mandated to provide a reasonably

    good user experience.

    Components often communicate the

    services that are required to adhere to an agreed

    QoS. In applications such as air ticket booking,

    the data becomes invalid if the stringent timing

    constraints are not honored. Low latency high

    throughput systems require controllers to

    ensure the QoS.

    The increased contention among the

    components takes a toll on the performance

    of the applications that use these components.

    Meeting the agreed QoS such as packet delay

    and loss would be difcult. The QoS dened

    at the network level translate on to the QoS

    of the inter-component communication in the

    distributed network. It calls for the usage of an

    efcient trafc shaper at the component. The

    Input Signal

    Network

    Observed Output

    Characteristics

    Desired Output

    Figure 1: Inter-component Communication Network

    Simulated Input Signal

    Observed Output

    Properties

    SimulationModel

    Figure 2: Simulation Model

  • 8/12/2019 Some Perspectives Software Engineering

    19/80

    17

    trafc shaper fairly distributes the availableresources for the different components in

    the network considering their real time

    performance requirements.

    The contention for resources can also

    happen when several applications share

    and try to access the same component. The

    paths leading to this component would get

    congested, leading to the dearth of resources.

    Prediction of access patterns and priority of

    the applications would be helpful to stagger

    the access.

    The problem gets compounded when

    the number of components increase over the

    network. The traffic shaper or controller has to

    adapt to the dynamic scaling of the components

    that get and move out of the network over a

    period of time. Applications generally invoke

    variable number of components during the run.

    Mechanisms for the Implementation of the

    QoS

    Support for QoS at the network level involves

    IntServ, DiffServ, etc. [3]. The QoS mechanisms

    are also supported in the component

    architectures such as CORBA for message

    publishing and subscriptions [4]. However, the

    mechanisms are static in nature. For the runtime

    transport of the components, an effective

    adaptable QoS mechanism is required. The

    same is addressed in this paper.

    INFORMATION FEEDBACK BASEDCONTROLLER MODEL

    The components exchange the data over more

    reliable network connection to minimize the

    data loss. The equations of the packet ow used

    for the trafc shaping are [5]

    Where is the data window size, q is the

    queue length, R is the round trip time, C is the

    link capacity, N is the load and p is the packet

    drop probability. The drawback with this

    equation is that the status of the network will

    be known only after the duration of the round

    trip time (RTT). By then, the characteristics

    of the network would have changed. So, a

    time shift is proposed for the feedback signal

    to be used in the controller [6]. In addition,if the status of the network is made known

    several steps ahead of time, there would be

    ample time for the components pumping the

    data to take the appropriate steps. Bigger

    the network more would be the traffic

    and the time required to control the same.

    Scalability of the components is linked to its

    performance. In this section, a traffic shaper

    blended with the predictor is introduced. The

    effect of scaling the components with such a

    traffic shaper in place has been analyzed in

    Reliable network connection can be used toexchange components to reduce data loss

  • 8/12/2019 Some Perspectives Software Engineering

    20/80

    18

    the next section and demonstrated through

    simulation results.

    In the proposed method, instead of

    present value of the marking probability, its

    predicted value is used. This predicted value is

    generated with the help of a differentially-fed

    articial neural network (DANN) that makes

    use of several previous values to generate

    the output [7]. The architecture of a DANN is

    shown in Figure 3.

    It consists of a predictor such as

    a conventional artificial neural network

    with the differentials of the output as the

    additional inputs for prediction. Other

    inputs are derived from parameters such as

    instantaneous load on the network. Immediate

    advantage of a DANN is that it provides

    packet drop probability several time steps

    in advance.

    Apart from the prediction of the packet

    drop probability, DANN provides severalinteresting features suitable for shaping the

    inter-component communication trafc [8]. The

    important ones are highlighted below:

    Make use of long history of inputs. This

    is because of the inherent autoregressive

    nature of the model.

    For a given number of iterations, the

    square error is found to decrease with

    the order of differential feedback.

    The model can work on a reduced set of

    training data.

    For innite order of differential feedback,

    the square error is zero.

    The output with different orders of the

    feedback forms a manifold of hyper

    planes each of which is self similar to

    the other [9].

    The origin of self similarity is due to the

    associated long- range dependency or

    usage of the previous input and output

    samples.

    The self similar outputs have varying

    degrees of abstraction, each of which

    may be generated through the other by

    convolving with a Gaussian pulse.

    Features of the Proposed Model

    The proposed information feedback model goes

    well with the characteristics of the network

    that support the distributed components.

    The traffic over the network, be it LAN or

    the WAN, turns out to be self similar [9]. In

    other words, the shape of the autocorrelation

    function of the traffic observed over different

    time scales remains the same. The status

    signal such as the probability of packet loss

    sampled from the network, spans several

    FeedbackController

    Status Signalsfrom Network

    Control Signalsto Network

    Figure 4: Feedback-based Controller in the Network

    Delay

    Predictor

    Other Inputs

    NetworkInformation

    Figure 3: Differentially Fed Artificial Neural Network

  • 8/12/2019 Some Perspectives Software Engineering

    21/80

    19

    time scales. It happens to be the resultant ofthe events happening at different timescales.

    The controller model precisely has all these

    characteristics, making it look like the network

    [10]. If it sits in the feedback path, it should

    be easy to control the network as shown in

    Figure 4.

    Quality of Service (QoS) is related to

    buffer dynamics. Though large buffers reduce

    the cell loss, the packet delays increase. On

    the other hand, small buffers could result in

    reduced delay at the risk of increased cell loss.

    It calls for different enforcements i.e., packet

    discard rules to ensure the QoS adaptively

    depending on buffer size, growth, rate of the

    growth, etc. These parameters are considered as

    the inputs of the DANN that predict the trafc

    at different time scales.

    As a result of the differential feedback

    being used in the controller, the control signal

    spans multiple time scales [11]. This important

    feature provides additional advantage of

    multiple time scale control for the inter-

    component communication.

    The usage of these previous values

    is equivalent to sieving the traffic through

    multiple time scales. Hence, when a DANN is

    used, it is equivalent to scale the time by a factor

    that is a function of the order of the feedback.

    DANN produces same results of scaling.Replace p(t-R(t)) with p(t). The equation may be

    thought of as the backward prediction starting

    from p(t) and up to p(t-RTT). Artificial neural

    network works the same way for backward

    prediction. The time shift provided for the

    predicted samples amounts to generating the

    samples with future and past values. Derivative

    action generally reduces the oscillations. So,

    proportional derivative with prediction may

    be used to reduce q variance. The idea here is

    to use the shifted versions of the near future

    prediction of loss probability as the controlsignal that is fed back to the input. Shift

    provided to the feedback signal is equivalent

    to scaling the network with increased number

    of components.

    Relevance of the Congestion Detection

    Interval

    The congestion detection interval is a critical

    point in the design of the proposed congestion

    avoidance algorithm. If the interval is too

    long, the controller cannot adapt swiftly to

    the changes in trafc input rate, making the

    difference between the predicted input rate

    and the actual input rate very large. As a result,

    packets get dropped in the network.

    On the other hand, if the interval is

    too short, the prediction error would be too

    large and the network would be left with near

    congestion state.

    The controller handling short timescales

    are to account for the bursting trafc from a

    single dominant or a limited number of data

    sources that tend to ood the buffers along

    the path. Such a source can be contained at the

    earliest after RTT and adequate buffer space has

    been reserved to handle the same.

    SCALING OF THE COMPONENTS

    As N, the number of components interacting ata given time increases, the time slot allocated for

    each of them to share the common bandwidth

    decreases. This leads to the trafc control at

    different timescales. Let the communicating

    N components share a path with xed link of

    capacity C. Let T be the propagation delay of

    the path.

    Let q(t) and p(t) denote, respectively,

    the queue length and the packet dropping

    probability of the link at time t. Let Wi(t) and

    Ri(t) denote, respectively, the window size and

  • 8/12/2019 Some Perspectives Software Engineering

    22/80

    20

    the round trip time of ow i at time t. Then (1)and (2) reduce to

    and is the multiplicative parameter,

    p is the packet dropping probability and

    .

    The rescaling or the equivalent shift

    given to the feedback signal increases the link

    bandwidth and reduces the link delay by the

    scaling parameter, . This is because each

    packet is served at times larger bandwidth

    (which reduces its transmission time by 1/

    ) and experiences 1/ times larger delay.

    The time instants at which an event-over-the-packet occur is also advanced by 1/ . The

    delay reaches the stable value faster. That

    is, a packet event that occurs at time t in the

    original network before scaling the components

    advances to (1/ )t in the scaled network as a

    result of scaling the components.

    As seen earlier, shift in the feedback

    signal amounts to scaling of the components or

    the supporting network. One of the effects of

    scaling is that the number of events the packets

    encounter gets reduced. The bandwidth delay

    product remains the same and is governed by thecapacity of the network. Physically, it represents

    the capacity of the ow in terms of the amount

    of data packets that can be transmitted without

    waiting for the acknowledgment.

    Let B and D represent the available

    bandwidth and the delay along a path in the

    original network and PBDPbe the bandwidth-

    delay product along the path. Let B, D, and

    PBDPbe the equivalent parameters in the scaled

    network. Since the bandwidth-delay product

    remains invariant [8], the constraint for scaling

    becomes

    PBDP= B . D = B. D = PBDP (6)

    From the equation 6, the scaling

    parameter is determined as follows:

    B = .B; (7)

    D =D/ (8)

    where >1.

    The shift changes the self similarity

    because shift implies a different order [12]. In

    central interpolation, is replaced by

    i.e., the time scale would be different. This is

    as though the number of sources increases.

    Increase in the number of sources is equal to

    changing t to t. This is equivalent to multiplying

    differential by It takes to . This is

    because the differentials and shifts are related

    by the central interpolation.

    It is important to note that capacity networkdefines and governs the bandwidth delay

  • 8/12/2019 Some Perspectives Software Engineering

    23/80

    21

    i.e., y= becomes

    Here A, B and C are arb i t rary

    proportionality constants.

    The outputs of the controller are central

    differences that are generated by providing

    shifts for the predicted probability of the packet

    drop signal. These derivatives are realized

    with the help of a DANN. Here the near future

    prediction of loss probability is being used as

    the control signal that is fed back to the input.

    The mechanism works because of the round trip

    time. The controller will not react immediately

    on the packet drop decision.

    Scaling of the components resultin increased RTT, increased load, reduced

    capacity, reduced buffer size, that happen

    dynamically in the network adversely affecting

    the performance of the packet network in terms

    of increased losses, increased delays, etc. In this

    work, it is emphasized that the shifts amount

    to scaling and by appropriately shifting the

    feedback signal and it is possible to achieve

    the same or better performance even when the

    number of components scale up. The packet

    sources or components can shift this feedback

    signal appropriately depending upon theinstantaneously measured network parameters

    and achieve better end-to-end performance.

    Scaling of the Queue Dynamics

    The delay gets scaled as the avai lable

    bandwidth reduces and it increases with

    increase in N. Last section explains that, with

    scaling, all the events get advanced by the

    factor 1/ . The queue length in the buffers of

    the original network is more than the same in

    the downscaled network. This is because, the

    downscaled network responds in line with the

    original network.

    It is assumed that the channel capacity C

    remains the same. With this, dq/dt reduces to

    This equation shows that indicating

    the effect of scaling. It may be noted that, in

    equation (11), the change in the queue size is

    Increased RTT, increased load, reduced capacity,reduced buffer size result from scaling components

  • 8/12/2019 Some Perspectives Software Engineering

    24/80

    22

    computed as the difference between the arrival

    rate of the different ows and the link capacity.

    The arrival rate of a ow i is computed using

    equation 6, by dividing the bandwidth-delay

    product by the delay.

    The Tables 1 to 4 show the variance

    of the packet queue for different number of

    components in the network. The change in

    the queue size variance for different degrees

    of the shift in the predicted feedback signal is

    provided. The simulation has been carried out

    in SIMULINK. The simulation setup for all the

    experiments in the paper is shown in Figure

    5. The block-sets that generate the desired

    traffic pattern available in SIMULINK have

    been used. The buffer size of the gateway is

    8000 packets and the target queue length is

    3200 packets.

    Figures 6 and 7 on page 24 show the

    instantaneous queue with the above simulation.

    It can be seen that, when the number of sources

    is 40, the ripples in the queue settle down fast.

    The same is true with the average queue shown

    in the Figures 8 and 9 on page 24.

    As seen in Tables 1 4, the variance will

    be reduced with increase in the prediction step.

    It continues for some time. Again the variance

    shows the upward trend. This is because

    the autocorrelation function of a long range

    dependent series exhibits oscillations and the

    data trafc over the network is self similar and

    long range dependent.

    No. ofsources

    Variance withRED

    Standard deviation withproposed method

    20 125.2279 111.5828

    30 134.0159 126.0763

    40 140.5793 129.6867

    60 142.8687 111.8134

    80 177.0254 126.0417

    100 194.5093 138.2350

    120 219.2376 151.1265

    Table 1: Performance with RED and the Proposed Methodfor Different Number of Components in the Network with

    Prediction Step=1

    No. ofsources

    Variance withRED

    Standard deviation withproposed method

    20 125.2279 106.8508

    30 134.0159 120.8611

    40 140.5793 128.3137

    60 142.8687 111.8134

    80 177.0254 126.0417

    100 194.5093 138.2350

    120 219.2376 151.1265

    Table 2: Performance with RED and the Proposed Methodfor Different number of Components in the Network with

    Prediction Step=3

    No. of

    sources

    Variance with

    RED

    Standard deviation with

    proposed method

    20 125.2279 106.5868

    30 134.0159 118.4315

    40 140.5793 128.5254

    60 142.8687 111.8134

    80 177.0254 126.0417

    100 194.5093 138.2350

    120 219.2376 151.1265

    Table 3: Performance with RED and the Proposed Methodfor Different Number of Components in the Network withPrediction Step=4

    No. of

    sources

    Variance with

    RED

    Standard deviation with

    proposed method

    20 125.2279 106.6906

    30 134.0159 119.2891

    40 140.5793 127.5494

    60 142.8687 111.8134

    80 177.0254 126.0417

    100 194.5093 138.2350

    120 219.2376 151.1265

    Table 4: Performance with RED and the Proposed Methodfor Different Number of Components in the Network withPrediction Step=6

  • 8/12/2019 Some Perspectives Software Engineering

    25/80

    23

    As the load increases, variance increases.

    When the transmission rate reaches the capacity

    of the network, the controller will be able to

    keep the aggregate throughput steady. As a

    result, the variance falls. At this stage, if the

    load on the network increases with the scaling

    of components, the feedback signal dominates

    and reduces the transmission rate. Again thevariance starts increasing. The same is evident

    in the tables.

    RED detects the network congestion

    by computing the probability of packet loss at

    each packet arrival. As a result, the congestion

    detection and the packet drop are computed

    at a small time scale. On the contrary, in the

    proposed scheme, the congestion detection and

    the packet drop are performed at a different

    time scales, overcoming the issues stated

    above.

    As the proposed scheme detects and

    predicts the congestion at a large time scale, the

    components can react for the network conditions

    more rapidly. They receive the congestion

    status signal and reduce the data rates before

    the network actually gets into congestion. The

    reduced chances of congestion minimize the

    required packet buffer size and therefore reducethe end-to-end delay and the jitter is evident

    from the Figures 10 and 11 on page 25 and

    Figures 12 and 13 on page 26.

    The queue and delay are shown in the

    simulation for different loads. The total number

    of data sources activated in each of the 120

    second simulation time range from 40 to 120.

    To see the effect of the shift, the number

    of sources has been changed to 40 and 120

    respectively. The results are taken for the shifts

    of 4. As the load increases, the advantage due

    lost prob BW

    RTT window

    lost prob BW

    RTT window

    lost prob BW

    RTT window

    TCP source

    http source1

    http source2

    1 to 0

    0 to 1

    Product1 Gain2

    Product Gain1

    20

    60

    20

    Gain

    queuedelaydrop prob

    traffic

    inst queue length

    queueing delay

    avg queue length

    drop prob

    RED routers

    sum all TCP

    Inherit

    Signal Specification

    ccc1.mat

    From File

    Integrator

    avg value

    avg queue length1

    1s

    +

    +

    prpogationdelay

    avg1.mat

    To File1

    To File2

    inst1.mat

    inst queue length

    avg queue length

    Congestion Window

    0.2

    X

    X

    ++

    +

    Figure 5: Simulation Model

  • 8/12/2019 Some Perspectives Software Engineering

    26/80

    24

    to shifts gets reduced. However, the delay with

    shifts is always less than the one without shifts.

    The packet loss rates have been found

    to be 5.2% and 4.6% respectively. It makes

    the throughput with shift 1.2 times larger

    compared to the one without shift. The factor

    is 1.06 for a shift of 1. The high gain of 5.32 in

    the throughput factor has been observed when

    the load is low i.e., 20, with a shift of 1.

    Scaling of the Window Dynamics

    Equation 11 implies that each connection in the

    down- scaled scenario (reduction in the number of

    components) exhibits the same window dynamics

    but the response is 1/ times faster than that in

    the original case (since the connection as a result

    of downscaling adjusts its rate per round trip

    time Ri(t)). The equation governing the window

    dynamics in the scaled network may be written as

    Ins

    tan

    taneousva

    lueo

    fQ

    for

    nos

    hift,

    1s

    tepan

    d2s

    teps

    hift

    600

    500

    400

    300

    200

    100

    0

    0 5 10 15 20 25 30

    Time

    Ins

    tan

    taneousva

    lueo

    fQ

    for

    nos

    hift,

    1s

    tepan

    d2s

    teps

    hift

    800

    700

    600

    500

    400

    300

    200

    100

    0

    0 5 10 15 20 25 30

    Time

    Figure 7: Instantaneous Value of the Queue for 40 sourcesWithout Shift With Shift 1 With Shift 2

    Ins

    tan

    taneousva

    lueo

    fQ

    for

    nosh

    ift,

    1s

    tepand2s

    teps

    hift

    250

    200

    150

    100

    50

    0

    0 5 10 15 20 25 30

    Time

    Figure 8: Time Response for 20 Sources. Without Shift With Shift 1 With Shift 2

    Ins

    tan

    taneousva

    lueo

    fQ

    for

    nosh

    ift,

    1s

    tepan

    d2s

    teps

    hift

    300

    250

    200

    150

    100

    50

    0

    0 5 10 15 20 25 30

    Time

    Figure 9: Time Response for 40 Sources Without Shift With Shift 1 With Shift 2

    Figure 6: Instantaneous Value Of The Queue For 20Sources Without Shift With Shift 1 With Shift 2

  • 8/12/2019 Some Perspectives Software Engineering

    27/80

    25

    where = .

    By rearranging the terms, the effect of

    scaling becomes

    where = .It may be noted that, the current

    bandwidth-delay product of a data path in

    the network as explained in equation 6 is

    used as the current window size, and hence

    Because, over a short time

    (Eq. (11)) and . Due to the advancement

    of the time events as a result of scaling, the

    window size can be reduced to achieve the same

    or better performance relative to the original

    network.

    Scaling of the RTT Dynamics

    The round trip time in the scaled time domain,

    t is using predicted versions of the feedback

    signal. Here, RTT gets reduced by the same

    amount of the prediction or forecast.

    When RTT is small, the components

    sensing the network respond too fast. If

    the network is out of congestion, all the

    components start increasing the transmission

    rate resulting in the network to stay in thecongestion state. Hence, the phase transition

    of a network can happen at a lower load,

    much before any of the components tend

    to grab the network with higher data rates.

    The traffic exhibits self similarity at lower

    loads when the RTT is small and therefore

    better predictable. The same is true when

    the number of components gets scaled up.

    The contribution of individual components

    towards the network load is still small.

    Addition or deletion of a component in to

    De

    lay

    for

    nos

    hift

    an

    ds

    hift

    =

    4

    0.65

    0.6

    0.55

    0.5

    0.45

    0.4

    0.35

    0.3

    0.25

    0.2

    0 50 100 150

    Time

    Figure 10: Packet Delay for 40 Sources with a Shift of 4.Without Shift With Shift

    De

    lay

    for

    nos

    hift

    an

    ds

    hift

    =

    4

    1

    0.9

    0.8

    0.7

    0.6

    0.5

    0.4

    0.3

    0.2

    0 50 100 150

    Time

    Figure 11: Packet Delay for 80 Sources with a Shift of 4.Without Shift With Shift

  • 8/12/2019 Some Perspectives Software Engineering

    28/80

    26

    the network influences the phase transition.

    Although content ion for the resources

    increases with increase in the number of

    components, the traffic is better controlled as

    evident from the graphs.

    Organization of the Components to meet the

    Prescribed QoS in the Communication

    The simulation results shown in the figures

    indicate that the QoS of the applications

    driven by the components may be enhanced

    with the usage of the prediction feedback

    signal. Depending upon the availability of

    the network bandwidth and with the input

    from the prediction feedback signal, the

    appropriate abstract version of the data may

    be transferred over the network. For the end

    application that is calling this service, there

    will be a reduced service option instead of

    total denial of the service. The dynamic

    mapping of the different abstractions of the

    content and the quality of service is shown

    in Figure 14. If the network bandwidth

    available is small, abstract version of the

    content may be transferred instead of

    denying the same.

    Q1

    Q2

    Q3

    Q4

    Figure 14: Organization of the Data/Signal that getExchanged between Components

    K1

    K2

    K3

    K4

    K5

    Data / Signal Encryption Keys

    Figure 15: Organization of the Data/Signal that getExchanged between Components

    De

    lay

    for

    nos

    hift

    an

    ds

    hift

    =

    4

    1

    0.9

    0.8

    0.7

    0.6

    0.5

    0.4

    0.3

    0.2

    0 50 100 150

    Time

    Figure 12: Packet delay for 120 Sources with a Shift of 4.Without Shift With Shift

    Queues

    izew

    ithou

    ts

    hift

    an

    ds

    hift

    of

    8400

    350

    300

    250

    200

    150

    100

    50

    0

    0

    Time10 20 30 40 5 0 60 70

    Figure 13: Queue Size for 40 Sources with a Shift of 8.Without Shift With Shift

  • 8/12/2019 Some Perspectives Software Engineering

    29/80

    27

    Organization of the Components to Meet thePrescribed Security Constraints

    The component communication has opened up

    security concerns with increased transactions

    over the internet. Powerful encryption

    algorithms are required to support the same.

    However, providing the same degree of

    security among the communication of all the

    components, especially when the numbers are

    getting scaled is nearly impossible. A solution

    is provided to get around this problem.

    The data or commands to be exchanged

    among the components are to be broken down

    into a set of logically disjoint fragments so that

    they are transferred independently. Figure 15

    on page 26 shows the hierarchical organization

    of the data (or command) at different degrees

    of abstraction.

    Each of the abstractions is encoded

    with different encryption key catering to the

    security needs. For example, components

    handling nancial applications are required to

    be encrypted with higher security.

    CONCLUSION

    With the addition of every component

    in distributed software architecture, the

    performance of rest of the components in the

    enabling distributed network gets affected.

    Through advance prediction of the status of thenetwork as proposed in this paper, it should be

    possible to overcome the issue of the network

    load. The delay as well as the loss rate gets

    reduced which otherwise would be substantial.

    Today the simulation provides encouraging

    results with improved quality of service. As an

    extension of the simulation, the components are

    to be loaded in to the actual build of a project.

    REFERENCES

    1. Heine man, G.T. and Council l, W.

    T. (eds), (2001), Component BasedSoftware Engineering: Putting the Pieces

    Together, Addison Wesley: Reading,

    Massachusetts.

    2. Wallnau, K., Hissam, S., and Seacord,

    R. (2001), Building Systems from

    Commercial Components, Addison

    Wesley.

    3. Harju, J. and Kivimaki, P. (2000), Co-

    operation and Comparison of DiffServ

    and IntServ: Performance Measurements,

    in the Proceedings of the 25th Annual

    IEEE Conference on Local Computer

    Networks, p. 177.

    4. OMG (2002), Notification Service

    Specification, Object Management

    Group. Available on www.omg.org.

    5. Floyd, S. and Jacobson, V. (1993),

    Random Early Detection Gateways for

    Congestion Avoidance, IEEE/ACM

    Transactions on Networking, Vol. 1 No.

    4, pp. 397-413.

    6. Manjunath, R. and Gurumurthy,

    K.S. (2004), Maintaining Long-range

    Dependency of Traffic in a Network,

    CODEC04.

    7. Manjunath, R. Gurumurthy, K.S.

    (2002) , Information Geometry of

    Differentially Fed Artificial Neural

    Networks, in the Proceedings of IEEERegion 10 Conference on Computers,

    Communications, Control and Power

    Engineering, pp. 1521-1525.

    8. Kim, H. (2004), Enabling Theoretical

    Model based Techniques for Simulating

    Large Sca le Networks , Doctora l

    Dissertation, University of Illinois at

    Urban-Champaign.

    9. Erramilli, A., Roughan, M., Veitch, D.

    and Willinger, W. (2002), Self similar

    Trafc and Network Dynamics, in the

  • 8/12/2019 Some Perspectives Software Engineering

    30/80

    28

    Proceedings of the IEEE, Vol. 90, No. 5,pp. 800-819.

    10. Manjun ath, R. and Jai n, V. ( 2010),

    Trafc Controller For Handling Service

    Quality in Multimedia Network, Book

    chapter in Intelligent Quality of Service

    Technologies and Network Management:

    Models for Enhancing Communication,

    IDEA Group Publishers, pp. 96-112.

    11. Manjunath, R. and Shyam, V.R. (2009),

    Data Network Performance Modelingand Control Through Predict ion

    Feedback, ISSRE 2009.

    12. Marsan, M.A., Garetto, M., Giaccone, P.,

    Lionardi, E., Schiattarella, E. and Tarello,

    A. (2005), Using Partial Differential

    Equations to Model TCP Mice and

    Elephants in Large IP Networks, IEEE/

    ACM Transactions on Networking, Vol

    13, No 6, pp. 1289-1301.

  • 8/12/2019 Some Perspectives Software Engineering

    31/80

    29

    SETLabs BriefingsVOL 8 NO 6

    2010

    Creating and Benchmarking OWLand Topic Map Ontologies for

    UBL ProcessesBy Kiran Prakash Sawant and Suman Roy PhD

    A

    Build a knowledge-based system that caters to theneed for a common standard framework to store,

    manage and retrieve data

    rriving at a consensus on what constitutes

    software business processes is an

    extremely difcult task, as there is a lack of

    common agreement amongst stakeholders. A

    solution to this lies in proposing a common,

    shared and widely acknowledged framework

    for the domain. Ontology description can play

    a useful role here. Ontology can be viewed as a

    special kind of semantic network representing

    the terminology, concepts and the relationshipsamong these concepts related to a particular

    application domain. Various knowledge-based

    systems (KBSs) have been built to support this

    ontology. These KBSs can differ in a number

    of ways like main memory containment,

    secondary storage and reasoning capability.

    In this paper, we consider ways to create

    and choose an appropriate KBS for a large

    business process application with universal

    business language (UBL) processes. UBL is an

    OASIS standard to develop common business

    document schema to provide document inter-

    operability in the electronic business domain

    [1, 2]. UBL comes with a library of reusable

    components such as address, price and a set

    of document schema such as order, invoice,

    remittance advice that are meant for use in

    e-business. It is increasingly becoming popular

    with public and private sector organizations

    around the world.

    Managing the data stored in UBLdocuments is not an easy task, especially when

    it comes to ensuring efficient information

    retrieval, discovery and auditing. The challenge

    is to extract meaningful information from the

    large amounts of available data. Search engines

    are not of much help for such documents.

    Therefore, it is useful to add structure and

    semantics to provide a mechanism for

    more precisely describing the data in these

    UBL documents [3]. Further, for semantic

    information to be useful, it should be able to

  • 8/12/2019 Some Perspectives Software Engineering

    32/80

    30

    dene characteristics that the document shouldpossess viz., methods of ordering and payment,

    constraints on spatial and temporal availability,

    etc. Such semantic information can be dened

    effectively through ontology languages like

    semantic web initiatives, topic maps (TM) and

    web ontology language (OWL) [4, 5, 6].

    We felt that it would be useful to use

    semantic web formalisms, like TM and OWL to

    construct KBSs that support ontologies hidden

    in UBL documents. We believe that our TM

    based approach is superior to that of an RDBMS

    based one because the use of scopes within TM

    allows for powerful navigation of the content

    by effectively pruning the dataset, leading to

    more effective queries as well as being a means

    to validate associations and optimize merge

    operations. Also, the advantage of using OWL-

    based KBS is that it provides sufcient reasoning

    capabilities to support semantic requirements ofthe application in mind and carry out queries

    about the instances over ontologies.

    Further, we would like to evaluate these

    KBSs with respect to scalability, efficiency

    and reasoning capability. Since we shall be

    working with UBL process diagrams we

    shall be generating huge datasets that would

    provide us a good basis to evaluate these

    ontologies for scalability and efciency. For

    reasoning requirement, the KBS should be

    sound and complete for both OWL-DL and

    TM. However, data processing time and queryresponse time would go up with increase in

    reasoning capability. One has to keep track of

    the trade-offs between scalability and reasoning

    capability to evaluate KBSs [7].

    For all the above reasons certain

    benchmarks should be established to facilitate

    the evaluation of semantic web KBSs in a

    standard way. These benchmarks should be

    based on well known practices for benchmarking

    databases and knowledge bases [7, 8, 9]. The

    benchmarking is done on ontologies created

    out of UBL process diagrams. Its test data are

    generated using XML instances of business

    documents that follow their standard schema.

    They can be scaled to be arbitrary sized.

    An experiment is conducted using UBL

    process of payment [10]. Two kinds of reasoning

    systems are used - one is based on OWL-DL

    reasoning and another on TMs. Experimentalresults are provided and the performance of the

    systems is using several metrics is discussed.

    Different aspects of system performance,

    both objective and subjective in nature are

    highlighted. Objective performance metrics

    are load time, repository size, query response

    time, completeness, etc. Ten test queries

    are worked upon to evaluate these metrics.

    The importance of subjective measures is

    demonstrated by capturing various dimensions

    of users perspective like effort estimation and

    The trade-offs between scalability and reasoningcapability need to be tracked to evaluate KBSs

  • 8/12/2019 Some Perspectives Software Engineering

    33/80

    31

    usability. Using this benchmarking approachwe are able to empirically compare two

    different KBSs.

    Guo et al., carry out a benchmarking of

    semantic web knowledge-based systems with

    respect to use in large OWL applications [9].

    They consider Lehigh University benchmark

    (LUBM) as an example for designing such

    benchmarks. The LUBM features four KBSs

    representing a University domain. The

    authors evaluated these KBSs with respect

    to fourteen queries employing the following

    performance metrics as yardsticks - load time,

    repository size, query response time, query

    completeness and soundness and a combined

    metric.

    There are some pieces of work that deal

    with evaluation of ontology-based retrieval

    systems with respect to free text searching

    systems. Kim conducted an evaluation studybased on 20 questions and using 10 domain

    experts with respect to search time and

    relevance criteria [10]. The study shows that

    ontology-based systems perform better than

    free text searching systems. Sure and Iosif

    compare two ontology-based systems to a

    free-text searching system [11]. It revealed

    that users of the ontology-based systems

    made fewer mistakes and took less time to

    complete tasks. However, most of these studies

    have considered objective measurements,

    such as search time, mistakes committed,search completeness, etc. They have not

    measured user criteria such as satisfaction,

    appropriateness and ease of use.

    Some studies have also focused on

    subjective performance metrics. Gyun Oh

    and Park have compared the performance

    of a TM based Korean Folk Music (Pansori)

    Retrieval System (TMPRS) and a representative

    Current Pansori Retrieval System (CPRS) [13].

    Participants were given the task to carry out

    several predened jobs and execute their own

    queries. Based on this, the study measures

    subjective as well as objective performance of

    two systems. A similar task was carried out

    concerning the users searching performance

    [14]. In this work Yi compares a TM based

    ontology information retrieval system (TOIRS)

    and a Thesaurus-based information retrieval

    system (TIRS). Forty participants took part ina task-based evaluation where two dependent

    variables recall and search time were

    measured. The study indicates that TOIRS has a

    signicant and positive effect on both variables,

    compared to TIRS.

    We borrow some of the ideas related

    to performance metrics from both LUBM

    benchmarking o f semant ic KBSs and

    performance studies of the above information

    retrieval systems. While we draw material

    heavily from the LUBM