Entwicklung eines neuen Produkts. Arten von Produkten und ihre Struktur. Übersicht über den Softwareentwicklungsprozess

EINFÜHRUNG


EIN GEMEINSAMES TEIL

Zweck der Entwicklung

· Sehen Sie sich das Fotoalbum an;

· Durchsuche die Seite;

BESONDERER TEIL

Formulierung des Problems

Entwickeln Sie eine Lehrer-Website mit Informationen zu Disziplinen und Kursen für Schüler und Lehrer.

Die Website muss mit der WordPress-Engine entwickelt werden.

Die Website muss folgende Aufgaben erfüllen:

· Informationen zu aktuelle Themen;

· einfache Navigation, barrierefreie Suche nach Informationen auf der Website;

· Bereitstellung der Einsicht in methodische Entwicklungen und Vorlesungsmaterialien;

· Möglichkeit zum Herunterladen von Vorlesungen und Laborarbeiten;

· Bereitstellung des Zugriffs auf die Anzeige von Bildern in Fotoalben auf der Website;

· Testmöglichkeiten für alle Benutzer auf der Website.

· Bereitstellung der Möglichkeit, mithilfe von Feedback ein Thema vorzuschlagen.



Die Website muss:

· über eine klare und benutzerfreundliche Oberfläche verfügen;

· in jedem Browser korrekt funktionieren;

· Für mobile Geräte angepasst sein.

Entwickeln Sie ein universelles Design, das den Zielen des Projekts entspricht.

Anforderungen an Eingabe- und Ausgabedaten

Eingabedaten

· Auf der Website veröffentlichte Informationen;

· Auf der Website veröffentlichte Textdokumente in den Formaten .pdf und .docx;

· Auf der Website veröffentlichte Bilder (.jpg, .png);

· Von Site-Benutzern eingegebene Abfragen zur Suche nach Informationen;

· Hostdaten zum Hosten einer Website im Internet;

· Ausgewählte Antwortmöglichkeiten im Test;

· Vom Benutzer an die E-Mail-Adresse des Administrators gesendete Nachricht.

Ausgabe:

· Antworten auf Benutzeranfragen;

· Heruntergeladene Dateien von der Website;

· Testergebnisse.

Anforderungen an Zusammensetzung und Parameter technische Mittel

Die Zusammensetzung der technischen Mittel, die für die Entwicklung dieses Softwareprodukts erforderlich sind:

Prozessor: Intel Celeron1,80 GHz;

Anzeige: beliebig;

Grafikkarte: NVIDIAGeForceGT 630 oder RadeonHD 6750 1 GB.

Speicherplatz: 500 MB;

Festplatten: 2 GB freier Speicherplatz;

Die Zusammensetzung der für die Entwicklung dieses Softwareprodukts erforderlichen Software:

Betriebssystem: Unix, Windows 7,8,10

Internet Zugang

Die Zusammensetzung der Software, die zur Nutzung dieses Softwareprodukts erforderlich ist:

Browser: Google Chrome, Yandex Browser, Opera, Mozilla Firefox usw.

Beschreibung des Algorithmus

Beim Betreten der Website wird dem Nutzer die Möglichkeit gegeben, die für den Nutzer gewünschte Seite auszuwählen. Die Website bietet Informationen zum Ansehen und Studieren, zum Testen der beim Studium theoretischer Materialien erworbenen Kenntnisse sowie die Möglichkeit, mit dem Administrator Kontakt aufzunehmen.

Die Website bietet ein Menü bestehend aus folgenden Punkten: methodische Entwicklungen, Informationen zum Autor, Feedback, Tests, Fotogalerie. Vorlesungsmaterialien und Unterrichtsmanagement werden ebenfalls in den Abschnitten bereitgestellt.

Bei Auswahl des Menüpunktes „ Methodische Entwicklungen» Es gibt einen Übergang zu einer Seite, auf der beschrieben wird, welche Studienmaterialien diese Entwicklungen bieten. Der ausgewählte Menüpunkt ist in die 4 Unterpunkte „Übungen“, „Offene Lektionen“, „Laborarbeit“ und „Vorlesungsmaterialien“ unterteilt.

· Durch Auswahl des Unterpunktes „Tutorials“ werden Lehrbücher bereitgestellt, Lehrmittel, für das Programmthemen für Disziplinen, spezifische Lektionen, Laborarbeiten, Tests und mehr entwickelt wurden.

· Durch Auswahl des Unterpunktes „Offen“ erhalten Sie die Möglichkeit, sich durch das Studium konkreter Lektionen mit Lehrmethoden vertraut zu machen.

· Der Unterpunkt „Vorlesungsmaterialien“ bietet die Möglichkeit, Vorlesungen zu den gelehrten Disziplinen Informatik, Betriebssystem und Datenbanken.

· Über den Unterpunkt „Laborarbeiten“ können Sie Praxisaufgaben in den Fachbereichen herunterladen.

Unter dem Menüpunkt „Feedback“ steht Ihnen ein Formular zur Kontaktaufnahme mit dem Administrator per E-Mail zur Verfügung. Mit diesem Element können Sie ein Thema zur Veröffentlichung vorschlagen oder Fehler auf der Website melden.

Über den Menüpunkt „Testen“ haben Sie die Möglichkeit, in bestimmten Disziplinen einen Test abzulegen, um die im Rahmen des Studiums von Vorlesungsmaterialien erworbenen Kenntnisse zu überprüfen.

Unter dem Punkt „Fotoalbum“ können Sie Bilder anzeigen, nämlich Fotos des Lehrers bei Veranstaltungen, Unterrichtsstunden, Wettbewerben, mit Schülern usw.

Strukturschema

Beschreibung des Debugging-Prozesses

Unter Debuggen versteht man den Prozess, Fehler in einem Programm zu erkennen und zu beheben. Das Debuggen kann nur dann als abgeschlossen betrachtet werden, wenn die Gewissheit besteht, dass das Programm nach der Korrektur genau das tut, was bei der Formulierung der Aufgabe von ihm verlangt wird.

Syntaxfehler werden ausschließlich zur Kompilierungszeit erkannt. Das Programm wird erst kompiliert, wenn alle Syntaxfehler korrigiert sind. Logische Fehler führen zu einer fehlerhaften Programmbedienung.

Die Website wurde unter Verwendung der Funktionen von WordPress entwickelt, wodurch zwar Syntaxfehler aus der Entwicklung ausgeschlossen werden, logische Fehler jedoch nicht beseitigt werden.

Liste der Fehler

· Fehlerhafte Bedienung des visuellen Editors im Admin-Bereich der Website.

Lösung: Ändern Sie die WordPress-Einstellungen.

· Falscher Bildbetrachtungsprozess

Lösung: Überprüfen Sie die Interaktionen der Plugins untereinander, ersetzen Sie das Galerie-Plugin durch ein kompatibleres Plugin.

· Fehler in den Testergebnissen

Lösung: Ändern Sie den Code im Testergebnisblock.

· Falsche Klickbarkeit des Links

Lösung: Code ändern

ORGANISATION DER PRODUKTION

Benutzerhinweise

Um diese Website nutzen zu können, müssen Sie Zugang zum Internet haben.

Browser auswählen;

Geben Sie in der Suchleiste die Website-Adresse minkata.ru ein;

Wählen Sie beim Besuch der Website den gewünschten Menüpunkt aus:

· Methodische Entwicklungen (dieser Abschnitt dient dem Studium der Lehrmethoden und dem eigenständigen Studium des Fachs durch Herunterladen und Erledigen von Labor- und Praxisaufgaben sowie dem Studium von Vorlesungen und Handbüchern, anhand derer der Lehrplan gelehrt wird)

o Laborarbeit

o Vorlesungsmaterialien

§ Datenbank

§ Informatik

§ Betriebssystem

o Offener Unterricht

§ Lektion über Datenbanken

§ Lektion über Informatik

§ Lektion über Betriebssysteme

· Feedback (dieser Abschnitt dient der Kommunikation mit dem Administrator durch Senden einer Nachricht)

· Testen (dieser Abschnitt dient der Selbstprüfung des Wissens)

o Datenbanken

o Informatik

o Betriebssysteme

· Fotogalerie (dieser Abschnitt enthält Fotos zum Ansehen)

WIRTSCHAFTLICHER TEIL

Materialkostenberechnung

Materialien und eingekaufte Produkte werden nach Materialverbrauchsraten im Direktzählverfahren nach folgender Formel berechnet:

,

wobei q М j die Verbrauchsrate des j-ten Materials für die Entwicklung von Software ist, PCs; C M j – Stückpreis des j-ten Materials, p; N TR – Standardtransportkosten. Die Berechnungsergebnisse sind in Tabelle 2 dargestellt.

Tabelle 2 – Materialkosten

ARBEITSSCHUTZ

Der Erfolg der Tätigkeit des menschlichen Bedieners kann durch die optimale Organisation der Interaktion zwischen Mensch und Maschine sichergestellt werden, wenn die technischen Eigenschaften der Ausrüstung den physischen und geistigen Fähigkeiten des Menschen entsprechen und optimale Geschwindigkeiten und Betriebsarten festgelegt werden.

Arbeitskomfort und hohe Produktivität am Arbeitsplatz des Bedieners hängen von der richtigen Wahl der technischen Ausstattung ab. Die wichtigsten Merkmale eines Arbeitsplatzes sind Reichweiten. Im Computerraum sollten Displays und Tastaturen dort installiert werden, wo die schnellsten, genauesten, koordiniertesten und am wenigsten ermüdenden Bewegungen möglich sind.

Wenn der Bediener in „sitzender“ Position arbeitet, werden die folgenden Arbeitsbereichsparameter verwendet:

1. Breite mindestens 700 mm;

2. Tiefe mindestens 400 mm;

3. Die Höhe der Arbeitsfläche des Tisches über dem Boden beträgt 750 mm.

Unter der Arbeitsfläche des Tisches ist Platz für Beine:

1. Höhe mindestens 600 mm;

2. Breite mindestens 500 mm;

3. Tiefe nicht weniger als 400 mm.

Wenn eine Überprüfung des Arbeitsplatzes erforderlich ist, sollte dessen Höhe 1200 mm überschreiten. Der Fahrersitz muss eine zuverlässige Körperunterstützung bieten. Die Sitzhöhe beträgt ca. 500 mm.

Durchgänge müssen eine Breite von ca. 800 mm haben, die ein gegenseitiges Passieren ermöglicht.

Für die Schaffung optimaler Arbeitsbedingungen sind jedoch die Beziehungen zwischen den Mitarbeitern im Team von großer Bedeutung.


Berufsbedingte Krankheit

Vorbeugende Maßnahmen zur Beseitigung der Ursachen von Verletzungen und Berufskrankheiten sind: Schutzausrüstung, Sicherheitsvorrichtungen, Blockiervorrichtungen, Vorprüfung auf erhöhte Belastung, Einbeziehung von Schwachstellen (Sicherungen im Stromnetz, Schwachstellen in Maschinen usw.), Erhöhung der Sicherheitsfaktor, Installation von Backup-Installationen, persönliche Schutzausrüstung.

Um rechtzeitig die notwendigen Maßnahmen zur Vorbeugung von Verletzungen und Berufskrankheiten zu ergreifen, wird eine verpflichtende Erfassung dieser durch Zusammenstellung eingeführt.

1. Dringende Meldungen über Fälle von Berufskrankheiten und -verletzungen;

2. Registrierungskarten.

Ein Trauma ist eine plötzliche Körperverletzung, d.h. eine Störung der Integrität von Geweben und Organen des Körpers als Folge davon äußere Einflüsse, begleitet von der einen oder anderen Funktionsstörung.

Die systematische Wiederholung von Verletzungen wird als Traumatismus bezeichnet. Je nachdem, mit welchem ​​Tätigkeitsbereich die Verletzung verbunden ist, gibt es Arbeitsunfälle (Industrie und Landwirtschaft), Haushaltsverletzungen (nicht im Zusammenhang mit der Produktion, z. B. bei Hausarbeiten, Holzhacken zum Heizen, Benutzen von Elektrogeräten, usw.), Sport, vorsätzliche (militärische, häusliche Verletzungen) und Kinder.

Die Hauptursachen für Arbeitsunfälle oder Berufskrankheiten am Arbeitsplatz sind: technische, organisatorische und hygienisch-hygienische.

Technische Gründe sind unzureichende Beleuchtung, Fehlen oder Fehlfunktion von Schutzzäunen, Fehlfunktion von Geräten, Isolierung von Drähten, Wicklungen elektrischer Maschinen und Geräte, fehlerhafte Installation oder Fehlfunktion von Schutzerdung, Schutzausrüstung, unsachgemäße Herstellung von Treppen, Trittleitern, Gerüsten und Gerüsten, Fehlfunktion von Werkzeugen und Geräten usw.

Organisatorische Gründe sind die Nichtbeachtung von Sicherheitsvorschriften, unsachgemäße Arbeitsorganisation oder unzureichende Arbeitsüberwachung, Zulassung von Personen zur Arbeit, die keine entsprechende Schulung oder Unterweisung erhalten haben, Nichtbeachtung von Sicherheitsanforderungen oder Anweisungen bei betrieblichen Schaltvorgängen oder bei der Installation, Reparatur , Manipulationsarbeiten, Verstöße gegen die Arbeitsdisziplin.

Sanitäre und hygienische Gründe sind das Fehlen spezieller Kleidung und Schutzausrüstung, das plötzliche Auftreten giftiger Stoffe in der Produktion, Lärm, Vibrationen und andere Verstöße gegen die Betriebshygiene und -hygiene sind nicht nur die Ursache für Unfälle, sondern auch für Berufskrankheiten. Berufskrankheiten entstehen, wenn der Körper eines Arbeitnehmers berufsschädlichen Bedingungen ausgesetzt ist, die seine Gesundheit über einen langen Zeitraum hinweg allmählich zerstören. Bei Arbeitsunfällen, Berufskrankheiten und Verletzungen erhält der Geschädigte unabhängig von der Dienstzeit für den gesamten Zeitraum der vorübergehenden Arbeitsunfähigkeit 100 % des Durchschnittsverdienstes.

Anforderungen an die Räumlichkeiten des Maschinenraums

1. Räume mit Bildschirmgeräten und PCs müssen über natürliche und künstliche Beleuchtung verfügen.

2. Die natürliche Beleuchtung sollte durch überwiegend nach Norden und Nordosten ausgerichtete Lichtemissionen erfolgen und einen natürlichen Beleuchtungsstärkefaktor (NFL) von mindestens 1,5 % aufweisen.

3. Die Unterbringung von Arbeitsplätzen mit Bildschirmgeräten und PCs für erwachsene Nutzer in Kellerräumen ist nicht gestattet.

4. Der Betrieb von Bildschirmgeräten und PCs in Räumen ohne Tageslicht kann bei produktionstechnischer Notwendigkeit nur im Einvernehmen mit den Organen und Institutionen der staatlichen sanitären und epidemiologischen Aufsicht erfolgen.

