Towards Reusable Intelligent Scheduling Software

Size: px
Start display at page:

Download "Towards Reusable Intelligent Scheduling Software"

Transcription

1 Towards Reusable Intelligent Scheduling Software Jürgen Dorn Institut für Informationssysteme Technische Universität Wien Paniglgasse 16, A-1040 Wien Abstract Production scheduling plays a key enabling technique in improving the efficiency of modern production enterprises facing the international competition. Although the trend of software development for business application demands standard software, there exist no standard scheduling software package that can be applied to these applications. In this paper a special architecture based on object-oriented application frameworks and AI-reasoning methods is proposed as a mean to narrow this gap. 1 Motivation Modern production management has to face considerable organizational problems due to the shifting from mass production to more specialized small lot-size production. The production of smaller lot sizes and the requirements for fast reactions to market demands poses a manifold of constraints on the usage of available resources on the shop-floor level. To be competitive in the global market, companies must especially solve the efficient coordination in their production to avoid as much as possible of the so called hidden costs. The coordination of all activities that have to be performed to fulfill a customer s order are a key process to eliminate these costs. Due to the diversity of products as well as the diversity of required resources such as human resources, machines, energy, and others, it becomes impossible to realize such scheduling systems with standard software. Each production unit is unique and requires dedicated solutions and moreover, it will change due to new production technologies available and changing market demands. Further, typically scheduling problems are NP-hard problems that cannot be solved easily. Knowledge-based scheduling systems were proposed to solve these knowledge-intensive problems (Fox 1987). However, such systems were commercially not as successful as expected. Although some systems were successful fielded (e.g. Dorn and Shams 1996), the effort to build them is high and moreover, they inhibit some drawbacks in system maintenance. A promising new software engineering technique are so called object-oriented application frameworks that offer reusable semi-complete applications that can be specialized to produce custom applications. An application framework is based on a domain analysis that states the basic assumptions on a number of related applications. The main inputs to a domain analysis are general theories of the domain and existing applications. In the following different techniques to support reuse of software are discussed. Two of these approaches rely on a domain analysis. The scheduling domain is then analyzed and a reusable framework able to incorporate theories of knowledge-based systems is presented

2 2 Reuse Techniques There are several techniques available that support the reusability of software. Three approaches namely high-level languages application generators object-oriented application frameworks are presented in more detail here. Further approaches that seem to be not so important for scheduling are discussed in (Krueger 1992). 2.1 Reuse by High-level Languages High-level languages provide certain features that facilitate the description of scheduling problems on a high level of abstraction. By using such a language a developer must not consider certain implementation details and the cognitive distance between the problem and the formalization is smaller (Krueger 1992). Parts of the problem solving process may already be available by the system that interprets the high-level language. For scheduling problems three approaches exist that can be classified high-level language. Integer or mixed-integer programming (Garfinkel and Nemhauser 1972) is a high-level language in which optimization problems can be expressed by mathematical equations and inequations. This approach developed in the field of Operations Research is very general. There is a sizable body of literature which suggests solving scheduling problems by recasting them as integer programs. These recast problems may be solved by standard algorithms, which have been developed for solving general mathematical programs. A huge body of research has resulted in many improvements and very efficient algorithms for the integer programs over the last decades. Hence, translating a scheduling problem into an integer program, solving this program and translating the solution back, we obtain optimal schedules. Stated simply, this sounds a very promising approach; in practice it is not, because the standard mathematical programming algorithms are practically applicable only to small problems. Furthermore, to translate a problem profound mathematical background is necessary. Although existing standard programs apply general heuristics, it is always a considerable problem to apply domain heuristics in this approach. The second important approach is constraint satisfaction. Starting with the research of Fox (1987) many systems were developed based on this approach. The constraint satisfaction model allows a very natural description of scheduling problems especially the declarative description of legal schedules. Many improvements were made over the years so that today problems with thousands of variables can be solved in an acceptable time frame. Although constraints are a very natural concept for scheduling problems, one type of knowledge is not so easy to be represented by crisp constraints. In most scheduling problems there are one or more optimization functions. Several researchers have shown how constraint satisfaction techniques can be applied to single criteria optimization problems. However, the optimization function is not anymore declarative represented and the representation of multiple criteria is not addressed in these investigations. Another approach is constraint optimization in which constraint satisfaction plays a subordinate role. For example in our approach (Dorn and Slany 1994) and (Dorn et al. 1996) - 2 -

3 hard temporal constraints are handled implicitly by a specialized reasoning technique. They are considered as so fundamental for scheduling problems so that they are not a base of variation between different applications. Soft constraints are represented explicitly and they are a matter of optimization. The drawback of all high-level languages is that they all are designed only to solve the combinatorial scheduling problem. There are other aspects that must be handled by scheduling systems. Most important is the interaction with the user of the scheduling system. In most complex industrial applications the problem formalization can only be an abstraction because the reality is so complex and many aspects are unknown during the development of a system. Thus the user must always be able to overrule the system and change solutions proposed by the system. On one side this means that the system has to visualize its solutions in an appropriate fashion and on the other side the solution must be easy manipulatable by the user. Since the software is able to check for constraint violations more reliable than the human user, it should visualize also constraint violations to the user. Other aspects not addressed by the high-level languages is the interface to the environment and that of reacting to disturbances in the actual production process (i.e. reactive scheduling) Application Generators Application generators operate like programming language compilers input specifications are automatically translated into executable programs (Cleaveland 1988). Application generators differ from traditional compilers in that the input specifications are typically very highlevel, special purpose abstractions from a very narrow domain. By focusing on a narrow domain, the code expansion in application generators can be one or more orders of magnitude greater than code expansion in programming language compilers. In application generators, algorithms and data structures are automatically selected so that the software developer can concentrate on what the system should do rather than how it is done. That is, application generators clearly separate the system specification from its application. At this level of abstraction, it is possible for even non-programmers familiar with concepts in an application domain to create software systems (Horowitz et al. 1985). Application generators are appropriate in application domains where many similar software systems are developed a software system is modified many times during its lifetime or many prototypes of a system are necessary to converge on a usable product. In all of these cases, significant duplication and overlap results if the software systems are built from scratch. Application generators generalize and embody the commonalties, so they are implemented once when the application generator is built and then reused each time a software system is built using the generator. Application generators were developed very successful for high-level report generation, data processing, database management and data display techniques. In close relation to the scheduling domain is domain of the SAP R/3 standard software package which uses also the concept of application generators. Krueger (1982) also classifies expert system shells as a kind of application generator. Instead of reusing algorithms, expert system development with such shells focuses on reusing - 3 -

