135,475 research outputs found

    Process and Object Models in Software Engineering: A Study of Their Choice and Subsequent Use

    Get PDF
    This paper provides a research model to analyze how decisions relating to the choice of modeling approach are made in the context of software engineering and how behavioral variables account for the intention and actual use associated with conceptual modeling frameworks. Modeling approach refers to the part of system development that involves investigating the problems and requirements of the users community and from that, developing a specification of the desired system. To that extent the choice of the conceptual modeling approach is a function of the methodology adopted for the entire software development lifecycle. We consider two broad classes of methodologies – the process-oriented approach (also known as the structured approach) and the object-oriented approach. We formalize the question whether there is a difference between object-oriented and structured approaches when it comes to requirements modeling. Secondly, we study decisions processes regarding the adoption of either an object-oriented, structured or combination approaches

    An Object Oriented Paradigm for Requirements Specifications.

    Get PDF
    Software engineering defines a formalized five-step life-cycle for software development. These steps are: requirements specification, design, implementation, testing and maintenance. The requirements specification phase of the software development life-cycle is responsible for determining the functionality of the proposed system. In this work, a methodology is developed that enhances the generation of accurate requirements specifications, utilizing an object-oriented paradigm. This research realizes four objectives. First, the process of information transferral between the user and the specification team is enhanced. Second, a working base of knowledge containing the domain-specific information within the initial requirements document is established for use by the specification team. Third, techniques for evaluating the overall quality of the initial requirements document are addressed. Specifically, the problems associated with document ambiguity, completeness, consistency and structure are examined. Finally, a specification paradigm is defined utilizing this knowledge-based specification environment. The paradigm permits the automatic generation of an object-oriented specification model. This model may then be used as an input for the design phase. This paradigm defines a methodology for the establishment and evaluation of the knowledge-based specification environment. The environment permits the incorporation of an object-oriented development strategy into the specification process. In addition, the concept of information traceability throughout the specification process is enhanced

    Applying the MVC design pattern to multi-agent systems

    Get PDF
    As agent technology becomes more wide-spread, the need for agent-based analysis and design methods and tools will keep growing. An agent, which is an autonomous entity that acts on behalf of the user, has different properties than objects. For example, objects are passive entities that react to external stimuli, but do not exhibit goal directed behavior. On the other hand, agents are active entities that may learn about their environment and react to changes. Because of such crucial differences between objects and agents, object-oriented analysis and design methods cannot accommodate the requirements of engineering agent-based systems. Agents, however, can learn a few things from object-oriented analysis and design. In this paper, we present the Agent Views approach for applying the Model View Controller (MVC) design pattern in designing agent-based systems. This approach will help software developers use a familiar design pattern to determine the types of agents needed to build successful agent-based systems

    Incorporating design explanation within formal object-oriented method (FOOM)

    Full text link
    Requirements engineering is a commencing phase in the development of either software applications or information systems. It is concerned with understanding and specifying the customer\u27s requirements of the system to be delivered. Throughout the literature, this is agreed to be one of the most crucial and, unfortunately, problematic phases in development. Despite the diversity of research directions, approaches and methods, the question of process understanding and management is still limited. Among contemporary approaches to the improvement of the current practice of Requirements Engineering, Formal Object-Oriented Method (FOOM) has been introduced as a new promising solution. The FOOM approach to requirements engineering is based on a synthesis of socio-organisational theory, the object-oriented approach, and mathematical formal specification. The entire FOOM specification process is evolutionary and involves a large volume of changes in requirements. During this process, requirements evolve through various forms of informal, semi-formal, and formal while maintaining a semantic link between these forms and, most importantly, conforming to the customer\u27s requirements. A deep understanding of the complexity of the requirements model and its dynamics is critical in improving requirements engineering process management. This thesis investigates the benefits of documenting both the evolution of the requirements model and the rationale for that evolution. Design explanation explains and justifies the deliberations of, and decisions made during, the design activity. In this thesis, design explanation is used to describe the requirements engineering process in order to improve understandability of, and traceability within, the evolving requirements specification. The design explanation recorded during this research project is also useful in assisting the researcher in gaining insights into the creativity and opportunistic characteristics of the requirements engineering process. This thesis offers an interpretive investigation into incorporating design explanation within FOOM in order to extend and advantage the method. The researcher\u27s interpretation and analysis of collected data highlight an insight-driven and opportunistic process rather than a strictly and systematically predefined one. In fact, the process was not smoothly evolutionary, but involved occasional \u27crisis\u27 points at which the model was reconceptualised, simplified and restructured. Therefore, contributions of the thesis lie not only in an effective incorporation of design explanation within FOOM, but also a deep understanding of the dynamic process of requirements engineering. The new understanding of the complexity of the requirements model and its dynamics suggests new directions for future research and forms a basis for a new approach to process management

    Requirements Modeling for Multi-Agent Systems

    Get PDF
    Different approaches for building modern software systems in complex and open environments have been proposed in the last few years. Some efforts try to take advantage of the agent-oriented paradigm to model/engineer complex information systems in terms of independent agents. These agents may collaborate in a computational organization (Multi-Agent Systems, MAS) by playing some specific roles having to interact with others in order to reach a global or individual goal. In addition, due to the complex nature of this type of systems, dealing with the classical functional and structural perspectives of software systems are not enough. The organizational perspective, that describes the context where these agents need to collaborate, and the social behavior perspective, that describes the different "intelligent" manners in which these agents can collaborate, need to be identified and properly specified. Several methodologies have been proposed to drive the development of MAS (e.g., Ingenias, Gaia, Tropos) although most of them mainly focus on the design and implementation phases and do not provide adequate mechanisms for capturing, defining, and specifying software requirements. Poor requirements engineering is recognized as the root of most errors in current software development projects, and as a means for improving the quality of current practices in the development of MAS, the main objective of this work is to propose a requirements modeling process to deal with software requirements covering the functional, structural, organizational, and social behavior perspectives of MAS. The requirements modeling proposed is developed within the model-driven engineering context defining the corresponding metamodel and its graphical syntax. In addition, a MAS requirements modeling process is specified using the Object Management Group's (OMG) Software Process Engineering Metamodel (SPEM). Finally, in order to illustrate the feasibility of our approach, we specified the software requirements of a strategic board game (the Diplomacy game).Rodríguez Viruel, ML. (2011). Requirements Modeling for Multi-Agent Systems. http://hdl.handle.net/10251/11416Archivo delegad

    Requirements Traceability: Recovering and Visualizing Traceability Links Between Requirements and Source Code of Object-oriented Software Systems

    Full text link
    Requirements traceability is an important activity to reach an effective requirements management method in the requirements engineering. Requirement-to-Code Traceability Links (RtC-TLs) shape the relations between requirement and source code artifacts. RtC-TLs can assist engineers to know which parts of software code implement a specific requirement. In addition, these links can assist engineers to keep a correct mental model of software, and decreasing the risk of code quality degradation when requirements change with time mainly in large sized and complex software. However, manually recovering and preserving of these TLs puts an additional burden on engineers and is error-prone, tedious, and costly task. This paper introduces YamenTrace, an automatic approach and implementation to recover and visualize RtC-TLs in Object-Oriented software based on Latent Semantic Indexing (LSI) and Formal Concept Analysis (FCA). The originality of YamenTrace is that it exploits all code identifier names, comments, and relations in TLs recovery process. YamenTrace uses LSI to find textual similarity across software code and requirements. While FCA employs to cluster similar code and requirements together. Furthermore, YamenTrace gives a visualization of recovered TLs. To validate YamenTrace, it applied on three case studies. The findings of this evaluation prove the importance and performance of YamenTrace proposal as most of RtC-TLs were correctly recovered and visualized.Comment: 17 pages, 14 figure

    A Generic Software Architecture For Prognostics

    Get PDF
    Prognostics is a systems engineering discipline focused on predicting end-of-life of components and systems. As a relatively new and emerging technology, there are few fielded implementations of prognostics, due in part to practitioners perceiving a large hurdle in developing the models, algorithms, architecture, and integration pieces. As a result, no open software frameworks for applying prognostics currently exist. This paper introduces the Generic Software Architecture for Prognostics (GSAP), an open-source, cross-platform, object-oriented software framework and support library for creating prognostics applications. GSAP was designed to make prognostics more accessible and enable faster adoption and implementation by industry, by reducing the effort and investment required to develop, test, and deploy prognostics. This paper describes the requirements, design, and testing of GSAP. Additionally, a detailed case study involving battery prognostics demonstrates its use

    Embedding object-oriented design in system engineering

    Get PDF
    The Unified Modeling Language (UML) is a collection of techniques intended to document design decisions about software. This contrasts with systems engineering approaches such as for exampleStatemate and the Yourdon Systems Method (YSM), in which the design of an entire system consisting of software and hardware can be documented. The difference between the system- and the software level is reflected in differences between execution semantics as well as in methodology. In this paper, I show how the UML can be used as a system-level design technique. I give a conceptual framework for engineering design that accommodates the system- as well as the software level and show how techniques from the UML and YSM can be classified within this framework, and how this allows a coherent use of these techniques in a system engineering approach. These ideas are illustrated by a case study in which software for a compact dynamic bus station is designed. Finally, I discuss the consequences of this approach for a semantics of UML constructs that would be appropriate for system-level design
    corecore