Software Engineering hat das ingenieurmäßige Entwickeln umfangreicher Softwaresysteme zum Ziel. Kritische Größen sind Kosten, Termine und Qualität. Neben unterschiedlichen Themengebieten der Softwaretechnik umfasst das Software Engineering aber insbesondere auch Themen der Projektplanung, der Projektorganisation und der Projektdurchführung, also das Management und die Organisation von Softwareprojekten. Dieses Fachbuch führt in die grundlegenden Aufgaben und Zusammenhänge der Organisation und des Managements von Softwareprojekten ein. Es richtet sich an Praktiker, Berufseinsteiger und Studierende der Informatik und behandelt die folgenden Themen: - Grundlagen zu Softwareprojekten und deren Organisation Vorgehensmodelle im Software Engineering - Unternehmens- und Projektorganisation Projektdefinition, Aufwandsschätzung, Angebots- und Vertragswesen - Projektmanagement- und QS-Verfahren - Techniken der Planung, Kontrolle und Steuerung von Softwareprojekten - Metriken, Messung und Reifegradmodelle für Softwareprojekte Mit zahlreichen Übungen werden die Inhalte vertieft und in einen praktisch anwendbaren Kontext gestellt.
Manfred Broy Knihy






Testing is the primary hardware and software verification technique used by industry today. Usually, it is ad hoc, error prone, and very expensive. In recent years, however, many attempts have been made to develop more sophisticated formal testing methods. This coherent book provides an in-depth assessment of this emerging field, focusing on formal testing of reactive systems. This book is based on a seminar held in Dagstuhl Castle, Germany, in January 2004. It presents 19 carefully reviewed and revised lectures given at the seminar in a well-balanced way ensuring competent complementary coverage of all relevant aspects. An appendix provides a glossary for model-based testing and basics on finite state machines and on labelled transition systems. The lectures are presented in topical sections on testing of finite state machines, testing of labelled transition systems, model-based test case generation, tools and case studies, standardized test notation and execution architectures, and beyond testing.
Software pioneers
- 728 stránek
- 26 hodin čtení
A lucid statement of the philosophy of modular programming can be found in a 1970 textbook on the design of system programs by Gouthier and Pont [1, l Cfl0. 23], which we quote below: A well-defined segmentation of the project effort ensures system modularity. Each task fonos a separate, distinct program module. At implementation time each module and its inputs and outputs are well-defined, there is no confusion in the intended interface with other system modules. At checkout time the in tegrity of the module is tested independently; there are few sche duling problems in synchronizing the completion of several tasks before checkout can begin. Finally, the system is maintained in modular fashion; system errors and deficiencies can be traced to specific system modules, thus limiting the scope of detailed error searching. Usually nothing is said about the criteria to be used in dividing the system into modules. This paper will discuss that issue and, by means of examples, suggest some criteria which can be used in decomposing a system into modules. A Brief Status Report The major advancement in the area of modular programming has been the development of coding techniques and assemblers which (1) allow one modu1e to be written with little knowledge of the code in another module, and (2) alJow modules to be reas sembled and replaced without reassembly of the whole system.
Software development for the automotive domain has become the enabling te- nologyforalmostallsafety-criticalandcomfortfunctionso? eredtothecustomer. Ninety percentofallinnovations inautomotive systems aredirectly or indirectly enabled by embedded software. The numbers of serious accidents have declined in recent years, despite constantly increasing tra? c; this is correlated with the introduction of advanced, software-enabled functionality for driver assistance, such as electronic stability control. Software contributes signi? cantly to the - tomotive value chain. By 2010 it is estimated that software will make up 40% of the value creation of automotive electrics/electronics. However, with the large number of software-enabled functions, their int- actions, and the corresponding networking and operating infrastructure, come signi? cant complexities both during the automotive systems engineering p- cess and at runtime. A central challenge for automotive systems development is the scattering of functionality across multiple subsystems, such as electronic control units (ECUs) and the associated networks. As an example, consider the central locking systems (CLS), whose functionality is spread out over up to 19 di? erent ECUs in some luxury cars. Of course, this includes advanced functi- ality, such as seat positioning and radio tuning according to driver presets upon entry, as well as unlocking in case of a detected impact or accident. However, thisexampledemonstratesthatmodernautomotivesystemsbridgecomfort-and safety-critical functionality. This induces particular demands on safety and - curity, and, in general, software and systems quality. The resulting challenges and opportunities were discussed, in depth, at the second Automotive Software Workshop San Diego (ASWSD)2006, on whose results we report here.
Informatik
Eine grundlegende Einführung. Band 2: Systemstrukturen und Theoretische Informatik
- 404 stránek
- 15 hodin čtení
Diese in der Neuauflage zweibändige Einführung behandelt die fundamentalen Modelle, Formalismen und sprachlichen Konstruktionen sowie die wichtigsten Anwendungsgebiete und technischen Konzeptionen der Informatik. Die Darstellung zeichnet sich durch saubere formale Fundierung und begriffliche Klarheit aus. Der vorliegende Band 2 faßt die in der 1. Auflage getrennt erschienenen Teile III und IV zusammen. Teil III behandelt Grundbegriffe und Beschreibungstechniken für verteilte informationsverarbeitende Systeme sowie systemnahe Programmierung und Betriebssysteme. Teil IV geht auf die wesentlichen Inhalte der Theoretischen Informatik ein bis hin zur Objektorientierung und stellt mit einem abschließenden Ausblick auf Anwendungen der Informatik den Bezug zu aktuellen Fragen her.
Informatik
- 471 stránek
- 17 hodin čtení
Diese Einführung in die Informatik behandelt die fundamentalen Modelle, Formalismen und sprachlichen Konstruktionen sowie die wichtigsten Anwendungsgebiete und technischen Konzeptionen der Informatik. Die Darstellung zeichnet sich durch saubere, formale Fundierung und begriffliche Klarheit aus. Der erste Teil stellt das gesamte Gebiet der problemnahen Programmierung vor, von Algorithmenbegriffen über Techniken der funktionalen und der prozeduralen Programmierung und Datenstrukturen zur Programmiermethodik. Der zweite behandelt die technische Informationsverarbeitung, von der Binärcodierung über digitale Schaltungen und Rechnerarchitekturen bis hin zu maschinennaher Programmierung.
Dieser abschließende vierte Band der Einführung in die Informatik behandelt die theoretische Informatik und ausgewählte fundamentale Algorithmen, Datenstrukturen, Beschreibungs- und Programmierstile, die jeder Informatiker kennen sollte. Ausgehend von einem kurzen Kapitel über Relationenalgebra und Ordnungstheorie werden die Themen Grammatiken zur Beschreibung formaler Sprachen, Berechenbarkeit sowie Rechen- und Speicherkomplexität von Algorithmen und Problemstellungen besprochen. Techniken der axiomatischen Spezifikation und der Entity-Relationship-Modellierung werden eingeführt und Logik- und objektorientierte Programmierung behandelt. Ein Ausblick auf wichtige ökonomische, rechtliche und ethische Aspekte der Informatik rundet das Werk ab.
Informatik 3
- 187 stránek
- 7 hodin čtení
Dieser dritte Teil der vierteiligen Einführung in die Informatik behandelt verteilte informationsverarbeitende Systeme und systemnahe Programmierung. Nach den Grundbegriffen verteilter Systeme und den zugrundeliegenden mathematischen Modellen werden elementare Beschreibungstechniken für Systeme, z. B. Petri-Netze und die Hoare'sche Notation für kommunizierende, sequentielle Programme, vorgestellt sowie die Programmierung parallel ablaufender Programme. Weiter werden typische Aspekte der systemnahen Programmierung wie Aufbau und Wirkungsweise von Betriebssystemen besprochen sowie die syntaktischen und semantischen Aspekte der Implementierung von Programmiersprachen. Dabei werden für eine einfache funktionale Sprache beispielhaft ein Übersetzer und ein Interpretierer angegeben.
Dieser zweite von vier Bänden zur Einführung in die Informatik behandelt die technische Informationsverarbeitung, von der Binärcodierung der Information über digitale Schaltungen und Rechnerarchitekturen bis hin zu maschinennaher Programmierung und dem Übergang zur (im ersten Band behandelten) problemnahen Programmierung. Wesentlich für das Verständnis sind dabei nicht nur die konkreten Strukturen, sondern auch die für die Arbeitsweise der Informatik typische Schichtung in Abstraktionsebenen. Der Band gibt den Stoff des zweiten Semesters einer Einführungsvorlesung des Informatikstudiums wieder. Die Themen der beiden folgenden Bände sind Systemstrukturen (Verteilte Systeme, Betriebssysteme, Übersetzer) und systembezogene Programmierung bzw. theoretische Grundlagen (Formale Sprachen, Berechenbarkeit, Komplexität).
Informatik 1
- 250 stránek
- 9 hodin čtení
Die Informatik hat sich zu einer wissenschaftlichen Disziplin entwickelt, die in vielfältiger Weise Methoden und Techniken für die Modellierung, Darstellung und Implementierung informationsverarbeitender Systeme bereitstellt. Diese grundlegende Einführung in die Informatik behandelt die fundamentalen Modelle, Formalismen und sprachlichen Konstruktionen sowie die wichtigsten Anwendungsgebiete und technischen Konzeptionen der Informatik. Dabei wird auf eine saubere, formale Fundierung und begriffliche Klarheit Wert gelegt. In diesem ersten von vier Bänden wird das gesamte Gebiet der problemnahen Programmierung dargestellt: Algorithmenbegriff, Techniken der funktionalen und der prozeduralen Programmierung, Datenstrukturen und ihre Darstellung in Programmiersprachen sowie Programmiermethodik.