4 common expert problem-solving methods. Thus diagnosing methods are applied for medical problems as well as for car maintenance. Several researchers have tried to identify such problem solving methods also for scheduling applications. However, it seems that there are no standard expert problem solving methods in scheduling. The main problem in scheduling is the inherent combinatorial complexity and problem solving methods must mainly address this complexity. In scheduling research a so called tool box approach were investigated by several researchers (e.g., Sauer et al. 1997). These systems try to provide all necessary data structures, algorithms and heuristics to the developer in a library from which the developer may select the appropriate ones. Although theoretically promising, the problem with this approach is that the developers of the tool-box must foresee which data structures and heuristics will become necessary eventually. 2.3 Object-oriented Application Frameworks Object-oriented application frameworks are a technology for reifying proven software designs and implementations in order to reduce the cost and improve the quality of software. A framework is a reusable, semi-complete application that can be specialized to produce custom applications (Fayad and Schmidt 1997), (Fayad et al. 1998). In contrast to earlier object-oriented reuse techniques based on class libraries, frameworks are targeted for particular application domains. The primary benefits of object-oriented application frameworks stem from the modularity, reusability, extensibility, and inversion of control they provide to developers. Frameworks enhance modularity by encapsulating volatile implementation details behind stable interfaces. Framework modularity helps improve software quality by localizing the impact of design and implementation changes, which reduces the effort required to understand and maintain existing software. The stable interfaces provided by frameworks enhance reusability by defining generic components that can be reapplied to create new applications. Framework reusability leverages the domain knowledge and prior effort of experienced users in order to avoid re-creating and revalidating common solutions to recurring application requirements and software design challenges. Reuse of framework components can yield substantial improvements in programmer productivity, as well as enhancing the quality, performance, reliability, and interoperability of software. A framework enhances extensibility by providing explicit hook methods (Pree 1994) that allow applications to extend its stable interfaces. Hook methods systematically decouple the stable interfaces and behaviors of an application domain from the variations required by instantiations of an application in a particular context. Framework extensibility is essential to ensure timely customization of new application services and features. The run-time architecture of a framework is characterized by an inversion of control. This architecture enables canonical application processing steps to be customized by event handler objects that are invoked via the framework s reactive dispatching mechanism. When events occur, the framework s dispatcher reacts by invoking hook methods on pre-registered handler objects, which perform application-specific processing of events. Inversion of control allows the framework (rather than each application) to determine which set of application-specific methods to invoke in response to external events

5 3 Domain Analysis Both approaches, application generators as well as application frameworks rely on a thorough analysis of the application domain. A domain analysis is the process of identifying, collecting, organizing, and representing the relevant information in a domain to support reuse of software artifacts for systems to be built in this domain. The term was first introduced by Neighbors (1989). Domain analysis is based on the study of existing systems and their developing histories, knowledge captured from domain experts, and existing domain theory. Common objects and operations are likely to occur in multiple applications within a domain and thus are candidates for reusable components or classes. A domain is analyzed by studying several of its representative systems and by developing an initial view of the structure and functionality of these systems. During software development, information of several kinds is generated. One of the objectives of domain analysis is to make all this information readily available. When familiarity with the domain has been achieved and the representative systems are understood, information used in developing these systems as well as their common and variable parts are identified, captured and organized for later reuse in developing new systems in that domain. Domain analysis stresses the reusability of analysis and design, not code. This is done by deriving common architectures, generic models or specialized languages that substantially increase the power of the software development process in the specific problem area of the domain. Domain analysis can be seen as a continuing process of creating and maintaining the reuse infrastructure in a certain domain. A vertical domain is a specific class of systems such as the domain of scheduling systems. A horizontal domain contains general software parts being used across multiple vertical domains. Examples of horizontal reuse are operating system interfaces or string handling functions. Domain specific reuse is usually accomplished by separating domain engineering and application engineering. The goal of domain engineering is to identify objects and operations of a class of similar systems in a particular domain. Typical activities in domain engineering are domain analysis, architecture development, reusable component creation, component recovery, and component management. Application engineering means software engineering taking the results of the domain engineering process into consideration, i.e., identifying reuse opportunities and providing feedback to the domain engineering process. 4 Analysis of the Scheduling Domain In the following the scheduling domain is analyzed briefly and some of the core objects of any scheduling system are introduced. These objects can be realized in a framework as abstract classes as was done in DÉJÀ VU (Dorn et al. 1998). This analysis model is used later to show the application and reusability of intelligent reasoning techniques. We do not consider here the user interface or the interface to other applications which are of course also very important. 4.1 Order, Product, and Process Plan If we consider a typical scheduling process, the first object to be handled is an order. An order describes what shall be produced. Thus it must reference one or more products to be - 5 -

6 produced and some information how this product may be produced i.e. a process plan. Products often are aggregated from different parts that must be handled differently during the production. Thus in the general case, we model a product as an object composed of different parts where a part may be itself a composite object. The composite design pattern (Gamma et al. 1995) can be used to model such products. Furthermore, an order may contain itself a group of products. Orders must be distinguished in client orders and production orders. A client order describes an order of one client that may contain several products that may not be produced together because some technological or efficiency constraints will prohibit this. A production order may also contain different products but these must be compatible (i.e. they must be producable together). Orders may also be grouped to reflect that they should be produced together because they are all compatible. Again, the composite design pattern is used here. The process plan describes a number of operations that must be performed on certain resources. It contains temporal information on the duration as well as knowledge about allowed sequences. Furthermore, allowed intermediate time periods when the product must wait or is stored in intermediate storages are described in process plans. 4.2 Resources One of the main concepts in scheduling is that of a resource. Resources are required to perform certain operations that are applied in order to produce some ordered product. From the view of an application many resources must be distinguished such as machines, tools, energy, personnel, and many more. Sometimes these resource types must be differenced still more to model certain characteristics of the resources. However, from the scheduling point of view the differences are not so great. To elicitate this differences we must investigate what a scheduling algorithm needs a resource for. A scheduling algorithm as well as a human scheduler will place operations on the resource giving them either a fixed starting point or some allowed time frame, when this operation is to be performed. Often the availability of the resource is restricted because the plant where the resource is located operates in a two-shift mode, holidays must be considered, or some breakdown or a maintenance period is to be considered. Such temporal availability should not lead to different resources but to configurable resources. Thus, resources have a calendar to describe their availability. From the scheduling point we can distinguish resources that allow only one operation at a time to be allocated and resources that can be used for more than one operation. For example available storage can be used for different products leading to different allocations with overlapping time intervals. In principle, resources that can handle only one operation at a time and the others can be managed with the same methods. However, the reasoning will be much more efficient when we define different allocation methods for both types. Thus, we identify non-sharable resources and sharable resources. Another type or resource that plays an important role are groups of resources. If we define such groups as an own type of resource we can easily define hierarchies where groups contain again groups. A resource group is necessary if a number of similar resources exist in an application. Then it will be a subproblem of the scheduling problem to find the best resource in the group for a given order (i.e. a routing problem)

