DE112011100069T5 - Verfahren zum Entwickeln von Software und Vorrichtung für dasselbe - Google Patents

Verfahren zum Entwickeln von Software und Vorrichtung für dasselbe Download PDF

Info

Publication number
DE112011100069T5
DE112011100069T5 DE112011100069T DE112011100069T DE112011100069T5 DE 112011100069 T5 DE112011100069 T5 DE 112011100069T5 DE 112011100069 T DE112011100069 T DE 112011100069T DE 112011100069 T DE112011100069 T DE 112011100069T DE 112011100069 T5 DE112011100069 T5 DE 112011100069T5
Authority
DE
Germany
Prior art keywords
software
code
code generator
automatic code
developer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE112011100069T
Other languages
English (en)
Inventor
Jin-Seok Yang
Kyo-Chul Kang
Hye-Sun Lee
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Academy Industry Foundation of POSTECH
Original Assignee
Academy Industry Foundation of POSTECH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Academy Industry Foundation of POSTECH filed Critical Academy Industry Foundation of POSTECH
Publication of DE112011100069T5 publication Critical patent/DE112011100069T5/de
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/54Link editing before load time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

Es ist ein softwareproduktlinienbasiertes Softwareentwicklungsverfahren vorgesehen, das einen automatischen Codegenerator vom Softwaretyp verwendet, und eine Vorrichtung für dasselbe. Das Verfahren umfasst ein Auswählen von Merkmalen, die einer Software von einem Entwickler entsprechen, aus einem Merkmalsmodell, das erzeugt wird, indem Merkmale mehrerer Softwareprodukte analysiert werden, um Merkmalslisten zu erstellen, ein Bestimmen eines automatischen Codegenerators, der einem von dem Entwickler empfangenen Softwaretyp entspricht, ein Auswählen von Architekturkomponenten unter Verwendung des Softwaretyps, und ein Erzeugen eines automatisch erzeugten Codes auf der Basis der ausgewählten Architekturkomponenten und Anforderungen des von dem Entwickler empfangenen ermittelten automatischen Codegenerators, ein Modifizieren des automatisch erzeugten Codes und des Codes der Architekturkomponenten auf der Basis der erstellten Merkmalsliste, um einen konfigurierten Code auszugeben; und ein Verbinden eines Teils, der eine Bibliothek von Domains in dem konfigurierten Code aufruft, mit einem Teil, der eine tatsächliche Domainbibliothek aufruft, um einen abschließenden Erzeugungscode zu erzeugen.

