; Software Engineering Tools and Environments A Roadmap
Learning Center
Plans & pricing Sign in
Sign Out
Your Federal Quarterly Tax Payments are due April 15th Get Help Now >>

Software Engineering Tools and Environments A Roadmap


  • pg 1
									Author: William Harrison, Harold Ossher, Peri Tarr

     Presented by:
     Mohammad Enamur rashid (2009-1-96-004)
     Mohammad Rashim Uddin (2009-1-96-008)
     Masud Ur Rahman (2009-1-96-009)
     Farhana Haq Bilashi (2009-1-96-002)

    Software engineering tools and environments: a road map

 Since the days of early programming tools and environments have existed in one form or,
another. And now modern software engineering cannot be accomplished without reasonable
tool support.

 The need of tools and environment becoming very crucial because,

     The demand of software increases.
     Time to market decreases
     Diversity and complexity go beyond anything imagined few decades ago.

 Here we,
    Briefly review some of the tools and environments
    Discuss some key challenges that we may face in near future
    Discuss some solution approaches to face the upcoming challenges.
    New application domain challenges and constrains to have the solution.

    Software engineering tools and environments: a road map

 Software engineers use tools from the very beginning of software development and
engineering history.

 Software engineers’ use basically two types of tool,
    Stand alone tool (for a specific task)
    Environments ( Integrated collection of tools)

 As the software industry is growing, the number and the type of tool is increasing.
   Traditional tool ( editor, compiler, debugger)
   Tools to aid in requirement gathering, designing, Building GUI, Version control, Testing,
    Full scale process centered software engineering environment (covers entire lifecycle
   of software engineering, or a significant points of it)

   Software engineering tools and environments: a road map
    Introduction       Why so important

 Why tools and environments are so important?

    Current market demands to produce software quickly and a reasonable cost. Competition is
    high and time to market often determines success.
    This involves;
         i) writing new software
         ii) adaptation with the platform, existing system
         iii) integrating existing software

    Software engineering tools and environments can support to do this;
        i) quickly,
        ii) cost effectively and
        iii) with quality result.

    They can also determine its feasibility regarding;
        i) realistic economics and
        ii) other constraints such as
                   a) safety and
                   b) reliability.
    Software engineering tools and environments: a road map
     A Brief History
 At the early stage of software development compilers and editors become standard offerings
with operating system.
 Earliest Environment:
    Stand alone collection of tools
    Used in loosely coordinated fashion
    Inputs and outputs can be interconnected loosely.
    UNIX is such an environment, provide tools like editor, debugger, compiler.
 Early Environment:
    Provide a collection of tools, but not real means of integrated tools.
    Need to use a convention by the developers to coordinate the use of the tools.
    Has the ability to describe which tools should be used to process the change data.
    Still suffered from all the usual problems associated with loose integration.
    Make, Odin are the example of early environment.
 Programming Support Environment (PSE)
    The tools of the environment were integrated tightly.
    The activity of one tool were reflected appropriately in other tools.
    Event based view of control integration.
    Support only one software engineering activity and its artifact – Implementation and
   coding activities.                                                                   5
    Software engineering tools and environments: a road map
     A Brief History

 Software Engineering Environment (SEE)
    Integrated support for software engineering activities throughout the software lifecycle.
    RPDE integrates activity from design through testing.
   ARCADIA SEE includes tool for requirement specification, high-and-low level design,
   analysis and testing.
    Support traceability across the artifacts.

 Two research area have come out from SEE domain in the last decade, and each address a
major theme in current software engineering.

     Multi-view software environment
     Process-centered software engineering environment (PSEE)

    Software engineering tools and environments: a road map
     Key Challenges
 A common thing apparent through out the history of software engineering tools and

      Most ubiquitous is the theme of INTEGRATION

 The need of integration – of tools, processes, artifacts, and views- has been a driving force
for many change of direction and new line of research.
 Unfortunately, the state-of-the-practice in software engineering has not advanced nearly as