7 4.3 Job and Allocation A job describes the performance of operations to fulfill a given order. Each operation is mapped to a so called allocation representing the association between an operation, a resource, and a time interval when the operation shall be performed. Jobs can also be grouped like orders. A job has a starting and a finishing time. Further attributes that may be present are a due date, release date, and more. Both objects are abstract objects that are used in every scheduling applications. For example, a job is scheduled or two jobs may be exchanged in a schedule. Consequently, there is an abstract job defined that can be refined for a certain application to reflect specialized characteristics of jobs in this application. The same holds for allocations that are put on resources and may be shifted, swapped or moved on a resource or in some cases also moved to another resource. 4.4 Schedule and Soft Constraints A schedule can now be seen as a number of resources to be filled with operations (allocations). Different schedule types should be distinguished to reflect different problem types. In scheduling theory (e.g. French 1982) job-shop and flow-shop scheduling are differentiated. In a flow-shop the resources are used for all orders in the same sequence. This reduces the combinatorial complexity some what and if we are to build a new application it is wise to apply specialized algorithms for a flow shop if appropriate. If schedules (i.e. solutions to a scheduling problem) shall be evaluated, different aspects must be measured. This can be done by soft constraints that are evaluated individually. The evaluation of all constraints associated with a schedule can then be aggregated in order to have a measure for the quality of the schedule. Although all constraints shall be aggregated into one measure, it makes sense to distinguish further some abstract types according to their appearance. So we distinguish between job constraints, allocation constraints, resource constraints and schedule constraints. The associated objects such as job and resource are now responsible for the creation, modification, and deletion of constraints whereas the scheduling object is responsible for computing the overall evaluation. A typical application dependent constraint is for example a tardiness constraint that evaluates how well a due date of a job is satisfied in a schedule. The creation is initiated by a job that has a due date and if the job s finishing time is changed, it must also adjust the evaluation of the constraint. A schedule is, however, responsible to consider this value in the aggregated evaluation. 4.5 Scheduling Task and Schedule Improvement A scheduling task models potential modifications in a schedule. Some scheduling tasks describe methods how a job can be inserted into a schedule. Other tasks are used to model such modifications as moving allocations or jobs in the schedule. In principle, all actions a user should be able to do in a schedule should be modeled by such a task. A scheduling task follows the command design pattern (Gamma et al. 1995) thus supporting a common behavior of undoing and redoing actions. This design supports also the so called iterative improvement methods (Dorn 1995). This methods are based on the definition of a neighborhood of a schedule. A neighborhood can be generated by a method that decides which scheduling tasks are applicable on a given schedule. These methods are dependent on the type of the schedule, - 7 -

8 5 Incorporation of Knowledge and Knowledge-based Techniques The proposed architecture can be seen as a two-level architecture where the basic level applies techniques that come from model-based expert systems. For example, temporal consistency algorithms are applied to secure that schedules that are produced are always legal schedules. Also consistency of capacitive constraints are handled on this level. This level also provides generic methods to construct schedules such as explicit enumeration and branchand-bound search techniques. The drawback of such model-based techniques is that they are usually very complex, because most scheduling related algorithms are intractable in theory. For example, the branch-and-bound algorithm can only solve scheduling problems of a very restricted size. Thus, if we know certain simplifications or a heuristic appropriate for a subdomain or an application, we refine in derived classes the model-based behavior to enable acceptable response times of the scheduling system. Although such heuristics are applied we can still use some consistency mechanisms to enforce that produced solutions are legal. 5.1 Application-dependent Knowledge Some objects identified in the domain analysis will have very specialized attributes that cannot be foreseen in a domain analysis. Thus, if a new application is to be built this knowledge must be modeled in derived classes. One object for such a derivation is the order object. For almost every application a new order class has to be defined. One method that must be realized always is a read-method that knows how the order is to be read from a certain media. The objective is now that as few other classes of the framework as possible are dependent on such a derivation. The abstract factory design pattern (Gamma et al. 1995) helps to locate such changes to the single class. This means the derived order class acts as the concrete factory that has to construct appropriate objects required somewhere in the framework. Of course, object-oriented techniques are also an important means to localize such changes. For example, compatibility of orders plays an important role in the subdomain of steel scheduling. Thus an abstract steel order is derived that provides an interface containing a method that determines the compatibility of orders. Of course, this cannot realized for abstract steel orders. However, by declaring the method as pure virtual in a C++ realization, the developer of a new application will be forced to define this method if s/he wishes to derive an order from the steel order. 5.2 Scheduling Heuristics Since scheduling is usually an intractable problem heuristics are necessary in scheduling to find good schedules. We can identify different places where heuristics can be applied. The first kind of heuristic is used to select an order from the list of given orders to schedule it then. This heuristic can be based on the characteristic of the given orders or on the situation of the already scheduled orders. We may select first orders that are urgent or those that are difficult to be scheduled. A resource-oriented heuristic would select first these orders that are to be scheduled on resources that are identified as bottleneck resources. In the MakeHeuristicSchedule -method of the general scheduler class we define a general skeleton how a schedule can constructed heuristically. This method calls methods to select the most important order or to detect a bottleneck. In the derived scheduler class, we may either - 8 -

9 overwrite the called methods to reflect appropriate heuristics of an application or if necessary we may overwrite the MakeHeuristicSchedule -method. 5.3 Heuristics in Schedule Improvement We have defined several iterative improvement techniques such as tabu search or simulated annealing that can optimize given schedules. These techniques rely on the definition of scheduling tasks. Thus, for a new application we must define which tasks are appropriate. For certain types of schedules default tasks are defined. However, there is a great number of possible tasks and the efficiency of the improvement techniques rely on the size of the neighborhood. In the abstract core classes large neighborhoods are generated, because all defined scheduling tasks are tried in order to find a good neighbor. For tabu search where the whole neighborhood is investigated this means a great effort to find the best neighbor. For simulated annealing where only single neighbors are evaluated this large neighborhood means that the acceptance of bad schedules is relative high. These drawbacks can be improved by applying application dependent heuristics. Thus, we define a general ApplicableTasks -method in a flow-shop schedule and refine this method in an application schedule. 6 Discussion We have argued that for the requirements in modern production processes application frameworks are more suitable than high-level languages such as an explicit constraint satisfaction model because overhead to field such systems in actual applications is still to immense. Furthermore, it seems that for a domain such as scheduling where a great variation between applications exist, an application generator will be insufficient because not all required features can be forseen during the development of the generator. If such an approach shall be taken, the domain must be restricted more. The generator approach as well as the framework approach rely on a thorough analysis of the domain at hand. We have presented a reduced domain analysis. A complete analysis is in preparation, but this analysis still needs some input from other applications. We have a good overview on the scheduling theory, but it was detected in our application for the steel industry that in an application much more details have to considered than in theory is treated. Therefore this paper should also be understood as a discussion base to widen our focus on other scheduling applications. 7 References Cleaveland, J. C. (1988) Building application generators, IEEE Software 5 (4) pp Dorn, J. and Slany, W. (1994) A Flow Shop with Compatibility Constraints in a Steel making Plant in Zweben and Fox(eds) Intelligent Scheduling, Morgan Kaufmann, pp Dorn, J. and Girsch, M. (1994) Genetic Operators Based on Constraint Repair, ECAI 94 Workshop on Applied Genetic and other Evolutionary Algorithms, Amsterdam, August 9. Dorn, J. (1995) Iterative Improvement Methods for Knowledge-based Scheduling, AICOM Journal, pp March

