23 research outputs found
Analyse der Übertragbarkeit der Open-Source-Entwicklungsmethodik in den kommerziellen Bereich
Open Source-Software findet bereits seit einiger Zeit erfolgreich Einzug in die Unternehmenspraxis. Das quelloffene Betriebssystem GNU/Linux sowie der HTTP-Server Apache haben sich mittlerweile in vielen großen wie kleinen Unternehmen zu einem Standard etabliert. Eine wesentliche Grundlage für den Erfolg dieser und weiterer Open Source-Produkte bilden die entsprechenden Entwicklungsmethoden, die zur Unterstützung verteilter Zusammenarbeit innerhalb der Open Source Communities entstanden sind. Dies hat zur Folge, dass Einflüsse aus der Open Source-Welt auf zweierlei Arten in die Unternehmenspraxis diffundieren: Neben dem vermehrten Einzug von quelloffene Anwendungen in unternehmenskritische Bereiche einerseits führt die Tatsache, dass diese Anwendungen verteilt und quelloffen entwickelt werden, andererseits dazu, dass immer mehr Unternehmen dazu übergehen, die entsprechenden Methoden und Techniken auch in ihren kommerziellen Softwareprojekten einzusetzen. Vor allem Letzteres soll im Zentrum dieser Arbeit stehen
Executing model-based software development for embedded I4.0 devices properly
Technical interoperability in “Industrie 4.0” scenarios is currently being achieved by standards such as OPC UA. Such standards allow operators to use a common communication interface for heterogeneous production devices. However, production flexibility (e.g. self-configuration or dynamic self-adaptation) can only be achieved if system structure and engineering processes change. At the moment, traditional engineering processes for embedded systems generate communication interfaces from software. This stands in stark contrast to component-based software engineering approaches. In this paper, we introduce a tool-based software engineering approach that puts models back at the core of embedded system development. This approach enables flexible production scenarios by bringing together process-oriented software development and operator-oriented interface construction
Entwicklungsmethodiken zur kollaborativen Softwareerstellung – Stand der Technik
Die weltweit wachsende Nachfrage nach Unternehmenssoftware erfordert immer neue Methoden und Formen der Zusammenarbeit (Kollaboration) bei der Softwareerstellung. Zu diesem Zweck untersucht und vergleicht dieses Arbeitspapier existierende Vorgehensmodelle und deren Evolution. Zusätzlich werde erste Ansätze zur kollaborativen Softwareerstellung vorgestellt und ihre Eignung für ein kommerzielles Umfeld analysiert. Die Arbeit verwendet hierzu einen eigenen Vergleichsrahmen, der u.a. auch so genannte "Kollaborationspunkte“ in Betracht zieht, d.h. Aktivitäten im Prozess an denen das Einbinden mehrerer Entwickler und/oder Anwender vorteilhaft ist. Die Erkenntnisse aus der vergleichenden Analyse des Stands der Technik werden schließlich dazu verwendet, Defizite existierender Ansätze aufzuzeigen und Anforderungen für unterstützende Werkzeuge abzuleiten
Ansätze zur kollaborativen Softwareerstellung
Die Erstellung von Software zur Unterstützung betrieblicher Abläufe wird in zunehmendem Maße komplexer. Da der Erstellungsprozess in der Softwareindustrie traditionell einer Werkstatt- bzw. Einzelfertigung entspricht, erfordert die stetig steigende Nachfrage nach betrieblicher Software und die fortschreitende Globalisierung die rationellere Gestaltung der Softwareentwicklung. In der Literatur werden daher immer häufiger die Industrialisierung der Softwareerstellung und neuartige Formen der Spezialisierung, Arbeitsteilung und Zusammenarbeit (engl. Collaboration) vorgestellt. Dabei kann im Wesentlichen unterschieden werden, ob die Zusammenarbeit einzelner Akteure und Arbeitsgruppen auf Projektebene oder die strategische Zusammenarbeit von Unternehmen innerhalb der Softwareindustrie behandelt wird. Über diese beiden grundlegenden Betrachtungsebenen hinweg lassen sich existierende Ansätze zur arbeitsteiligen Softwareerstellung entlang mehrerer Dimensionen, wie räumliche, zeitliche und organisatorische Verteilung der Aktivitäten im Prozess sowie Intensität und Richtung der Zusammenarbeitsbeziehungen klassifizieren. Ziel dieses Artikels ist es, einen umfassenden und systematischen Überblick über bestehende Ansätze zur kollaborativen Softwareerstellung zu geben, indem diese in einen generischen Klassifikationsrahmen eingeordnet werden. Des Weiteren soll eine etymologische und pragmatische Herleitung des Kollaborationsbegriffs die Etablierung eines eigenständigen Forschungsparadigmas im Rahmen der Wirtschaftsinformatik ermöglichen
Hybrid project management in contrast to classical and agile project management
Diese Bachelorarbeit beschäftigt sich mit dem hybriden Projektmanagement in Abrenzung zum klassischen und agilen Projektmanagement. Zielsetzung dieser Arbeit ist es mithilfe eines Vergleichs herauszufinden, inwieweit das hybride
Projektmanagement die Vor- und Nachteile des klassichen und agilen Projektmanagements vereint und welche Voraussetzungen zur erfolgreichen Anwednung eines hybriden Ansatzes gegeben sein müssen. Des weiteren wird überprüft, ob die Bündelung positiver Eigenschaften in einem hybriden Vorgehensmodell zu einer Optimierung der Vorgehensweise führt. Mithilfe einer
umfrangreichen Literaturanalyse und der Asuwertung von Experteninterviews war es möglich herauszustellen, wo hybrides Projektmanagement vorteilhaft gegenüber dem klassischen und agilen AnsatzThis Bachelor thesis deals with the hybrid project management in contrast to classical and agile project management. The aim of this work is to find out to what extent the hybrid project management combines the advantages and disadvantages of the classical and agile project management and what prerequisites for the successful application of the hybrid method have to be given. Furthermore it is checked whether the bundling of positive properties in a hybrid approach model leads to an optimization of the procedure. With the help of extensive literature analysis and the evaluation of expert interviews, it was possible to highlite where hybrid project management is
advantageous against the classical and agile approach
Agile Market Engineering: Bridging the gap between business concepts and running markets
The agile market engineering process model (AMEP) is built on the insight, that market design and development is a wicked problem. Electronic markets are too complex to be completely designed upfront. Instead, AMEP tries to bridge the gap between theoretic market design and practical electronic market platform development using an agile, iterative approach that relies on early customer feedback and continuous improvement. The AMEP model is complemented by several supporting software artifacts
Medical devices with embedded electronics: design and development methodology for start-ups
358 p.El sector de la biotecnología demanda innovación constante para hacer frente a los retos del sector sanitario. Hechos como la reciente pandemia COVID-19, el envejecimiento de la población, el aumento de las tasas de dependencia o la necesidad de promover la asistencia sanitaria personalizada tanto en entorno hospitalario como domiciliario, ponen de manifiesto la necesidad de desarrollar dispositivos médicos de monitorización y diagnostico cada vez más sofisticados, fiables y conectados de forma rápida y eficaz. En este escenario, los sistemas embebidos se han convertido en tecnología clave para el diseño de soluciones innovadoras de bajo coste y de forma rápida. Conscientes de la oportunidad que existe en el sector, cada vez son más las denominadas "biotech start-ups" las que se embarcan en el negocio de los dispositivos médicos. Pese a tener grandes ideas y soluciones técnicas, muchas terminan fracasando por desconocimiento del sector sanitario y de los requisitos regulatorios que se deben cumplir. La gran cantidad de requisitos técnicos y regulatorios hace que sea necesario disponer de una metodología procedimental para ejecutar dichos desarrollos. Por ello, esta tesis define y valida una metodología para el diseño y desarrollo de dispositivos médicos embebidos
A Formal Verification Environment for Use in the Certification of Safety-Related C Programs
In this thesis the design of an environment for the formal verification of functional properties of safety-related software written in the programming language C is described. The focus lies on the verification of (primarily) geometric computations. We give an overview of the applicable regulations for safety-related software systems. We define a combination of higher-order logic as formalised in the theorem prover Isabelle and a specification language syntactically based on C expressions. The language retains the mathematical character of higher-level specifications in code specifications. A memory model for C is formalised which is appropriate to model low-level memory operations while keeping the entailed verification overhead in tolerable bounds. Finally, a Hoare style proof calculus is devised so that correctness proofs can be performed in one integrated framework. The applicability of the approach is demonstrated by describing its use in an industrial project
Systematische Analyse von Vorgehensmodellen zur Unterstützung wissensintensiver Prozesse
Wissensarbeit wird immer mehr zur vorherrschenden Arbeitsform in hochentwickelten Ländern. Dabei setzen Wissensarbeiter ihre Erfahrung, individuellen Fähigkeiten und ihre Fachkenntnis ein, um schwierige und neuartige Probleme zu lösen. An einem wissensintensiven Prozess sind meist mehrere Wissensarbeiter beteiligt, um ein gemeinsames Ziel zu erreichen. Bei ihrer täglichen Arbeit sehen sich Wissensarbeiter mit vielen Herausforderungen konfrontiert. Das Hauptproblem der Wissensarbeit besteht in der sehr hohen Komplexität der zu lösenden Probleme. Um Wissensarbeiter bei ihrer Arbeit zu unterstützen, werden Vorgehensmodelle eingesetzt, die den wissensintensiven Prozess typischerweise in verschiedene Phasen gliedern. Daher stellt sich die Frage, ob es geeignete Kriterien gibt, anhand derer entschieden werden kann, ob ein bestimmtes Vorgehensmodell zur Unterstützung eines wissensintensiven Prozesses geeignet ist.
Das Ziel dieser Arbeit ist es, einen Überblick über ausgewählte Vorgehensmodelle aus verschiedenen wissensintensiven Domänen zu geben, sowie diese Modelle systematisch zu analysieren und mithilfe eines Rahmenwerks zu vergleichen. Die Ergebnisse sollen klären, wie ein Vorgehensmodell einen wissensintensiven Prozess unterstützen kann und ob es markante Messgrößen für Vorgehensmodelle gibt, anhand derer man die Eignung zur Unterstützung eines wissensintensiven Prozesses erkennen kann
Ein Ansatz zur Entwicklung von Modellierungswerkzeugen für die softwaretechnische Lehre
Beim Lehren und Lernen graphischer Modellierungssprachen wie der Unified
Modeling Language (UML) ist eine Unterstützung durch entsprechende Werkzeuge
sinnvoll und wünschenswert -- nicht zuletzt, weil es die Lernenden frühzeitig
an einen Umgang mit Werkzeugen gewöhnt, wie er im professionellen Umfeld
Standard ist. Die meisten existierenden Modellierungswerkzeuge (z.B. IBM
Rational Rose oder Borland Together) richten sich jedoch ausschließlich an
die Zielgruppe der professionellen Software-Entwickler und lassen einen
Einsatz in der Lehre völlig außer Acht. Das Ergebnis sind ausgesprochen
schwergewichtige Produkte (im Sinne von Funktionalitätsumfang, benötigtem
Hauptspeicher und CPU-Leistung), deren reichhaltige Möglichkeiten zwar den
Bedürfnissen eines professionellen Umfelds entgegenkommen, aber weit über das
hinausgehen, was in einem Praktikum oder einer Übungsgruppe benötigt wird
oder angemessen ist. Zu viele Funktionen lenken die Studierenden vom
eigentlichen Lehrstoff ab und führen dazu, dass mehr Zeit in die Erlernung
der Verwendung des Werkzeugs als in die eigentlich zu vermittelnde
Modellierungssprache investiert wird. Kommen mehrere Modellierungssprachen
-- und damit mehrere Werkzeuge -- zum Einsatz, multipliziert sich dieser
Aufwand, da die einzelnen Werkzeuge einander meist nicht ähneln. Bei einer
großen Anzahl von Studierenden können auch Lizenzkosten schnell zu einem
Problem werden.
Um diesen Schwierigkeiten zu begegnen, wurde im Rahmen der vorliegenden
Arbeit eine Familie von graphischen Modellierungswerkzeugen auf der Basis
eines speziellen Meta-CASE-Frameworks ausschließlich für die Lehre
entwickelt. Diese Familie umfasst derzeit verschiedene Vertreter für
strukturelle und dynamische Anteile der UML, Petrinetze sowie
Prozessmodellierung und -begleitung auf der Basis des Unified Process. Bei
der Planung und Realisierung dieser Werkzeuge wurde bewusst Wert darauf
gelegt, nicht mit professionellen Produkten zu konkurrieren, sondern
stattdessen leichtgewichtige Werkzeuge zu schaffen, die auf die
Kernfunktionalität des Modellierens reduziert sind. Da alle Werkzeuge die
gleiche technische Basis besitzen, war es möglich, eine einheitliche
Benutzungsschnittstelle zu etablieren, die sich auf notwendige Elemente
konzentriert und damit den Einarbeitungsaufwand minimiert. Gleichzeitig wurde
didaktisch motivierte Funktionalität in die einzelnen Werkzeuge eingebracht,
die in professionellen Produkten nicht zu finden ist. Diese zusätzliche
Funktionalität beinhaltet zum Beispiel ein Hypertextsystem zur Integration
von Lehrstoff sowie Simulations-, Analyse- und Visualisierungsmöglichkeiten,
durch welche die Studierenden beim Lernen der jeweiligen Modellierungssprache
unterstützt werden. Einige der Werkzeuge wurden im Rahmen der Lehre
eingesetzt und evaluiert. Die Erfahrungen, die bei diesen Einsätzen gewonnen
wurden, waren sehr positiv.With today's software systems becoming more and more complex, teams getting
larger, and development itself being distributed across space and time, the
importance of a good model of the system under construction is growing. In
order to prepare new software engineers for these requirements, it is
necessary to teach them during their studies basic modeling concepts as well
as concrete modeling languages, the Unfied Modeling Language (UML) surely
being one, but not the only one of these. If the size of models used, for
example, in assignments approaches that of real-life systems, tool support
becomes necessary.
Unfortunately, the industrial modeling tools typically used for that purpose,
such as Borland Together or IBM Rational Rose, have significant drawbacks
when applied in an educational setting. These drawbacks stem from the fact
that industrial tools are rather heavyweight pieces of software, both in
terms of their feature set and the hardware required to run them smoothly.
As a consequence of the complexity, there is a risk that merely the tool
handling is taught instead of the particular modeling language or method. If
different tools are used for different notations, this situation becomes even
worse, since the students have to be familiar with each of the tools before
being able to work with them effectively. Being targeted at professional
developers who are assumed to be proficient in modeling, industrial tools
usually do not include functionality that supports learning a modeling
language. Last, but not least, the price of industrial tools quickly becomes
a problem for academic institutions.
As a solution to the aforementioned problem, the author proposes a
specialized Meta-CASE approach to building dedicated modeling tools for
Software Engineering education. Based on the approach, a product family of
modeling tools has been developed. This family currently provides support for
modeling structural and dynamical aspects of the UML, for modeling Petri
Nets, and for process modeling based on the Unified Process. While designing
and implementing the tools, emphasis was placed upon not competing with
professional tools. Instead, the tools are restricted to the core
functionality of modeling -- thus lightweight -- and have a clear focus on
usability. Since all tools are built upon the same technical foundation in
form of a Java framework, it was easy to establish a consistent user
interface that minimizes the learning effort for the tools themselves.
Additionally, the tools have been augmented with new functionality that is
motivated by didactical considerations and is typically not found in
industrial tools. This includes, for instance, a hypertext system that allows
linking hypertext pages to model elements and vice versa. It can be used for
documenting a tool, a modeling language, or a particular model. Some of the
tools also include facilities for simulating, analyzing, or visualizing
models, in order to support learning the semantics of a modeling language.
These facilities also play an important role in motivating the students. The
tools have been and still are used in Software Engineering education with
great success. Formative evaluations have been conducted for one
representative tool of the family. The results of these evaluations have
been very promising