420,391 research outputs found

    A Model for Quality Optimization in Software Design Processes

    Get PDF
    The main objective of software engineers is to design and implement systems that implement all functional and non-functional requirements. Unfortunately, it is very difficult or even generally impossible to deliver a software system that satisfies all the requirements. Even more seriously, failures in fulfilling requirements are generally detected after the realization of software systems. This is because design decisions are mostly taken based on estimations, which can turn out to be wrong at a later stage in the design process. Switching to different design alternatives at a later stage can be very difficult since this may demand drastic changes in design and also may increase project time and costs. In this paper a model is proposed for modeling and tracing design processes with respect to the selected design alternatives. Based on the model, two algorithmic definitions of design strategies are given, which enable software engineers to optimize design decisions with respect to quality and resource constraints

    Environments to support collaborative software engineering

    Get PDF
    With increasing globalisation of software production, widespread use of software components, and the need to maintain software systems over long periods of time, there has been a recognition that better support for collaborative working is needed by software engineers. In this paper, two approaches to developing improved system support for collaborative software engineering are described: GENESIS and OPHELIA. As both projects are moving towards industrial trials and eventual publicreleases of their systems, this exercise of comparing and contrasting our approaches has provided the basis for future collaboration between our projects particularly in carrying out comparative studies of our approaches in practical use

    Domain-oriented architecture design for production control software

    Get PDF
    this paper, we present domain-oriented architectural design heuristics for production control software. Our approach is based upon the following premisses. First, software design, like all other forms of design, consists of the reduction of uncertainty about a final product by making design decisions. These decisions should as much as possible be based upon information that is certain, either because they represent laws of nature or because they represent previously made design decisions. An import class of information concerns the domain of the software. The domain of control software is the part of the world monitored and controlled by the software; it is the larger system into which the software is embedded. The software engineer should exploit system-level domain knowledge in order to make software design decisions. Second, in the case of production control software, using system-level knowledge is not only justified, it is also imposed on the software engineer by the necessity to cooperate with hardware engineers. These represent their designs by means of Process and Instrumentation Diagrams (PIDs) and Input-Output (IO) lists. They do not want to spend time, nor do they see the need, to duplicate the information represented by these diagrams by means of diagrams from software engineering methods. Such a duplication would be an occasion to introduce errors of omission (information lost during the translation process) or commission (misinterpretation, misguided but invisible design decisions made during the translation) anyway. We think it is up to the software engineer to adapt his or her notations to those of the system engineers he or she must work with. Third, work in patterns and software architectures started from the programminglanguage level and is now moving..

    Aspect-Oriented Programming using Composition-Filters

    Get PDF
    Software engineers may experience problems in modeling certain aspects while applying object-oriented techniques [4, 10, 11]. Composition-Filters are capable of expressing various different kinds of aspects in a uniform manner. These aspects are, for example, inheritance and delegation [1] and atomic delegation [2], multiple views, dynamic inheritance and queries on objects [3], coordinated behavior and inter-object constraints [5], real-time [6] and composing real-time and synchronization together [9], synchronization [8] and distributed synchronization [7], and client-server architectures [10]

    Important IT industry trends and their impact on software development

    Get PDF
    It’s been a long time since IT was considered only as a narrow field of engineers’ interests. Nowadays we can’t imagine any business running without a whole software complex. Everyone knows that era of pens and paper is gone, but only those who are really into the topic know that computers are being driven out, too. World is rapidly changing and IT is at the head of the shift

    COTS-Based Software Product Line Development

    Get PDF
    Software Product Line (SPL) is at the forefront among the techniques for reducing costs, decreasing schedule time, and ensuring commonality of features across a family of products - as components off-the-shelf (COTS) are reused in multiple products. A disciplined process for software product line development is still needed. We propose the Y-model for COTS-based software product line development. The model put forward identifies and elaborates the essential phases and activities of software product line development from COTS-based repository. The Y-model provides an efficient way of integrating the approaches of software product line and COTS-based development as a cohesive software development model. The model has the potential to tremendously increase software engineers\u27 productivity. Thus software architects, domain engineers and component designers should become aware of how to use these ideas to structure their models and designs. The model has the potential to tremendously increase software engineers\u27 productivity. Thus software architects, domain engineers and component designers should become aware of how to use these ideas to structure their models and designs
    corecore