Description

  • Die vorliegende Erfindung bezieht sich auf ein Verfahren zum Entwickeln von Software und eine Vorrichtung für dasselbe und insbesondere auf ein softwareproduktlinienbasiertes Softwareentwicklungsverfahren, das einen softwaretypspezifischen automatischen Codegenerator und eine Vorrichtung dafür verwendet.
  • Ein automatischer Codegenerator variiert je nach einem zu entwickelnden Softwaretyp. Hier werden Softwaretypen gemäß der Rolle der Software kategorisiert. Beispielsweise ist Software, die Daten speichert und verwaltet, ein Datenverwaltersoftwaretyp, und Software, die einen von einem Datensender empfangenen Datenwert gemäß einer Datenumwandlungsregel in einen anderen Datenwert umsetzt, ist ein Datenumsetzersoftwaretyp.
  • Außerdem ist eine Software, die von einem Datensender empfangene Daten gemäß einer Datenverteilungsregel an einen Datenempfänger sendet, ein Datenverteilersoftwaretyp, ist eine Software, die einen Zustand eines Systems verwaltet, ein Steuerungssoftwaretyp, und ist eine Software, die als Schnittstelle zwischen einem Nutzer und einem System Daten dem Benutzer ausliest und zeigt, ein Überwachungssoftwaretyp.
  • Wenn softwaretypspezifische automatische Codegeneratoren definiert und entwickelt werden, können mehrere Softwareteile (Softwareposten) verschiedener Softwaretypen unter Verwendung automatischer Codegeneratoren der entsprechenden Softwaretypen entwickelt werden.
  • Ferner kann dann, wenn Software unter Verwendung eines automatischen Codegenerators entwickelt werden muss, in dem Fall, dass ein existierender automatischer Codegenerator desselben Softwaretyps wie die zu entwickelnde Software vorliegt, der existierende automatische Codegenerator modifiziert und wiederverwendet werden.
  • Jedoch gehen existierende einzelne oder produktlinienbasierte Softwareentwicklungsverfahren, die einen automatischen Codegenerator verwenden, allesamt von einem Typ von automatischem Codegenerator aus. Somit ist es bei den existierenden Verfahren schwierig, unter Verwendung eines automatischen Codegenerators mehrere Softwareteile verschiedener Softwaretypen zu entwickeln.
  • Wenn Software unter Verwendung eines automatischen Codegenerators entwickelt werden muss, ist es außerdem in dem Fall, dass ein existierender automatischer Code vorliegt, schwierig, zu bestimmen, ob der existierende automatische Codegenerator zur Entwicklung der zu entwickelnden Software wiederverwendet werden kann.
  • Die vorliegende Erfindung ist darauf ausgerichtet, eine softwareproduktlinienbasierte Softwareentwicklungsvorrichtung bereitzustellen, die einen typspezifischen automatischen Codegenerator verwendet.
  • Die vorliegende Erfindung ist ebenfalls darauf ausgerichtet, ein softwareproduktlinienbasiertes Softwareentwicklungsverfahren bereitzustellen, das einen typspezifischen automatischen Codegenerator verwendet.
  • Ein Aspekt der vorliegenden Erfindung liefert eine Vorrichtung zum Entwickeln von Software, die Folgendes umfasst: einen Merkmalselektor, der dazu konfiguriert ist, ein Merkmal, das einer einer Entwicklung unterworfenen Software entspricht, die von einem Entwickler empfangen wird, aus einem Merkmalsmodell auszuwählen, das erzeugt wird, indem Merkmale mehrerer Softwareprodukte analysiert werden, und eine Merkmalsliste zu erzeugen; einen Automatischer-Codegenerator-Selektor, der dazu konfiguriert ist, einen automatischen Codegenerator zu bestimmen, der einem von dem Entwickler empfangenen, einer Entwicklung unterworfenen Softwaretyp entspricht; einen automatischen Codegenerator, der dazu konfiguriert ist, Architekturkomponenten der einer Entwicklung unterworfenen Software unter Verwendung des einer Entwicklung unterworfenen Softwaretyps auszuwählen und auf der Basis der ausgewählten Architekturkomponenten und Anforderungen des von dem Entwickler empfangenen ermittelten automatischen Codegenerators einen automatisch erzeugten Code zu erzeugen; einen Konfigurator, der dazu konfiguriert ist, den automatisch erzeugten Code und einen Code der Architekturkomponenten auf der Basis der erzeugten Merkmalsliste zu modifizieren und einen konfigurierten Code auszugeben; und einen Linker (Programmverbinder), der dazu konfiguriert ist, einen Teil, der eine Bibliothek einer Domain (eines Bereichs) in dem konfigurierten Code aufruft, mit einem Teil, der eine tatsächliche Domainbibliothek aufruft, zu verbinden und einen abschließenden Erzeugungscode zu erzeugen.
  • Ein weiterer Aspekt der vorliegenden Erfindung liefert ein Verfahren zum Entwickeln von Software, das Verfahren Folgendes umfasst: Auswählen von Merkmalen, die einer einer Entwicklung unterworfenen Software entsprechen, die von einem Entwickler empfangen wird, aus einem Merkmalsmodell, das erzeugt wird, indem Merkmale mehrerer Softwareprodukte analysiert werden, und Erstellen einer Merkmalsliste; Bestimmen eines automatischen Codegenerators, der einem von dem Entwickler empfangenen, einer Entwicklung unterworfenen Softwaretyp entspricht; Auswählen von Architekturkomponenten der einer Entwicklung unterworfenen Software unter Verwendung des einer Entwicklung unterworfenen Softwaretyps, und Erzeugen eines automatisch erzeugten Codes auf der Basis der ausgewählten Architekturkomponenten und Anforderungen des von dem Entwickler empfangenen ermittelten automatischen Codegenerators; Modifizieren des automatisch erzeugten Codes und des Codes der Architekturkomponenten auf der Basis der erstellten Merkmalsliste, und Ausgeben eines konfigurierten Codes; und Verbinden eines Teils, der eine Bibliothek einer Domain in dem konfigurierten Code aufruft, mit einem Teil, der eine tatsächliche Domainbibliothek aufruft, und Erzeugen eines abschließenden Erzeugungscodes.
  • Wenn ein Verfahren und eine Vorrichtung zum Entwickeln von Software, die einen softwaretypspezifischen automatischen Codegenerator auf der Basis einer Softwareproduktlinie gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung, wie sie oben beschrieben wurden, verwendet werden, ist es möglich, unter Verwendung der entsprechenden softwaretypspezifischen automatischen Codegeneratoren mehrere Softwareteile verschiedener Softwaretypen zu entwickeln.
  • Außerdem kann dann, wenn Software desselben Softwaretyps wie ein softwaretypspezifischer automatischer Codegenerator, die bereits entwickelt wurde, unter Verwendung eines automatischen Codegenerators bei einem produktlinienbasierten Softwareentwicklungsverfahren entwickelt wird, der softwaretypspezifische automatische Codegenerator modifiziert und wiederverwendet werden.
  • Bevorzugte Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend unter Bezugnahme auf die beiliegenden Zeichnungen näher erläutert. Es zeigen:
  • 1 ein Blockdiagramm, das schematisch eine innere Struktur einer Vorrichtung zum Entwickeln von Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung zeigt;
  • 2 ein beispielhaftes Diagramm, das Anforderungen eines automatischen Codegenerators vom Datenumsetzersoftwaretyp zeigt, der durch einen Automatischer-Codegenerator-Selektor einer Vorrichtung zum Entwickeln von Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung ausgewählt wird;
  • 3 ein beispielhaftes Diagramm, das Anforderungen eines automatischen Codegenerators vom Datenverteilersoftwaretyp zeigt, der durch einen Automatischer-Codegenerator-Selektor einer Vorrichtung zum Entwickeln von Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung ausgewählt wird;
  • 4 ein beispielhaftes Diagramm, das Anforderungen eines automatischen Codegenerators vom Steuerungssoftwaretyp zeigt, der durch einen Automatischer-Codegenerator-Selektor einer Vorrichtung zum Entwickeln von Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung ausgewählt wird;
  • 5 ein beispielhaftes Diagramm, das Anforderungen eines automatischen Codegenerators vom Datenumsetzer- + Datenverteilersoftwaretyp zeigt, der durch einen Automatischer-Codegenerator-Selektor einer Vorrichtung zum Entwickeln von Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung ausgewählt wird;
  • 6 ein beispielhaftes Diagramm eines Codes, den ein Konfigurator gemäß einer Merkmalsliste in einem automatisch erzeugten Code und einem Architekturkomponentencode einer ausgewählten, einer Entwicklung unterworfenen Software modifiziert und anpasst, nachdem ein Softwarerahmencode mit dem Code gefüllt wird, der durch einen automatischen Codegenerator einer Vorrichtung zum Entwickeln von Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung erzeugt wird;
  • 7 ein Blockdiagramm, das schematisch eine innere Struktur einer Software zeigt, die unter Verwendung einer softwareproduktlinienbasierten Softwareentwicklungsvorrichtung entwickelt werden soll, die einen softwaretypspezifischen automatischen Codegenerator gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung verwendet; und
  • 8 ein Flussdiagramm, das ein Verfahren zum Entwickeln von Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht.
  • Obwohl die Erfindung für verschiedene Modifikationen und alternative Formen zugänglich ist, sind spezifische Ausführungsbeispiele derselben in den Zeichnungen beispielhaft gezeigt und werden hierin ausführlich beschrieben. Jedoch sollte man sich darüber im Klaren sein, dass keine Absicht besteht, die Erfindung auf die bestimmten offenbarten Formen zu beschränken, sondern im Gegenteil, die Erfindung soll alle Modifikationen, Äquivalente und Alternativen, die innerhalb der Wesensart und des Schutzumfangs der Erfindung liegen, abdecken. Gleiche Bezugszeichen werden in der gesamten Beschreibung der Zeichnungen für gleiche Elemente verwendet.
  • Obwohl die Begriffe erste(r, s), zweite(r, s), A, B usw. hierin dazu verwendet werden können, verschiedene Elemente zu beschreiben, wird einleuchten, dass diese Elemente nicht durch diese Begriffe eingeschränkt werden sollten. Diese Begriffe werden lediglich dazu verwendet, ein Element von einem anderen zu unterscheiden. Beispielsweise könnte ein erstes Element als ein zweites Element bezeichnet werden, und analog dazu könnte ein zweites Element als ein erstes Element bezeichnet werden, ohne von dem Schutzumfang der vorliegenden Erfindung abzuweichen. Gemäß der Verwendung hierin umfasst der Begriff „und/oder” jegliche und alle Kombinationen eines oder mehrerer der zugeordneten aufgeführten Posten.
  • Man wird verstehen, dass dann, wenn ein Element als mit einem anderen Element „verbunden” oder „gekoppelt” bezeichnet wird, es direkt mit dem anderen Element verbunden oder gekoppelt sein kann oder dass dazwischenliegende Elemente vorhanden sein können. Im Gegensatz dazu sind dann, wenn ein Element als mit einem anderen Element „direkt verbunden” oder „direkt gekoppelt” bezeichnet wird, keine dazwischenliegenden Elemente vorhanden. Andere Worte, die zum Beschreiben der Beziehung zwischen Elementen verwendet werden, sollten auf ähnliche Weise interpretiert werden (d. h. „zwischen” gegenüber „direkt zwischen”, „benachbart” gegenüber „direkt benachbart” usw.).
  • Die hierin verwendete Technologie dient lediglich dem Zweck, bestimmte Ausführungsbeispiele zu beschreiben, und sie soll keine Einschränkung der Erfindung darstellen. Gemäß der Verwendung hierin sollen die Singularformen „ein(e, es, er)” und „der”, „die” und „das” auch die Pluralformen umfassen, wenn der Kontext nicht eindeutig etwas anderes vorgibt. Ferner wird man verstehen, dass die Begriffe „weist auf”, „aufweisen”, „umfasst” und/oder „umfassen”, wenn sie hierin verwendet werden, das Vorliegen angegebener Merkmale, Ganzzahlen, Schritte, Vorgänge, Elemente und/oder Komponenten angeben, jedoch nicht das Vorliegen oder die Hinzufügung eines bzw. einer oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Vorgänge, Elemente, Komponenten und/oder Gruppen derselben von vornherein ausschließen.
  • Wenn nichts anderes definiert ist, weisen alle Begriffe, die technische und wissenschaftliche Begriffe umfassen und hierin verwendet werden, dieselbe Bedeutung auf, wie sie üblicherweise von Fachleuten auf dem Gebiet, zu dem diese Erfindung gehört, verstanden werden. Ferner versteht es sich, dass Begriffe wie beispielsweise diejenigen, die in üblicherweise verwendeten Wörterbüchern definiert sind, in einer Bedeutung interpretiert werden sollten, die sich mit ihrer Bedeutung in dem Zusammenhang der relevanten Technik deckt, und nicht in einem idealisierten oder übermäßig formalen Sinn interpretiert werden, es sei denn, dies ist hierin ausdrücklich so definiert.
  • Hiernach werden exemplarische Ausführungsbeispiele der vorliegenden Erfindung unter Bezugnahme auf die beiliegenden Zeichnungen ausführlich beschrieben.
  • Vor der vorliegenden Erfindung wird ein allgemeines Softwareentwicklungsverfahren beschrieben. Zuerst wird ein auf einer Softwareproduktlinie basierendes Softwareentwicklungsverfahren beschrieben. Bei dem softwareproduktlinienbasierten Softwareentwicklungsverfahren werden Softwareteile nicht einzeln entwickelt, sondern Softwareteile, die ähnliche Dienste bereitstellen, werden zusammen betrachtet und entwickelt.
  • Mit anderen Worten werden, da funktionelle Aspekte und die Qualität mehrerer Softwareteile zu derselben betrachteten Domain gehören, durch eine Analyse gemeinsamer und unterschiedlicher Punkte ausreichende Haupteigenschaften gesichert und kombiniert, um eine gewünschte Software zu entwickeln. Bei dem softwareproduktlinienbasierten Softwareentwicklungsverfahren können gemeinsame Vorzüge wiederverwendet werden, um eine Entwicklungsperiode zu verkürzen und die Produktivität zu verbessern, und es kann eine qualitativ hochwertige Software entwickelt werden.
  • Zweitens wird ein Softwareentwicklungsverfahren, das einen automatischen Codegenerator verwendet, beschrieben. Es gibt mehrere Softwareentwicklungsverfahren, die auf einer Softwareproduktlinie beruhen, und eines derselben ist das softwareproduktlinienbasierte Softwareentwicklungsverfahren, das einen automatischen Codegenerator verwendet.
  • Ein automatischer Codegenerator ist ein System, das einen Software-Quellencode ausgehend von einem Modell automatisch erzeugt und das im Vergleich zu einem Fall, in dem ein Mensch einen Quellencode manuell entwickelt, menschliche Arbeitsleistung, Kosten und Zeit, die für eine Softwareentwicklung erforderlich sind, verringern und die Produktivität von Software erhöhen kann.
  • Drittens wird ein softwareproduktlinienbasiertes Softwareentwicklungsverfahren beschrieben, das einen automatischen Codegenerator verwendet. In verschiedenen Softwaredomains wird bisher ein Einzelsoftwareentwicklungsverfahren untersucht, das einen automatischen Codegenerator verwendet.
  • Jedoch zielt ein Einzelsoftwareentwicklungsverfahren, das einen automatischen Codegenerator verwendet, auf eine Entwicklung einer einzelnen Software ab, und somit ist es schwierig, es auf eine softwareproduktlinienbasierte Softwareentwicklung anzuwenden. Es wird an einer softwareproduktlinienbasierten Softwareentwicklung, die einen automatischen Codegenerator verwendet, geforscht.
  • Jedoch offenbart die existierende Forschung nicht klar und ausführlich, welche Systeme auf welche Weise für eine softwareproduktlinienbasierte Softwareentwicklung unter Verwendung eines automatischen Codegenerators kombiniert werden und anhand welches Prozesses produktlinienbasierte Softwareentwicklung erzielt wird. Eine innere Struktur einer Vorrichtung zum Entwickeln von Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung wird nachstehend unter Bezugnahme auf 1 ausführlich beschrieben.
  • 1 ist ein Blockdiagramm, das schematisch eine innere Struktur einer Vorrichtung zum Entwickeln von Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung zeigt.
  • Unter Bezugnahme auf 1 kann die Vorrichtung zum Entwickeln von Software eine Nutzerschnittstelle 100, einen Merkmalselektor 101, einen Automatischer-Codegenerator-Selektor 102, einen automatischen Codegenerator 103, einen Konfigurator 104, einen Linker 105, eine Steuerung 106 und eine Speicherung 107 umfassen. Die Speicherung 107 kann eine Automatischer-Codegenerator-Speicherung (nicht gezeigt), eine Architekturmodellspeicherung (nicht gezeigt) und eine Domainbibliotheksspeicherung (nicht gezeigt) umfassen.
  • Die Nutzerschnittstelle 100 transferiert Eingaben und Ausgaben zwischen einem Entwickler, der eine produktlinienbasierte Softwareentwicklung unter Verwendung eines softwaretypspezifischen automatischen Codegenerators durchführt, und dem Merkmalselektor 101, zwischen dem Entwickler und dem Automatischer-Codegenerator-Selektor 102, zwischen dem Entwickler und dem automatischen Codegenerator 103, zwischen dem Entwickler und dem Konfigurator 104 sowie zwischen dem Entwickler und dem Linker 105.
  • Der Merkmalselektor 101 empfangt Merkmale, die einer zu entwickelnden Software entsprechen, von dem Entwickler durch die Nutzerschnittstelle 100 auf der Basis eines Merkmalsmodells, das erzeugt wird, indem Gemeinsamkeit und Variabilität mehrerer Softwareprodukte, die zu einer Softwareproduktlinie gehören, in Bezug auf Merkmale analysiert werden, und erstellt eine Liste der Merkmale.
  • Hier wird das Merkmalsmodell erzeugt, indem gemeinsame Merkmale, die üblicherweise in den mehreren Softwareprodukten, die zu der Softwareproduktlinie gehören, enthalten sind, und variable Merkmale, die in der zu der Softwareproduktlinie gehörenden mehreren Softwareprodukten enthalten oder nicht enthalten sind, analysiert werden.
  • Der Automatischer-Codegenerator-Selektor 102 empfängt einen zu entwickelnden Softwaretyp aus einer Mehrzahl von Softwaretypen, die in einer Softwaretypliste enthalten sind, von dem Entwickler durch die Nutzerschnittstelle 100 und wählt anhand einer Steuerung der Steuerung 106 aus der Automatischer-Codegenerator-Speicherung einen automatischen Codegenerator aus, der dem zu entwickelnden empfangenen Softwaretyp entspricht.
  • Beispielsweise kann der Automatischer-Codegenerator-Selektor 102 einen Datenverwaltersoftwaretyp, einen Datenumsetzersoftwaretyp, einen Datenverteilersoftwaretyp, einen Steuerungssoftwaretyp und einen Überwachungssoftwaretyp, die zu entwickelnde Softwaretypen sind, aus der Mehrzahl von Softwaretypen, die in der Softwaretypliste enthalten sind, durch die Nutzerschnittstelle 100 von dem Entwickler empfangen, und die Softwaretypen, die von dem Entwickler empfangen werden können, sind nicht auf diese beschränkt.
  • Bei einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung bezeichnet der Datenverwaltersoftwaretyp eine Software, die Daten speichert und verwaltet, wobei sie Anforderungen bezüglich eines Lesens, Schreibens, Löschens usw. von Daten von außen empfängt, auf eine Datenbank zugreift, um die empfangenen Anforderungen bezüglich eines Lesens, Schreibens, Löschens usw. von Daten zu verarbeiten, und Prozesse wie beispielsweise ein Lesen, Schreiben und Löschen von Daten durchführt. Der Datenumsetzersoftwaretyp bezeichnet eine Software, die von einem Datensender empfangene Daten gemäß einer Datenumwandlungsregel in andere Datenwerte umsetzt.
  • Bei einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung bezeichnet der Datenverteilersoftwaretyp eine Software, die von einem Datensender empfangene Daten gemäß einer Datenverteilungsregel an einen Datenempfänger sendet. Der Steuerungssoftwaretyp bezeichnet eine Software, die einen Zustand eines Systems verwaltet, wobei sie je nach einer aktuellen Situation eine vorbestimmte Handlung ausführt. Der Überwachungssoftwaretyp bezeichnet eine Software, die als Schnittstelle zwischen dem Nutzer und einem System Daten einem Nutzer ausliest und zeigt.
  • Bei einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung kann eine Software zumindest zwei Softwaretypen aufweisen. Beispielsweise setzt eine Software, die den Datenumsetzersoftwaretyp und den Datenverteilersoftwaretyp aufweist, von einem Datensender empfangene Daten gemäß einer Datenumwandlungsregel in andere Datenwerte um und sendet die Daten gemäß einer Datenverteilungsregel an einen Datenempfänger.
  • Der automatische Codegenerator 103 wählt Architekturkomponenten der zu entwickelnden Software unter Verwendung des zu entwickelnden Softwaretyps anhand einer Steuerung der Steuerung 106 aus der Architekturmodellspeicherung aus, empfängt Anforderungen des durch den Automatischer-Codegenerator-Selektor 102 ausgewählten automatischen Codegenerators von dem Entwickler durch die Nutzerschnittstelle 100 und erzeugt entsprechend dem zu entwickelnden Softwaretyp einen automatisch erzeugten Code.
  • Bei einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung werden die Anforderungen des durch den Automatischer-Codegenerator-Selektor 102 ausgewählten automatischen Codegenerators durch die Nutzerschnittstelle 100 von dem Entwickler empfangen, und die empfangenen Anforderungen des automatischen Codegenerators können einen Teil umfassen, der gemäß der durch den Merkmalselektor 101 ausgewählten Liste der Merkmale modifiziert ist, und einen Teil umfassen, der gemäß besagter Liste konfiguriert ist.
  • Bei einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung variieren die Anforderungen des durch den Automatischer-Codegenerator-Selektor 102 ausgewählten automatischen Codegenerators in Abhängigkeit von zumindest einem automatischen Codegenerator, der aus einem automatischen Codegenerator von Datenumsetzersoftwaretyp, einem automatischen Codegenerator vom Datenverteilersoftwaretyp, einem automatischen Codegenerator vom Steuerungssoftwaretyp und einem automatischen Codegenerator vom Datenumsetzers- + Datenverteilersoftwaretyp gemäß einem Softwaretyp ausgewählt ist.
  • Hier ist ein automatischer Codegenerator, der einem Softwaretyp entspricht, nicht auf die Beschreibung der vorliegenden Erfindung beschränkt, und ein softwaretypspezifischer automatischer Codegenerator kann für einen anderen Softwaretyp definiert sein. Die vorliegende Erfindung kann in verschiedenen unterschiedlichen Formen implementiert und ist nicht auf hierin beschriebene Beispiele beschränkt.
  • Der Konfigurator 104 modifiziert den Teil, der gemäß der Merkmalsliste modifiziert ist, und den Teil, der gemäß besagter Liste konfiguriert ist, in dem durch den automatischen Codegenerator 103 erzeugten automatisch erzeugten Code und dem Code der Architekturkomponenten der zu entwickelnden ausgewählten Software gemäß der durch den Merkmalselektor 101 ausgewählten Merkmalsliste, wodurch er einen konfigurierten Code ausgibt.
  • Hier weist der konfigurierte Code nicht die gemäß der durch den Merkmalselektor 101 ausgewählten Merkmalsliste zu modifizierenden und zu konfigurierenden Teile auf, sondern umfasst einen Teil, der eine verfügbare Domainbibliothek aufruft. Der Linker 105 verbindet den Teil, der die Domainbibliothek in dem durch – den Konfigurator 104 konfigurierten Code aufruft, mit einem Teil, der eine tatsächliche Domainbibliothek aufruft, die anhand einer Steuerung der Steuerung 106 aus der Domainbibliotheksspeicherung ausgewählt wird, wodurch er einen abschließenden Erzeugungscode erzeugt.
  • Die Automatischer-Codegenerator-Speicherung speichert automatische Codegeneratoren, die Softwaretypen entsprechen, die bereits entwickelt wurden. Die Architekturmodellspeicherung speichert Softwarearchitekturmodelle, Softwaretypen entsprechen. Die Domainbibliotheksspeicherung speichert Bibliotheken, die in Softwaredomains verwendet werden.
  • Wenn der Automatischer-Codegenerator-Selektor 102 den zu entwickelnden Softwaretyp aus der Mehrzahl von Softwaretypen, die in der Softwaretypliste enthalten sind, durch die Nutzerschnittstelle 100 von dem Entwickler empfängt und einen automatischen Codegenerator auswählt, steuert die Steuerung 106 den automatischen Codegenerator, der dem Softwaretyp entspricht, der zu entwickeln ist und durch die Nutzerschnittstelle 100 von dem Entwickler empfangen wird, und der aus der Automatischer-Codegenerator-Speicherung auszuwählen ist.
  • Wenn der automatische Codegenerator 103 die Architekturkomponenten der zu entwickelnden Software unter Verwendung des zu entwickelnden Softwaretyps auswählt, steuert die Steuerung 106 die Architekturkomponenten der zu entwickelnden Software, die aus der Architekturmodellspeicherung auszuwählen sind. Wenn der Linker 105 den Teil, der die Domainbibliothek in dem konfigurierten Code aufruft, mit einem Teil, der eine tatsächliche Domainbibliothek aufruft, verbindet, steuert die Steuerung 106 außerdem den Teil, der die tatsächliche Domainbibliothek aufruft, die aus der auszuwählenden Domainbibliotheksspeicherung ausgewählt ist.
  • Anforderungen eines automatischen Codegenerators, der durch den Automatischer-Codegenerator-Selektor 102 einer Vorrichtung zum Entwickeln von Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung ausgewählt ist, werden nachstehend unter Bezugnahme auf 2 bis 5 ausführlich beschrieben.
  • 2 ist ein beispielhaftes Diagramm, das Anforderungen eines automatischen Codegenerators vom Datenumsetzersoftwaretyp zeigt, der durch einen Automatischer-Codegenerator-Selektor einer Vorrichtung zum Entwickeln von softwaretypspezifischer Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung ausgewählt wird.
  • Unter Bezugnahme auf 2 werden dann, wenn eine Software vom Datenumsetzersoftwaretyp Daten-A von einem Datensender 200 empfängt, die empfangenen Daten-A gemäß einer Datenumwandlungsregel 201 für einen Fall, in dem beispielsweise ein Inhalt der empfangenen Daten-A a ist, in Daten-B umgesetzt. Eine derartige Beziehung kann in einer Entscheidungstabelle 203 gezeigt werden, die jeweilige Spalten Datensender * Daten, Umwandlungsbedingung und Handlung aufweist. Der automatische Codegenerator 103 kann einen automatisch erzeugten Code der Software vom Datenumsetzersoftwaretyp unter Verwendung der Entscheidungstabelle 203 automatisch erzeugen.
  • 3 ist ein beispielhaftes Diagramm, das Anforderungen eines automatischen Codegenerators vom Datenverteilersoftwaretyp zeigt, der durch einen Automatischer-Codegenerator-Selektor einer Vorrichtung zum Entwickeln von softwaretypspezifischer Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung ausgewählt wird.
  • Unter Bezugnahme auf 3 werden dann, wenn eine Software vom Datenverteilersoftwaretyp Daten-A von einem Datensender empfängt, die empfangenen Daten-A gemäß einer Datenumwandlungsregel 301 für einen Fall, in dem beispielsweise ein Inhalt der empfangenen Daten-A a ist, an einen Datenempfänger 302 transferiert. Eine derartige Beziehung kann in einer Entscheidungstabelle 303 gezeigt werden, die jeweilige Spalten Datensender * Daten, Bedingung und Handlung aufweist. Der automatische Codegenerator 103 kann einen automatisch erzeugten Code der Software vom Datenverteilersoftwaretyp aus der Entscheidungstabelle 203 automatisch erzeugen.
  • 4 ist ein beispielhaftes Diagramm, das Anforderungen eines automatischen Codegenerators vom Steuerungssoftwaretyp zeigt, der durch einen Automatischer-Codegenerator-Selektor einer Vorrichtung zum Entwickeln von softwaretypspezifischer Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung ausgewählt wird.
  • Unter Bezugnahme auf 4 steuert eine Software vom Steuerungssoftwaretyp mehrere Zustande eines Systems. Wenn beispielsweise Bedingungen vorliegen, die in jedem Zustand eines Systems auftreten können, und eine Bedingung, die auftreten kann, erfüllt ist, ruft die Software vom Steuerungssoftwaretyp eine Funktion auf oder schaltet in einen anderen Zustand um.
  • Bei einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung verwaltet die Software vom Steuerungssoftwaretyp einen Zustand 1 401 bis zu einem Zustand 4 404 des Systems. Die Software vom Steuerungssoftwaretyp schaltet von dem Zustand 1 401 in einen Zustand 2 402, wenn sich das System in dem Zustand 1 401 befindet und die Bedingung 1 erfüllt ist, schaltet von dem Zustand 1 401 in den Zustand 3 403, wenn sich das System in dem Zustand 1 401 befindet und die Bedingung 2 erfüllt ist, und schaltet von dem Zustand 3 403 in den Zustand 1 401, wenn sich das System in dem Zustand 3 403 befindet und die Bedingung 3 erfüllt ist.
  • Eine derartige Beziehung kann bei einem Zustandsdiagrammumsetzer 405 gezeigt werden, der jeweilige Spalten Zustand, Bedingung und Handlung aufweist. Der automatische Codegenerator 103 kann unter Verwendung des Zustandsdiagrammumsetzers 405 einen automatisch erzeugten Code der Software vom Steuerungssoftwaretyp automatisch erzeugen.
  • 5 ist ein beispielhaftes Diagramm, das Anforderungen eines automatischen Codegenerators vom Datenumsetzer- + Datenverteilersoftwaretyp zeigt, der durch den Automatischer-Codegenerator-Selektor 102 einer Vorrichtung zum Entwickeln von Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung ausgewählt wird.
  • Unter Bezugnahme auf 5 empfängt der automatische Codegenerator vom Datenumsetzer- + Datenverteilersoftwaretyp Daten-A von einem Datensender 500, setzt die empfangenen Daten-A in Daten-B um und transferiert die umgesetzten Daten-B gemäß einer Datenumwandlungsregel und einer Datenverteilungsregel 501 an einen Datenempfänger 502.
  • Eine derartige Beziehung kann in einer Entscheidungstabelle 503 gezeigt werden, die jeweilige Spalten Datensender * Daten, Bedingung und Handlung in Form einer Kombination der Entscheidungstabelle 203 eines Datenumsetzers und der Entscheidungstabelle 303 eines Datenverteilers aufweist.
  • Der automatische Codegenerator 103 kann unter Verwendung der Entscheidungstabelle 503 automatisch einen automatisch erzeugten Code der Software vom Datenumsetzer- + Datenverteilersoftwaretyp erzeugen. Ein Code, den der Konfigurator 104 gemäß einer Merkmalsliste in einem automatisch erzeugten Code und Architekturkomponentencode ausgewählter zu entwickelnder Software modifiziert und anpasst, nachdem ein Softwarerahmencode mit dem Code gefüllt wird, der durch den automatischen Codegenerator 103 einer Vorrichtung zum Entwickeln von Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung erzeugt wird, wird nachstehend unter Bezugnahme auf 6 ausführlich beschrieben.
  • 6 ist ein beispielhaftes Diagramm eines Codes, den ein Konfigurator gemäß einer Merkmalsliste in einem automatisch erzeugten Code und einem Architekturkomponentencode einer ausgewählten, zu entwickelnden Software modifiziert und anpasst, nachdem der automatische Codegenerator 103 einer Vorrichtung zum Entwickeln von Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung einen Softwarerahmencode mit dem automatisch erzeugten Code füllt.
  • Unter Bezugnahme auf 6 wählt der automatische Codegenerator 103 Architekturkomponenten einer zu entwickelnden Software unter Verwendung eines zu entwickelnden Softwaretyps anhand einer Steuerung der Steuerung 106 aus der Architekturmodellspeicherung aus, empfängt Anforderungen eines durch den Automatischer-Codegenerator-Selektor 102 ausgewählten automatischen Codegenerators durch die Nutzerschnittstelle 100 von dem Entwickler, erzeugt einen automatisch erzeugten Code 600a und 600b, die dem zu entwickelnden Softwaretyp entsprechen, und füllt nicht-implementierte Teile von Domainkomponenten, die die Softwarearchitekturkomponenten sind, beispielsweise eine Softwaredomainkomponente 602, und einen Softwarerahmencode 601 mit dem erzeugten automatisch erzeugten Code 600a und 600b.
  • Der Konfigurator 104 kann den Softwarerahmencode und den automatisch erzeugten Code gemäß einer durch den Merkmalselektor 101 ausgewählten Merkmalsliste modifizieren, wodurch er einen konfigurierten Code ausgibt.
  • Hier kann der konfigurierte Code einen Teil umfassen, der eine Domainbibliothek aufruft, und die Softwaredomainkomponenten 602 und der automatisch erzeugte Code 600a und 600b können konfigurierte Codeteile 603a und 603b umfassen, die verschiedenen Punkten gemäß der durch den Merkmalselektor 101 ausgewählten Merkmalsliste entsprechen.
  • Bei einem Softwarecode umfasst der Konfigurator 104 eventuell nicht die konfigurierten Codeteile 603a und 603b, die den verschiedenen Punkten entsprechen, die durch ein Vergleichen des Softwarerahmencodes und des automatisch erzeugten Codes mit der durch den Merkmalselektor 101 ausgewählten Merkmalsliste erzeugt werden.
  • Der Linker 105 verbindet den Teil, der die Domainbibliothek in dem durch den Konfigurator 104 konfigurierten Code aufruft, mit einem Teil, der eine Bibliothek der Softwaredomainkomponenten aufruft, wodurch er einen abschließenden Erzeugungscode erzeugt.
  • Eine innere Struktur einer Software, die unter Verwendung einer softwareproduktlinienbasierten Softwareentwicklungsvorrichtung entwickelt werden soll, die einen softwaretypspezifischen automatischen Codegenerator gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung verwendet, wird nachfolgend unter Bezugnahme auf 7 ausführlich beschrieben.
  • 7 ist ein Blockdiagramm, das schematisch eine innere Struktur einer Software zeigt, die unter Verwendung einer softwareproduktlinienbasierten Softwareentwicklungsvorrichtung entwickelt werden soll, die einen softwaretypspezifischen automatischen Codegenerator gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung verwendet.
  • Unter Bezugnahme auf 7 speichert eine Datenbank 701 Daten, und die Datenbank 701 und eine Middleware 702 rufen sich gegenseitig auf. Die Middleware 702 und eine Domainkomponente 703 einer zu entwickelnden Software rufen sich gegenseitig auf.
  • Die Softwaredomainkomponente 703 wird erhalten, indem eine Funktion, die in Domains der zu entwickelnden Software gemeinsam als Komponente verwendet wird, implementiert wird, und die Softwaredomainkomponente 703 und ein Softwarerahmencode und ein automatisch erzeugter Code 704 rufen sich gegenseitig auf.
  • Der Softwarerahmencode und der automatisch erzeugte Code 704 speichern einen automatisch erzeugten Code, der erzeugt wird, indem ein nicht-implementierter Teil eines Softwarerahmencodes mit einem automatisch erzeugten Code gefüllt wird.
  • Hier ist der Softwarerahmencode ein Code, der auf Software spezialisiert ist und für den eine Schnittstelle definiert ist. Bei dem Softwarerahmencode ist das Innere einer Funktion nicht implementiert, und ein Algorithmus wird nicht verfeinert. Der automatisch erzeugte Code wird durch den automatischen Codegenerator 103 automatisch erzeugt und auf Software spezialisiert. Ein Verfahren zum Entwickeln von Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung wird nachfolgend unter Bezugnahme auf 8 ausführlich beschrieben.
  • 8 ist ein Flussdiagramm, das ein Verfahren zum Entwickeln von Software gemäß einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung veranschaulicht.
  • Unter Bezugnahme auf 8 empfängt eine Vorrichtung zum Entwickeln von Software Merkmale, die einer zu entwickelnden Software entsprechen, von einem Entwickler auf der Basis eines Merkmalsmodells, das erzeugt wird, indem gemeinsame und unterschiedliche Punkte mehrerer Softwareprodukte, die zu einer Softwareproduktlinie gehören, analysiert werden, und erstellt eine Liste der Merkmale (S801).
  • Hier wird das Merkmalsmodell erzeugt, indem gemeinsame Merkmale, die üblicherweise in den zu der Softwareproduktlinie gehörenden mehreren Softwareprodukten enthalten sind, und variable Merkmale, die in den zu der Softwareproduktlinie gehörenden mehreren Softwareprodukten enthalten oder nicht enthalten sind, analysiert werden.
  • Die Vorrichtung zum Entwickeln von Software empfängt einen zu entwickelnden Softwaretyp aus einer Mehrzahl von Softwaretypen, die in einer Softwaretypliste enthalten sind, von dem Entwickler und wählt einen automatischen Codegenerator, der dem zu entwickelnden empfangenen Softwaretyp entspricht, aus (S802).
  • Die Vorrichtung zum Entwickeln von Software kann einen Datenverwaltersoftwaretyp, einen Datenumsetzersoftwaretyp, einen Datenverteilersoftwaretyp, einen Steuerungssoftwaretyp und einen Überwachungssoftwaretyp, die zu entwickelnde Softwaretypen sind, aus der Mehrzahl von Softwaretypen, die in der Softwaretypliste enthalten sind, von dem Entwickler empfangen, und die Softwaretypen, die von dem Entwickler empfangen werden können, sind nicht auf diese beschränkt.
  • Bei einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung bezeichnet der Datenverwaltersoftwaretyp eine Software, die Daten speichert und verwaltet, wobei sie Anforderungen bezüglich eines Lesens, Schreibens, Löschens usw. von Daten von außen empfängt, auf eine Datenbank zugreift, um die empfangenen Anforderungen bezüglich eines Lesens, Schreibens, Löschens usw. von Daten zu verarbeiten, und Prozesse wie beispielsweise ein Lesen, Schreiben und Löschen von Daten durchführt. Der Datenumsetzersoftwaretyp bezeichnet eine Software, die von einem Datensender empfangene Daten gemäß einer Datenumwandlungsregel in andere Datenwerte umsetzt.
  • Bei einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung bezeichnet der Datenverteilersoftwaretyp eine Software, die von einem Datensender empfangene Daten gemäß einer Datenverteilungsregel an einen Datenempfänger sendet. Der Steuerungssoftwaretyp bezeichnet eine Software, die einen Zustand eines Systems verwaltet, wobei sie je nach einer aktuellen Situation eine vorbestimmte Handlung ausführt. Der Überwachungssoftwaretyp bezeichnet eine Software, die als Schnittstelle zwischen dem Nutzer und einem System Daten einem Nutzer ausliest und zeigt.
  • Bei einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung kann eine Software zumindest zwei Softwaretypen aufweisen. Beispielsweise setzt eine Software, die den Datenumsetzersoftwaretyp und den Datenverteilersoftwaretyp aufweist, von einem Datensender empfangene Daten gemäß einer Datenumwandlungsregel in andere Datenwerte um und sendet die Daten gemäß einer Datenverteilungsregel an einen Datenempfänger.
  • Die Vorrichtung zum Entwickeln von Software empfängt Architekturkomponenten von Software, die dem zu entwickelnden Softwaretyp entspricht, und Anforderungen des automatischen Codegenerators von dem Entwickler, wodurch sie einen automatisch erzeugten Code erzeugt, der dem zu entwickelnden Softwaretyp entspricht (S803).
  • Bei einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung empfängt die Vorrichtung zum Entwickeln von Software die Anforderungen des durch den Automatischer-Codegenerator-Selektor 102 ausgewählten automatischen Codegenerators von dem Entwickler, und die empfangenen Anforderungen des automatischen Codegenerators können einen Teil umfassen, der gemäß der Merkmalsliste modifiziert ist, und einen Teil umfassen, der gemäß besagter Liste konfiguriert ist.
  • Bei einem exemplarischen Ausführungsbeispiel der vorliegenden Erfindung variieren die Anforderungen des vom dem Entwickler empfangenen automatischen Codegenerators in Abhängigkeit von zumindest einem automatischen Codegenerator, der aus einem automatischen Codegenerator von Datenumsetzersoftwaretyp, einem automatischen Codegenerator vom Datenverteilersoftwaretyp, einem automatischen Codegenerator vom Steuerungssoftwaretyp und einem automatischen Codegenerator vom Datenumsetzers- + Datenverteilersoftwaretyp gemäß einem Softwaretyp ausgewählt ist.
  • Hier ist ein automatischer Codegenerator, der einem Softwaretyp entspricht, nicht auf die Beschreibung der vorliegenden Erfindung beschränkt, und ein softwaretypspezifischer automatischer Codegenerator kann für einen anderen Softwaretyp definiert sein. Die vorliegende Erfindung kann in verschiedenen unterschiedlichen Formen implementiert und ist nicht auf hierin beschriebene Beispiele beschränkt.
  • Die Vorrichtung zum Entwickeln von Software modifiziert den Teil, der gemäß der Merkmalsliste modifiziert ist, und den Teil, der gemäß besagter Liste konfiguriert ist, in dem automatisch erzeugten Code und dem Code der Architekturkomponenten der zu entwickelnden Software gemäß der Merkmalsliste, wodurch er einen konfigurierten Code ausgibt (S804).
  • Hier weist der konfigurierte Code nicht die gemäß der Merkmalsliste zu modifizierenden und zu konfigurierenden Teile auf, sondern umfasst einen Teil, der eine verfügbare Domainbibliothek aufruft. Die Vorrichtung zum Entwickeln von Software verbindet den Teil, der die Domainbibliothek in dem konfigurierten und ausgegebenen Code aufruft, mit einem Teil, der eine tatsächliche Domainbibliothek aufruft, wodurch er einen abschließenden Softwarecode erzeugt (S805).
  • Obwohl die Erfindung unter Bezugnahme auf bestimmte exemplarische Ausführungsbeispiele derselben gezeigt und beschrieben wurde, wird Fachleuten einleuchten, dass verschiedene Veränderungen in Form und Einzelheiten daran vorgenommen werden können, ohne von der Wesensart und dem Schutzumfang der Erfindung, wie sie durch die angehängten Patentansprüche definiert sind, abzuweichen.