5. Fläche pro Person Arbeitsplatz mit Bildschirm oder PC für erwachsene Nutzer sollte mindestens 6,0 qm groß sein. und ein Volumen von mindestens 20,0 Kubikmetern.

6. Am Eingang zum CC mit VDT und PC sollten Einbau- oder Wandschränke (Regale) zur Aufbewahrung von Kleidung, Regenschirmen und Personaltaschen vorgesehen werden.

7. Industriegelände, in denen hauptsächlich VDTs und PCs für die Arbeit verwendet werden (Kontrollräume, Bedienräume, Rechenräume usw.), sollten nicht an Räumlichkeiten grenzen, in denen Lärm- und Vibrationspegel die genormten Werte überschreiten (mechanische Werkstätten, Werkstätten, Turnhallen usw.). .).

8. Die Schalldämmung der Umfassungskonstruktionen von Räumen mit Hochgeschwindigkeits-Windkraftanlagen und Personalcomputern muss hygienischen Anforderungen genügen und standardisierte Lärmparameter gemäß den Anforderungen des Abschnitts 6 dieser Hygienevorschriften bereitstellen:

Räumlichkeiten mit Bildschirmgeräten und PCs müssen mit Klimaanlagen oder einer wirksamen Zwangsbelüftung ausgestattet sein. Standardisierte Parameter des Mikroklimas, der ionisierten Luft und des darin enthaltenen Schadstoffgehalts müssen Abschnitt 5 dieser Hygienevorschriften entsprechen.

Büros mit EDV-Ausstattung müssen über einen angrenzenden Raum – ein Labor – mit einer Fläche von mindestens 18,0 qm verfügen. mit zwei Eingängen: zum Treppenabsatz oder zum Erholungsgebiet.

1. Für die Innenausstattung von Räumen mit Bildschirmgeräten sollten diffus reflektierende Materialien mit einem Reflexionskoeffizienten für die Decke von 0,7 – 0,8 verwendet werden; für Wände – 0,5 – 0,6; für 0,3 – 0,5.

2. Polymermaterialien, die für die Innenausstattung von Räumlichkeiten mit Bildschirmgeräten und PCs verwendet werden, müssen für die Verwendung durch Organe und Institutionen der staatlichen sanitären und epidemiologischen Aufsicht zugelassen sein.

3. Für die Innenausstattung von Räumen mit VDT und PC verwenden Polymermaterialien(Spanplatten, Schaumpapier, Kunststoffe, synthetische Teppiche), die schädliche Chemikalien in die Luft abgeben.

4. Die Bodenoberfläche in den Operationssälen von Bildschirm- und PC-Geräten muss glatt, ohne Schlaglöcher, rutschfest, leicht zu reinigen und zu reinigen sein und über antistatische Eigenschaften verfügen.

REFERENZLISTE

1. GOST R ISO/IEC 12190-2000 „ Informationstechnologie. Softwarepakete. Qualitätsanforderungen.“

2. Vladimir Dronov, HTML 5, CSS 3 und Web 2.0., Entwicklung moderner Websites.

3. John Duckett Grundlagen der Webprogrammierung mit HTML, XHTML und CSS.

4. Ian Lloyd, erstellen Sie Ihre Website mit HTML und CSS, Peter 2013 – 330 S.

5. Steve Swering, Tim Converse, Joyce Park . PHP und MySQL. Programmer's Bible, 2. Auflage = PHP 6 - M.: Dialektik, 2011

6. Beginn der Webprogrammierung mit HTML, XHTML und CSS, Eksmo, 2011. Von 200-219.

7. SEO-Tipps [Website] URL: https://devaka.ru/articles/32-most-important-seo-tips (Zugriffsdatum 02.06.2017)

8. Optimierung des Title-Tags [Website] URL: https://devaka.ru/articles/title-tag-optimization (Zugriffsdatum 02.06.2017)

9. Sitemap [Site] URL: https://yandex.ru/support/webmaster/indexingoptions/sitemap.html?lang=en?lang=en (Zugriffsdatum 27.05.2017)

10. Verwendung von robots.txt [Site] URL: https://yandex.ru/support/webmaster/controlling-robot/robots-txt.xml (abgerufen am 29.05.2017)

EINFÜHRUNG

Das Internet ist zu einem festen Bestandteil unseres Lebens geworden. Wenn wir im Internet unterwegs sind, stoßen wir auf die unterschiedlichsten Websites. Manche verkaufen Dinge, andere bieten an, Freunde für die Kommunikation zu finden. Es gibt weit verbreitete Informationsportale und Websites, die sich an Einzelpersonen oder Unternehmen richten. Der Trend geht dahin, dass es für den Erfolg notwendig ist, sich im Internet zu deklarieren, was bedeutet, dass jedes Unternehmen und sogar jede Einzelperson eine eigene persönliche Seite haben sollte.

Die aktive Entwicklung des Internets hat zur Möglichkeit geführt, Websites zur Bereitstellung verschiedener Arten von Informationen und Diensten zu erstellen.

Mit der Entwicklung von Web-Technologien werden Computer und verschiedene mobile Geräte effizienter genutzt, wodurch Zeit bei der Suche nach Informationen für geschäftliche, berufliche und private Zwecke gespart wird. Gleichzeitig müssen Sie nicht viel Zeit aufwenden, um die Technologie der Arbeit mit einem Computer zu beherrschen.

Darüber hinaus eröffnet der Einsatz von Web-Technologien vielfältige Perspektiven für E-Commerce und Kundenservice über das Internet.

Webseiten, die Multimedia-Technologie unterstützen, kombinieren verschiedene Arten von Informationen: Text, Grafiken, Ton, Animation und Video. Ihr Erfolg im Internet hängt weitgehend davon ab, wie gut und schön eine bestimmte Webseite gestaltet ist.

Benutzer freuen sich über den Besuch von Webseiten, die ein stilvolles Design haben, nicht mit übermäßigen Grafiken und Animationen belastet sind, schnell geladen werden und im Webbrowserfenster korrekt angezeigt werden. Die Aufgabe des Webdesigns jeder Website besteht darin, das Vertrauen der Besucher in die Qualität der angebotenen Dienstleistungen zu wecken und gleichzeitig die Corporate Identity, die Unternehmenskultur und die Marktpositionierung beizubehalten.

Die Erstellung einer elektronischen Website hilft, ein Problem wie die ständige Aktualisierung von Informationsmaterial zu lösen.

Elektronische Publikationen haben auch wirtschaftliche Vorteile: Die Erstellungszeit ist kürzer, die Aktualisierung erfolgt schneller.

Darüber hinaus dank der gebrauchten moderne Technologien Auf die Website kann von jedem mobilen Gerät mit Internetzugang zugegriffen werden.

Daher ist das Thema der Diplomarbeit „Entwicklung einer Lehrer-Website“ relevant, da diese Entwicklung einen großen Vorteil für den Lehrer darstellt. Eine Lehrer-Website bringt alle am Bildungsprozess Interessierten zusammen. Die Website enthält Informationen, die jeder Teilnehmer des Bildungsprozesses für seine eigenen Zwecke nutzen und zur Lösung seiner Probleme anleiten kann. Gleichzeitig ist das Publikum der Website nicht auf eine Gruppe von Studenten und Kollegen beschränkt; die Adresse der Website ist für jeden online verfügbar, unabhängig vom Standort des Besuchers.


EIN GEMEINSAMES TEIL

Zweck der Entwicklung

Ziel des Projekts ist die Entwicklung und Umsetzung einer Lehrer-Website.

Die Website eines Lehrers ist ein Raum für außerschulische Interaktion mit Schülern, Studenten und Kollegen. Die Website enthält Informationen zum Heimstudium und Aufgaben, die es Ihnen ermöglichen, das Fach aus der Ferne zu studieren.

Diese elektronische Website ermöglicht Ihnen:

· Machen Sie sich mit dem elektronischen Portfolio des Lehrers vertraut;

· Lesen Sie die Artikel auf der Website;

· Machen Sie sich mit der Liste der Vorlesungen und Schulungsprogramme nach Disziplinen vertraut;

· Vorlesungsmaterialien zu den einzelnen Disziplinen ansehen und herunterladen;

· Richtlinien für Laborarbeiten herunterladen;

· Tutorials ansehen;

· Studieren Sie die Beschreibung Offener Unterricht;

· die vom Lehrer unterrichteten Disziplinen aus der Ferne studieren;

· Sehen Sie sich das Fotoalbum an;

· Durchsuche die Seite;

· Nehmen Sie an Prüfungen teil, um sich auf die schriftliche Prüfung vorzubereiten.

· Kontaktieren Sie den Administrator mithilfe von Feedback.

Entwicklungsnutzungsanalyse

Entwicklung enthält Grund Ideeüber die Aktivitäten, an denen ein Spezialist beteiligt ist, und Bereitstellung von Nachrichten zu einem bestimmten Thema. Es enthält auch Kontaktinformationen, die es einem Website-Besucher ermöglichen, einen Spezialisten zu kontaktieren und detailliertere Informationen über die Aktivität zu erhalten.

Die Website enthält nützliche Artikel zu verschiedenen Themen sowie thematische Tests.

Hat auch Feedback für den direkten Kontakt mit Benutzern

Eine persönliche Website ist ein notwendiges Element des Images eines Spezialisten; moderne Trends gehen so weit, dass eine Website einfach notwendig ist.

Diese Website-Entwicklung kann von Lehrern jeder Disziplin verwendet werden, um den Inhalt zu ändern.

Die Lösung vieler Probleme ist nur durch den Einsatz elektronischer Webressourcen möglich.

Diese Website ist Visitenkarte Lehrer.

Ziel und Ergebnis der Entwicklung neuer Produkte ist das Produkt selbst. Das Produkt gehört zur Sphäre der materiellen Gegenstände und dient der Befriedigung der Produktionsanforderungen und der menschlichen Bedürfnisse. Die Entwicklung eines neuen Produkts selbst ist eine besondere Phase im Bereich der geistigen Tätigkeit.

Die Entwicklung neuer Produkte erfolgt durch Ingenieure und technisches Personal durch Design und Konstruktion. Design und Konstruktion sind miteinander verbundene Prozesse, die sich gegenseitig ergänzen. Die strukturelle Form des Objekts wird durch den Einsatz von Entwurfsmethoden – Durchführung von Parameterberechnungen, Festigkeitsberechnungen, Optimierung usw. – festgelegt. Eine Gestaltung wiederum ist nur mit zuvor akzeptierten Gestaltungsmöglichkeiten möglich. Oftmals werden diese beiden Prozesse nicht unterschieden, da sie in der Regel von Spezialisten desselben Berufsstandes – Konstrukteuren – durchgeführt werden. Design und Konstruktion sind jedoch unterschiedliche Prozesse.

Design geht dem Bauen voraus und stellt die Suche nach wissenschaftlich fundierten, technisch machbaren und wirtschaftlich machbaren Ingenieurlösungen dar. Das Ergebnis des Entwurfs ist der Entwurf des zu entwickelnden Objekts. Design ist die Wahl einer bestimmten Handlungsmethode; im Einzelfall die Schaffung eines Systems als logische Handlungsgrundlage, das in der Lage ist, ein gegebenes Problem unter bestimmten Bedingungen und Einschränkungen zu lösen. Das Projekt wird analysiert, diskutiert, angepasst und als Grundlage für die Weiterentwicklung akzeptiert.

Design schafft eine spezifische, eindeutige Gestaltung eines Produkts. Eine Struktur ist ein Gerät gegenseitige Übereinkunft Teile und Elemente eines Gegenstands, einer Maschine oder eines Geräts, die durch ihren Zweck bestimmt werden. Der Entwurf sieht die Verbindungsart, das Zusammenspiel der Teile sowie das Material vor, aus dem die einzelnen Teile (Elemente) bestehen müssen. Während des Designprozesses werden ein Bild und Typen des Produkts erstellt, ein Maßsatz mit zulässigen Abweichungen berechnet, das geeignete Material ausgewählt, Anforderungen an die Oberflächenrauheit, technische Anforderungen an das Produkt und seine Teile festgelegt und eine technische Dokumentation erstellt geschaffen. Der Entwurf basiert auf den Entwurfsergebnissen und klärt alle während des Entwurfs getroffenen technischen Entscheidungen. Die im Konstruktionsprozess erstellte technische Dokumentation muss die Übertragung aller Konstruktionsinformationen auf das hergestellte Produkt und dessen rationellen Betrieb gewährleisten.

Design und Konstruktion dienen demselben Zweck, der Entwicklung eines neuen Produkts, das es nicht oder in einer anderen Form und mit unterschiedlichen Abmessungen gibt. Design und Konstruktion sind Arten geistiger Aktivität, bei denen im Kopf des Entwicklers ein bestimmtes geistiges Bild entsteht. Das mentale Bild erfährt verschiedene Transformationen, einschließlich Neuordnungen Komponenten oder durch andere Elemente ersetzen. Gleichzeitig wird die Auswirkung der vorgenommenen Änderungen bewertet und ermittelt, wie sich diese Änderungen auf das Endergebnis auswirken könnten. Das mentale Bild entsteht nach den allgemeinen Gestaltungs- und Konstruktionsregeln und erhält anschließend seine endgültige, technisch einwandfreie Form.


Entwicklung, deren Bestandteile Design und Konstruktion sind, ist ein in der Fachliteratur weit verbreiteter Begriff. Oft wird dieser Begriff eng verwendet, als Synonym für Design bzw Design-Arbeit. Tatsächlich erfordert die Entwicklung neuer Produkte die Durchführung von Forschungs- und Entwicklungsarbeiten. Die Entwicklung ist Teil einer Reihe von Aktivitäten, die auf die Herstellung von Produkten durch die Industrie abzielen. Neben Arbeiten wie der Entwicklung der Fertigungstechnik, der Logistik, der Produktionsorganisation nimmt die Entwicklung einen wichtigen Platz in der technischen Vorbereitung der Produktion ein. Da es sich um die Anfangsphase handelt, hat die Entwicklung erhebliche Auswirkungen auf alle nachfolgenden Phasen Lebenszyklus Produkte: Produktion, Zirkulation und Verkauf, Betrieb oder Konsum.

Auch der Begriff „Produkt“ hat vielfältige Bedeutungen. Ein Produkt ist ein Artikel oder eine Reihe von Produktionsartikeln, die in einem Unternehmen hergestellt werden sollen. Unter Produkt versteht man alle Gegenstände der materiellen Produktion und deren Bestandteile: Maschinen, technologische Geräte, Mechanismen, Funktionssysteme und andere (Abb. 1). Eingerichtet die folgenden Typen Produkte: Teile, Baugruppen, Komplexe, Bausätze.

Reis. 1. Produkttypen und ihre Strukturen

Ein Teil ist ein Produkt, das aus einer Materialmarke hergestellt wird, ohne dass Montagevorgänge oder lokale Verbindungsvorgänge (Schweißen, Löten, Kleben usw.) erforderlich sind.