10 Dorn, J., Girsch, M., Skele, G., and Slany, W. (1996) Comparison of Iterative Improvement Techniques for Schedule Optimization, European Journal of Operational Research, pp Dorn, J. and Shams, R. (1996) Scheduling High-grade Steel Making IEEE Expert February, pp Dorn, J., Girsch, M. and Vidakis, N. (1998) DÉJÀ VU A Reusable Framework for the Construction of Intelligent Interactive Schedulers, Advances in Production Management Systems - Perspectives and Future Challenges -, Okino et al. (eds.) Chapman & Hall, pp Fayad, M.E. and Schmidt, D.C. (1997) Object-Oriented Application Frameworks, Communications of the ACM 40 No. 10, pp Fayad, M.E., Schmidt, D.C., and Johnson, R.E. (1998) Object-Oriented Application Frameworks: Implementation and Experience, Wiley N.Y. Fox, M. S. (1987) Constraint-Directed Search: A Case Study of Job-Shop Scheduling, London: Pitman. French, S. (1982) Sequencing and Scheduling An Introduction to the Mathematics of the Job-Shop, Chichester: Ellis Horwood. Gamma, E., Helm, R, Johnson, R., and Vlissides, J. (1995) Design Patterns: Elements of Reusable Software Architecture, Addison Wesley, Reading, Mass. Garfinkel, R. S. and Nemhauser, G. L. (1972) Integer Programming, John Wiley. Horowitz, E, Kemper, A. and Narasimhan, B. (1985) A survey of application generators, IEEE Software 2 (1) pp Krueger, C.W. (1992) Software Reuse, ACM Computing Surveys 24 (2), pp Neighbors, J.M. (1989) DRACO: A Method for Engineering Reusable Software Systems, in Software reusability Part 1: Concepts and Models, Ted J. Biggerstaff and Alan J. Perlis (eds), pp Pree, W. (1994) Design Patterns for Object-Oriented Software Development, Addison Wesley, Reading, Mass. Sauer, J., H.-J. Appelrath, Bruns, R. and Henseler, H. (1997) Design-Unterstützung für Ablaufsysteme, KI 2, pp

Management and optimization of multiple supply chains

Management and optimization of multiple supply chains Management and optimization of multiple supply chains J. Dorn Technische Universität Wien, Institut für Informationssysteme Paniglgasse 16, A-1040 Wien, Austria Phone ++43-1-58801-18426, Fax ++43-1-58801-18494

More information

Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering

Patterns in. Lecture 2 GoF Design Patterns Creational. Sharif University of Technology. Department of Computer Engineering Patterns in Software Engineering Lecturer: Raman Ramsin Lecture 2 GoF Design Patterns Creational 1 GoF Design Patterns Principles Emphasis on flexibility and reuse through decoupling of classes. The underlying

More information

Service-oriented Resource Management

Service-oriented Resource Management Service-oriented Management Jürgen Dorn and Hannes Werthner, Institute of Software Technology and Interactive Systems, Vienna University of Technology, Favoritenstrasse 9-11, A-1040 Wien, Austria, email:

More information

A Componentware Methodology based on Process Patterns Klaus Bergner, Andreas Rausch Marc Sihling, Alexander Vilbig Institut fur Informatik Technische Universitat Munchen D-80290 Munchen http://www4.informatik.tu-muenchen.de

More information

Service Scheduling ABSTRACT INTRODUCTION

Service Scheduling ABSTRACT INTRODUCTION Service Scheduling Jürgen Dorn Prof. Dr. Jürgen Dorn Vienna University of Technology Institute of Software Technology and Interactive Systems Favoritenstr. 9-11 A-1040 Wien Austria ABSTRACT The management

More information

A Process View on Architecture-Based Software Development

A Process View on Architecture-Based Software Development A Process View on Architecture-Based Software Development Lothar Baum, Martin Becker, Lars Geyer, Georg Molter System Software Research Group University of Kaiserslautern D-67653 Kaiserslautern, Germany

More information

Umbrella: A New Component-Based Software Development Model

Umbrella: A New Component-Based Software Development Model 2009 International Conference on Computer Engineering and Applications IPCSIT vol.2 (2011) (2011) IACSIT Press, Singapore Umbrella: A New Component-Based Software Development Model Anurag Dixit and P.C.

More information

Object-Oriented Software Specification in Programming Language Design and Implementation

Object-Oriented Software Specification in Programming Language Design and Implementation Object-Oriented Software Specification in Programming Language Design and Implementation Barrett R. Bryant and Viswanathan Vaidyanathan Department of Computer and Information Sciences University of Alabama

More information

Structuring Product-lines: A Layered Architectural Style

Structuring Product-lines: A Layered Architectural Style Structuring Product-lines: A Layered Architectural Style Tommi Myllymäki, Kai Koskimies, and Tommi Mikkonen Institute of Software Systems, Tampere University of Technology Box 553, FIN-33101 Tampere, Finland

More information

Evaluating OO-CASE tools: OO research meets practice

Evaluating OO-CASE tools: OO research meets practice Evaluating OO-CASE tools: OO research meets practice Danny Greefhorst, Matthijs Maat, Rob Maijers {greefhorst, maat, maijers}@serc.nl Software Engineering Research Centre - SERC PO Box 424 3500 AK Utrecht

More information

A Learning Based Method for Super-Resolution of Low Resolution Images

A Learning Based Method for Super-Resolution of Low Resolution Images A Learning Based Method for Super-Resolution of Low Resolution Images Emre Ugur June 1, 2004 emre.ugur@ceng.metu.edu.tr Abstract The main objective of this project is the study of a learning based method

More information

A Management Tool for Component-Based Real-Time Supervision and Control Systems

A Management Tool for Component-Based Real-Time Supervision and Control Systems A Management Tool for Component-Based Real-Time Supervision and Control Systems Sandro Santos Andrade, Raimundo José de Araújo Macêdo Distributed Systems Laboratory (LaSiD) Post-Graduation Program on Mechatronics

More information

Teaching Object-Oriented Software Design within the Context of Software Frameworks

