Browsing by Author "Wang, FJ"
Now showing 1 - 20 of 30
- Results Per Page
- Sort Options
Item type:Item, A domain-independent software reuse framework based on a hierarchical thesaurus(1998-07-10) ;Liao, HC ;Chen, MF ;Wang, FJ ;資訊工程學系Department of Computer ScienceSoftware reuse is an effective way to improve software productivity and quality. Software libraries are getting bigger, while most of them, such as those for object-oriented languages, use Simple but somewhat ineffective classification methods. These libraries typically provide search aids for novices, but not for experts. They are not flexible enough to adequately serve users with different abilities. In this paper, a Software Reuse Framework (SRF) for overcoming these drawbacks is proposed. Based on a built-in hierarchical thesaurus, the classification process can be made semiautomatic. SRF is a domain-independent framework that can be adapted to various libraries. SRF also provides four search levels to serve users with different skill levels. Two sample SRF systems* are implemented, one for Smalltalk-80 and the other for MFC 4.0 (Microsoft(R) Foundation Class) libraries. (C) 1998 John Wiley & Sons, Ltd.Item type:Item, A multi-user visual object-oriented programming environment(1998) ;Hu, CH ;Wang, FJ ;資訊工程學系Department of Computer ScienceSoftware systems are growing larger and more complex. The development of a large-scale software system usually requires the collaboration of multiple developers. This paper addresses several desirable features of a practical multi-user, visual object-oriented programming environment (mVOOPE) whose constituent components may be distributed over a long distance, unreliable communication environment such as the Internet. By incorporating three design rationales, more local processing, compact remote communication, and multithreaded collaboration, our mVOOPE makes a trade-off between performance and consistency requirements. The mVOOPE provides programming supports with two aspects: visual programming for object-oriented languages and collaborative programming for incremental software development. So far a window-based environment prototype, developed with Visual C++, executes on multiple PCs connected by the network.Item type:Item, A project model for software development(2000-05-01) ;Liang, BS ;Chen, JN ;Wang, FJ ;資訊科學與工程研究所Institute of Computer Science and EngineeringUncertainty and dynamic changes in a software project cause iterations during development and the need for decision-making in planning and controlling a project. This paper presents a Software Project Review and Evaluation Model, SPREM, a superset of CPM/PERT which extends CPM/PERT's notation to four types of vertices (AA, AX, XA, and XX vertices) to express the non-deterministic and iterative behaviors of software engineering projects. Several behavioral properties of SPREM and analysis of them are discussed. For example, the enaction capability can be used to evaluate the possibility that a vertex will enact processes beforehand. Project managers can revise a SPREM graph to rescue dead vertices before project execution. Furthermore, enaction ordering allows project managers to calculate the dependency between processes to be enacted. This might help in computing important information such as critical paths among these processes.Item type:Item, An editing system for working processes(2001) ;Chen, YS ;Wang, FJ ;資訊工程學系Department of Computer ScienceBusiness processes are often complex and varying. Workflow technologies help people minimize errors and delays in the progress of a process within an enterprise. Within a workflow management system (WFMS), a process or even a project can be specified and interpreted to work directly. In this paper, we present an editing system and its two major components, PDE and FormDesigner, for the specification of a process. PDE is a graphical editor for constructing / modifying process definition. FormDesigner assumes the responsibility of integrating software components for building / modifying active application forms. With PDE and FormDesigner, a workflow application system can be constructed / modified rapidly and easily so that WFMS is allowed to run smoothly.Item type:Item, An incremental analysis to workflow specifications(2005) ;Hsu, HJ ;Yang, DL ;Wang, FJ ;資訊工程學系Department of Computer ScienceWorkflow management technology helps modulizing and controlling complex business processes within an enterprise. Generally speaking, a workflow management system (WfMS) is composed of two primary components, a design environment and a run-time system. Structural, timing and resource verifications of a workflow specification are required to help assure the correctness of the specified system. In this paper we address an incremental methodology to analyze resource consistency and timing constraints after each editing activity of a workflow specification and to provide proper feedbacks to designer or maintainer of the workflow specification.Item type:Item, An inheritance flow model for class hierarchy analysis(1998-06-30) ;Chen, JL ;Wang, FJ ;資訊工程學系Department of Computer ScienceThis paper presents an inheritance flow model, which represents the inheritance relationships among classes as a flow graph. A flow operation is associated with each attribute and method in a class to denote the defined (redefined) or inherited member. An inherited member can be deemed as being handled by a sequence of how operations along a path in the flow graph. This model provides several analyses in a class hierarchy, such as implicit inherited member and polymorphic method invocation. These analyses may be applied in various fields of software engineering, such as static analysis, maintenance, and complexity measurement. (C) 1998 Elsevier Science B.V. All rights reserved.Item type:Item, An object-oriented dependency graph for program slicing(1998) ;Chen, JL ;Wang, FJ ;Chen, YL ;資訊工程學系Department of Computer ScienceProgram dependency graphs (PDG's) of a program facilitate program analysis and related applications such as program slicing, a method to identify the relevant entities of the program according to data and control dependencies. In the past, PDG's and program slicing were most developed for (conventional) imperative programs. Recently, the object-oriented (OO) paradigm gained momentum and popularity. The OO paradigm introduces the features of object abstraction, encapsulation, inheritance, and polymorphism to programs, but is not considered in PDG's and program slicing. In this paper, we present an Object-Oriented Dependency Graph (ODG) to represent the structure of OO programs. The ODG is defined based on a property multi-digraph that is extended from a directed graph by augmenting multiple edge types, vertex properties, and property relations. With the extension, the ODG cart avoid the specious dependencies due to object encapsulation. Based on the ODC, a program slicing method for OO software is developed. Besides data and control dependencies, dependencies caused by OO features are taken into consideration in our slicing method. Through the ODG, the slicing method might be applied to facilitate understanding debugging, and maintaining OO software as well as traditional program slicing methods do.Item type:Item, An object-oriented model for protocol design(1998) ;Yan, SB ;Wang, FJ ;資訊工程學系Department of Computer ScienceAsynchronous Transfer Mode (ATM) has been selected as the core technology in high speed networks. This paper presents an object-oriented model OOATM for the development of ATM protocols. The model consists of four kinds of entities: (I) interface entities provide service primitives to upper layer and generate the corresponding protocol data unit (PDU), (2) connection entities manipulate communication services, (3) state entities deal with state transitions and the corresponding services, and (4) message entities describe the format and contents of the Protocol Data Unit(PDU) in a protocol. We have constructed a class library for these entities and the paper presents an approach to construct an ATM protocol with the library. An example of constructing a Signalling protocol shows that this approach provides a high level modeling, and reusability.Item type:Item, Constructing a toolset for software maintenance with OOAG(1998) ;Hu, CH ;Yang, JT ;Wang, FJ ;Chu, WC資訊工程學系This paper presents a model called object-oriented attribute grammar (OOAG) that can be used to construct a toolset for software maintenance. The kernel of OOAG consists of two inter-related parts: a model-view-shape (MVS) application framework and an AG++, an object-oriented extension to traditional AGs. By combining compositional and generative techniques seamlessly, OOAG preserves both advantages introduced by respective OO and AG models, such as rapid prototyping, reusability, extensibility, and incrementality. So far, a toolset prototype consisting of a number of programming and maintenance tools were implemented using OOAG on the Windows environment. The editors developed can be used to construct programs by specifying the associated flow information in explicit (visual) or implicit (textual) ways, while the (incremental) maintenance tools, such as DU/UD tools and a program slicer, can help analyze incomplete program fragments to locate and inform the user of useful information.Item type:Item, Constructing an EJB application in a WFMS(2002) ;Wang, JW ;Lin, TC ;Hsu, HJ ;Wang, FJ資訊工程學系A workflow system provides enterprises the automatic and paperless process management. The idea of Enterprise JavaBeans (EJB) is to utilize components from various vendors to construct an application, which has the characteristics of scalability, security, distributed, and fast development. In the paper, an EJB module and the enterprise beans are implemented. Workflow designer may use this module to invoke the business methods defined in the enterprise bean on the outer application server. The EJB module may facilitate the component development of a workflow system, and reuse the existing components to fulfill the function needed.Item type:Item, Constructing an integrated visual programming environment(1998-06-01) ;Hu, CH ;Wang, FJ ;資訊工程學系Department of Computer ScienceThis paper presents an object-oriented architecture, called the Model-View-Shape (MVS) architecture, for constructing an Integrated Visual Programming Environment (IVPE), whose constituent tools deal with (fine-grained) language semantics, as well as a mass of graphics-drawing activities. This architecture enforces a layered and loosely-coupled structure, so that the user-interface part of components may be more independent, maintainable, and reusable than those proposed in the original model-view-controller architecture. An MVS class hierarchy, systematically constructed using C++, can be reused and extended with new semantics to rapidly develop new tools for an existing IVPE, or even an IVPE supporting more than one language, The present editors developed can be used to construct programs by specifying the associated flow information in explicit (visual) or implicit (textual) ways, while the (incremental) flow analysers can help analyse incomplete program fragments to locate and inform the user of possible errors or anomalies during programming. (C) 1998 John Wiley & Sons, Ltd.Item type:Item, Constructing an object-oriented architecture for Web application testing(2002-01-01) ;Yang, JT ;Huang, JL ;Wang, FJ ;Chu, WC資訊工程學系The variety of existing web application frameworks has lead to the development of a wide range of Web applications for both the Internet and intranets. Web applications are constructed based on various frameworks ranging from simple HTML-based forms to complicated distributed-object computations based on Java and CORBA. Web software enables programmers to choose a proper framework for their own Web applications. The prevalence of Web-based applications has also led to the need to adapt software testing frameworks and tools for them, This study presents a software testing architecture that integrates several common but enhanced testing tools as a sub-architecture to fit a common Web application framework. The architecture reuses several software patterns and architectures from traditional testing environments. A Web application testing environment prototype is also constructed to demonstrate the feasibility of the proposed architecture.Item type:Item, Constructing flow-based tools with generative and compositional techniques(2000-04-01) ;Yang, JT ;Wang, FJ ;Chu, WC ;Hu, CH資訊科學與工程研究所In this paper, a model called object-oriented attribute grammar (OOAG), which combines both compositional and generative techniques, is presented to effectively construct flow-based tools that deal with fine-grained language semantics as well as a mass of graphics-drawing activities. OOAG, which consists of two interrelated parts: a model-view-shape (MVS) class framework and an AG++, an object-oriented extension to traditional AGs, is intended to preserve both advantages introduced by respective OO and AG models, such as rapid prototyping, reusability, extensibility, incrementality, and applicability. So far, a flow-based editor associated with two flow-analyzer prototypes, DU/UD tools and a program slicer, have been implemented using OOAG on the Windows environment. Our flow-based editor can be used to construct programs by specifying the associated flow information in a visual way, while (incremental) flow analyzers incorporated into the editor can help analyze incomplete program fragments to locate and inform the user of possible errors or anomalies during programming.Item type:Item, Design patterns for parallel computations of master-slave model(1997) ;Huang, KC ;Wang, FJ ;資訊工程學系Department of Computer ScienceThis paper presents two design patterns useful for parallel computations of master-slave model. These patterns are concerned with task management and parallel and distributed data structures. They can be used to help address the issues of data partition and mapping, dynamic task allocation, and load balancing in parallel programming with the benefit of less programming efforts and better program structures. The patterns are described in object-oriented notation, accompanied with illustrative examples in C++. We also provide our experience in applying these. patterns to two scientific simulation programs simulating Ising model and plasma respectively. Since master-slave model is a widely used parallel programming paradigm, the design patterns presented in this paper have large potential application in parallel computations.Item type:Item, Enacting a software development process(1997) ;Chen, MF ;Liang, BS ;Lin, RJR ;Wang, FJ交大名義發表A good process management system helps the project members develop software projects. This paper introduces a Software Process Engineering Environment, SPEE. In SPEE, the process designer designs the process definition and project plan in a Process LANguage, PLAN, under a Process Definition Editor, PDE. A software project is developed on a Process Aided Software process enactment Environment, PASE. PASE provides development guidance, activity enforcement, process automation, tool invocations, and execution feedback for process enactment. SPEE, composed on PDE, PLAN, and PASE, provides helps from the plan to the end of a software project.Item type:Item, Encapsulation in object-oriented programs(1996-07-01) ;Chen, JL ;Wang, FJ ;交大名義發表 ;資訊科學與工程研究所National Chiao Tung UniversityItem type:Item, Flow analysis of class relationships for object-oriented programs(2000-07-01) ;Chen, JL ;Wang, FJ ;資訊工程學系Department of Computer ScienceProgram analysis techniques have been widely applied in various fields of software engineering, such as debugging, testing, and proof of simple correctness properties. In object-oriented (OO) programs, inheritance, association, and aggregation relationships may introduce complicated dependencies concealed within classes that might obstruct program analysis. This paper proposes a class relationship flow models to provide analysis for inheritance, association, and aggregation of class relationships. The flow model consists of three flows, inheritance, association, and aggregation flows, corresponding to these relationships. A sequence of class relationships is represented as a flow path from one class to another. Along a flow path, each member within a class is associated with an operation, define or use, to represent whether its status is changed or referenced. Thereby, the concealed dependencies introduced by class relationships can be analyzed according to the flow operations. The analysis might be used as a technique for program understanding, anomaly detection, and program testing.Item type:Item, Intention scheduling for BDI Agent Systems(2005) ;Lin, ZN ;Hsu, HJ ;Wang, FJ ;資訊工程學系Department of Computer ScienceBDI is one of the models in Agent Systems. Currently, most of BDI agents' researches are focused on the ability for agents to dynamically select plans to achieve a goal. There are fewer discussions on Intention Scheduling, the order in which the selected plans are executed Agents must adapt to dynamical and unpredictable changes. Without a proper scheduling scheme, an agent may repeat unnecessary works, waste valuable resource or even jail the users' expect altogether. In this paper, we present an effective intention-scheduling scheme in BDI reasoning process, to make BDI agents more efficient and suitable for execution.Item type:Item, Intention scheduling for BDI agent systems(2005-01-01) ;Yan, SB ;Lin, ZN ;Hsu, HJ ;Wang, FJ資訊工程學系BDI is one of the models in Agent Systems. Currently, most of BDI agents' researches are focused on,the ability for agents to dynamically select plans to achieve a goal. There are fewer discussions on Intention Scheduling, the order in which the selected plans are executed. Agents must adapt to dynamical and unpredictable changes. Without a proper scheduling scheme, an agent may repeat unnecessary works, waste valuable resource or even fail the users' expect altogether. In this paper, we present an effective intention-scheduling scheme in BDI reasoning process.Item type:Item, Iterators: Taxonomy, strength, weakness, and efficiency(2003-09-01) ;Wu, PC ;Wang, FJ ;資訊工程學系Department of Computer ScienceIteration is an operation that traverses the objects of a collection object. Iterators are operators/methods widely used for iteration on a collection of objects. However, iterators were considered to be ad hoc and to be a sign of weakness in object-oriented programming languages. There is a need to formalize iterators and to study their strength and weaknesses. In this paper we first propose a taxonomy of iterators based on the number of data states and the number of control points. The taxonomy identifies four categories of iterators. The simplest one can be implemented straightforwardly in an object-oriented language. Iterators of other categories need transformations and are more difficult to design and implement. Finally, we compare the efficiency of iterators with other implementations of iteration. The results show that all iteration techniques tested, including iterators, have been well optimized and are almost as fast as directly coded loops using recent C++ compilers.