Eine Montageeinheit ist ein Produkt, dessen Komponenten im Herstellerwerk durch Montagevorgänge miteinander verbunden werden sollen. Der Großteil der entwickelten und hergestellten Produkte sowie deren Bestandteile können als Baugruppen klassifiziert werden. Eine Montageeinheit ist beispielsweise eine Drehmaschine sowie die dazugehörige Halterung, der Werkzeughalter usw. Eine Montageeinheit ist ein spezifiziertes Produkt, da für dieses eine Spezifikation erstellt wird, die alle seine Komponenten umfasst.

Ein Komplex ist ein Produkt, das aus mehreren spezifizierten Produkten mit miteinander verbundenen Zwecken besteht, die beim Hersteller nicht durch Montagevorgänge verbunden sind.

Ein Satz besteht aus mehreren Produkten mit allgemeinem Funktionszweck und Hilfscharakter, die nicht im Werk des Herstellers durch Montagevorgänge verbunden werden.

Bei der Vorbereitung von Produktions- und Herstellungsprodukten werden auch andere Grundsätze der Produktklassifizierung berücksichtigt: Komponentenprodukte, Kaufprodukte, Produkte der Hauptproduktion, Produkte der Nebenproduktion, Produkte der Serienproduktion usw.

Manchmal werden bestimmte Produkte als Designs bezeichnet, zum Beispiel „ Metallstruktur", "Stahlbetonkonstruktion" usw., was damit etwas Bestimmtes meint. Um diese Konzepte zu verdeutlichen, empfiehlt es sich, den gesamten Prozess der Entstehung eines neuen Produkts von der Entstehung der Idee bis zur Herstellung eines Arbeitsmusters zu verfolgen. Design ist ein Denkprozess, eine geistige Aktivität, durch die ein Design entsteht. Design ist die Struktur, Anordnung und relative Anordnung von Teilen eines Produkts. Design ist eine der Haupteigenschaften eines Produkts, die es ermöglicht, ein Produkt von einem anderen zu unterscheiden.

Spezialisierung von Designorganisationen

Neue Produkte werden in Designorganisationen und -abteilungen entwickelt. Abhängig von den Besonderheiten der durchgeführten Arbeiten werden Entwicklungen in der Regel in spezialisierten Organisationen durchgeführt, die sich durch die Bereitstellung von hochqualifiziertem Personal dieses Profils, den Einsatz fortschrittlicher Organisationsprinzipien und technischer Ausstattung dieser Spezialisierung usw. auszeichnen.

Designorganisationen und -abteilungen werden nach zwei Hauptmerkmalen klassifiziert: Unterordnung und Spezialisierung.

Aufgrund ihrer Unterordnung werden Designorganisationen in Organisationen mit föderaler und regionaler Unterordnung unterteilt. Zu den föderal unterstellten Gestaltungsorganisationen zählen Organisationen, die Ministerien, Abteilungen und anderen Stellen unterstellt sind. Ähnliche Organisationen sind auch Regionen und anderen kommunalen Körperschaften unterstellt. Zu den örtlich unterstellten Designorganisationen zählen Organisationen, die der Zuständigkeit von Verwaltungen von Einheiten verschiedener Ebenen und Formen sowie Abteilungen von Industrieunternehmen unterliegen.

Die Hauptklassifizierung von Designorganisationen erfolgt nach Spezialisierung. Die Spezialisierung der Produktion ist die wirtschaftlichste Form ihrer Organisation. Die Spezialisierung von Designorganisationen basiert auf der Entwicklung strukturell und technologisch ähnlicher Produkte hinsichtlich Verwendungszweck und Standardgrößen.

Bestimmte Phasen der Entwicklung neuer Technologien werden in verschiedenen Design- und Ingenieurorganisationen durchgeführt, was den Platz dieser Organisationen bei der Vorbereitung der Produktion bestimmt.

Das Hauptdesigninstitut (GIPRO) wählt die Hauptrichtungen aus und entwickelt Langzeitpläne komplexe Entwicklungen und führt auch die Entwicklung von Arbeitsprojekten und Projektteilen durch.

Das Forschungsinstitut (SRI) schafft auf der Grundlage spezieller theoretischer und experimenteller Forschung Produkte mit grundlegend neuem Design.

Entwicklungen werden in die Produktion eines Prototyps überführt.

Das Scientific Research and Design and Technological Institute (NIPTI) schafft grundlegend neue technologische Prozesse und modernisiert bestehende. Führt experimentelle Überprüfungen technologischer Prozesse und Herstellung der notwendigen Ausrüstung durch.

Das Special Design Bureau (SKB), das Special Design Bureau (OKB) und das Central Design Bureau (TsKB) entwickeln neue Produkte auf der Grundlage bestehender theoretischer und experimenteller Forschung und modernisieren bestehende; Entwicklung automatischer Linien, Standardprojekte Modernisierung; Arbeiten an Fragen der Vereinheitlichung, Aggregation, Standardisierung und Erhöhung der Zuverlässigkeit und Haltbarkeit von Produkten.

Forschungsproblemlabore und Konstruktionsbüros technischer Hochschulen arbeiten an der Schaffung grundlegend neuer Geräte und der Modernisierung bestehender; Lösen Sie Probleme, um die Zuverlässigkeit zu erhöhen. Die Arbeiten werden auf theoretischer und experimenteller Ebene durchgeführt.

Design- und Konstruktionsabteilungen von Industrieunternehmen und Firmen führen die Erstellung und Modernisierung hergestellter Produkte sowie die Erstellung und Modernisierung der im Unternehmen betriebenen Ausrüstung durch; Ausstattung der Produktion mit neuartigen, nicht standardisierten Geräten, Vorrichtungen und Werkzeugen.

Design- und Ingenieursorganisationen sind auf die Entwicklung einer begrenzten Anzahl von Typen und Bereichen technischer Ausrüstung und Systeme spezialisiert. Die Spezialisierung dieser Organisationen ist auf die Tatsache zurückzuführen, dass moderne Produkte, die bereits komplexe Systeme sind, dazu neigen, noch komplexer zu werden, was vom Entwickler eine gründliche Analyse und Untersuchung aller Bestandteile des Designs erfordert. Je nach Komplexitätsgrad des Produkts werden Fach-, Detail- und Technologiespezialisierung von Design- und Engineering-Organisationen unterschieden.

Alle drei genannten Spezialisierungsarten werden kombiniert und in der Entwicklung so eingesetzt, dass sie den größtmöglichen Effekt erzielen und die Qualität des Produkts verbessern. Die fachliche (komplexe) Spezialisierung zielt auf die Entwicklung ab bestimmter Typ Produkte, bei denen die Palette der zu entwickelnden Produkte so weit wie möglich reduziert wird. Auf die Herstellung dieser Produkte ist beispielsweise SKB Machine Tools für die Entwicklung von Drehautomaten spezialisiert. Die Organisation führt den gesamten Arbeitsumfang (Komplex) zur Vervollständigung der Dokumentation eines bestimmten Produkts (Produktgruppe) durch. Designorganisationen führen komplexe Projekte vom Anfang bis zum Ende durch.

Die fachliche Spezialisierung hat folgende Vorteile:

1 - die Möglichkeit der parallelen Entwicklung einzelner Projektteile;

2 – Verkürzung der Entwurfszeit aufgrund einer Reduzierung der zwischenbetrieblichen Wartung von Teilen des Projekts bei der Vereinbarung der Entwurfsdokumentation;

3 – Erleichterung des Managements von Entwicklungsprozessen, da diese innerhalb der Mauern einer Organisation stattfinden;

4 - die Möglichkeit, zuvor entwickelte Standard- und Standardteile und Baugruppen in Neuentwicklungen zu verwenden;

5 – die Möglichkeit einer umfassenden Sammlung von Informationen, die in der Entwicklung verwendet werden;

6 - die Möglichkeit, den Wissensstand und den technischen Horizont der Entwickler zu erweitern.

Neben den Vorteilen hat die Fachspezialisierung eine Reihe von Nachteilen:

1 – das Spezialisierungssystem ist für komplexe Strukturen, einschließlich komplexer elektrischer, elektronischer, hydraulischer und anderer Systeme, irrational;

2 - trägt nicht zur Umsetzung der Entwicklung in allen Teilen auf hohem technischem Niveau bei;

3 – erfordert einen Entwicklungsmanager mit umfassenden Kenntnissen aller Teile des Projekts;

4 – verhindert eine enge Spezialisierung der Entwickler.

Mit detaillierter Spezialisierung wird das zu entwickelnde Design in eine Reihe seiner Bestandteile, Baugruppen, Systeme und Teile unterteilt. Der Entwickler wird den einzelnen Elementen zugewiesen und erstellt die gesamte Designdokumentation dazu. Dies ist die kostengünstigste Form der Spezialisierung. Die detaillierte Spezialisierung zeichnet sich durch die Entwicklung von Teilen von Produkten aus, die in der Technik weit verbreitet sind, beispielsweise hydraulische Antriebe, elektrische Diagramme, Getriebe, Motorvergaser usw.

Mit einer detaillierteren Spezialisierung ist es möglich, Informationen zu den detailliertesten Themen des Projekts zu sammeln; eine enge Spezialisierung der Entwickler ist möglich, was eine Steigerung der Arbeitsproduktivität mit sich bringt; bietet die Möglichkeit, von Entwicklern fundiertes Wissen zu erwerben, das zur Verbesserung ihrer Fähigkeiten beiträgt; Es wird möglich, standardisierte Designs in Entwicklungen zu verwenden. Dies macht es jedoch schwierig, ein Gesamtkonzept zu entwickeln und einzelne Teile des Projekts zu koordinieren. Die betriebsübergreifende Nachverfolgung der Konstruktionsdokumentation nimmt bei der Genehmigung einzelner Projektteile zu, wodurch sich der Produktionsvorbereitungszyklus verlängert. Die Zusammenarbeit bei der Entwicklung von Teilen des Projekts wird ausgeweitet und das Entwicklungsmanagement wird dadurch komplizierter.

Bei der technologischen oder branchenspezifischen Spezialisierung erfolgt die Arbeitsteilung entsprechend der Art der Funktion, die das Produkt oder das technologische Merkmal ausübt. Die Spezialisierung erfolgt auf einzelne technologische Teile der Entwicklung oder einzelne Vorgänge des technologischen Prozesses, die in eine separate Produktion oder ein separates Branchendesign unterteilt sind. Die technologische Spezialisierung ist das Hauptmerkmal der Branche. Die Merkmale der Produkte dieser Branche müssen bei der Entwurfsvorbereitung der Produktion berücksichtigt werden, daher ist der Designer ein Spezialist in der Branche, in der er tätig ist. Bei einem Wechsel in eine andere Branche muss er eine Umschulung unter Berücksichtigung der Besonderheiten dieser Branche und neuer Produktionsbedingungen durchführen. In solchen Fällen muss die Fachkraft erneut zertifiziert und ihre Qualifikationskategorie bestätigt werden.

Die technologische Spezialisierung hilft dem Entwickler, ein Tätigkeitsfeld entsprechend seinen persönlichen Neigungen auszuwählen und sich vertiefte Kenntnisse in seinem Fachgebiet anzueignen.

Das Konzept der künstlichen Intelligenz gibt es schon seit langem, Hinweise darauf finden sich noch immer in griechische Mythologie. Allerdings begann sich diese Richtung in unserem Jahrhundert rasant zu entwickeln und eine lange Entwicklungsstrecke begann mit virtuellen Assistenten (wie Siri von Apple), die im Alltag bereits eine wichtige Rolle spielen.

Nach Angaben der Zentralbank wurden bereits über 30 Unternehmen registriert, die sich die Entwicklung und Verbesserung von KI zum Ziel gesetzt haben. Offenbar wächst das Interesse am Bereich der künstlichen Intelligenz, trotz des Widerstands von Skeptikern, die davor warnen, dass KI Zerstörung auf der Erde anrichten wird.

Die Schaffung künstlicher Intelligenz zielt darauf ab, die Lebensqualität des Menschen zu verbessern, doch wie alles auf dieser Welt birgt auch diese Richtung viele Chancen und Risiken. „Die Schaffung von KI wird enorme wirtschaftliche Auswirkungen haben, die die Gesellschaft verändern können, und es ist schwierig, klare Vorhersagen zu treffen, aber es ist klar, dass das Funktionieren der Märkte von Entwicklungen im Bereich KI abhängen wird“, sagte Yoshua Bengio, a Professor an der Universität Montreal.

Die folgenden 10 Unternehmen spielen eine wichtige Rolle bei der Gestaltung der Zukunft der KI und ihrer Fähigkeiten. Hier sind die Top-10-Unternehmen für künstliche Intelligenz, die besondere Aufmerksamkeit verdienen, sowie die Unternehmen, die stark in die KI-Entwicklung investiert haben.

Bitte teilen Sie uns alle Unternehmen mit, die großartige Beiträge zur KI geleistet haben und die Ihrer Meinung nach in diese Zusammenfassung aufgenommen werden sollten!

1. Google


Google hat über 9 KI-Startups übernommen und ist stark an der Entwicklung von KI-Fähigkeiten interessiert. Die Hauptrichtung der Forschung ist maschinelles Lernen. Heute arbeitet Google aktiv an einem Algorithmus, der in der Lage sein wird, ein Gespräch, zumindest das einfachste, selbstständig zu führen. Eines der neuesten Werke von Google ist WaveNet. Hierbei handelt es sich um eine neue Technologie, die computergenerierte Sprache dem natürlichen Klang der menschlichen Stimme näher bringt.

2. Facebook


Mehr als 3 Milliarden Menschen bedienen. Nutzer auf der ganzen Welt haben Facebook enorme strategische Investitionen in die Entwicklung von KI getätigt, um im sozialen Netzwerk veröffentlichte Daten schneller und effizienter zu verarbeiten. Facebook hat bisher drei Labore für künstliche Intelligenz eröffnet und letztes Jahr sein neues Labor in Paris eröffnet. Zusätzlich zu den Laboren erwarb Facebook face.com, ein Unternehmen, das sich auf Gesichtserkennung konzentriert.

IBM ist seit den 1950er Jahren führend im Bereich KI. Watson, eines der bekanntesten KI-Projekte, ist ein Supercomputer, der mithilfe von maschinellem Lernen und natürlicher Sprachverarbeitung Daten aus unstrukturierten Big Data erschließt.

4. Amazon


Amazon ist einer der riesigen Online-Shops, der KI zur Modernisierung seiner Dienstleistungen und Produkte nutzt. Amazons virtuelle Assistentin Alexa kann Fragen erkennen und beantworten, Nachrichten und Hörbücher lesen und sogar Musik abspielen. Alexa wird von Tag zu Tag schlauer und verfügt bereits über mehr als 1.500 neue Fähigkeiten und Fertigkeiten in ihrem Arsenal.

5. Apfel


Apple hat vier Startups im Bereich der künstlichen Intelligenz übernommen und damit sein Interesse an diesem Bereich unter Beweis gestellt. Eine der bekanntesten Entwicklungen ist der virtuelle Assistent Siri, der sich heute in einen wirklich vollwertigen digitalen Assistenten verwandelt hat.

6.AIBrain

