During the last several years, a considerable number of software development methods have been introduced to produce robust, reusable and adaptable software systems. methods create software artifacts through the appli...
详细信息
During the last several years, a considerable number of software development methods have been introduced to produce robust, reusable and adaptable software systems. methods create software artifacts through the application of a large number of heuristic rules. These rules are generally expressed in two-valued logic. In object-oriented methods, for instance, candidate classes are identified by applying the following intuitive rule: "If an entity in a requirement specification is relevant and can exist autonomously in the application domain, then select it as a class". In this paper, we identify and define two major problems regarding how rules are defined and applied in current methods. First, two-valued logic cannot effectively express the approximate and inexact nature of a typical software development process. Although software engineers can perceive partial relevance of an entity and possibly select the entity as a partial candidate class, they are constrained by two-valued logic to quantize relevance into relevant and irrelevant. Second, the influence of contextual factors on rules is generally not modelled explicitly. We term these problems as quantization error and contextual bias problems, respectively. To reduce these problems, we propose to express heuristic rules using fuzzy logic. We illustrate formally how fuzzy logic-based methodological rules can help in lowering the effects of quantization error and contextual bias problems. (C) 2003 Elsevier B.V. All rights reserved.
The data structures used to model meshes for solving problems by finite element methods is based on different arrays. In these arrays information is stored related to, among other components, nodes, edges, faces, tetr...
详细信息
The data structures used to model meshes for solving problems by finite element methods is based on different arrays. In these arrays information is stored related to, among other components, nodes, edges, faces, tetrahedra and connectivities. These structures provide optimum results but, in many cases, they need additional programming to be maintained. In adaptive simulation, the meshes undergo refinement/derefinement processes to improve the numerical solution at each step. These processes produce new elements and eliminate others, so the arrays should reflect the state of the mesh in each of these steps. Using traditional language, memory should be pre-assigned at the outset of the program, so it is only required to estimate the changes taking place in the mesh. In the same respect, it was necessary to compact the arrays to recover space from erased elements. With the advent of languages such as C, memory can be assigned dynamically, resolving most of the problem. However, arrays are costly to maintain, as they require adapting the mesh treatment to the data model, and not inversely. The object-oriented programming suggests a new focus in implementing data structures to work with meshes. The classes create data types that may be adjusted to the needs of each case, allowing each element to be modelled independently. Inheritance and encapsulation enable us to simplify the programming tasks and increase code reuse. We propose a data structure based on meshes-treating objects. Finally, we present an implementation of a local refinement algorithm based on 8-subtetrahedron subdivision and some experiments. (C) 2004 Civil-Comp Ltd and Elsevier Ltd. All rights reserved.
Two current trends in the computer industry are towards open systems and object-oriented methods. Both are important for computer-aided control system design. The success of computer-aided software engineering is attr...
详细信息
Two current trends in the computer industry are towards open systems and object-oriented methods. Both are important for computer-aided control system design. The success of computer-aided software engineering is attributed to its open environment, based on a reference model that involves a service-oriented framework serving a set of tools. An adaptation of this reference model is proposed for computer-aided engineering in general and computer-aided control engineering in particular. object-oriented methods are described, and their roles in the framework services are considered. Their particular importance for the modelling services of a computer-aided control engineering environment is established. It is concluded that a combination of open environments and object-oriented methods provides a unique opportunity for progress in computer-aided control system design that needs to be grasped if the world-wide control community is to benefit.
While developing systems, software engineers generally have to deal with a large number of design alternatives. Current object-oriented methods aim to eliminate design alternatives whenever they are generated. Alterna...
详细信息
While developing systems, software engineers generally have to deal with a large number of design alternatives. Current object-oriented methods aim to eliminate design alternatives whenever they are generated. Alternatives, however, should be eliminated only when sufficient information to take such a decision is available. Otherwise, alternatives have to be preserved to allow further refinements along the development process. Too early elimination of alternatives results in loss of information and excessive restriction of the design space. This paper aims to enhance the current object-oriented methods by modeling and controlling the design alternatives through the application of fuzzy-logic-based techniques. By using an example method, it is shown that the proposed approach increases the adaptability and reusability of design models. The method has been implemented and tested in our experimental CASE environment. Copyright (C) 2001 John Wiley Sons, Ltd.
Interest in object-oriented analysis (OOA) and object-oriented design (OOD) has expanded rapidly over the last several years. Proponents of OOA and OOD have called the shift to these methods "revolutionary" ...
详细信息
Interest in object-oriented analysis (OOA) and object-oriented design (OOD) has expanded rapidly over the last several years. Proponents of OOA and OOD have called the shift to these methods "revolutionary" and have cited a number of impressive claims with respect to their use. However, empirical research investigating these claims remains in its infancy. Moreover, an examination of the literature reveals inconclusive and often conflicting results for OOA and OOD methods relative to traditional data and/or procedural techniques. This paper presents the results of an empirical study that examined both experienced and novice systems analysts using both procedural and object-oriented techniques. This research examined whether experience in using procedural methods helped or hindered performance using OOA and compared procedural and OOA methods on the subjective mental workload induced. A human problem-solving model adopted from Newell and Simon (1972) provided the theoretical framework for this study. Dependent variables include subjective mental workload, solution quality, time to perform task, and attitudinal measures. Although some of these dependent variables have been used in past research, we believe this is the first time that subjective mental workload (SMW) has been examined in an IS context. Our results indicate that both novice and experienced subjects demonstrate higher SMW when using OOA. Tn addition, as a group, novices prefer object-oriented techniques and find these techniques easier as compared to experienced subjects.
We outline a mathematical formulation for mantle convection which can deal with the viscoelastic-plastic rheology of the cool parts of the lithosphere. This formulation is then analyzed to expose the numerical challen...
详细信息
We outline a mathematical formulation for mantle convection which can deal with the viscoelastic-plastic rheology of the cool parts of the lithosphere. This formulation is then analyzed to expose the numerical challenges inherent in the equations and a suitable solution strategy is outlined. With this strategy in place, we discuss a parallel implementation, explaining how we maintain computational efficiency, in a tiered and modular software environment. We show two examples from geodynamics which demonstrate the capability of the numerical method and its implementation. (c) 2007 Elsevier B.V. All rights reserved.
The OMG's Model Driven Architecture (MDA) is an ambitious effort to build programs from models using model transformations. The author believes that model-driven agile development is an effective software developm...
详细信息
The OMG's Model Driven Architecture (MDA) is an ambitious effort to build programs from models using model transformations. The author believes that model-driven agile development is an effective software development practice, but he has concerns about the proposed MDA. Modeling is at the core of many disciplines, but it is especially important in engineering because it facilitates communication and constructs complex things from smaller object-oriented languages. Many have viewed software development as the development and refinement of models. Models facilitate the understanding, simulation, and emulation of the artifacts under development. Depending an model paradigms and cognitive styles, engineers express models using diagrams, structured text, and storyboards of one form or another. Software modelers depend on and use engineering analogies but often fail to understand them. Software engineering welcomed the OMG's intervention, just as other, more mature disciplines have welcomed similar interventions. The good in UML is that it provides a common and useful visual notation for describing many of the software artifacts used in modern object-oriented analysis, design, and development. INSET: Related Work..
Software Engineering is a discipline that encompasses processes associated with the development of interactive systems. The perceived quality of an interactive system is heavily influenced by the user interface design...
详细信息
Software Engineering is a discipline that encompasses processes associated with the development of interactive systems. The perceived quality of an interactive system is heavily influenced by the user interface design, which may result in many challenges. One such challenge is design-level requirements analysis. The success of the software system is mostly dependent on how well users' requirements have been understood and translated into appropriate functionalities. During the interactive system design process, it is common to find recurring problems in human-computer interactions, for which reusing solutions is highly feasible. Interaction design patterns seek to support designers in decision making during the design of interactive systems. Due to the design task tends to be subjective and prone to errors. This work aims at presenting and evaluating an interaction design patterns recommendation model based on design-level requirements classification, through the application of supervised machine learning algorithms. To compare the performance of four classification algorithms, a study was carried out, in which the linear support vector machine was the most suitable to this problem. The results of this work can be used for implementing frameworks that can better support designers' decision making when designing user interfaces.
Privacy remains a major challenge today, partly because it brings together social and technical considerations. Yet, current software engineering focuses only on the technical aspects. In contrast, the authors" a...
详细信息
Privacy remains a major challenge today, partly because it brings together social and technical considerations. Yet, current software engineering focuses only on the technical aspects. In contrast, the authors" approach, Revani, understands privacy from the standpoint of sociotechnical systems (STSs), with particular attention on the social elements of STSs. They specify STSs via a combination of technical mechanisms and social norms founded on accountability. Revani provides a way to formally represent mechanisms and norms and applies model checking to verify whether specified mechanisms and norms would satisfy stakeholder requirements. Additionally, Revani provides a set of design patterns and a revision tool to update an STS specification as necessary. The authors demonstrate the work of Revani on a healthcare emergency use case pertaining to patient privacy during disasters.
Code smells are indicators of inappropriate and possibly harmful design decisions that could lead to issues in the comprehensibility and maintainability of software systems. To avoid such quality complications, unders...
详细信息
Code smells are indicators of inappropriate and possibly harmful design decisions that could lead to issues in the comprehensibility and maintainability of software systems. To avoid such quality complications, understanding the presence and prioritising the removal of code smells are required. This study presents a visualisation approach to help better understanding the evolutional characteristics of code smells presented in the different versions of the software system. The core of the visualisation approach is the metaphor of buildings and building blocks. An overall framework for detecting, categorising and visualising code smells is proposed. Three types of code smells were considered in this study. The considered code smells are God Class, Long Method and Type Checking. The applicability of the proposed approach is demonstrated by evaluating several versions of an open-source java software and visualising the detected code smells. Additionally, a pilot experimental study is conducted to empirically assure the usefulness of the proposed visualisations.
暂无评论