Teaching Object-Oriented Software Design within the Context of Software Frameworks Teaching Object-Oriented Software Design within the Context of Software Frameworks Zoya Ali, Joseph Bolinger, Michael Herold, Thomas Lynch, Jay Ramanathan, Rajiv Ramnath The Ohio State University, aliz@cse.ohio-state.edu,

More information

Scheduling the Supply Chain by Teams of Agents 1

Scheduling the Supply Chain by Teams of Agents 1 Scheduling the Supply Chain by Teams of Agents 1 J. Sauer, H.-J. Appelrath Universität Oldenburg, FB Informatik Escherweg 2, D-26121 Oldenburg sauer@informatik.uni-oldenburg.de Abstract. When a supply

More information

The Development of Mobile Device Management Framework on Android Platform for Devices Security and Applications

The Development of Mobile Device Management Framework on Android Platform for Devices Security and Applications The Development of Mobile Device ment Framework on Android Platform for Devices Security and Applications Kurnia Anggriani kurnia.anggriani@students.itb.ac.id Rinaldi Munir rinaldi@informatika.org Yusep

More information

Integrating Transportation in a Multi-Site Scheduling Environment

Integrating Transportation in a Multi-Site Scheduling Environment Integrating Transportation in a Multi-Site Scheduling Environment Jürgen Sauer, Hans-Jürgen Appelrath University of Oldenburg Dept. of Computer Science Escherweg 2, D-26121 Oldenburg Germany {sauer appelrath}@informatik.uni-oldenburg.de

More information

SERENITY Pattern-based Software Development Life-Cycle

SERENITY Pattern-based Software Development Life-Cycle SERENITY Pattern-based Software Development Life-Cycle Francisco Sanchez-Cid, Antonio Maña Computer Science Department University of Malaga. Spain {cid, amg}@lcc.uma.es Abstract Most of current methodologies

More information

Basic Trends of Modern Software Development

Basic Trends of Modern Software Development DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering

More information

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1

Design with Reuse. Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Design with Reuse Building software from reusable components. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14 Slide 1 Objectives To explain the benefits of software reuse and some reuse

More information

Knowledge-based Approach in Information Systems Life Cycle and Information Systems Architecture

Knowledge-based Approach in Information Systems Life Cycle and Information Systems Architecture 5 th Slovakian-Hungarian Joint Symposium on Applied Machine Intelligence and Informatics January 25-26, 2007 Poprad, Slovakia Knowledge-based Approach in Information Systems Life Cycle and Information

More information

Weaving the Software Development Process Between Requirements and Architectures

Weaving the Software Development Process Between Requirements and Architectures Weaving the Software Development Process Between and s Bashar Nuseibeh Computing Department The Open University Walton Hall Milton Keynes MK7 6AA, U.K. Email:B.A.Nuseibeh@open.ac.uk ABSTRACT This position

More information

Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective

Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective Orit Hazzan's Column Abstraction in Computer Science & Software Engineering: A Pedagogical Perspective This column is coauthored with Jeff Kramer, Department of Computing, Imperial College, London ABSTRACT

More information

A Tool for Generating Partition Schedules of Multiprocessor Systems

A Tool for Generating Partition Schedules of Multiprocessor Systems A Tool for Generating Partition Schedules of Multiprocessor Systems Hans-Joachim Goltz and Norbert Pieth Fraunhofer FIRST, Berlin, Germany {hans-joachim.goltz,nobert.pieth}@first.fraunhofer.de Abstract.

More information

A Reusability Concept for Process Automation Software

A Reusability Concept for Process Automation Software A Reusability Concept for Process Automation Software Wolfgang Narzt, Josef Pichler, Klaus Pirklbauer, Martin Zwinz Business Information Systems C. Doppler Laboratory for Software Engineering University

More information

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6

Name of pattern types 1 Process control patterns 2 Logic architectural patterns 3 Organizational patterns 4 Analytic patterns 5 Design patterns 6 The Researches on Unified Pattern of Information System Deng Zhonghua,Guo Liang,Xia Yanping School of Information Management, Wuhan University Wuhan, Hubei, China 430072 Abstract: This paper discusses

More information

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note

Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Chapter 3 Chapter 3 Service-Oriented Computing and SOA Lecture Note Text book of CPET 545 Service-Oriented Architecture and Enterprise Application: SOA Principles of Service Design, by Thomas Erl, ISBN

More information

Software Architecture

Software Architecture Cairo University Faculty of Computers and Information Computer Science Department Premasters Studies Software Architecture Report on Software Product Line Submitted to: Dr. Hany Ammar Submitted by: Hadeel

More information

Component Based Software Engineering: A Broad Based Model is Needed

Component Based Software Engineering: A Broad Based Model is Needed Component Based Software Engineering: A Broad Based Model is Needed Allen Parrish (parrish@cs.ua.edu) Brandon Dixon (dixon@cs.ua.edu) David Hale (dhale@alston.cba.ua.edu) Department of Computer Science

More information

Managing Variability in Software Architectures 1 Felix Bachmann*

Managing Variability in Software Architectures 1 Felix Bachmann* Managing Variability in Software Architectures Felix Bachmann* Carnegie Bosch Institute Carnegie Mellon University Pittsburgh, Pa 523, USA fb@sei.cmu.edu Len Bass Software Engineering Institute Carnegie

More information

Lesson 1 Introduction to Rapid Application Development using Visual Basic

Lesson 1 Introduction to Rapid Application Development using Visual Basic Lesson 1 Introduction to Rapid Application Development using Visual Basic RAD (Rapid Application Development) refers to a development life cycle designed to give much faster development and higher-quality

More information

Ontological Representations of Software Patterns

Ontological Representations of Software Patterns Ontological Representations of Software Patterns Jean-Marc Rosengard and Marian F. Ursu University of London http://w2.syronex.com/jmr/ Abstract. This paper 1 is based on and advocates the trend in software

More information

Introduction to Software Paradigms & Procedural Programming Paradigm

Introduction to Software Paradigms & Procedural Programming Paradigm Introduction & Procedural Programming Sample Courseware Introduction to Software Paradigms & Procedural Programming Paradigm This Lesson introduces main terminology to be used in the whole course. Thus,

More information

22C:22 (CS:2820) Object-Oriented Software Development

22C:22 (CS:2820) Object-Oriented Software Development The University of Iowa 22C:22 (CS:2820) Object-Oriented Software Development Fall 2012 Software Complexity by Cesare Tinelli Complexity Software systems are complex artifacts Failure to master this complexity

More information

Database Scheme Configuration for a Product Line of MPC-TOOLS

Database Scheme Configuration for a Product Line of MPC-TOOLS Database Scheme Configuration for a Product Line of MPC-TOOLS Benjamin Klöpper, Tobias Rust, Bernhard Vedder, and Wilhelm Dangelmaier Heinz Nixdorf Institute, University of Paderborn, Fürstenallee 11,

More information

Application. Frameworks. Object-Oriented. Mohamed E. Fayad and Douglas C. Schmidt, Guest Editors