Das in Kalifornien ansässige Unternehmen entwickelt KI-Lösungen für Smartphones und Robotik. Hauptmerkmal Ihre Entwicklung besteht darin, dass die Fähigkeiten ihrer KI eng mit menschlichen Fähigkeiten verknüpft sind, nämlich der Fähigkeit, Probleme zu lösen, zu lernen und sich zu erinnern. Zu den wichtigsten Produkten gehören persönliche Roboter, virtuelle Assistenten und KI-gestützte Spiele.

7. Twitter

Twitter hat stark in die Entwicklung künstlicher Intelligenz investiert. Sie erwarben mehr als 4 Unternehmen, die auf die Entwicklung im Bereich KI abzielten. Ihre jüngste Akquisition ist das Startup Magic Pony, die sie 150 Millionen Dollar gekostet hat. Das Hauptziel von Twitter besteht darin, die durch diese Übernahmen gesammelten Erfahrungen zu nutzen, um ein wichtiger Akteur im Videobereich zu werden.

8.iCarbonX

iCarbonX ist ein chinesisches Biotech-Startup, das KI nutzt, um Informationen über die menschliche Gesundheit bereitzustellen. Heute hat iCarbonX einen Wert von mehr als 1 Milliarde US-Dollar. iCarbonX nimmt seinen Platz als wichtiger Akteur im Bereich der künstlichen Intelligenz ein.

9. Entefy

Entefy arbeitet an einem intelligenten System, das jedem Benutzer personalisierte digitale Informationen bereitstellt und so die Verwendung verschiedener Anwendungen überflüssig macht.

10. CloudMinds

CloudMinds ist ein Entwickler intelligenter Cloud-Roboter-Betreiber. CloudMinds arbeitet an einem mobilen Intranet-Cloud-Service, der dem Unternehmen eine sichere, selbstlernende und intelligente Cloud-Plattform zur Verfügung stellen soll.

Die Arbeit widmet sich einem Überblick über die gängigsten Entwicklungsmethoden Software(VON). Wir haben das im Internet verfügbare Material zu diesem Thema gesammelt, systematisiert und in einem Artikel zusammengefasst.

Das Problem, wie man Software entwickelt, ist „so alt wie die Berge“. Es erschien mit dem Aufkommen von Computern und ist seitdem ein „Stolperstein“ in den meisten Softwareprojekten. Mit der Entwicklung der Technologie wird es immer mehr zu einem „Problem der Probleme“. Einerseits ermöglichen Technologien, Programme besser und schneller zu schreiben, andererseits erfordern sie von Programmierern und Projektmanagern immer höhere Qualifikationen, und wie wir wissen, hat nicht jeder „Köpfe“. Darüber hinaus erlaubt das hohe Tempo der Wirtschaft es den „Profis“ nicht, sich zu konzentrieren und der Sache auf den Grund zu gehen.

Umgang mit Entwicklung Komplexes System, glauben die meisten Experten heute, dass es am besten ist, einen Komponenten-Service-Ansatz zu verwenden. Das System wird als eine Reihe interagierender Agenten – Dienste (Komponenten) – dargestellt, und die Hauptaufgabe des Entwicklers besteht darin, Geschäftsregeln zu definieren und diese in Form von Interaktionen zu programmieren. Dementsprechend wird der Entwicklungsprozess inkrementell: Zuerst wird eine Interaktion programmiert, dann die nächste usw. Das Gleiche gilt für Komponenten – sie werden je nach Bedarf implementiert.

Natürlich ist alles wahr. Statt mit Funktionen und Prozeduren operiert der Programmierer nun mit den Schnittstellen von Komponenten, Geschäftsobjekten und Diensten, was ihm die Erstellung komplexer Softwaresysteme in kürzester Zeit ermöglicht. Allerdings steckt in diesen Komplexen nicht mehr „Intelligenz“ als im primitivsten Bakterium. Anwendungssysteme wie Facebook und Amazon sind nichts anderes als ein Durcheinander verschiedener Funktionalitäten zur strukturierten Erfassung, Speicherung und Darstellung von Daten. Wenn eine Person mit ihnen arbeitet, werden Daten zu Informationen. Ohne Menschen sind diese Systeme nur Ansammlungen von Nullen und Einsen. Daher wird der Wert solcher Systeme durch den Wert der von ihnen organisierten Informationen für den Menschen bestimmt. Gleichzeitig gehören die Ideen zur Organisation von Informationen derselben Person und nicht den Systemen.

Aber die Ideen der Organisation werden nicht wie Software entworfen oder entwickelt. Sie werden als Ergebnis des kreativen Prozesses in den Köpfen von Erfindern geboren. Darüber hinaus werden solche Ideen in Systemen wie Oracle,DB2,AutoCANZEIGE.MicrosoftWindows undusw. Und diese Systeme basieren nicht mehr auf einem Komponenten-Service-Ansatz. Hier ist alles viel komplizierter! Keine der verfügbaren Softwareentwicklungsmethoden ist in der Lage, den Prozess der Erstellung von Systemsoftware vollständig zu unterstützen. Dabei hat jedes Unternehmen sein eigenes Know-how, seine eigene Geschichte.

Dann werden wir Systemsoftware und Anwendungssoftware trennen. Anwendungssoftware gilt traditionell als einfacher als Systemsoftware. Daher gibt es dafür weniger Anforderungen. Hier arbeiten „Profis“. Mit dem Eifer wahrer Alchemisten suchen sie weiterhin danach universelle Methode, mit dem Sie in kurzer Zeit kostengünstige Anwendungssysteme erstellen können. Und damit wird der ewige Konflikt zwischen Auftraggeber und Auftragnehmer endlich gelöst.

Die Situation erinnert in vielerlei Hinsicht an das Problem der persönlichen Selbstverbesserung. Tausende Gurus, Trainer, Coaches, Meisterkurse usw. Arbeite unermüdlich daran, sie zu finden universelle Formel, was einem Menschen hilft, erfolgreich und glücklich zu werden. Viele Menschen glauben wirklich, dass es eine solche Formel gibt. Und Pech wird mit „schlechten“ Zeiten, einer aggressiven äußeren Umgebung und unglücklichen Unfällen in Verbindung gebracht.

Was geschieht? Generation für Generation streben Menschen nach Glück, aber stattdessen haben sie das ewige Thema der Wohnungsfrage, sie sehen endlose Führer, Finanzpyramiden und -krisen, Terroristen und Sexualverrückte. Dennoch glauben die Menschen weiterhin an eine glänzende Zukunft – denn anders geht es nicht. Und das wird für immer so bleiben!

Benötigt der Kunde Verständnis für Softwareentwicklungsprobleme? Natürlich ist es notwendig, wenn er ein „kundiger“ Kunde ist. Wenn beispielsweise ein potenzieller Leistungsträger stolz sein Engagement für Agile und Scrum verkündet, gibt es etwas zu bedenken. Erstens ist der Künstler mit der Organisation eindeutig nicht einverstanden Eigenproduktion. Zweitens weiß der Auftragnehmer nicht wie und möchte nicht mit dem Auftraggeber zusammenarbeiten. Es gibt auch dritte und vierte...

Ein „kompetenter“ Kunde versucht immer, einen „kompetenten“ Auftragnehmer zu finden. Und das Auswahlkriterium sind hier keineswegs Scrum-Kenntnisse. Es gibt viele Faktoren, auf die der Kunde achtet. Dabei handelt es sich jedoch um kommerzielle Informationen – nicht für diesen Artikel.

Lebenszyklusmodell eines Informationssystems

Als Lebenszyklusmodell eines Informationssystems bezeichnen wir eine bestimmte Struktur, die die Abfolge von Prozessen, Aktionen und Aufgaben bestimmt, die während des Lebenszyklus eines Informationssystems ausgeführt werden, sowie die Beziehungen zwischen diesen Prozessen, Aktionen und Aufgaben.

Das Lebenszyklusmodell hängt von den Besonderheiten des Informationssystems und den Bedingungen ab, unter denen es erstellt und betrieben wird. Daher macht es keinen Sinn, für den allgemeinen Fall konkrete Lebenszyklusmodelle und Methoden zur Entwicklung von Informationssystemen vorzuschlagen, ohne sich auf ein bestimmtes Themengebiet zu beziehen.

Unter den Hauptlebenszyklusprozessen sind drei von größter Bedeutung: Entwicklung, Betrieb und Wartung. Jeder Prozess zeichnet sich durch bestimmte Aufgaben und Methoden zu deren Lösung, in der vorherigen Phase gewonnene Ausgangsdaten und Ergebnisse aus.

Die Entwicklung eines Informationssystems umfasst alle Arbeiten zur Erstellung von Informationssoftware und ihren Komponenten gemäß festgelegten Anforderungen. Die Entwicklung von Informationssoftware umfasst auch die Erstellung von Entwurfs- und Betriebsdokumentationen; Vorbereitung von Materialien, die zum Testen entwickelter Softwareprodukte erforderlich sind; Entwicklung von Materialien, die für die Personalschulung erforderlich sind.

Die Entwicklung ist einer der wichtigsten Prozesse im Lebenszyklus eines Informationssystems und umfasst in der Regel die strategische Planung, Analyse, Gestaltung und Umsetzung (Programmierung).

Die operative Arbeit kann in vorbereitende und grundlegende Arbeiten unterteilt werden. Zu den vorbereitenden gehören:

  • Konfigurieren der Datenbank und der Benutzerarbeitsplätze;
  • Bereitstellung von Betriebsdokumentation für Benutzer;
  • Ausbildung.

Zu den wichtigsten operativen Aktivitäten gehören:

  • Direktbetrieb;
  • Lokalisierung von Problemen und Beseitigung der Ursachen ihres Auftretens;
  • Softwaremodifikation;
  • Ausarbeitung von Vorschlägen zur Verbesserung des Systems;
  • Weiterentwicklung und Modernisierung des Systems.

Begleiten. Technische Supportdienste spielen im Leben eines jeden Unternehmensinformationssystems eine sehr wichtige Rolle. Das Vorhandensein eines qualifizierten technischen Dienstes in der Betriebsphase eines Informationssystems ist eine notwendige Voraussetzung für die Lösung der ihm übertragenen Aufgaben, und Fehler des Wartungspersonals können zu offensichtlichen oder versteckten finanziellen Verlusten führen, die mit den Kosten des Informationssystems selbst vergleichbar sind.

Unter den Hilfsprozessen nimmt das Konfigurationsmanagement einen der Hauptplätze ein. Hierbei handelt es sich um den Hilfsprozess, der die Hauptprozesse des Lebenszyklus eines Informationssystems unterstützt, vor allem die Entwicklungs- und Wartungsprozesse. Bei der Entwicklung von Projekten komplexer Informationssysteme, die aus vielen Komponenten bestehen, die jeweils unabhängig voneinander entwickelt werden können und daher über mehrere Implementierungsmöglichkeiten und/oder mehrere Versionen einer Implementierung verfügen, stellt sich das Problem, deren Zusammenhänge und Funktionen zu berücksichtigen und eine zu erstellen einheitliche Struktur und Gewährleistung der Entwicklung des gesamten Systems. Mit dem Konfigurationsmanagement können Sie Änderungen an verschiedenen Komponenten eines Informationssystems in allen Phasen seines Lebenszyklus organisieren, systematisch berücksichtigen und steuern.

Der Softwareentwicklungsprozess (Softwareprozess) ist die Struktur, nach der die Softwareentwicklung strukturiert ist.

Es gibt mehrere Modelle eines solchen Prozesses (Softwareentwicklungsmethoden), die jeweils einen anderen Ansatz in Form von Aufgaben und/oder Aktivitäten beschreiben, die während des Prozesses stattfinden.

Folgende Hauptprozessmodelle bzw. Softwareentwicklungsmethoden werden unterschieden:

  • Wasserfallentwicklung oder Wasserfallmodell ist ein Modell des Softwareentwicklungsprozesses, bei dem der Entwicklungsprozess wie ein Fluss aussieht und nacheinander die Phasen Anforderungsanalyse, Design, Implementierung, Test, Integration und Support durchläuft.
  • Iterative Entwicklung (englische Iteration – Wiederholung) – Durchführung von Arbeiten parallel zur kontinuierlichen Analyse der erzielten Ergebnisse und Anpassung der vorherigen Arbeitsschritte. Bei diesem Ansatz durchläuft ein Projekt in jeder Entwicklungsphase einen sich wiederholenden Zyklus: Planung – Umsetzung – Überprüfung – Bewertung (Plan-Do-Check-Act-Zyklus).

Kaskadenmodell

In einer Arbeit aus dem Jahr 1970 konzipierte Royce das, was heute als „Wasserfallmodell“ bezeichnet wird, und erörterte die Mängel dieses Modells. Dort zeigte er auch, wie dieses Modell zu einem iterativen Modell weiterentwickelt werden kann.

Im ursprünglichen Kaskadenmodell von Royce traten die folgenden Phasen in dieser Reihenfolge auf:

  1. Anforderungen definieren
  2. Design
  3. Design (auch „Implementierung“ oder „Codierung“)
  4. Verkörperung
  5. Testen und Debuggen (auch „Verifizierung“)
  6. Installation
  7. Unterstützung

Der Übergang von einer Phase zur anderen erfolgt erst nach vollständigem und erfolgreichem Abschluss der vorherigen.

Das Kaskadenmodell zeigt einen klassischen Ansatz zur Entwicklung verschiedener Systeme in jedem Anwendungsbereich. Für die Entwicklung von Informationssystemen wurde dieses Modell in den 70er und der ersten Hälfte der 80er Jahre häufig eingesetzt. Kaskadenentwurfsmethoden sind in Fremdsprachen und anderen gut beschrieben Russische Literatur verschiedene Richtungen: methodische Monographien, Standards, Lehrbücher. Die Arbeitsorganisation nach einem Kaskadenschema wurde offiziell empfohlen und in verschiedenen Branchen weit verbreitet. Das Vorhandensein nicht nur theoretischer Grundlagen, sondern auch industrieller Methoden und Standards sowie der jahrzehntelange Einsatz dieser Methoden erlaubt es uns, Kaskadenmethoden als klassisch zu bezeichnen.

Das Kaskadenmodell sorgt für eine sequentielle Arbeitsorganisation. Das Hauptmerkmal ist in diesem Fall die Einteilung der gesamten Entwicklung in Etappen, und der Übergang von einer Etappe zur nächsten erfolgt erst, nachdem alle Arbeiten der vorherigen Etappe vollständig abgeschlossen sind. Jede Phase gipfelt in der Veröffentlichung einer vollständigen Dokumentation, die ausreicht, um die Fortsetzung der Entwicklung durch ein anderes Entwicklungsteam zu ermöglichen.

Die wichtigsten Entwicklungsstadien anhand des Wasserfallmodells. Im Laufe der Jahrzehnte des Bestehens des Kaskadenmodells haben sich die Aufteilung der Arbeit in Stufen und die Bezeichnungen dieser Stufen geändert. Darüber hinaus vermeiden die vernünftigsten Methoden und Standards eine starre und eindeutige Zuordnung bestimmter Aktivitäten zu bestimmten Phasen. Dennoch lässt sich eine Reihe stabiler Entwicklungsstadien identifizieren, die praktisch unabhängig vom Fachgebiet sind:

  • Analyse der Kundenanforderungen
  • Design
  • Entwicklung
  • Erprobung und Probebetrieb
  • Lieferung des fertigen Produkts.