Claims (17)

  1. Vorrichtung zum Entwickeln von Software, die folgende Merkmale aufweist: einen Merkmalselektor (101), der dazu konfiguriert ist, ein Merkmal, das einer einer Entwicklung unterworfenen Software entspricht, die von einem Entwickler empfangen wird, aus einem Merkmalsmodell auszuwählen, das erzeugt wird, indem Merkmale mehrerer Softwareprodukte analysiert werden, und eine Merkmalsliste zu erzeugen; einen Automatischer-Codegenerator-Selektor (102), der dazu konfiguriert ist, einen automatischen Codegenerator zu bestimmen, der einem von dem Entwickler empfangenen, einer Entwicklung unterworfenen Softwaretyp entspricht; einen automatischen Codegenerator (103), der dazu konfiguriert ist, Architekturkomponenten der einer Entwicklung unterworfenen Software unter Verwendung des einer Entwicklung unterworfenen Softwaretyps auszuwählen und auf der Basis der ausgewählten Architekturkomponenten und Anforderungen des von dem Entwickler empfangenen ermittelten automatischen Codegenerators einen automatisch erzeugten Code zu erzeugen; einen Konfigurator (104), der dazu konfiguriert ist, den automatisch erzeugten Code und einen Code der Architekturkomponenten auf der Basis der erzeugten Merkmalsliste zu modifizieren und einen konfigurierten Code auszugeben; und einen Linker (105), der dazu konfiguriert ist, einen Teil, der eine Bibliothek einer Domain in dem konfigurierten Code aufruft, mit einem Teil, der eine tatsächliche Domainbibliothek aufruft, zu verbinden und einen abschließenden Erzeugungscode zu erzeugen.
  2. Vorrichtung gemäß Anspruch 1, die ferner eine Nutzerschnittstelle (100) aufweist, die dazu konfiguriert ist, Eingaben und Ausgaben zwischen dem Entwickler und dem Merkmalselektor, zwischen dem Entwickler und dem Automatischer-Codegenerator-Selektor und zwischen dem Entwickler und dem automatischen Codegenerator zu steuern.
  3. Vorrichtung gemäß Anspruch 1 oder 2, die ferner eine Speicherung (107) aufweist, die dazu konfiguriert ist, eine Mehrzahl zuvor entwickelter automatischer Codegeneratoren, eine Mehrzahl von Softwarearchitekturkomponenten und Bibliotheken, die in einer Softwaredomain verwendet werden, je nach Softwaretypen separat zu speichern.
  4. Vorrichtung gemäß einem der Ansprüche 1 bis 3, die ferner eine Steuerung (106) aufweist, die dazu konfiguriert ist, den automatischen Codegenerator, der dem von dem Entwickler empfangenen, einer Entwicklung unterworfenen Softwaretyp entspricht und der aus einer Mehrzahl von zuvor entwickelten Automatischer-Codegenerator-Selektoren, die in einer Speicherung gespeichert sind, auszuwählen ist, je nach Softwaretypen zu steuern.
  5. Vorrichtung gemäß Anspruch 4, bei der die Steuerung (106) Architekturkomponenten, die dem von dem Entwickler empfangenen, einer Entwicklung unterworfenen Softwaretyp entsprechen und die aus einer Mehrzahl von Softwarearchitekturkomponenten auszuwählen sind, die in der Speicherung gespeichert sind, je nach Softwaretypen steuert.
  6. Vorrichtung gemäß Anspruch 4 oder 5, bei der die Steuerung (106) den Teil, der mit dem Teil verbunden ist, der die Bibliothek der Domain in dem konfigurierten Code aufruft, die aus in der Speicherung gespeicherten Bibliotheken auszuwählen ist, steuert.
  7. Vorrichtung gemäß einem der Ansprüche 1 bis 6, bei der der Konfigurator (104) einen nicht-implementierten Teil eines Softwarerahmencodes der Architekturkomponenten der einer Entwicklung unterworfenen Software mit dem erzeugten automatisch erzeugten Code füllt.
  8. Vorrichtung gemäß einem der Ansprüche 1 bis 7, bei der das Merkmalsmodell erzeugt wird, indem Gemeinsamkeit und Variabilität von mehreren Softwareprodukten, die zu einer Softwareproduktlinie gehören, in Bezug auf Merkmale analysiert werden.
  9. Vorrichtung gemäß einem der Ansprüche 1 bis 8, bei der die Anforderungen je nach dem automatischen Codegenerator, der dem einer Entwicklung unterworfenen Softwaretyp entspricht, variieren.
  10. Verfahren zum Entwickeln von Software, das in einer Softwareentwicklungsvorrichtung durchgeführt wird, wobei das Verfahren folgende Schritte aufweist: Auswählen eines Merkmals, das einer einer Entwicklung unterworfenen Software entspricht, die von einem Entwickler empfangen wird, aus einem Merkmalsmodell, das erzeugt wird, indem Merkmale mehrerer Softwareprodukte, die zu einer Softwareproduktlinie gehören, analysiert werden, und Erstellen einer Merkmalsliste (S801); Bestimmen eines automatischen Codegenerators, der einem von dem Entwickler empfangenen, einer Entwicklung unterworfenen Softwaretyp entspricht; Auswählen von Architekturkomponenten der einer Entwicklung unterworfenen Software unter Verwendung des einer Entwicklung unterworfenen Softwaretyps, und Erzeugen eines automatisch erzeugten Codes auf der Basis der ausgewählten Architekturkomponenten und Anforderungen des von dem Entwickler empfangenen ermittelten automatischen Codegenerators; Modifizieren des automatisch erzeugten Codes und des Codes der Architekturkomponenten auf der Basis der erstellten Merkmalsliste, und Ausgeben eines konfigurierten Codes; und Verbinden eines Teils, der eine Bibliothek einer Domain in dem konfigurierten Code aufruft, mit einem Teil, der eine tatsächliche Domainbibliothek aufruft, und Erzeugen eines abschließenden Erzeugungscodes (S805).
  11. Verfahren gemäß Anspruch 10, das ferner ein separates Speichern einer Mehrzahl von zuvor entwickelten automatischen Codegeneratoren, einer Mehrzahl von Softwarearchitekturkomponenten und von Bibliotheken, die in einer Softwaredomain verwendet werden, je nach Softwaretypen aufweist.
  12. Verfahren gemäß Anspruch 10 oder 11, das ferner ein Steuern des automatischen Codegenerators, der dem von dem Entwickler empfangenen, einer Entwicklung unterworfenen Softwaretyp entspricht und der aus einer Mehrzahl von zuvor entwickelten Automatischer-Codegenerator-Selektoren, die in einer Speicherung gespeichert sind, auszuwählen ist, je nach Softwaretypen aufweist.
  13. Verfahren gemäß Anspruch 12, bei dem das Steuern des automatischen Codegenerators ein Steuern von Architekturkomponenten, die dem von dem Entwickler empfangenen, einer Entwicklung unterworfenen Softwaretyp entsprechen und die aus einer Mehrzahl von gespeicherten Softwarearchitekturkomponenten auszuwählen sind, je nach den Softwaretypen umfasst.
  14. Verfahren gemäß Anspruch 12 oder 13, bei dem das Steuern des automatischen Codegenerators ein Steuern des Teil, der mit dem Teil verbunden ist, der die Bibliothek der Domain in dem konfigurierten Code aufruft, die aus gespeicherten Bibliotheken auszuwählen ist, je nach den Softwaretypen umfasst.
  15. Verfahren gemäß einem der Ansprüche 10 bis 14, bei dem das Erzeugen des automatisch erzeugten Codes ein Füllen eines nicht-implementierten Teils eines Softwarerahmencodes der Architekturkomponenten der einer Entwicklung unterworfenen Software mit dem erzeugten automatisch erzeugten Code umfasst.
  16. Verfahren gemäß einem der Ansprüche 10 bis 15, bei dem das Merkmalsmodell erzeugt wird, indem Gemeinsamkeit und Variabilität von mehreren Softwareprodukten, die zu einer Softwareproduktlinie gehören, in Bezug auf Merkmale analysiert werden.
  17. Verfahren gemäß einem der Ansprüche 10 bis 16, bei dem die Anforderungen je nach dem automatischen Codegenerator, der dem einer Entwicklung unterworfenen Softwaretyp entspricht, variieren.