Application. Frameworks. Object-Oriented. Mohamed E. Fayad and Douglas C. Schmidt, Guest Editors Object-Oriented Application Frameworks Computing power and network bandwidth have increased dramatically over the past decade, yet the design and implementation of complex software remain expensive and

More information

Reusable Knowledge-based Components for Building Software. Applications: A Knowledge Modelling Approach

Reusable Knowledge-based Components for Building Software. Applications: A Knowledge Modelling Approach Reusable Knowledge-based Components for Building Software Applications: A Knowledge Modelling Approach Martin Molina, Jose L. Sierra, Jose Cuena Department of Artificial Intelligence, Technical University

More information

Chapter 8 Approaches to System Development

Chapter 8 Approaches to System Development Systems Analysis and Design in a Changing World, sixth edition 8-1 Chapter 8 Approaches to System Development Table of Contents Chapter Overview Learning Objectives Notes on Opening Case and EOC Cases

More information

Planning and Scheduling in Manufacturing and Services

Planning and Scheduling in Manufacturing and Services Michael L. Pinedo Planning and Scheduling in Manufacturing and Services Second edition 4y Springer Preface Contents of CD-ROM vii xvii Part I Preliminaries 1 Introduction 3 1.1 Planning and Scheduling:

More information

Johannes Sametinger. C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria

Johannes Sametinger. C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria OBJECT-ORIENTED DOCUMENTATION C. Doppler Laboratory for Software Engineering Johannes Kepler University of Linz A-4040 Linz, Austria Abstract Object-oriented programming improves the reusability of software

More information

Functional Decomposition Top-Down Development

Functional Decomposition Top-Down Development Functional Decomposition Top-Down Development The top-down approach builds a system by stepwise refinement, starting with a definition of its abstract function. You start the process by expressing a topmost

More information

To introduce software process models To describe three generic process models and when they may be used

To introduce software process models To describe three generic process models and when they may be used Software Processes Objectives To introduce software process models To describe three generic process models and when they may be used To describe outline process models for requirements engineering, software

More information

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities

Lecture Objectives. Software Life Cycle. Software Engineering Layers. Software Process. Common Process Framework. Umbrella Activities Software Life Cycle Lecture Objectives What happens in the life of software To look at the life cycle of a software To understand the software process and its related elements To relate to the different

More information

Five best practices for deploying a successful service-oriented architecture

Five best practices for deploying a successful service-oriented architecture IBM Global Services April 2008 Five best practices for deploying a successful service-oriented architecture Leveraging lessons learned from the IBM Academy of Technology Executive Summary Today s innovative

More information

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3

Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3 Component-based Development Process and Component Lifecycle Ivica Crnkovic 1, Stig Larsson 2, Michel Chaudron 3 1 Mälardalen University, Västerås, Sweden, ivica.crnkovic@mdh.se 2 ABB Corporate Research,

More information

Managing Variability in ALPR Software

Managing Variability in ALPR Software Managing Variability in ALPR Software Dr. Marco Sinnema Product Manager Video and ALPR, Q-Free ASA P.O. Box 180, 9410 AD Beilen, The Netherlands tel. +31 593 542055, fax. +31 593 542098 marco.sinnema@q-free.com

More information

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology Peter Mileff PhD SOFTWARE ENGINEERING The Basics of Software Engineering University of Miskolc Department of Information Technology Introduction Péter Mileff - Department of Information Engineering Room

More information

Elite: A New Component-Based Software Development Model

Elite: A New Component-Based Software Development Model Elite: A New Component-Based Software Development Model Lata Nautiyal Umesh Kumar Tiwari Sushil Chandra Dimri Shivani Bahuguna Assistant Professor- Assistant Professor- Professor- Assistant Professor-

More information

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems

Software Processes. Coherent sets of activities for specifying, designing, implementing and testing software systems Questions What is the life cycle of a software product? Why do we need software process models? What are the goals of a software process and what makes it different from other industrial processes? Software

More information

APPLICATION OF SOFTWARE FRAMEWORK TECHNOLOGY TO AN ANTENNA POINTING CONTROLLER

APPLICATION OF SOFTWARE FRAMEWORK TECHNOLOGY TO AN ANTENNA POINTING CONTROLLER APPLICATION OF SOFTWARE FRAMEWORK TECHNOLOGY TO AN ANTENNA POINTING CONTROLLER G. Montalto *, A. Pasetti **, N. Salerno * * Alenia Spazio S.p.A., via Saccomuro 24, 00131 Rome, Italy ** P&P Software GmbH,

More information

Towards Agent-Based Multi-Site Scheduling

Towards Agent-Based Multi-Site Scheduling Towards Agent-Based Multi-Site Scheduling Jürgen Sauer 1, Tammo Freese 2, Thorsten Teschke 2 Abstract. Scheduling problems are usually treated within single plant environments or within companies with

More information

CHAPTERS A NEW KNOT MODEL FOR COMPONENT BASED SOFTWARE DEVELOPMENT

CHAPTERS A NEW KNOT MODEL FOR COMPONENT BASED SOFTWARE DEVELOPMENT CHAPTERS A NEW KNOT MODEL FOR COMPONENT BASED SOFTWARE DEVELOPMENT CONTENTS 5.1 Introduction 5.2 Component based software life cycle process model 5.2.1 Rapid Application Development Model 5.2.2 The Y

More information

An Agent-Based Framework for Artificial Stock Markets

An Agent-Based Framework for Artificial Stock Markets An Agent-Based Framework for Artificial Stock Markets Katalin Boer Mark Polman Arie de Bruin Uzay Kaymak Erasmus University Rotterdam, Faculty of Economics P.O. Box 1738, 3000 DR, Rotterdam, the Netherlands

More information

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. Software Engineering. Component-Based. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Component-Based Software Engineering Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain that CBSE is concerned with developing standardised components

More information

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g

Systems Integration: Co C mp m onent- t bas a e s d s o s ftw ft a w r a e r e ngin i eeri r n i g Systems Integration: Component-based software engineering Objectives To explain that CBSE is concerned with developing standardised components and composing these into applications To describe components

More information

Scenario-based Requirements Engineering and User-Interface Design

Scenario-based Requirements Engineering and User-Interface Design Scenario-based Requirements Engineering and User-Interface Institut für Computertechnik ICT Institute of Computer Technology Hermann Kaindl Vienna University of Technology, ICT Austria kaindl@ict.tuwien.ac.at

More information

Ensuring Reliability in Lean New Product Development. John J. Paschkewitz, P.E., CRE

Ensuring Reliability in Lean New Product Development. John J. Paschkewitz, P.E., CRE Ensuring Reliability in Lean New Product Development John J. Paschkewitz, P.E., CRE Overview Introduction and Definitions Part 1: Lean Product Development Lean vs. Traditional Product Development Key Elements