Reis. Wasserfall-Entwicklungsmodell

In der ersten Phase wird eine Untersuchung des zu lösenden Problems durchgeführt und alle Anforderungen des Kunden klar formuliert. Als Ergebnis erhält man in dieser Phase eine mit allen Interessenten abgestimmte technische Spezifikation (Entwicklungsaufgabe).

Im zweiten Schritt werden Designlösungen entwickelt, die alle in den technischen Spezifikationen formulierten Anforderungen erfüllen. Das Ergebnis dieser Phase ist eine Entwurfsdokumentation, die alle notwendigen Daten für die Umsetzung des Projekts enthält.

Die dritte Stufe ist die Projektumsetzung. Hier erfolgt die Softwareentwicklung (Codierung) entsprechend den in der vorherigen Phase erhaltenen Designlösungen. Die zur Umsetzung verwendeten Methoden sind nicht grundsätzlich wichtig. Das Ergebnis dieser Phase ist ein fertiges Softwareprodukt.

Im vierten Schritt wird die resultierende Software auf Übereinstimmung mit den in den technischen Spezifikationen genannten Anforderungen überprüft. Der Probebetrieb ermöglicht es, verschiedene Arten versteckter Mängel zu identifizieren, die unter realen Betriebsbedingungen des Informationssystems auftreten.

Die letzte Phase ist die Lieferung des fertigen Projekts. Die Hauptaufgabe dieser Phase besteht darin, den Kunden davon zu überzeugen, dass alle seine Anforderungen vollständig erfüllt wurden.

Die Arbeitsschritte innerhalb des Wasserfallmodells werden oft auch als Teile des „Projektzyklus“ des Systems bezeichnet. Dieser Name entstand, weil die Stufen aus vielen iterativen Verfahren zur Klärung von Systemanforderungen und Gestaltungsmöglichkeiten bestehen. Der Lebenszyklus des Systems selbst ist viel komplexer und länger. Es kann eine beliebige Anzahl von Zyklen der Klarstellung, Änderung und Ergänzung bereits verabschiedeter und umgesetzter Entwurfsentscheidungen umfassen. In diesen Zyklen entwickelt sich das Informationssystem weiter und seine einzelnen Komponenten werden modernisiert.

Nach dem Kaskadenmodell wechselt der Entwickler streng nacheinander von einer Stufe zur nächsten. Zunächst ist die Phase „Anforderungsdefinition“ vollständig abgeschlossen, sodass eine Liste der Softwareanforderungen vorliegt. Sobald die Anforderungen vollständig definiert sind, erfolgt der Übergang zum Design, bei dem Dokumente erstellt werden, die für Programmierer detailliert beschreiben, wie und wie die spezifizierten Anforderungen umgesetzt werden sollen. Nachdem der Entwurf vollständig abgeschlossen ist, implementieren Programmierer das resultierende Projekt. Im nächsten Schritt des Prozesses erfolgt die Integration einzelner Komponenten, die von verschiedenen Programmierteams entwickelt wurden. Nach Abschluss der Implementierung und Integration wird das Produkt getestet und debuggt. In dieser Phase werden alle Mängel beseitigt, die in früheren Entwicklungsstadien aufgetreten sind. Anschließend erfolgt die Implementierung des Softwareprodukts und dessen Support – Einführung neuer Funktionalitäten und Beseitigung von Fehlern.

Das Wasserfallmodell impliziert also, dass der Übergang von einer Entwicklungsphase zur anderen erst nach dem vollständigen und erfolgreichen Abschluss der vorherigen Phase erfolgt und es keine Übergänge vor oder zurück oder Überschneidungen von Phasen gibt.

Es gibt jedoch modifizierte Kaskadenmodelle (einschließlich Royces eigenes), die geringfügige oder sogar erhebliche Abweichungen vom beschriebenen Prozess aufweisen.

Die Methodik des Wasserfallmodells wird oft wegen ihrer mangelnden Flexibilität kritisiert und weil formales Projektmanagement zum Selbstzweck erklärt wird, was zu Lasten von Zeit, Kosten und Qualität geht. Bei der Verwaltung großer Projekte war die Formalisierung jedoch oft von großem Wert, da sie viele Risiken des Projekts drastisch reduzieren und es transparenter machen konnte. Daher wurde selbst in der 3. Version von PMBOK nur die Methodik des „Wasserfallmodells“ formal festgelegt und alternative Optionen, bekannt als iteratives Projektmanagement, wurden nicht vorgeschlagen.

Beginnend mit PMBOK 4 wurde ein Kompromiss zwischen Methodologen, die sich einem formalen und progressiven Projektmanagement verschrieben haben, und Methodologen, die auf flexible iterative Methoden setzen, erzielt. Daher bietet das Project Management Institute (PMI) seit 2009 offiziell eine Hybridversion der Projektmanagement-Methodik als Standard an, die sowohl die Vorteile der „Wasserfall“-Methodik als auch die Errungenschaften iterativer Methodiker vereint.

Im Wasserfallmodell des Softwareentwicklungsprozesses wird der Entwicklungsprozess als Fluss betrachtet, der nacheinander die Phasen Anforderungsanalyse, Design, Implementierung, Test, Integration und Support durchläuft. Basierend auf dieser Methodik wurden beispielsweise russische Standards und GOSTs für die Erstellung automatisierter Systeme (34. und 19. Serie) erstellt

GOST 34. Serie:

  • GOST 34.601-90 „Informationstechnologie. Reihe von Standards für automatisierte Systeme. Automatisierte Systeme. Phasen der Schöpfung“;
  • GOST 34.201-89 „Informationstechnologie. Reihe von Standards für automatisierte Systeme. Arten, Vollständigkeit und Bezeichnung von Dokumenten bei der Erstellung automatisierter Systeme“;
  • GOST 34.602-89 „Technische Spezifikationen für die Erstellung eines automatisierten Systems“;
  • GOST 34.603-92 „Informationstechnologie. Arten der Prüfung automatisierter Systeme“;
  • GOST 34.320-96 „Informationstechnologien. System von Datenbankstandards. Konzepte und Terminologie für den konzeptionellen Rahmen und die Informationsbasis“;
  • GOST 34.321-96 „Informationstechnologien. System von Datenbankstandards. Referenzmodell Datenmanagement".

GOST 19. Serie:

  • GOST 19.001-77 „Einheitliches System der Programmdokumentation. Allgemeine Bestimmungen»;
  • GOST 19.101-77 „Einheitliches System der Programmdokumentation. Arten von Programmen und Programmdokumenten“;
  • GOST 19.102-77 „Entwicklungsstadien“;
  • GOST 19.103-77 „Bezeichnungen von Programmen und Programmdokumenten“;
  • GOST 19.104-78 „Grundlegende Inschriften“;
  • GOST 19.105-78 „Allgemeine Anforderungen an Programmdokumente“;
  • GOST 19.106-78 „Anforderungen an gedruckte Programmdokumente“;
  • GOST 19.201-78 „Technische Spezifikationen, Anforderungen an Inhalt und Design“;
  • GOST 19.202-78 „Spezifikation. Anforderungen an Inhalt und Design“ usw.

Richtlinien:

  • RD-34.698-90 „Methodische Anweisungen. Informationstechnologie. Eine Reihe von Standards und Richtlinien für automatisierte Systeme. Automatisierte Systeme für Dokumentinhaltsanforderungen.“

Diese Standards implizieren, dass zunächst alle Systemanforderungen beschrieben werden müssen und erst dann mit der Codierungsphase begonnen werden kann, d. h. zum Prozess des Schreibens von Programmcode, Skripten, um einen bestimmten Algorithmus in einer bestimmten Programmiersprache zu implementieren. Darüber hinaus sollten die Anforderungen beides umfassen funktionale Aufgaben Systeme sowie alle Methoden der Interaktion mit anderen Systemen, Methoden zur Darstellung von Informationen im System, daher dauert die Beschreibung all dieser Anforderungen gemäß GOST häufig lange (von mehreren Monaten bis zu mehreren Jahren).

Die Hauptvorteile des Kaskadenmodells. Das Kaskadenmodell hat eine Reihe positiver Aspekte, dank derer es sich bei der Durchführung verschiedener Arten technischer Entwicklungen bewährt und weit verbreitet ist. Betrachten wir die Hauptvorteile.

  • In jeder Phase wird eine vollständige Entwurfsdokumentation erstellt, die den Kriterien Vollständigkeit und Konsistenz entspricht. In der Endphase wird auch eine Benutzerdokumentation entwickelt, die alle in den Standards vorgesehenen Arten der Informationssystemunterstützung abdeckt (organisatorisch, methodisch, informativ, Software, Hardware).
  • Die in einer logischen Reihenfolge ausgeführten Arbeitsschritte ermöglichen Ihnen die Planung von Fertigstellungsterminen und damit verbundenen Kosten.

Das Kaskadenmodell wurde ursprünglich zur Lösung verschiedenster technischer Probleme entwickelt und hat bis heute nicht an Bedeutung für die Praxis verloren. Darüber hinaus hat sich der Wasserfallansatz bei der Entwicklung bestimmter Informationssysteme bewährt. Damit sind Systeme gemeint, bei denen bereits zu Beginn der Entwicklung alle Anforderungen recht genau und vollständig formuliert werden können, um Entwicklern die Freiheit zu geben, die aus technischer Sicht beste Implementierung zu wählen. Zu solchen Informationssystemen zählen insbesondere komplexe Berechnungssysteme und Echtzeitsysteme.

Dieses Entwicklungsmodell ist in den folgenden Situationen gut:

  • bei der Umsetzung für Projekte mit einer Dauer von mehreren Wochen bis zu 2–3 Monaten, da die beschriebenen Anforderungen keine Zeit haben, zu veralten;
  • Bei der Implementierung von Systemen, bei denen es keine Unteraufgaben und mehrere Phasen der Funktionsentwicklung gibt (z. B. nach der Entwicklung der Hauptfunktionalität des EDMS muss dessen Interaktion mit dem System verfeinert werden Buchhaltung, aber es gibt noch keine Anforderungen für diese Interaktion);
  • wenn die Anforderungen an das zu erstellende System klar definiert und festgehalten sind.

Trotz aller Vorteile weist das Kaskadenmodell eine Reihe von Nachteilen auf, die seinen Einsatz bei der Entwicklung von Informationssystemen einschränken. Darüber hinaus machen diese Mängel es entweder völlig unanwendbar oder führen zu einer Verlängerung der Entwicklungszeit und der Projektkosten. Derzeit werden viele Misserfolge von Softwareprojekten durch den sequentiellen Entwicklungsprozess erklärt.

Nachteile des Kaskadenmodells. Die Liste der Nachteile des Kaskadenmodells bei der Entwicklung von Informationssystemen ist recht umfangreich. Zuerst listen wir sie einfach auf und betrachten dann die wichtigsten genauer:

  • erhebliche Verzögerung bei der Erlangung von Ergebnissen
  • Fehler und Mängel in jeder Phase treten in der Regel in späteren Arbeitsphasen auf, was dazu führt, dass ein Rückschritt erforderlich ist
  • Schwierigkeit der parallelen Arbeit am Projekt
  • übermäßige Informationsübersättigung jeder Stufe
  • Komplexität des Projektmanagements
  • hohes Risiko und unzuverlässige Investitionen.

Die Verzögerung beim Erhalten von Ergebnissen wird üblicherweise als Hauptnachteil des Kaskadenschemas angesehen. Dieser Nachteil äußert sich vor allem darin, dass aufgrund eines sequentiellen Entwicklungsansatzes die Ergebnisse erst nach Abschluss der nächsten Arbeitsstufe mit den Stakeholdern abgestimmt werden. Es kann sich herausstellen, dass das zu entwickelnde Informationssystem nicht den Benutzeranforderungen entspricht, und solche Inkonsistenzen können in jeder Entwicklungsphase auftreten – Verzerrungen können sowohl von Designer-Analysten als auch von Programmierern unbeabsichtigt eingeführt werden, da sie sich nicht unbedingt mit dem Thema auskennen Bereiche, für die die Entwicklung durchgeführt wird Informationssystem.

Darüber hinaus können Modelle eines automatisierten Objekts, die bei der Entwicklung eines Informationssystems verwendet werden und die Kriterien der internen Konsistenz und Vollständigkeit erfüllen, aus verschiedenen Gründen während der Entwicklung veraltet sein (z. B. aufgrund von Gesetzesänderungen, Währungsschwankungen usw.). ). Dies gilt für das Funktionsmodell, das Informationsmodell, Benutzeroberflächendesigns und Benutzerdokumentation.

Für mehr zurück frühe Stufen. Dieser Nachteil des Kaskadenmodells ist im Allgemeinen eine der Erscheinungsformen des vorherigen. Die schrittweise und sequentielle Arbeit am Projekt kann eine Folge der Tatsache sein, dass Fehler, die in früheren Phasen gemacht wurden, in der Regel erst in späteren Phasen der Arbeit am Projekt entdeckt werden. Daher wird das Projekt nach Auftreten von Fehlern in die vorherige Phase zurückgeführt, überarbeitet und erneut in die nächste Phase überführt. Dies kann zu Störungen des Arbeitsplans führen und die Beziehungen zwischen Entwicklergruppen, die einzelne Arbeitsschritte ausführen, erschweren.

Das Unangenehmste ist, dass Mängel der vorherigen Stufe möglicherweise nicht sofort in der nächsten Stufe, sondern später erkannt werden (z. B. können in der Phase des Probebetriebs Fehler in der Beschreibung des Themenbereichs auftreten). Dies bedeutet, dass ein Teil des Projekts in die Anfangsphase der Arbeit zurückgeführt werden muss. Im Allgemeinen kann Arbeit von jeder Stufe in jede vorherige Stufe zurückgeführt werden, sodass das Wasserfall-Entwicklungsschema in Wirklichkeit wie in Abb.


Reis. Ein echter Wasserfall-Entwicklungsprozess.

Ein Grund für diese Situation ist, dass es sich bei den an der Beschreibung des Fachgebiets beteiligten Experten häufig um zukünftige Nutzer des Systems handelt, die teilweise nicht klar formulieren können, was sie erhalten möchten. Darüber hinaus verstehen sich Kunden und Darsteller oft falsch, da die Darsteller in der Regel keine Experten auf dem Fachgebiet des zu lösenden Problems sind und Kunden weit davon entfernt sind, zu programmieren.