DE112011100069T 2010-11-18 2011-10-18 Verfahren zum Entwickeln von Software und Vorrichtung für dasselbe Withdrawn DE112011100069T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR10-2010-0115218 2010-11-18
KR1020100115218A KR101155207B1 (ko) 2010-11-18 2010-11-18 소프트웨어 개발 방법 및 이를 위한 장치
PCT/KR2011/007751 WO2012067351A2 (ko) 2010-11-18 2011-10-18 소프트웨어 개발 방법 및 이를 위한 장치

Publications (1)

Publication Number Publication Date
DE112011100069T5 true DE112011100069T5 (de) 2012-10-18

Family

ID=46084457

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011100069T Withdrawn DE112011100069T5 (de) 2010-11-18 2011-10-18 Verfahren zum Entwickeln von Software und Vorrichtung für dasselbe

Country Status (7)

Country Link
US (1) US9268544B2 (de)
JP (1) JP5559356B2 (de)
KR (1) KR101155207B1 (de)
CN (1) CN102893258A (de)
DE (1) DE112011100069T5 (de)
GB (1) GB2488080A (de)
WO (1) WO2012067351A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109597814A (zh) * 2018-12-06 2019-04-09 广州万惠信息技术咨询服务有限公司 一种后台管理信息系统的在线快速交付系统

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101558727B1 (ko) 2014-01-06 2015-10-08 강원대학교산학협력단 진화적 소프트웨어 제품 라인을 위한 산출물 버전 관리 방법
US20160098256A1 (en) * 2014-10-03 2016-04-07 General Motors Llc Visual tool and architecting logical layers of software components
JP2016081152A (ja) * 2014-10-14 2016-05-16 日本電気株式会社 プロダクトライン構築装置、プロダクトライン構築方法、プロダクトライン構築プログラム
US10949785B2 (en) * 2015-01-28 2021-03-16 Micro Focus Llc Product portfolio rationalization
KR101722392B1 (ko) * 2015-10-06 2017-04-05 숭실대학교산학협력단 형상 관리 시스템 및 방법
US11720330B2 (en) 2016-10-17 2023-08-08 Engineer.ai Corp. Application development involving instant protoyping
US11636022B2 (en) 2019-04-16 2023-04-25 Samsung Electronics Co., Ltd. Server and control method thereof
US20230251830A1 (en) 2020-06-16 2023-08-10 Engineer.ai Corp Systems and methods for creating software
CN112000366B (zh) * 2020-08-26 2024-02-23 中国银行股份有限公司 基于代码生成器的系统参数配置方法及装置
WO2023148987A1 (ja) * 2022-02-07 2023-08-10 日立Astemo株式会社 演算装置、ソフトウエア部品選択方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816380A (ja) * 1994-07-04 1996-01-19 Fujitsu Ltd プログラム構築装置
JPH11237982A (ja) * 1998-02-23 1999-08-31 Ricoh Co Ltd ソフトウェア部品開発支援装置
US7334216B2 (en) * 2000-04-04 2008-02-19 Sosy, Inc. Method and apparatus for automatic generation of information system user interfaces
US7243334B1 (en) * 2002-01-16 2007-07-10 Prelude Systems, Inc. System and method for generating user interface code
US7746347B1 (en) * 2004-07-02 2010-06-29 Nvidia Corporation Methods and systems for processing a geometry shader program developed in a high-level shading language
US7761848B1 (en) 2005-03-15 2010-07-20 Open Invention Network, Llc Code generator tool for building software applications with reusable components
US20070028208A1 (en) * 2005-06-07 2007-02-01 Alec Maki Runtime generative programming method and system
KR100744886B1 (ko) 2005-06-28 2007-08-01 학교법인 포항공과대학교 아사달 : 휘처 기반 소프트웨어 제품라인 개발 환경을제공하는 시스템
JP2009223856A (ja) * 2008-03-19 2009-10-01 Network Oyo Gijutsu Kenkyusho:Kk 支援システム、モデル生成装置、表示装置、支援方法、及び、製造方法
US9324175B2 (en) * 2009-09-11 2016-04-26 Nvidia Corporation Memory coherency in graphics command streams and shaders

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109597814A (zh) * 2018-12-06 2019-04-09 广州万惠信息技术咨询服务有限公司 一种后台管理信息系统的在线快速交付系统