More information

GenericServ, a Generic Server for Web Application Development

GenericServ, a Generic Server for Web Application Development EurAsia-ICT 2002, Shiraz-Iran, 29-31 Oct. GenericServ, a Generic Server for Web Application Development Samar TAWBI PHD student tawbi@irit.fr Bilal CHEBARO Assistant professor bchebaro@ul.edu.lb Abstract

More information

Task-Model Driven Design of Adaptable Educational Hypermedia

Task-Model Driven Design of Adaptable Educational Hypermedia Task-Model Driven Design of Adaptable Educational Hypermedia Huberta Kritzenberger, Michael Herczeg Institute for Multimedia and Interactive Systems University of Luebeck Seelandstr. 1a, D-23569 Luebeck,

More information

And the Models Are 16-03-2015. System/Software Development Life Cycle. Why Life Cycle Approach for Software?

And the Models Are 16-03-2015. System/Software Development Life Cycle. Why Life Cycle Approach for Software? System/Software Development Life Cycle Anurag Srivastava Associate Professor ABV-IIITM, Gwalior Why Life Cycle Approach for Software? Life cycle is a sequence of events or patterns that are displayed in

More information

Encapsulating Crosscutting Concerns in System Software

Encapsulating Crosscutting Concerns in System Software Encapsulating Crosscutting Concerns in System Software Christa Schwanninger, Egon Wuchner, Michael Kircher Siemens AG Otto-Hahn-Ring 6 81739 Munich Germany {christa.schwanninger,egon.wuchner,michael.kircher}@siemens.com

More information

Engineering Process Software Qualities Software Architectural Design

Engineering Process Software Qualities Software Architectural Design Engineering Process We need to understand the steps that take us from an idea to a product. What do we do? In what order do we do it? How do we know when we re finished each step? Production process Typical

More information

Applying Design Patterns in Distributing a Genetic Algorithm Application

Applying Design Patterns in Distributing a Genetic Algorithm Application Applying Design Patterns in Distributing a Genetic Algorithm Application Nick Burns Mike Bradley Mei-Ling L. Liu California Polytechnic State University Computer Science Department San Luis Obispo, CA

More information

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville Software Engineering Software Processes Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To introduce software process models To describe three generic process models and when

More information

Quality Ensuring Development of Software Processes

Quality Ensuring Development of Software Processes Quality Ensuring Development of Software Processes ALEXANDER FÖRSTER,GREGOR ENGELS Department of Computer Science University of Paderborn D-33095 Paderborn, Germany {alfo engels}@upb.de ABSTRACT: Software

More information

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Tool Support for Software Variability Management and Product Derivation in Software Product Lines Tool Support for Software Variability Management and Product Derivation in Software s Hassan Gomaa 1, Michael E. Shin 2 1 Dept. of Information and Software Engineering, George Mason University, Fairfax,

More information

Chapter 11: Integration- and System Testing

Chapter 11: Integration- and System Testing Chapter 11: Integration- and System Testing Chapter 14: Testing (2/2) Object-Oriented Software Construction Armin B. Cremers, Sascha Alda & Tobias Rho (based on Bruegge & Dutoit) Software Lifecycle Activities...and

More information

Concern Driven Software Development

Concern Driven Software Development Concern Driven Software Development Omar Alam School of Computer Science, McGill University, Montreal, Canada Omar.Alam@mail.mcgill.ca Abstract Model Driven Engineering (MDE) has achieved success in many

More information

Six Strategies for Building High Performance SOA Applications

Six Strategies for Building High Performance SOA Applications Six Strategies for Building High Performance SOA Applications Uwe Breitenbücher, Oliver Kopp, Frank Leymann, Michael Reiter, Dieter Roller, and Tobias Unger University of Stuttgart, Institute of Architecture

More information

Structural Design Patterns Used in Data Structures Implementation

Structural Design Patterns Used in Data Structures Implementation Structural Design Patterns Used in Data Structures Implementation Niculescu Virginia Department of Computer Science Babeş-Bolyai University, Cluj-Napoca email address: vniculescu@cs.ubbcluj.ro November,

More information

Static Analysis and Validation of Composite Behaviors in Composable Behavior Technology

Static Analysis and Validation of Composite Behaviors in Composable Behavior Technology Static Analysis and Validation of Composite Behaviors in Composable Behavior Technology Jackie Zheqing Zhang Bill Hopkinson, Ph.D. 12479 Research Parkway Orlando, FL 32826-3248 407-207-0976 jackie.z.zhang@saic.com,

More information

Architecture Centric Development in Software Product Lines

Architecture Centric Development in Software Product Lines Architecture Centric Development in Software Product Lines Aurangzeb Khan DCE, College of E & ME National University of Science and Technology (NUST), Pakistan Farooque Azam DCE, College of E & ME National

More information

Software Component Technologies and Space Applications

Software Component Technologies and Space Applications Software Component Technologies and Space Applications Don Batory Department of Computer Sciences The University of Texas Austin, Texas 78712 Abstract In the near future, software systems will be more

More information

Design Patterns for Complex Event Processing

Design Patterns for Complex Event Processing Design Patterns for Complex Event Processing Adrian Paschke BioTec Center, Technical University Dresden, 01307 Dresden, Germany adrian.paschke AT biotec.tu-dresden.de ABSTRACT Currently engineering efficient

More information

Ontologies for Enterprise Integration

Ontologies for Enterprise Integration Ontologies for Enterprise Integration Mark S. Fox and Michael Gruninger Department of Industrial Engineering,University of Toronto, 4 Taddle Creek Road, Toronto, Ontario M5S 1A4 tel:1-416-978-6823 fax:1-416-971-1373

More information

Towards an Automated Pattern Selection Procedure in Software Models

Towards an Automated Pattern Selection Procedure in Software Models Towards an Automated Pattern Selection Procedure in Software Models Alexander van den Berghe, Jan Van Haaren, Stefan Van Baelen, Yolande Berbers, and Wouter Joosen {firstname.lastname}@cs.kuleuven.be IBBT-DistriNet,

More information

Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development

Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development Traceability Patterns: An Approach to Requirement-Component Traceability in Agile Software Development ARBI GHAZARIAN University of Toronto Department of Computer Science 10 King s College Road, Toronto,

More information

A Genetic Algorithm Approach for Solving a Flexible Job Shop Scheduling Problem

A Genetic Algorithm Approach for Solving a Flexible Job Shop Scheduling Problem A Genetic Algorithm Approach for Solving a Flexible Job Shop Scheduling Problem Sayedmohammadreza Vaghefinezhad 1, Kuan Yew Wong 2 1 Department of Manufacturing & Industrial Engineering, Faculty of Mechanical

More information

AN INTELLIGENT TUTORING SYSTEM FOR LEARNING DESIGN PATTERNS