Schwierigkeiten bei der Parallelarbeit. Die genannten Probleme ergeben sich aus der Tatsache, dass die Arbeit am Projekt in Form einer Kette aufeinanderfolgender Schritte aufgebaut ist. Darüber hinaus ist die Parallelisierung der Arbeit selbst dann sehr schwierig, wenn die Entwicklung einiger Teile des Projekts (Subsysteme) parallel durchgeführt werden kann, wenn ein Kaskadenschema verwendet wird. Die Schwierigkeiten paralleler Arbeit sind mit der Notwendigkeit einer ständigen Koordination verschiedener Projektteile verbunden. Je stärker die gegenseitige Abhängigkeit einzelner Projektteile ist, desto häufiger und sorgfältiger muss eine Synchronisierung durchgeführt werden und desto abhängiger sind die Entwicklungsteams voneinander. Dadurch gehen die Vorteile des parallelen Arbeitens einfach verloren.

Die fehlende Parallelität wirkt sich auch negativ auf die Arbeitsorganisation des gesamten Entwicklungsteams aus. Die Arbeit einiger Gruppen wird durch andere behindert. Während die Analyse des Themengebiets durchgeführt wird, entstehen für Designer, Entwickler und diejenigen, die mit Test und Administration befasst sind, nahezu keine Arbeitsbelastung. Darüber hinaus ist es bei der sequentiellen Entwicklung äußerst schwierig, Änderungen am Projekt vorzunehmen, nachdem eine Phase abgeschlossen und das Projekt in die nächste Phase überführt wurde. Wenn das Entwicklungsteam beispielsweise nach dem Übergang des Projekts in die nächste Phase eine effektivere Lösung findet, kann diese nicht verwendet werden. Dies liegt daran, dass die frühere Lösung möglicherweise bereits implementiert und mit anderen Teilen des Projekts verknüpft wurde. Daher ist es ausgeschlossen (oder zumindest deutlich erschwert), das Projekt nach der Überführung in die nächste Phase abzuschließen.

Informationsübersättigung. Das Problem der Informationsübersättigung entsteht aufgrund der starken Abhängigkeit zwischen verschiedenen Entwicklergruppen. Dieses Problem besteht darin, dass bei Änderungen an einem Teil des Projekts alle Entwickler benachrichtigt werden müssen, die diesen Teil in ihrer Arbeit verwendet haben oder verwenden könnten. Wenn das System besteht aus große Menge miteinander verbundenen Subsystemen wird die Synchronisierung der internen Dokumentation zu einer wichtigen eigenständigen Aufgabe. Gleichzeitig ist die Synchronisierung der Dokumentation für jeden Teil des Systems nichts anderes als ein Prozess der Benachrichtigung der Entwicklungsgruppen. Die Entwickler selbst müssen sich mit den Änderungen vertraut machen und bewerten, ob diese Änderungen Auswirkungen auf die bereits erzielten Ergebnisse haben. All dies erfordert möglicherweise wiederholte Tests und sogar Änderungen an bereits abgeschlossenen Teilen des Projekts. Darüber hinaus sollten diese Änderungen wiederum in der internen Dokumentation widergespiegelt und an andere Entwicklungsgruppen verteilt werden. Dadurch wächst der Dokumentationsumfang mit der Projektentwicklung sehr schnell, so dass immer mehr Zeit für die Zusammenstellung und Einarbeitung der Dokumentation benötigt wird.

Es sollte auch beachtet werden, dass neben dem Studium neuen Materials auch die Notwendigkeit, alte Informationen zu studieren, nicht verschwindet. Dies liegt daran, dass es durchaus möglich ist, dass sich die Zusammensetzung des Entwicklungsteams während des Entwicklungsprozesses ändert (dieser Vorgang wird als Personalrotation bezeichnet). Neue Entwickler benötigen Informationen darüber, was vor ihnen getan wurde. Darüber hinaus gilt: Je komplexer das Projekt, desto länger dauert es, einen neuen Entwickler einzuarbeiten.

Die Komplexität des Projektmanagements bei Verwendung eines Wasserfallschemas ist hauptsächlich auf die strenge Abfolge der Entwicklungsphasen und das Vorhandensein komplexer Beziehungen zwischen verschiedenen Teilen des Projekts zurückzuführen.
Die Reihenfolge der Projektentwicklung bedeutet, dass einige Entwicklungsteams auf die Arbeit anderer Teams warten müssen. Daher ist ein administrativer Eingriff erforderlich, um den Zeitpunkt der Arbeiten und die Zusammenstellung der übertragenen Dokumentation zu koordinieren.

Werden bei den durchgeführten Arbeiten Fehler festgestellt, ist eine Rückkehr zu den vorherigen Phasen des Projekts erforderlich. Dies führt zu zusätzlichen Schwierigkeiten im Projektmanagement. Entwickler, die eine Fehleinschätzung oder einen Fehler machen, sind gezwungen, ihre laufende Arbeit (an einem neuen Projekt) zu unterbrechen und mit der Behebung der Fehler zu beginnen. Die Folge davon sind in der Regel Terminüberschreitungen sowohl bei den reparierten als auch bei den neuen Projekten. Vom Entwicklungsteam zu verlangen, dass es warten muss, bis die nächste Entwicklungsstufe abgeschlossen ist, ist irrational, da es zu erheblichen Arbeitszeitverlusten führt.

Sie können die Interaktion zwischen Entwicklungsteams vereinfachen und die Informationsüberflutung in der Dokumentation reduzieren, indem Sie die Anzahl der Verbindungen zwischen einzelnen Teilen des Projekts reduzieren. Dies ist jedoch meist recht schwierig. Nicht jedes Informationssystem kann in mehrere lose gekoppelte Teilsysteme unterteilt werden.

Hohes Risiko. Je komplexer das Projekt, desto länger dauert die jeweilige Entwicklungsstufe und desto komplexer sind die Zusammenhänge zwischen den einzelnen Projektteilen, deren Anzahl auch zunimmt. Darüber hinaus können die Ergebnisse der Entwicklung erst in der Testphase, also nach Abschluss der Analyse, des Designs und der Entwicklung, wirklich gesehen und bewertet werden – Phasen, deren Umsetzung viel Zeit und Geld erfordert. Wie bereits erwähnt, führt eine verspätete Bewertung zu ernsthaften Problemen bei der Identifizierung von Analyse- und Entwurfsfehlern – es ist notwendig, das Projekt in frühere Phasen zurückzusetzen und den Entwicklungsprozess zu wiederholen. Allerdings kann die Rückkehr zu früheren Stadien nicht nur mit Fehlern verbunden sein, sondern auch mit Änderungen, die im Themenbereich oder in den Kundenanforderungen während der Entwicklung eingetreten sind. Darüber hinaus ist die Rückgabe des Projekts zur Überarbeitung aus diesen Gründen keine Garantie dafür, dass sich der Themenbereich bis zur Fertigstellung der nächsten Version des Projekts nicht erneut ändert. Das bedeutet faktisch, dass die Möglichkeit besteht, dass der Entwicklungsprozess in einer Schleife stecken bleibt und das System nie in die Produktion gelangt. Die Kosten des Projekts werden ständig steigen und der Liefertermin des fertigen Produkts wird sich ständig verzögern.

Daher kann argumentiert werden, dass komplexe Projekte, die nach einem Wasserfallschema entwickelt werden, ein erhöhtes Risiko aufweisen. Diese Schlussfolgerung wird durch die Praxis bestätigt: Nach Angaben des Beratungsunternehmens The Standish Group in den USA scheitern mehr als 31 % der Untern(IT-Projekte); fast 53 % der IT-Projekte werden mit Budgetüberschreitungen abgeschlossen (im Durchschnitt um 189 %, also fast das Doppelte); und nur 16,2 % der Projekte liegen im Zeit- und Budgetrahmen.

Zusätzlich zu den besprochenen gibt es noch einen weiteren gravierenden Nachteil des Wasserfall-Entwicklungsmodells, der ebenfalls beachtet werden sollte. Dieser Nachteil ist mit Konflikten (nicht immer offensichtlich) zwischen den an der Umsetzung des Projekts beteiligten Entwicklern verbunden. Der Konflikt entsteht dadurch, dass die Rückführung eines Projektteils in eine frühere Phase meist mit der Suche nach Gründen und Schuldigen einhergeht. Und da es nicht immer möglich ist, die Verantwortlichen für Fehler eindeutig zu identifizieren, kann der Versuch, die Schuldigen zu finden, die Beziehungen im Team erheblich erschweren. Infolgedessen schätzt eine Arbeitsgruppe oft nicht den hochqualifizierten und erfahreneren Leiter, sondern denjenigen, der es versteht, seine Untergebenen zu „verteidigen“, ihnen angenehmere Arbeitsbedingungen zu bieten usw. Dadurch besteht die Gefahr einer Abschwächung sowohl der Qualifikationen als auch kreatives Potenzial das ganze Team. Dementsprechend wird das technische Management des Projekts zunehmend durch ein immer detaillierteres Studium der Organisation ersetzt Berufsbeschreibungen und ihre zunehmend formelle Ausführung. Wer nicht weiß, wie man seine Arbeit organisiert, ist dazu verdammt, um Disziplin zu kämpfen. Und hier entsteht das Problem der Unvereinbarkeit zwischen Disziplin und Kreativität. Je strenger die Disziplin, desto weniger kreativ wird die Atmosphäre im Team. Dieser Zustand kann dazu führen, dass die talentiertesten Mitarbeiter das Team irgendwann verlassen.

Iteratives und inkrementelles Entwicklungsmodell

Eine Alternative zum Kaskadenmodell ist das iterative und inkrementelle Entwicklungsmodell (IID), das ebenfalls in den 70er Jahren von T. Gilb übernommen wurde. Name des Evolutionsmodells. Dieses Modell wird auch iteratives Modell und inkrementelles Modell genannt.

Das IID-Modell beinhaltet die Aufteilung des Projektlebenszyklus in eine Folge von Iterationen, die jeweils einem „Miniprojekt“ ähneln und alle Entwicklungsprozesse umfassen, die auf die Erstellung kleinerer Funktionalitätsteile im Vergleich zum Projekt als Ganzes angewendet werden. Das Ziel jeder Iteration besteht darin, eine funktionierende Version des Softwaresystems zu erhalten, einschließlich der Funktionalität, die durch den integrierten Inhalt aller vorherigen und aktuellen Iterationen definiert ist. Das Ergebnis der letzten Iteration enthält alle erforderlichen Funktionen des Produkts. Somit erhält das Produkt mit Abschluss jeder Iteration ein Inkrement – ​​ein Inkrement – ​​seiner Fähigkeiten, die sich daher evolutionär weiterentwickeln. Iterativ, inkrementell und evolutionär in in diesem Fall ist ein Ausdruck derselben Bedeutung in unterschiedlichen Wörtern mit leicht unterschiedlicher Bedeutung verschiedene Punkte Vision.

Wie T. Gilb es ausdrückt: „Evolution ist eine Technik, die darauf abzielt, den Anschein von Stabilität zu erwecken. Die Chancen, ein komplexes System erfolgreich zu schaffen, sind am größten, wenn es in einer Reihe kleiner Schritte umgesetzt wird und jeder Schritt einen klar definierten Erfolg sowie die Möglichkeit enthält, im Falle eines Scheiterns auf eine frühere erfolgreiche Stufe zurückzugreifen . Bevor alle für die Erstellung eines Systems vorgesehenen Ressourcen in die Tat umgesetzt werden, hat der Entwickler die Möglichkeit, Rückmeldungen aus der realen Welt zu erhalten und mögliche Fehler im Projekt zu korrigieren.“

Der IID-Ansatz hat auch seine negativen Seiten, die eigentlich die Kehrseite der Vorteile sind. Erstens ist ein ganzheitliches Verständnis der Möglichkeiten und Grenzen des Projekts sehr wichtig lange Zeit abwesend. Zweitens müssen Sie beim Iterieren einen Teil der zuvor geleisteten Arbeit verwerfen. Drittens nimmt die Gewissenhaftigkeit der Fachkräfte bei der Arbeitsausführung immer noch ab, was psychologisch erklärbar ist, weil sie ständig von dem Gefühl dominiert werden, dass „später sowieso alles noch einmal gemacht und verbessert werden kann“.

Verschiedene Optionen Der iterative Ansatz ist in den meisten modernen Entwicklungsmethoden (RUP, MSF, XP) implementiert.

Iterative oder inkrementelle Modelle beinhalten also die Aufteilung des erstellten Systems in eine Reihe von Teilen, die in mehreren aufeinanderfolgenden Durchgängen der gesamten Arbeit oder eines Teils davon entwickelt werden.

Bei der ersten Iteration wird ein Teil des Systems entwickelt, der von anderen unabhängig ist. In diesem Fall wird der größte Teil oder sogar der gesamte Arbeitszyklus daran abgeschlossen, dann werden die Ergebnisse ausgewertet und bei der nächsten Iteration wird entweder das erste Stück neu gestaltet oder das nächste entwickelt, was vom ersten abhängen kann, oder Die Überarbeitung des ersten Teils ist irgendwie mit der Hinzufügung neuer Funktionen verbunden. Dadurch ist es bei jeder Iteration möglich, die Zwischenergebnisse der Arbeit und die Reaktion aller Beteiligten, einschließlich der Benutzer, darauf zu analysieren und bei den nächsten Iterationen korrigierende Änderungen vorzunehmen. Jede Iteration kann einen vollständigen Satz an Aktivitäten umfassen – von der Anforderungsanalyse bis zur Inbetriebnahme der nächsten Software.


Reis. Möglicher Fortschritt der Arbeit am iterativen Modell

Ein Kaskadenmodell mit der Möglichkeit, bei Bedarf zu einem vorherigen Schritt zurückzukehren, um seine Ergebnisse zu überarbeiten, wird iterativ.

Der iterative Prozess geht davon aus verschiedene Typen Aktivitäten sind nicht eng an bestimmte Entwicklungsstadien gebunden, sondern werden nach Bedarf durchgeführt und manchmal wiederholt, bis das gewünschte Ergebnis erzielt wird.

Neben der Flexibilität und der Fähigkeit, schnell auf Änderungen zu reagieren, bringen iterative Modelle zusätzliche Komplexität in das Projektmanagement und die Fortschrittsverfolgung. Bei einem iterativen Vorgehen wird es deutlich schwieriger, den aktuellen Stand des Projekts angemessen einzuschätzen und langfristige Entwicklungen zu planen sowie den Zeit- und Ressourcenaufwand vorherzusagen, der zur Sicherstellung einer bestimmten Ergebnisqualität erforderlich ist.

Spiralmodell

Eine Erweiterung des Iterationsgedankens ist das Spiralmodell des Software-Lebenszyklus, das Barry Boehm in seiner Arbeit von 1986 vorgeschlagen hat. Sie schlägt vor, jede Iteration damit zu beginnen, Ziele zu identifizieren und die nächste Iteration zu planen, die wichtigsten Alternativen und Einschränkungen bei ihrer Umsetzung zu identifizieren, sie zu bewerten sowie aufkommende Risiken zu bewerten und Wege zu ihrer Beseitigung zu ermitteln und die Iteration mit einer Bewertung zu beenden die Ergebnisse der in seinem Rahmen durchgeführten Arbeiten.