Also Published As

Publication number Publication date
CN102893258A (zh) 2013-01-23
US20120240100A1 (en) 2012-09-20
GB2488080A (en) 2012-08-15
JP5559356B2 (ja) 2014-07-23
US9268544B2 (en) 2016-02-23
KR101155207B1 (ko) 2012-06-13
KR20120053873A (ko) 2012-05-29
WO2012067351A3 (ko) 2012-07-19
WO2012067351A2 (ko) 2012-05-24
GB201209661D0 (en) 2012-07-11
JP2013512530A (ja) 2013-04-11

Similar Documents

Publication Publication Date Title
DE112011100069T5 (de) Verfahren zum Entwickeln von Software und Vorrichtung für dasselbe
EP2799983B1 (de) Flexible Aufteilung der I/O Kanäle einer Hardware Komponente
DE102005026040A1 (de) Parametrierung eines Simulations-Arbeitsmodells
DE102005010900A1 (de) Modellspezifische Registeroperationen
EP3130970A1 (de) Verfahren zum verbinden einer eingabe/ausgabe-schnittstelle eines für die steuergerätentwicklung eingerichteten testgeräts
DE10333087A1 (de) Verfahren zum automatischen Zerlegen von dynamischen Systemmodellen in Teilmodelle
EP3188053A1 (de) Verfahren zum konfigurieren einer co-simulation für ein gesamtsystem
EP3396572A1 (de) Verfahren zum betrieb einer bildaufnahmeeinrichtung, bildaufnahmeeinrichtung, computerprogramm und elektronisch lesbarer datenträger
DE102018110020A1 (de) Verfahren zum Erzeugen eines auf einem Testgerät ausführbaren Modells eines technischen Systems und Testgerät
WO2019025155A1 (de) Verfahren zur erzeugung von quellcode
DE112014001359T5 (de) Prädiktives System zum Bereitstellen von Unternehmensanwendungen
DE102020123506A1 (de) Verfahren zur Erzeugung von Quellcode mit servicebasierter Kommunikation
EP3058425B1 (de) Vorrichtung und verfahren zur änderung von betriebseinstellungen einer technischen anlage
EP1634130B1 (de) Vorrichtung und verfahren zur programmierung und/oder ausführung von programmen für industrielle automatisierungssysteme
DE10324594A1 (de) Verfahren zum Bereitstellen einer verbesserten Simulationsfähigkeit eines dynamischen Systems außerhalb der ursprünglichen Modellierungsumgebung
DE102012223587A1 (de) Verfahren zum Testen einer Applikation
DE68928984T2 (de) Fuzzy-Steuersystem und Verfahren
EP0862763A2 (de) Simulatoreinheit zum simulieren einer peripherieeinheit einer modular aufgebauten speicherprogrammierbaren steuerung
DE102013202376A1 (de) Syteme und Verfahren zum Erzeugen von qualitativ hochwertigen formalen ausführbaren Softwaremerkmalanforderungen
EP0919036A1 (de) Verfahren zur automatischen maschinellen erzeugung von fertigungsunterlagen
DE10394242T5 (de) Verfahren und Instrument zur Zuweisung von Rechenressourcen in einem verteilten Steuersystem
WO2012045322A1 (de) Verfahren und prozessrechner zur berechnung der zustandsgrössen eines hybriden differential-algebraischen prozessmodells
DE10033812A1 (de) Verfahren zum Erzeugen von Informationsmodellen
DE10055679A1 (de) Verfahren, Computersystem und Computerprogramm-Produkte zur modellbasierten Generierung von Testszenarien
EP3376736A1 (de) Verfahren und vorrichtung zur übermittlung von daten in einem computernetzwerk sowie computerprogramm mit einer implementation des verfahrens

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee