206 research outputs found

    The effects of modularity on effective communication and collaboration

    Get PDF
    In this article we explore the consequences associated with a lack of coordination between the requirements engineering process and the development process. We conduct a detailed case study of an ICT department of a large European bank that develops software using the agile software development method. Our current study reveals that the application of a modular organizational design in a dynamic agile environment has a negative effect on the communication and coordination between members of different modules. More specifically, the modular design creates both a semantic and a pragmatic boundary among members of different modules, which is primarily caused by the fact that modules have differentiated tasks and often misaligned interests

    Feature interaction in composed systems. Proceedings. ECOOP 2001 Workshop #08 in association with the 15th European Conference on Object-Oriented Programming, Budapest, Hungary, June 18-22, 2001

    Get PDF
    Feature interaction is nothing new and not limited to computer science. The problem of undesirable feature interaction (feature interaction problem) has already been investigated in the telecommunication domain. Our goal is the investigation of feature interaction in componet-based systems beyond telecommunication. This Technical Report embraces all position papers accepted at the ECOOP 2001 workshop no. 08 on "Feature Interaction in Composed Systems". The workshop was held on June 18, 2001 at Budapest, Hungary

    Identifying and visualizing variability in object-oriented variability-rich systems

    Get PDF
    International audienceIn many variability-intensive systems, variability is implemented in code units provided by a host language, such as classes or functions, which do not align well with the domain features. Annotating or creating an orthogonal decomposition of code in terms of features implies extra effort, as well as massive and cumbersome refactoring activities. In this paper, we introduce an approach for identifying and visualizing the variability implementation places within the main decomposition structure of object-oriented code assets in a single variability-rich system. First, we propose to use symmetry, as a common property of some main implementation techniques, such as inheritance or overloading, to identify uniformly these places. We study symmetry in different constructs (e.g., classes), techniques (e.g., subtyping, overloading) and design patterns (e.g., strategy, factory), and we also show how we can use such symmetries to find variation points with variants. We then report on the implementation and application of a toolchain, symfinder, which automatically identifies and visualizes places with symmetry. The publicly available application to several large open-source systems shows that symfinder can help in characterizing code bases that are variability-rich or not, as well as in discerning zones of interest w.r.t. variability

    Systems Reengineering Patterns

    Get PDF
    s of a successful solution, with the contexts in which it works. Most work on systems reengineering so far has attempted to provide a methodology for reengineering. Examples include [4], [16], and Unisys' Refits. However, no reengineering methodology has yet had anything like the impact of the successful development methodologies. Possible problems (apart from immaturity of the field) are: Organisations and their reengineering projects differ very widely. One organisation's legacy system may be a small but vital and unmaintainable collection of spreadsheets, another's a system consisting of millions of lines of code. Reengineering problems arise at many different levels, from the architecture of huge systems to the detailed structure of small components. A methodology must either make (explicit or implicit) restrictions on its scope, or be huge, with most of the methodology being irrelevant to any given reengineering project. The potential user of the me

    AOP++: A Generic Aspect-Oriented Programming Framework in C++

    Full text link
    Abstract. This paper presents AOP++, a generic aspect-oriented pro-gramming framework in C++. It successfully incorporates AOP with object-oriented programming as well as generic programming naturally in the framework of standard C++. It innovatively makes use of C++ templates to express pointcut expressions and match join points at com-pile time. It innovatively creates a full-fledged aspect weaver by using template metaprogramming techniques to perform aspect weaving. It is notable that AOP++ itself is written completely in standard C++, and requires no language extensions. With the help of AOP++, C++ programmers can facilitate AOP with only a little effort.

    A model-based approach for multiple QoS in scheduling: from models to implementation

    Get PDF
    Meeting multiple Quality of Service (QoS) requirements is an important factor in the success of complex software systems. This paper presents an automated, model-based scheduler synthesis approach for scheduling application software tasks to meet multiple QoS requirements. As a first step, it shows how designers can meet deadlock-freedom and timeliness requirements, in a manner that (i) does not over-provision resources, (ii) does not require architectural changes to the system, and that (iii) leaves enough degrees of freedom to pursue further properties. A major benefit of our synthesis methodology is that it increases traceability, by linking each scheduling constraint with a specific pair of QoS property and underlying platform execution model, so as to facilitate the validation of the scheduling constraints and the understanding of the overall system behaviour, required to meet further QoS properties. The paper shows how the methodology is applied in practice and also presents a prototype implementation infrastructure for executing an application on top of common operating systems, without requiring modifications of the latter

    Process Patterns for Component-Based Software Development

    Full text link
    Abstract. Component-Based Development (CBD) has been broadly used in software development, as it enhances reusability and flexibility, and reduces the costs and risks involved in systems development. It has therefore spawned many widely-used approaches, such as Commercial Off-The-Shelf (COTS) and software product lines. On the other hand, in order to gain a competitive edge, organizations need to define custom processes tailored to fit their specific de-velopment requirements. This has led to the emergence of process patterns and Method Engineering approaches. We propose a set of process patterns commonly encountered in component-based development methodologies. Seven prominent component-based method-ologies have been selected and reviewed, and a set of high-level process patterns recurring in these methodologies have been identified. A generic process framework for component-based development has been proposed based on these process patterns. The process patterns and the generic framework can be used for developing or tailoring a process for producing component-based systems
    corecore