Sein wichtigstes neues Element ist die allgemeine Struktur der Aktionen bei jeder Iteration – Planung, Definition von Aufgaben, Einschränkungen und Lösungsoptionen, Bewertung vorgeschlagener Lösungen und Risiken, Durchführung der Hauptarbeit der Iteration und Bewertung ihrer Ergebnisse.

Das Spiralmodell basiert auf dem klassischen Deming-Zyklus PDCA (Plan-Do-Check-Act). Bei diesem Modell wird Software in mehreren Iterationen (Spiralwindungen) im Prototyping-Verfahren erstellt.

Den Namen „Spirale“ erhielt dieses Modell aufgrund der Abbildung des Arbeitsfortschritts in „Polarkoordinaten“, wobei der Winkel der darin ausgeführten Phase entspricht allgemeine Struktur Iterationen und der Abstand vom Koordinatenursprung – die verbrauchten Ressourcen.


Reis. Darstellung des Arbeitsfortschritts am Spiralmodell nach Boey

Die Abbildung zeigt eine Variante des klassischen Boehm-Spiralmodells, das sich auf Entwicklungsprozessaktivitäten konzentriert, die STB ISO/IEC 12207-2003 entsprechen.

Die Abbildung zeigt die mögliche Entwicklung des Projekts nach dem Spiralmodell. Die Anzahl der Runden sowie der Ort und die Gruppe der Aktivitäten im unteren rechten Quadranten können sich je nach den Ergebnissen der in den vorherigen Phasen durchgeführten Planung und Risikoanalyse ändern.

Der Ablauf des Prozesses stellt eine Spirale dar. Die erste Runde (Wiederholung) kann beispielsweise mit der Erforschung der Machbarkeit des Systems verbunden sein, die zweite mit der Beschreibung der Anforderungen, die nächste mit der Planung usw. Mit der Implementierung der Software sind hauptsächlich mehrere Runden verbunden, und ihre Erstellung erfolgt schrittweise (inkrementell). Allerdings darf man die Windungen der Spirale natürlich nicht mit den üblichen Phasen des Entwicklungsprozesses gleichsetzen. Jede Runde ist in 3 bis 6 Sektoren unterteilt (verschiedene Autoren unterteilen sie unterschiedlich). Jede Runde beginnt mit der Planung unmittelbarer Aufgaben und der Bewertung von Risiken und endet beim sogenannten Kunden, das heißt, die Aufgabe muss erledigt und getestet werden. Die Arbeitsintensität der Sektoren sollte nicht gleich sein. Nach Boehm gibt es 4 Sektoren (Quadranten):

1. Zielsetzung – die Ziele dieser Phase werden festgelegt, d. h. die Runde, Prozessbeschränkungen, Ergebnisse, Managementplan, potenzielle Risiken und alternative Strategien basierend auf den Risiken.

2. Risikobewertung und -reduzierung – für jedes gefundene Risiko wird eine Analyse durchgeführt und es werden einige Maßnahmen ergriffen, um die Risiken zu reduzieren (z. B. ein Risiko, dessen Anforderungen nicht ausreichend sind: Es wird ein Prototyp erstellt).

3. Entwicklung und Validierung – Auf der Grundlage der bewerteten Risiken wird ein Entwicklungsmodell ausgewählt (das Modell sollte so beschaffen sein, dass es zur Risikominderung beiträgt). Wenn beispielsweise das größte Risiko in der Benutzeroberfläche liegt, kann Prototyping helfen.

4. Planung (Planung) – das Projekt wird überprüft und es wird entschieden, ob mit der nächsten Phase fortgefahren werden soll; wenn sie sich entscheiden, fortzufahren, wird ein Plan für die nächste Phase erstellt.

Das Modell ist also in vier Quadranten unterteilt. Jeder Quadrant des Modells umfasst primäre und unterstützende Aktivitäten zur Entwicklung eines Produkts oder Systems.

Quadrant 1 – Analyse von Anforderungen, Alternativen und Einschränkungen – bestimmt Leistungsmerkmale, ausgeführte Funktionen, Stabilität (Änderungsmöglichkeit), Hardware-/Software-Schnittstelle.

Es werden alternative Wege zur Umsetzung des Systems ermittelt (Entwicklung, Wiederverwendung von Komponenten, Kauf, Vertrag etc.). Es werden die Einschränkungen für die Nutzung alternativer Optionen ermittelt (Kosten, Implementierungszeitplan, Schnittstelle, Umgebungseinschränkungen usw.).

Es werden Risiken identifiziert, die mit mangelnder Erfahrung in einem bestimmten Themengebiet, dem Einsatz neuer Technologien, engen Zeitplänen und unzureichend organisierten Prozessen verbunden sind.

In Quadrant 2 – Bewertung alternativer Optionen, Identifizierung und Lösung von Risiken – wird eine Bewertung alternativer Optionen durchgeführt, die im vorherigen Quadranten diskutiert wurden; Einschätzung möglicher Risikolösungsoptionen. Als Grundlage für die Arbeit des nächsten Quadranten wird ein Prototyping durchgeführt.

Quadrant 3 – Entwicklung eines Produkts auf aktueller Ebene – umfasst Maßnahmen zur direkten Entwicklung eines Systems oder Softwareprodukts: Design eines Systems und seiner Softwarekomponenten, Entwicklung und Test von Quellcodes von Programmen, Integrationstests und Qualifizierungstests eines Produkts oder System usw.

In Quadrant 4 – Planung der nächsten Phase – werden Aktivitäten im Zusammenhang mit der Entwicklung von Projektplänen, Konfigurationsmanagement, Tests und Systeminstallation durchgeführt.

Der wichtigste Unterschied zwischen diesem Modell und anderen ist die Berücksichtigung von Risiken. Risiko ist die Wahrscheinlichkeit, dass etwas schief gehen könnte. Aufgrund des Eintretens von Risiken kommt es zu Terminüberschreitungen und Kostenüberschreitungen, daher ist es notwendig, die Risiken zu berücksichtigen und Maßnahmen zu deren Minderung zu ergreifen.

Boehm formuliert die zehn häufigsten (nach Priorität) Risiken:

  1. Mangel an Fachkräften.
  2. Unrealistische Fristen und Budget.
  3. Implementierung unangemessener Funktionalität.
  4. Entwerfen der falschen Benutzeroberfläche.
  5. „Goldener Tischgedeck“, Perfektionismus, unnötige Optimierung und Verfeinerung von Details.
  6. Ein ständiger Strom von Veränderungen.
  7. Fehlende Informationen über externe Komponenten, die die Systemumgebung definieren oder an der Integration beteiligt sind.
  8. Nachteile bei der Arbeit durch externe (im Verhältnis zum Projekt) Ressourcen.
  9. Unzureichende Leistung des resultierenden Systems.
  10. „Lücke“ in der Qualifikation von Spezialisten in verschiedenen Wissensgebieten.

Die meisten dieser Risiken hängen mit organisatorischen und prozessualen Aspekten der Interaktion zwischen Spezialisten im Projektteam zusammen.

An jeder Wende der Spirale können unterschiedliche Modelle des Softwareentwicklungsprozesses verwendet werden. Letztendlich ist das Ergebnis ein fertiges Produkt. Das Modell kombiniert die Fähigkeiten des Prototyping-Modells und des Wasserfallmodells. Die Entwicklung durch Iterationen spiegelt den objektiv existierenden Spiralzyklus der Systemerstellung wider. Der unvollständige Abschluss der Arbeiten in jeder Phase ermöglicht es Ihnen, mit der nächsten Phase fortzufahren, ohne auf den vollständigen Abschluss der Arbeiten in der aktuellen Phase warten zu müssen. Mit einer iterativen Entwicklungsmethode können die fehlenden Arbeiten in der nächsten Iteration erledigt werden. Die Hauptaufgabe besteht darin, den Systembenutzern schnellstmöglich ein funktionsfähiges Produkt zu zeigen und so den Prozess der Bedarfsklärung und -ergänzung anzustoßen. Das Hauptproblem des Spiralzyklus besteht darin, den Zeitpunkt des Übergangs zur nächsten Stufe zu bestimmen. Um dieses Problem zu lösen, ist es notwendig, für jede Phase des Lebenszyklus zeitliche Beschränkungen einzuführen. Der Übergang verläuft wie geplant, auch wenn nicht alle geplanten Arbeiten abgeschlossen sind. Der Plan wird auf der Grundlage statistischer Daten aus früheren Projekten erstellt und persönliche Erfahrung Entwickler. Ein möglicher Ansatz zur Softwareentwicklung im Spiral-Life-Cycle-Modell ist die in letzter Zeit weit verbreitete RAD-Methodik (Rapid Application Development). Dieser Begriff bezieht sich normalerweise auf einen Softwareentwicklungsprozess, der drei Elemente enthält:

  • ein kleines Team von Programmierern (von 2 bis 10 Personen)
  • kurzer, aber sorgfältig ausgearbeiteter Produktionsplan (von 2 bis 6 Monaten)
  • ein sich wiederholender Zyklus, in dem Entwickler, während die Anwendung Gestalt annimmt, die durch die Interaktion mit dem Kunden erhaltenen Anforderungen anfordern und in das Produkt umsetzen.

Der Software-Lebenszyklus nach der RAD-Methodik besteht aus vier Phasen:

  • Anforderungsdefinitions- und Analysephase
  • Design-Phase
  • Umsetzungsphase
  • Umsetzungsphase.

Das Spiralmodell richtet sich an große, teure und komplexe Projekte. Unter Bedingungen, in denen sich die Geschäftsziele solcher Projekte ändern können, aber die Entwicklung einer stabilen Architektur erforderlich ist, die hohen Last- und Stabilitätsanforderungen gerecht wird, ist der Einsatz von Spiral Architecture Driven Development sinnvoll. Diese Methodik, die die besten Ideen des Spiralmodells und einiger anderer umfasst, kann Architekturrisiken erheblich reduzieren, was ein wichtiger Erfolgsfaktor bei der Entwicklung großer Systeme ist.

Die Arbeit an einem Projekt nach dem Spiralmodell beginnt damit, dass der Kunde den Bedarf zur Entwicklung eines Systems oder Softwareprodukts erkennt (Mitte von Quadrant 1). Die erste Version des Systems basiert auf den vorläufigen Anforderungen des Kunden. Anschließend beginnt die Planung für den nächsten Zyklus unter Berücksichtigung der von ihm formulierten Anforderungen und Wünsche des Kunden auf Basis der Arbeitsergebnisse auf der entsprechenden Ebene des 3. Quadranten. Jede nachfolgende Version verkörpert die Anforderungen des Kunden genauer. Der Grad der Änderungen, die von einer Programmversion zur nächsten vorgenommen werden, nimmt mit jeder neuen Version ab. Das Ergebnis ist ein endgültiges System (Softwareprodukt).

Für jeden Zyklus des Modells werden Anforderungen, Alternativen und Einschränkungen analysiert, Risiken identifiziert und gelöst, eine Version des Produkts oder Systems dieses Spiralzyklus entwickelt und als korrekt verifiziert; Der nächste Zyklus wird geplant und Methoden für seine Umsetzung ausgewählt.

Am Ende jedes Zyklus werden dessen Ergebnisse ausgewertet, auf deren Grundlage entweder ein Übergang zum nächsten Zyklus durchgeführt oder der Zyklus bei Bedarf wiederholt wird.

Die Anzahl der Modelliterationen wird entsprechend der Komplexität des Projekts ausgewählt. Die Arbeit jeder Iteration sollte an ein bestimmtes Projekt angepasst werden.

Die Programmierung im Spiralmodell erfolgt viel später als in anderen Modellen. Dadurch können Sie Risiken durch eine konsequente Klärung der Anforderungen des Anwenders minimieren. Bei jeder Iteration werden ein oder mehrere Hauptrisikofaktoren berücksichtigt, beginnend mit dem höchsten Risikofaktor. Zu den typischen Risiken gehören falsch interpretierte Anforderungen, Architektur, potenzielle Produkt- oder Systembetriebsprobleme, Technologieprobleme usw.

Iterationen. Jede Iteration stellt einen vollständigen Entwicklungszyklus dar, der zur Veröffentlichung einer internen oder externen Version eines Produkts (oder einer Teilmenge des Endprodukts) führt, das von Iteration zu Iteration verbessert wird, um ein vollständiges System zu werden.

Die Version wird als Komplettlösung, als Produkt, veröffentlicht. Danach wird eine neue Version entwickelt, die neue Funktionalitäten beinhalten wird. Beispiel: MS Office.


Reis. Spiralmodell des Lebenszyklus eines Informationssystems.

Somit entspricht jede Windung der Spirale der Erstellung eines Fragments oder einer Version eines Softwareprodukts, die Ziele und Eigenschaften des Projekts werden geklärt, seine Qualität bestimmt und die Arbeit für die nächste Windung der Spirale geplant. Bei jeder Iteration werden die Details des Projekts vertieft und konsequent spezifiziert, wodurch eine sinnvolle Option ausgewählt wird, die zur endgültigen Umsetzung gebracht wird.

Durch die Verwendung des Spiralmodells können Sie zur nächsten Phase des Projekts übergehen, ohne auf den vollständigen Abschluss der aktuellen Phase warten zu müssen – unvollendete Arbeiten können bei der nächsten Iteration abgeschlossen werden. Die Hauptaufgabe jeder Iteration besteht darin, so schnell wie möglich ein funktionsfähiges Produkt zu erstellen, das den Benutzern des Systems angezeigt werden kann. Dies vereinfacht den Prozess der Klarstellungen und Ergänzungen des Projekts erheblich.

Vorteile des Spiralmodells. Der spiralförmige Ansatz der Softwareentwicklung überwindet die meisten Mängel des Wasserfallmodells und bietet darüber hinaus eine Reihe zusätzlicher Funktionen, die den Entwicklungsprozess flexibler machen.

Bei der Verwendung des Spiralmodells bei der Durchführung eines entsprechenden Projekts zeigen sich folgende Vorteile:

  • das Vorhandensein von Risikoanalyseaktivitäten, die deren Reduzierung und frühzeitige Erkennung unüberwindbarer Risiken gewährleisten;
  • Sicherstellen, dass der große potenzielle Arbeitsaufwand, der für die Fertigstellung eines Projekts erforderlich ist, in kleinere Teile zerlegt wird;
  • Priorität für die Implementierung kritischer Funktionen mit hohem Risikograd, was es ermöglicht, die Arbeit am Projekt bei Bedarf in den frühen Zyklen des Modells einzustellen und die Kosten zu senken;
  • flexible Designfunktionen, die die Vorteile des Wasserfallmodells nutzen und gleichzeitig Iteration ermöglichen;
  • Verwirklichung der Vorteile des inkrementellen Modells (Freigabe von Inkrementen, Reduzierung des Arbeitsplans, Unveränderlichkeit der Ressourcen bei allmählichem Wachstum des Systems);
  • Umsetzung der Kommunikation mit dem Benutzer mit hoher Frequenz und in den frühen Phasen des Modells, was die Schaffung des gewünschten qualitativ hochwertigen Produkts gewährleistet;
  • die Fähigkeit, das System durch den Benutzer in frühen Phasen durch den Einsatz beschleunigter Prototypenerstellung im Entwicklungslebenszyklus zu bewerten;
  • die Möglichkeit für Benutzer, sich an der Planung, Risikoanalyse, Gestaltung, Entwicklung und Durchführung von Bewertungsmaßnahmen zu beteiligen;
  • Verbesserung der Verwaltung von Entwicklungslebenszyklusprozessen, Kosten, Zeitplaneinhaltung und Personalausstattung, was durch die Durchführung einer Analyse (Überprüfung) am Ende jeder Iteration erreicht wird;
  • Steigerung der Produktivität durch wiederverwendbare Ergebnisse;
  • Erhöhung der Wahrscheinlichkeit eines vorhersehbaren Verhaltens des Systems durch Klärung der Ziele;
  • Es ist nicht erforderlich, alles, was zur Fertigstellung des Projekts erforderlich ist, vorab zu verteilen finanzielle Resourcen;
  • die Fähigkeit, die Gesamtkosten regelmäßig zu bewerten, was letztendlich zu deren Gesamtreduzierung führt.

