Lesson Archives

  1. ABSTRACT It is beneficial to apply functional refinement in Object-Oriented (OO) software development. This paper proposes a method that enhances our earlier method to complement existing OO methods for realizing uses-cases through functional refinement. With the use of an augmented data flow diagram (DFD), called DFD+, the proposed method bridges functional refinement and OO decomposition systematically and precisely. In the requirements analysis stage, the method realizes use-cases through functional refinement and specifies them in DFD+s. In the design and implementation stages, it transforms the DFD+s systematically and precisely into OO design and implementation. It is seamless to realize more complex use-cases using the proposed method and the remaining using any existing OO methods. The method is amenable to automation and a prototype has been developed to support the transformation process. We have also validated the method through case studies.

  2. ABSTRACT In this paper we present our suggested method for applying performance design patterns within the software development cycle. Our approach suggests that performance quality attributes identified during the business analysis phase should be planned for during the system architecture activity by incorporating design patterns grouped in design models. Our industrial experience in applying some or all of the performance design patterns that we developed is also cited as an example of their applicability.

  3. ABSTRACT As mobile devices become more affordable and powerful, new families of applications are built to utilize the mobility of such mobile computing resources. Some of the most appealing and profitable kinds of applications in mobile and pervasive computing nowadays are location based service applications. In this article, we tackle such applications from a software engineering perspective, and propose an architecture for building location based service applications suitable for pushing data and advertisements to mobile devices as such devices become into proximity with service providers. Our proposed architecture is independent of any communication protocol, and as different communication mechanisms arise, the architecture still remains valid. We explain the architecture in detail, including its various subsystems, and eventually demonstrate an application prototype that was built using the proposed architecture as a reference.

  4. ABSTRACT Software Stability Modeling (SSM) is a promising software development methodology based on object-oriented programming to achieve model level stability and reusability. Among the three critical categories of objects proposed by SSM, the business objects play a critical role in connecting the stable problem essentials (enduring business themes) and the unstable object implementations (industry objects). The business objects are especially difficult to implement and often raise confusion in the implementation because of their unique characteristics: externally stable and internally unstable. The implementation and code level stability is not the major concern. How to implement the objects in a stable model through object-oriented programming without losing its stability is a big challenge in the real software development. In this paper, we propose new methods to realize the business objects in the implementation of stable model. We also rephrase the definition of the business objects from the implementation perspective, in hope the new description can help software developers to adopt and implement stable models more easily. Finally, we describe the implementation of a stable model for a balloon rental resource management scope to illustrate the advantages of the proposed method.

  5. ABSTRACT The objective of this paper is to describe a reliability and availability analysis methodology for a continuously running, concurrent application. We propose a state space approach to represent the architecture of a concurrent application, which is then mapped to an irreducible discrete time Markov chain (DTMC) to obtain architectural statistics. We discuss how the application architecture can be extracted from profile data to facilitate the use of our methodology to analyze the reliability of practical software applications. We illustrate the methodology using a case study of a MRSS news ticker application. The state space explosion issue which may arise in the practical application of the methodology is then discussed and methods to alleviate the issue are suggested. To the best of our knowledge, this research is one of the first steps in pushing the state of the art in architecture based software reliability analysis from sequential to concurrent software applications.

  6. ABSTRACT This paper describes a model-based software design method for real-time embedded systems. When designing concurrent and real-time systems, it is essential to blend object-oriented concepts with the concepts of concurrent processing. This paper describes a model-based software design method for designing real-time embedded systems, which integrates object-oriented and concurrent processing concepts and uses the UML notation.

  7. ABSTRACT As a consequence of the growing customer orientation of business, organizations are now showing a big interest in the development of technological solutions that allow them both to offer a quick respond to their customers and procuring operational efficiency. In this sense, SOA can be seen as a mechanism to help achieve the alignment of business goals and objectives with technology capability. SOA benefits an organization by abstracting business services from the specific technologies they are developed with. However, to translate SOA benefits into successful software development projects, well defined processes to develop software from business processes are needed. To achieve this, simulation modeling techniques can be useful tools since they make it possible to model and improve both business processes within organizations and their service-oriented development process. This paper presents a set of domains in service-oriented development where simulation modeling can be applied and discusses the benefits of this application. These domains are also related with the different phases of a general SOA lifecycle. An overview of the main works in this field is also included.

  8. ABSTRACT In the reverse engineering of a software program, one of the key difficulties is actually to understand the software. While the published techniques work top down or bottom up, our approach works middle-out: before trying to understand the low level code, we first rebuild a hypothetical analysis model from the use cases of the system. This model then represents the target of the understanding task. In fact we try to map the code elements to the analysis objects. For this approach to be useable in large industrial software systems, it must be supported by a powerful tool. This paper presents the Eclipse plug-in we developed to support our methodology, as well as a reverse engineering scenario using this tool. We then discuss the technology we used and the result we obtained.

  9. ABSTRACT Standard debuggers are usually limited in the amount of analysis that they perform in order to assist with debugging. This paper presents UDB, an agent-oriented source-level debugger for the Unicon programming language with a novel architecture and capabilities. UDB combines classical debugging techniques such as those found in GDB with a growing set of extension agents. UDB demonstrates the feasibility of a source-level debugger built on top of a very high level event-based monitoring framework. The debugger is easily extended with new debugging agents that can employ a wide range of automatic debugging and dynamic analysis techniques.

  10. ABSTRACT A computer network intrusion detection and prevention system consists of collecting network traffic data, discovering user behavior patterns as intrusion detection rules, and applying these rules to prevent malicious and misuse. Many commercial off-the-shelf (COTS) products have been developed to perform each of these tasks. In this paper, the component-based software engineering approach is exploited to integrate these COTS products as components into a computerized system to automatically detect intrusion rules from network traffic data and setup IPTables to prevent future potential attacks. The component- based software architecture of this kind of system is designed, COTS components are analyzed and selected, adaptor components to connect COTS products are developed, the system implementation is illustrated, and the preliminary system experiment is presented.