210 likes | 221 Views
Software Engineering Tools and Environments: A Roadmap. 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)
E N D
Software Engineering Tools and Environments: A Roadmap 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) EAST WEST UNIVERSITY, BANGLADESH
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, reengineering. • 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 • 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 • 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.
Software engineering tools and environments: a road map • 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 • A common thing apparent through out the history of software engineering tools and environment; • 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. • Because, • 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 platform. • 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.
Software engineering tools and environments: a road map • 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 • 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. • Context of technological (new hardware, operating system, software configurations) • Context of Sociological ( new domains, business practice, process and regulations, users) • Unfortunately Software fundamentally cannot meet the challenges, • Because it is quite impossible to predict, even with the most careful analysis and design. • 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 • 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 changes. • 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 • A major barrier to portable software and morphogenic software is inadequate separation of concerns. • 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 • 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 challenge • 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 • Data integration and XML • adaptation of XML may break the logjam that inhabits data sharing between software tools. • data sharing issue can be characterized as, • Omni directional • Bidirectional • XML provides the midlevel standard which is provides flexibility and adaptation capability. • 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 repository. • 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 • 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 • 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 • 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 • 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 • 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 needed. • 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 • 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 .
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.