Schauen wir uns die Vorteile des iterativen Ansatzes genauer an:

  • Die iterative Entwicklung vereinfacht die Durchführung von Änderungen am Projekt erheblich, wenn sich die Kundenanforderungen ändern.
  • Beim Spiralmodell werden einzelne Elemente des Informationssystems nach und nach zu einem Ganzen integriert. Bei einem iterativen Ansatz erfolgt die Integration nahezu kontinuierlich. Da die Integration mit weniger Elementen beginnt, gibt es viel mehr weniger Probleme während der Implementierung (einigen Schätzungen zufolge nimmt die Integration bei Verwendung eines Wasserfall-Entwicklungsmodells am Ende des Projekts bis zu 40 % aller Kosten ein).
  • Reduzierung des Risikoniveaus. Dieser Vorteil ergibt sich aus dem vorherigen, da Risiken gerade bei der Integration entdeckt werden. Daher ist das Risikoniveau zu Beginn der Projektentwicklung maximal. Mit fortschreitender Entwicklung nimmt das erwartete Risikoniveau ab. Diese Aussage gilt für jedes Entwicklungsmodell, aber bei Verwendung des Spiralmodells erfolgt die Risikominderung am schnellsten. Dies liegt daran, dass bei einem iterativen Vorgehen die Integration bereits in der ersten Iteration durchgeführt wird und in den ersten Iterationen viele Aspekte des Projekts identifiziert werden, wie z. B. die Eignung der verwendeten Tools und Software, die Qualifikationen der Entwickler usw.
  • Die iterative Entwicklung bietet eine größere Flexibilität im Projektmanagement und ermöglicht taktische Änderungen am zu entwickelnden Produkt. Sie können beispielsweise die Entwicklungszeit reduzieren, indem Sie die Funktionalität des Systems reduzieren oder Produkte von Drittanbietern als Komponenten des Systems anstelle Ihrer eigenen Entwicklungen verwenden. Dies kann unter Wettbewerbsbedingungen relevant sein, wenn es notwendig ist, der Werbung für ein von Wettbewerbern angebotenes Produkt zu widerstehen.
  • Der iterative Ansatz vereinfacht die Wiederverwendung von Komponenten (implementiert einen komponentenbasierten Programmieransatz). Dies liegt daran, dass es viel einfacher ist, gemeinsame Teile eines Projekts zu identifizieren, wenn diese bereits teilweise entwickelt wurden, als zu versuchen, sie gleich zu Beginn des Projekts zu identifizieren. Die Analyse des Designs nach einigen ersten Iterationen zeigt gemeinsame, wiederverwendbare Komponenten, die in nachfolgenden Iterationen verbessert werden.
  • Das Spiralmodell ermöglicht ein zuverlässigeres und stabileres System. Dies liegt daran, dass im Laufe der Systementwicklung Fehler auftreten Schwachpunkte werden bei jeder Iteration erkannt und korrigiert. Gleichzeitig können kritische Leistungsparameter angepasst werden, was bei einem Kaskadenmodell nur vor der Systemimplementierung möglich ist.
  • Der iterative Ansatz ermöglicht eine Verbesserung des Entwicklungsprozesses – die am Ende jeder Iteration durchgeführte Analyse ermöglicht es uns, zu beurteilen, was in der Entwicklungsorganisation geändert werden muss, und es bei der nächsten Iteration zu verbessern.

Nachteile des Spiralmodells. Bei der Verwendung des Spiralmodells in Bezug auf ein dafür nicht geeignetes Projekt treten folgende Nachteile auf:

  • hohe Kosten des Modells aufgrund der Kosten und des zusätzlichen Zeitaufwands für die Planung, Definition von Zielen, Durchführung von Risikoanalysen und Prototyping während jedes Spiralzyklus;
  • unangemessen hohe Kosten des Modells für Projekte mit geringem Risiko oder geringer Größe;
  • die Komplexität der Modellstruktur, die die Nutzung für Entwickler, Manager und Kunden erschwert;
  • der Bedarf an hochprofessionellem Wissen zur Risikobewertung;
  • die Möglichkeit, den Abschluss der Projektarbeiten aufgrund des Wunsches des Kunden, jede erstellte Version zu verbessern, zu verzögern;
  • die Notwendigkeit, aufgrund einer großen Anzahl von Zwischenzyklen zusätzliche Dokumentation zu verarbeiten;
  • die Notwendigkeit einer klaren Arbeitsverteilung zwischen den Entwicklern;
  • die Schwierigkeit, Kriterien für die Fortsetzung des Entwicklungsprozesses bei der nächsten Iteration festzulegen;
  • der Bedarf an leistungsstarken Prototyping-Tools und -Methoden.

Das Hauptproblem des Spiralzyklus besteht darin, den Zeitpunkt des Übergangs zur nächsten Stufe zu bestimmen. Um dieses Problem zu lösen, ist es notwendig, für jede Phase des Lebenszyklus zeitliche Beschränkungen einzuführen. Andernfalls kann der Entwicklungsprozess zu einer endlosen Verbesserung des bereits Erreichten führen. Bei einem iterativen Ansatz ist es sinnvoll, dem Grundsatz „Das Beste ist der Feind des Guten“ zu folgen. Daher muss der Abschluss einer Iteration streng nach Plan erfolgen, auch wenn nicht alle geplanten Arbeiten abgeschlossen sind.

Die Arbeitsplanung erfolgt in der Regel auf Basis statistischer Daten aus früheren Projekten und der persönlichen Erfahrung der Entwickler.

Anwendungsbereich des Spiralmodells. Der Einsatz des Spiralmodells empfiehlt sich in folgenden Fällen:

  • bei der Entwicklung von Projekten in einer Organisation, die über die erforderlichen Fähigkeiten zur Anpassung des Modells verfügt;
  • bei der Entwicklung von Projekten mit mittlerem und hohem Risiko;
  • bei der Entwicklung von Projekten mit neuen Technologien;
  • bei der Entwicklung von Projekten, bei denen grundlegende Konzepte getestet werden müssen;
  • bei der Entwicklung großer Projekte;
  • bei der Entwicklung von Projekten mit zu komplexen Anforderungen;
  • bei der Entwicklung einer neuen Produkt- oder Systemserie;
  • bei der Entwicklung von Projekten, wenn der Benutzer sich seiner Bedürfnisse nicht sicher ist;
  • bei der Entwicklung von Projekten mit zu erwartenden wesentlichen Änderungen oder Ergänzungen der Anforderungen;
  • bei der Entwicklung von Projekten, ohne dass die Möglichkeit besteht, im Voraus alle für die Umsetzung des Projekts erforderlichen Mittel bereitzustellen,
  • um langfristige Projekte durchzuführen;
  • bei der Entwicklung von Projekten, bei denen es darum geht, die Qualität und Versionen eines Systems oder Produkts über einen kurzen Zeitraum nachzuweisen;
  • bei der Entwicklung von Systemen, die eine große Menge an Berechnungen erfordern;
  • bei der Durchführung von Geschäfts-, Luft- und Raumfahrt-, Verteidigungs- und Ingenieurprojekten;
  • bei der Entwicklung von Projekten, die eine Berechnung der mit der Risikobewertung und -lösung verbundenen Kosten erfordern.

Beim Vergleich der Kaskaden- und Spiralmodelle können wir sagen, dass das Kaskadenmodell universeller ist. Das Spiralmodell konzentriert sich speziell auf Informationssysteme, insbesondere Softwareprodukte, und ist daher bei der Entwicklung von Informationssystemen und ihrer Software dem Kaskadenmodell vorzuziehen.

Anmerkung: Das Konzept des Softwareentwicklungsprozesses. Universeller Prozess. Aktueller Prozess. Spezifischer Prozess. Standardprozess. Prozessverbesserung. Pull/Push-Strategien. Klassische Modelle Prozess: Wasserfallmodell, Spiralmodell. Phasen und Aktivitäten.

Der Vorteil dieses Modells besteht darin, dass es die Möglichkeit einschränkt, zu einem beliebigen Schritt zurück zurückzukehren, beispielsweise vom Testen zur Analyse, von der Entwicklung zur Bearbeitung von Anforderungen usw. Es wurde festgestellt, dass solche Erträge die Kosten des Projekts und seine Fertigstellungszeit katastrophal erhöhen könnten. Wenn beispielsweise beim Testen Design- oder Analysefehler entdeckt werden, führt deren Behebung häufig zu einer kompletten Neugestaltung des Systems. Dieses Modell ermöglichte nur eine Rückkehr zum vorherigen Schritt, beispielsweise vom Testen zum Codieren; von der Software aus wurde dieses Modell von fast jedem Autor relevanter Artikel und Lehrbücher aktiv kritisiert. Es ist allgemein anerkannt, dass es nicht die Besonderheiten der Softwareentwicklung widerspiegelt. Die Nachteile des Wasserfallmodells sind:

  • Identifizierung von Phasen und Aktivitäten, was einen Verlust an Entwicklungsflexibilität mit sich bringt, insbesondere Schwierigkeiten bei der Unterstützung eines iterativen Entwicklungsprozesses;
  • die Anforderung an den vollständigen Abschluss der Aktivitätsphase, Konsolidierung der Ergebnisse in Form eines detaillierten Quelldokuments (technische Aufgabe, Entwurfsspezifikation); Die Erfahrung in der Softwareentwicklung zeigt jedoch, dass es unmöglich ist, die Anforderungsentwicklung, das Systemdesign usw. vollständig abzuschließen. – all dies kann sich ändern; Die Gründe dafür liegen nicht nur darin, dass das Projektumfeld fließend ist, sondern auch darin, dass viele Entscheidungen nicht im Voraus genau bestimmt und formuliert werden können, sondern erst später geklärt und konkretisiert werden.
  • Am Ende erfolgt die Integration aller Entwicklungsergebnisse Integrationsprobleme machen sich zu spät bemerkbar;
  • Anwender und Kunde können sich während der Entwicklung nicht mit den Systemmöglichkeiten vertraut machen und sehen das Ergebnis erst ganz am Ende; Daher können sie den Prozess der Systemerstellung nicht beeinflussen und daher steigt das Risiko von Missverständnissen zwischen Entwicklern und Benutzern/Kunden.
  • Das Modell ist instabil gegenüber Misserfolgen bei der Projektfinanzierung oder Umverteilung von Mitteln; die begonnene Entwicklung hat tatsächlich „unterwegs“ keine Alternativen.

In der Praxis wird dieses Modell jedoch weiterhin eingesetzt – bei kleinen Projekten oder bei der Entwicklung von Standardsystemen, wo Iterativität nicht so gefragt ist. Mit seiner Hilfe ist es bequem, die Entwicklung zu verfolgen und das Projekt Schritt für Schritt zu steuern. Dieses Modell wird auch häufig bei Offshore-Projekten eingesetzt1 Aus dem Englischen offshore – außerhalb der Küste, in einer erweiterten Interpretation – außerhalb eines Landes. mit Stundenlohn. Das Wasserfallmodell wurde als Komponente in andere Modelle und Methoden integriert, beispielsweise in MSF.

Spiralmodell wurde 1988 von Barry Boehm vorgeschlagen, um die Mängel des Wasserfallmodells zu überwinden, vor allem für ein besseres Risikomanagement. Nach diesem Modell verläuft die Produktentwicklung spiralförmig, wobei jede Windung eine bestimmte Entwicklungsphase darstellt. Im Gegensatz zum Wasserfallmodell gibt es beim Spiralmodell keinen vorgegebenen und verbindlichen Satz von Windungen; jede Windung kann die letzte während der Entwicklung des Systems sein; nach seiner Fertigstellung werden Pläne für die nächste Windung erstellt. Schließlich ist eine Revolution genau eine Phase und keine Art von Aktivität wie im Wasserfallmodell; in ihrem Rahmen können viele Dinge durchgeführt werden. verschiedene Arten Aktivität, das heißt, das Modell ist zweidimensional.

Die Reihenfolge der Runden kann wie folgt sein: In der ersten Runde wird über die Machbarkeit der Softwareerstellung entschieden, in der nächsten werden die Entscheidungen getroffen System Anforderungen , dann wird das System entworfen usw. Die Wendungen können andere Bedeutungen haben.

Jede Runde hat die folgende Struktur (Sektoren):

  • Definieren von Projektzielen, Einschränkungen und Alternativen;
  • Bewertung von Alternativen, Bewertung und Lösung von Risiken; es ist möglich, Prototyping (einschließlich der Erstellung einer Reihe von Prototypen), Systemsimulation, visuelle Modellierung und Spezifikationsanalyse zu verwenden; Konzentration auf die riskantesten Teile des Projekts;
  • Entwicklung und Test – hier ist es möglich, ein Wasserfallmodell oder andere Modelle und Methoden der Softwareentwicklung zu verwenden;
  • Planung der nächsten Iterationen – die Ergebnisse, Pläne und Ressourcen für die nachfolgende Entwicklung werden analysiert, eine Entscheidung über eine neue Runde wird getroffen (oder nicht getroffen); analysiert, ob es sinnvoll ist, das System weiterzuentwickeln oder nicht; Die Entwicklung kann beispielsweise aufgrund von Finanzierungsausfällen ausgesetzt werden; Spiralmodell ermöglicht es Ihnen, dies richtig zu machen.

Eine separate Spirale kann der Entwicklung einer Softwarekomponente oder der Einführung regelmäßiger Änderungen am Produkt entsprechen. Somit kann das Modell eine dritte Dimension haben.

Der Einsatz des Spiralmodells ist bei Projekten mit geringem Risiko, mit begrenztem Budget und bei kleinen Projekten nicht zu empfehlen. Darüber hinaus kann der Mangel an guten Prototyping-Tools die Verwendung des Spiralmodells erschweren.

Spiralmodell hat in der Branche keine breite Anwendung gefunden und ist eher in historischer und methodischer Hinsicht wichtig: Es ist das erste iterative Modell, hat eine schöne Metapher – eine Spirale – und wurde später wie das Wasserfallmodell zur Erstellung anderer Prozessmodelle verwendet und Softwareentwicklungsmethoden.