8 research outputs found

    Process Patterns for Component-Based Software Development

    Full text link
    Abstract. Component-Based Development (CBD) has been broadly used in software development, as it enhances reusability and flexibility, and reduces the costs and risks involved in systems development. It has therefore spawned many widely-used approaches, such as Commercial Off-The-Shelf (COTS) and software product lines. On the other hand, in order to gain a competitive edge, organizations need to define custom processes tailored to fit their specific de-velopment requirements. This has led to the emergence of process patterns and Method Engineering approaches. We propose a set of process patterns commonly encountered in component-based development methodologies. Seven prominent component-based method-ologies have been selected and reviewed, and a set of high-level process patterns recurring in these methodologies have been identified. A generic process framework for component-based development has been proposed based on these process patterns. The process patterns and the generic framework can be used for developing or tailoring a process for producing component-based systems

    Towards flexible Software Processes by using Process Patterns

    Get PDF
    Process patterns allow the modular modelling and adaptable application of software processes. Present descriptions of process patterns show defects like non-uniform and unequivocal description forms and missing relationship definitions. These defects disadvantageously affect the effective usage of process patterns. In this work we present the language PROPEL (Process Pattern Description Language), which provides concepts for the semiformal description of process patterns and relationships between process patterns. With the help of PROPEL single process patterns can be modelled and, by definition of relationships, be composed to more complex processes. With the representation of different views of a process pattern catalog the process patterns and their relationships can be shown clearly. An example illustrates how a process pattern catalog and the contained process patterns are modelled. It is shown that in applying PROPEL the complexity of a process model can be reduced, the inconsistencies of processes can be eliminated and the flexibility of processes can be improved

    Generic Process Framework for Developing High-Integrity Software

    Get PDF
    Abstract. In high-integrity systems, certain quality requirements have gained utmost significance in such a way that failing to satisfy them at a particular level may result in the loss of the entire system, endangerment of human life, peril to the organization's existence, or serious damage to the environment. High-integrity computer systems should incorporate top-quality software in order to adequately address their stringent quality requirements. The methodologies used for developing high-integrity software must possess special characteristics in order to ensure successful realization of the requirements. Software Process patterns represent empirically proven methods of software development that can be exploited as reusable chunks to produce bespoke methodologies, tailored to fit specific project situations and requirements. The authors provide a set of process patterns extracted from methodologies and standards which are specifically intended for developing high-integrity systems. The methodologies and standards which were used as resources for extracting these patterns were selected based on their history of successful application. The patterns have been organized into a generic High Integrity Software Development Process (HISDP); this process framework can be instantiated by method engineers to produce tailored-to-fit methodologies for developing high-integrity software

    Komponentenbasierte Überwachung hybrider Systeme durch den Einsatz formaler Methoden

    Full text link
    Die vorliegende Arbeit beschäftigt sich mit der Entwicklung eines neuen Verfahrens zum nahtlosen Komponentenentwurf und zur Systemüberwachung durch ein einheitliches Modell, das die Anforderungen der Entwicklung von komplexen dynamischen Systemen erfüllt und somit einen Beitrag zum Entwurf verlässlicher Systeme leistet. Hierfür wird die komponentenbasierte Design-Methodologie KobrA eingesetzt, weil diese eine schrittweise Komponentenzerlegung auf verschiedenen Abstraktionsebenen und Sichten durchführt. Sie beinhaltet sowohl „Top-down“-Elemente als auch „Bottom-up“-Ansätze, die für eine effiziente prototypische Systemrealisierung geeignet sind. Mit der Entwicklung eines formalen echtzeitfähigen Überwachungs- und Fehlererkennungsmechanismus wird die KobrA-Methode durch eine formale Modellierungssprache erweitert, welche sowohl für die Softwareentwickler als auch für die Ingenieure verständlich sein soll. Aus diesem Grund sollte diese Sprache eine eindeutige und streng definierte Semantik besitzen. Die einheitliche Beschreibung der Systemkomponenten sowie der Überwachungskomponenten durch denselben formalen Sprachmittel ermöglicht die systematische Einbettung der Überwachung über den gesamten Entwicklungsprozess und dessen Ausführung während des Betriebs. Petri-Netze gehören zur Graphentheorie und zählen seit mehreren Jahren zu den mächtigsten Spezifikationswerkzeugen in verschiedenen Gebieten. Sie erlauben die Beschreibung des Komponentenverhaltens durch ein Netzwerk, bestehend aus Knoten und aus Bedingungen für den Datenfluss zwischen diesen Knoten. Wesentliche Vorteile von Petri-Netzen sind zum einen ihre formale mathematische Formulierung, die auf einem soliden theoretischen Fundament beruht, sowie zum anderen die explizite Abbildung des Prozesszustandes über ein Markierungskonzept. Petri-Netze ermöglichen zusätzlich die Darstellung sequentieller, sich gegenseitig ausschließender sowie paralleler Aktivitäten, die Modellierung und Visualisierung von Systemverhalten sowie die Nebenläufigkeit und die Synchronisation von kooperativen Prozessen. In dieser Arbeit erfolgt die Verhaltensbeschreibung der Überwachungskomponenten durch eine neue Klasse von Petri-Netzen, so genannte „Modifizierte Partikel Petri-Netze“ (engl., Modified Particle Petri Nets „MPPN“). Diese Netzklasse beinhaltet hybride Petri-Netze für die Modellierung des hybriden Systemverhaltens und einen Partikelfilter als probabilistische Erweiterung, um die Überwachung als Tracking-Problem aufzufassen. Petri-Netze bieten eine vollständige und konsistente Beschreibung der Prozesse, die graphische Anschauung sowie Simulation und Animation als Testmöglichkeit bereits während der Entwurfsphase. Die Kombination aus KobrA-Beschreibungsformalismus und Petri-Netzen erlaubt eine anschauliche, modular und hierarchisch strukturierte Modellierung, direkt in einer formalen Sprache. Durch unterstützende Werkzeuge, die im Rahmen dieser Arbeit entwickelt sind, kann die Realisierung der Überwachungskomponente direkt aus der Spezifikation generiert werden. Hierfür wird das Petri-Netzmodell in ein textuelles kompaktes XML-Austauschformat (engl., „Extensible Markup Language“) transformiert, welche sich an dem PNML-Standard (engl., „Petri Net Markup Language“) orientiert. Diese generische Vorlage enthält das Komponentenverhalten und die für den Überwachungsprozess notwendigen Parameter. Der besondere Aspekt für den Einsatz derselben formalen Methode, nämlich die Petri-Netze, sowohl für die Spezifikation als auch für die Realisierung, beruht auf zwei Zielen. Das primäre Ziel ist, ein einheitliches verständliches Ausdrucksmittel für die Entwurfsphase eines Systems zu stellen, mit dem alle Aspekte des ausgewählten Abstraktionsniveaus unmissverständlich dargestellt werden können. Denn Spezifikationsdokumente in natürlichen Sprachen sind anfällig für Missverständnisse, während formale Spezifikationen auf mathematischen Beschreibungen und eindeutiger Semantik und Syntaxen basieren. Das sekundäre Ziel ist eine formale überprüfbare Spezifikation (mittels eines Simulationswerkzeuges) als solide Basis für die Realisierungsphase zu bilden. Denn eine automatisch verifikationsbasierte Systementwicklung stellt eine Möglichkeit zur Erhöhung der Systemverlässlichkeit dar. Die andere Möglichkeit basiert auf der Robustheit des Überwachungsverfahrens während der Betriebsphase
    corecore