much as this impressive set of tools and integration mechanisms would imply.

      A key reason is that each tool or environment is still highly specific to some
     context. It might require the software it manipulates to be written in a particular
     language, or to be represented using a particular kind of intermediate form or
     program database. It might run only on particular hardware, under a particular
     operating system, or using a particular compiler, environment or integration

      Developers frequently see tools they would like to use, or capabilities they would
     like to have within their own environments, only to discover that a context or
     packaging mismatch precludes or greatly complicates the use of those tools.       7
    Software engineering tools and environments: a road map
     Key Challenges

 A major challenge for the tools and environments community is, therefore,

     To find ways to build and integrate tools so that they, or capabilities within them, can
    be easily adapted for use in new contexts.

     Developing and using tool architectures and other approaches that facilitate adaptation
    and integration.

     Building tools to assist with the adaptation and integration process.

    Software engineering tools and environments: a road map
      Key Challenges             Anticipated design

 Software has become more and more pervasive and its life expectancy has increased.
 Arise greater pressures to integrate and interact with other pieces of software.
 Arise greater pressure to evolve and adapt to use all manner of new and unanticipated
      Context of technological (new hardware, operating system, software configurations)
      Context of Sociological ( new domains, business practice, process and regulations,

 Unfortunately Software fundamentally cannot meet the challenges,
    Because it is quite impossible to predict, even with the most careful analysis and
    Evolution, adaptation and integration are costly and difficult, if they can be performed
   at all.

 At present software integration and evaluation depends on the ability to anticipated and pre-
plan for change. Designers anticipated evaluation scenario and variation of change and built
some open points, using the technique of framework and design pattern.
When significant variations arise which was not anticipated, reengineering is needed.

    Software engineering tools and environments: a road map
      Key Challenges             Malleable Software

 Now we are in a situation that, Software need to become malleable for life.
    Thus we can reconstruct the software without breakage.
    This is highly required, because it is impossible to anticipate all future needs and

 This paper introduce a term, morphogenic software that refer to a software that would be
malleable for life.
     Morphogenic software would be sufficiently adaptable with mismatch context, to
    overcome with acceptable effort.
     Repeatedly adaptable with new and unanticipated context.

    Software engineering tools and environments: a road map
       Key Challenges             Separation and integration of Concerns

 A major barrier to portable software and morphogenic software is inadequate separation of

 Separation of concern has been a key guiding principle of software engineering for decades.
     but the difficulty remains
     the main reason is a problem that this termed,
          Tyranny of the dominant decomposition

 Multi-dimensional separation of concerns will be key to software engineering in future,
   To achieve:
             Evolutionary context
             Adaptation
             Reusability
             Morphogenesis

    Software engineering tools and environments: a road map
     Meeting the challenges

 The addressed challenges are the key thrusts in software engineering in future.

 Here are the outline of some approaches and specific requirements that need to force in the
area of software development tools and environment

     Deployment of commercial technologies.
     Management of concerns.
     Environment for morphogenic software

 Deployment of commercial technologies
    Commercial software development provide technologies that are facing integration
    The software that has the flexibility to be grown into many differently-shaped
   derivatives to fit different environmental concerns as system software, is a limited kind of
   morphogenic software.
    This characteristics and acceptance of commercial technologies make them a good
   foundation. If focused effort is put into enhancing and applying them suitable, they can be
   expected to grow towards more complete solutions.

    Software engineering tools and environments: a road map
    Meeting the challenges Development of commercial technologies

 Data integration and XML
    adaptation of XML may break the logjam that inhabits data sharing between software
    data sharing issue can be characterized as,
         Omni directional
         Bidirectional
    XML provides the midlevel standard which is provides flexibility and adaptation
    Some transformation tool for adaptation; XML schema, XLS, XSLT.

 Data integration and enterprise Java beans
    XML is appropriate for very coarse-grained integration characterized by loose coupling
   and low bandwidth.
    Tighter coupling, or requirements for higher bandwidth, requires the use of a shared
    Enterprise Java Beans provide a style for Java programs that separates the concerns of
   an object's algorithms ("the business logic") from its data storage and access concerns.

    Software engineering tools and environments: a road map
    Meeting the challenges Development of commercial technologies
 Control integration and Java messaging service
    Event-based message delivery is at the heart of many control-flow integration
    Fact is now affecting commercial software infrastructures as well as software
   development infrastructures.
    Capitalizing on the Java success, a messaging model called Java Messaging Services
   (JMS) has been put forward.
 Control integration and message brokering
    The message broker model is a generalized delivery model supporting the routing of
   message, from sender to one or more receivers.
    The delivery criteria are treated as a separate concern from the processing concern.
 Control integration and composition engines
    Separate specification of deployment characteristics from stem characteristics
   requires language and conceptual models for these specification.
   Software composition engines like GenVoca and the subject oriented
   programming compositor , employ directives for composing components that are
   separate from the components themselves, treating all the software components as
   stem-form software.
   If the software is to become capable of morphogenesis, these issues cannot be left
   as the province of individual programming languages, but must be treated as
   concerns separate from the function of the individual
    Software engineering tools and environments: a road map
    Meeting the challenges            Management of concerns
 Management of concerns
    At Present separation of concerns is predominantly an early software activity; it
   occurs during requirements engineering, design, and coding. Once chosen, the concern
   structure restively fixed; most changes require system refactoring and re-architecting.

     In actually new concern become relevant throughout the software lifecycle. Thus tools
    and environment support will be needed to facilitate separation of concerns as an activity
    that occurs on an ongoing basis, as new concerns are identified or become relevant.

     Separation of concerns itself is a process that involves several activities:
        Identification
        Encapsulation
        Integration of concerns

     Identification: New concerns may become important as the software lifecycle
    progresses. Thus, developers may wish to identify new concerns in retrospect, indicating
    how fragments of existing software artifacts address the new concerns, and how the new
    concerns relate to each other and to the existing concerns.

    Software engineering tools and environments: a road map
    Meeting the challenges            Management of concerns

 Encapsulation: Identification of concerns indicates how concerns impact software, but it
does not itself ensures that the concerns are encapsulated. Modularization mechanism are
needed for encapsulation, but a particular concern may not modularized by a given formalism.
So, additional research will be required to define both new artifact formalisms that better
support identification and encapsulation of multiple dimensions of concerns.

 Integration of concerns: Any separation of concerns mechanism must include powerful
integration mechanisms, to permit the selective integration of the separate concerns. They need
to perform "matching” and "reconciliation," examining the (interfaces of the) concerns to be
integrated, and interacting with the developer to match up corresponding elements and reconcile
differences between them.

    Software engineering tools and environments: a road map
    Meeting the challenges             Morphogenic Environment

 Environment for Morphogenic Software:
           Morphogenic software is an extremely ambitious goal, and it will have to be realized
incrementally. It involves research on the evolutionary pressures facing people, organizations,
and their software, and on how the people, organizations and software must respond to those
pressures as a unit. As such, it is an inherently multi-disciplinary area of research, with software
engineering tools and environments playing a key role.

      Managing dependencies and interactions: During development a software contains
     many hidden assumptions, dependencies and interactions. These may only understood my
     the original developers, but they are not usually specified and not even documented and
     therefore not understood for long time. Even small changes can therefore have unexpected
     effects, which can be difficult to detect and correct. Tools can encourage isolation in a
     natural way. They can ease the capture of useful information at the time of initial
     development and evolution. This might involve analysis, both static and dynamic, to detect
     dependencies and interactions, and perhaps even assumptions . They can present
     visualizations of the software to manifest and help developers to understand assumptions,
     dependencies and interactions.

    Software engineering tools and environments: a road map
    Meeting the challenges            Morphogenic Environment

 Adaptation: It must be adapted to the new needs before it can be integrated with other
software in the new context. Traditional adaptation mechanisms are inadequate to the task; to
the extent adaptation is done at all at present, it is done largely by hand Work on packaging
mismatch is beginning to address some of these issues . Comprehensive tool support is sorely

 Correctness and Consistency Management: Assuming that one has adapted a portion of
software and integrated it into a new context, how can one be confident that the result is correct
and consistent? Tool support is needed to perform both checking of various sorts, and testing.

     Software engineering tools and environments: a road map
      New Domain
 The software of new domain will require non-traditional software engineering
methodologies, tools and environment.
 Will impose some extremely challenging requirements and constrains on the solution.
     Pervasive computing:
        The pervasive computing world is rather different. It is more a case of bringing
       common services to a multiplicity of devices than of developing custom applications
       for specific device
     e – Commerce
         e-commerce domain is sufficiently different traditional software domains that
        many software engineering issues must be rethought.
         E-commerce software is being developed rapidly because this is one of the
        domain where early to market is important, yet without the benefit of a large body of
        appropriate software engineering research result or, experience.
         There is a significant challenge for the software engineering research community
        to come up with a architecture and the tools and environment, that can ensure the
        reliability of money exchange, sensitive information and security.
         Another area where tools desperately needed is management of scale. Proper
        management, data availability, robustness is very important. 108 people may on the
        internet, 1011 agents may running to assist them, even a auction may running millions
        of interactions simultaneously .                                                  19
    Software engineering tools and environments: a road map

 Throughout the history of tools and environments in software engineering, we have seen some
important issues and trends emerge. These include separation of concerns, integration
and coordination, "plug and play" and support for multiple views. We have also seen numerous
attempts to address these issues as they have manifested themselves in different contexts, each
imposing unique requirements and constraints on solutions. These attempts have shaped the
history of the field.

We expect to see several major trends emerge in the future..

      New methodologies, formalisms, and processes to address non-traditional software
     lifecycles, and the tool and environment support to facilitate them.

      Greater focus on methodology, formalism, tool and environment, support for separation
     of concerns and morphogenic software.

      The adoption or adaptation of XML, Enterprise Java Beans and sophisticated message
     brokering for integration of both tools and commercial applications. We believe that these
     (or similar) technologies have a chance of successful adoption because they are standards
     at a different level.                                                                 20

To top