AN INTELLIGENT TUTORING SYSTEM FOR LEARNING DESIGN PATTERNS AN INTELLIGENT TUTORING SYSTEM FOR LEARNING DESIGN PATTERNS ZORAN JEREMIĆ, VLADAN DEVEDŽIĆ, DRAGAN GAŠEVIĆ FON School of Business Administration, University of Belgrade Jove Ilića 154, POB 52, 11000 Belgrade,

More information

CS 565 Business Process & Workflow Management Systems

CS 565 Business Process & Workflow Management Systems CS 565 Business Process & Workflow Management Systems Professor & Researcher Department of Computer Science, University of Crete & ICS-FORTH E-mail: dp@csd.uoc.gr, kritikos@ics.forth.gr Office: K.307,

More information

ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OBJECTS IN WEB APPLICATION

ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OBJECTS IN WEB APPLICATION ABSTRACT FACTORY AND SINGLETON DESIGN PATTERNS TO CREATE DECORATOR PATTERN OBJECTS IN WEB APPLICATION Vijay K Kerji Department of Computer Science and Engineering, PDA College of Engineering,Gulbarga,

More information

Component Based Development in Software Engineering

Component Based Development in Software Engineering Component Based Development in Software Engineering Amandeep Bakshi, Rupinder Singh Abstract--In today s world, Component Based development is an active research area for more than a decade in software

More information

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...

1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software... 1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering Software is intangible Hard to understand

More information

A terminology model approach for defining and managing statistical metadata

A terminology model approach for defining and managing statistical metadata A terminology model approach for defining and managing statistical metadata Comments to : R. Karge (49) 30-6576 2791 mail reinhard.karge@run-software.com Content 1 Introduction... 4 2 Knowledge presentation...

More information

How Programmers Use Internet Resources to Aid Programming

How Programmers Use Internet Resources to Aid Programming How Programmers Use Internet Resources to Aid Programming Jeffrey Stylos Brad A. Myers Computer Science Department and Human-Computer Interaction Institute Carnegie Mellon University 5000 Forbes Ave Pittsburgh,

More information

Measurement Information Model

Measurement Information Model mcgarry02.qxd 9/7/01 1:27 PM Page 13 2 Information Model This chapter describes one of the fundamental measurement concepts of Practical Software, the Information Model. The Information Model provides

More information

Methodological Basics of Localization During Business Software Development

Methodological Basics of Localization During Business Software Development Andrej Danko METHODOLOGICAL BASICS OF LOCALIZATION DURING BUSINESS SOFTWARE DEVELOPMENT 1 Introduction Enterprise application software supporting the everyday operations of a company s functions and providing

More information

Requirements Engineering: Elicitation Techniques

Requirements Engineering: Elicitation Techniques 2008:PR003 Requirements Engineering: Elicitation Techniques Sai Ganesh. Gunda Source:http://www.marcocioffi.com/archives/2005/04/requirements-engineering/ MASTER S THESIS Software Engineering, 2008 Department

More information

CHAPTER 1 INTRODUCTION

CHAPTER 1 INTRODUCTION 1 CHAPTER 1 INTRODUCTION Exploration is a process of discovery. In the database exploration process, an analyst executes a sequence of transformations over a collection of data structures to discover useful

More information

Deploying Artificial Intelligence Techniques In Software Engineering

Deploying Artificial Intelligence Techniques In Software Engineering Deploying Artificial Intelligence Techniques In Software Engineering Jonathan Onowakpo Goddey Ebbah Department of Computer Science University of Ibadan Ibadan, Nigeria Received March 8, 2002 Accepted March

More information

Branch-and-Price Approach to the Vehicle Routing Problem with Time Windows

Branch-and-Price Approach to the Vehicle Routing Problem with Time Windows TECHNISCHE UNIVERSITEIT EINDHOVEN Branch-and-Price Approach to the Vehicle Routing Problem with Time Windows Lloyd A. Fasting May 2014 Supervisors: dr. M. Firat dr.ir. M.A.A. Boon J. van Twist MSc. Contents

More information

Verifying Semantic of System Composition for an Aspect-Oriented Approach

Verifying Semantic of System Composition for an Aspect-Oriented Approach 2012 International Conference on System Engineering and Modeling (ICSEM 2012) IPCSIT vol. 34 (2012) (2012) IACSIT Press, Singapore Verifying Semantic of System Composition for an Aspect-Oriented Approach

More information

Chapter 5: Discussion & Conclusion

Chapter 5: Discussion & Conclusion Chapter 5: Discussion & Conclusion 5.1 INTRODUCTION The outcome of this research is analyzed to check if it meets the objectives outlined in chapter one. In chapter one, for each objective, a set of research

More information

A Framework for Adaptive Process Modeling and Execution (FAME)

A Framework for Adaptive Process Modeling and Execution (FAME) A Framework for Adaptive Process Modeling and Execution (FAME) Perakath Benjamin pbenjamin@kbsi.com Madhav Erraguntla merraguntla@kbsi.com Richard Mayer rmayer@kbsi.com Abstract This paper describes the

More information

Software Life-Cycle Management

Software Life-Cycle Management Ingo Arnold Department Computer Science University of Basel Theory Software Life-Cycle Management Architecture Styles Overview An Architecture Style expresses a fundamental structural organization schema

More information

A Model for Component Based E-governance Software Systems

A Model for Component Based E-governance Software Systems A Model for Component Based E-governance Software Systems A.SHRABAN KUMAR 1, G.JAYARAO 2,B.SHANKAR NAYAK 3, KBKS. DURGA 4 A.ESWARA RAO 5 1,2,3,4 Associate Professor CSE, St.MARTIN S ENGINEERING COLLEGE,

More information

A Variability Viewpoint for Enterprise Software Systems

A Variability Viewpoint for Enterprise Software Systems 2012 Joint Working Conference on Software Architecture & 6th European Conference on Software Architecture A Variability Viewpoint for Enterprise Software Systems Matthias Galster University of Groningen,

More information

Chapter 4, Requirements Elicitation

Chapter 4, Requirements Elicitation Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 4, Requirements Elicitation Software Lifecycle Definition Software lifecycle Models for the development of software Set of activities

More information

How To Develop Software

How To Develop Software Software Engineering Prof. N.L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture-4 Overview of Phases (Part - II) We studied the problem definition phase, with which

More information

Towards Web Design Frameworks (Wdfs)

Towards Web Design Frameworks (Wdfs) 14 Towards Web Design Frameworks (Wdfs) Rehema Baguma, Faculty of Computing and IT, Makerere University. rbaguma@cit.mak.ac.ug; Ogao Patrick, Department of Information Systems, Faculty of Computing and

More information

Visible Business Templates An Introduction

Visible Business Templates An Introduction Engineering the Enterprise for Excellence Visible Business Templates An Introduction By Graham Sword Principal, Consulting Services This document provides an introductory description of Visible Business

More information