Software-Entwicklung

Software-Entwicklung ist der Prozess der Empfängnis, spezifizieren, entwerfen, Programmierung, Dokumentation, testen, und Bugfixing an der Erstellung und Aufrechterhaltung beteiligt Anwendungen, Frameworksoder andere Softwarekomponenten. Software Entwicklung beinhaltet das Schreiben und Aufrechterhaltung das QuellcodeAber im breiteren Sinne enthält es alle Prozesse von der Konzeption der gewünschten Software bis zur endgültigen Manifestation der Software, normalerweise in einem geplanten und strukturiert Prozess.[1] Die Softwareentwicklung umfasst auch Forschung, Neuentwicklung, Prototyping, Änderung, Wiederverwendung, Neubindung, Wartung oder andere Aktivitäten, die zu Softwareprodukten führen.[2]

Methoden

Eine Systementwicklungsmethode ist nicht unbedingt für alle Projekte geeignet. Jede der verfügbaren Methoden eignet sich am besten für bestimmte Arten von Projekten, basierend auf verschiedenen Überlegungen zur technischen, organisatorischen, Projekt- und Team.[3]

Softwareentwicklungsaktivitäten

Identifizierung des Bedarfs

Die Ideenquellen für Softwareprodukte sind reichlich vorhanden. Diese Ideen können von kommen Marktforschung einschließlich der Demografie von potenziellen neuen Kunden, bestehenden Kunden, Vertriebsaussichten, die das Produkt, andere interne Softwareentwicklungsmitarbeiter oder einen kreativen Dritten abgelehnt haben. Ideen für Softwareprodukte werden normalerweise zuerst von bewertet von Marketing Personal zur wirtschaftlichen Durchführbarkeit für die Passform mit bestehenden Kanälenverteilung für mögliche Auswirkungen auf bestehende Produktlinien, die erforderlich sind Merkmaleund für fit mit den Marketingzielen des Unternehmens. In einer Marketing -Evaluierungsphase werden die Kosten- und Zeitannahmen bewertet. Eine Entscheidung wird zu Beginn der ersten Phase getroffen, ob das Projekt aufgrund der detaillierteren Informationen, die vom Marketing- und Entwicklungspersonal generiert wurden, weiter verfolgt werden sollten.[4]

Im Buch "Tolle Softwaredebatten", Alan M. Davis Staaten in diesem Kapitel "Anforderungen", Unterkapitel "Das fehlende Stück Softwareentwicklung"

Studenten des Ingenieurwesens lernen Engineering und sind selten Finanzen oder Marketing ausgesetzt. Studierende des Marketings lernen Marketing und sind selten Finanzen oder Ingenieurwesen ausgesetzt. Die meisten von uns werden Spezialisten in nur einem Bereich. Um die Angelegenheit zu erschweren, treffen nur wenige von uns interdisziplinäre Menschen in der Belegschaft, sodass es nur wenige Rollen gibt, um nachzuahmen. Die Softwareproduktplanung ist jedoch für den Entwicklungserfolg von entscheidender Bedeutung und erfordert absolut Kenntnisse über mehrere Disziplinen.[5]

Planungsprozess

Planung ist ein Ziel jeder Aktivität, bei der wir Dinge entdecken wollen, die zum Projekt gehören. Eine wichtige Aufgabe beim Erstellen eines Softwareprogramms ist das Extrahieren der Bedarf oder Anforderungsanalyse.[6] Kunden haben normalerweise eine abstrakte Vorstellung davon, was sie als Endergebnis wollen, aber nicht wissen, was Software sollte tun. Fachkundige und erfahrene Software -Ingenieure erkennen zu diesem Zeitpunkt unvollständige, mehrdeutige oder sogar widersprüchliche Anforderungen. Das häufigste Nachweis von Live -Code kann dazu beitragen, das Risiko zu verringern, dass die Anforderungen falsch sind.

"Obwohl viel Aufwand in die Anforderungensphase aufgenommen wird, um sicherzustellen, dass die Anforderungen vollständig und konsistent sind, ist dies selten der Fall; ist eine Herausforderung, weil sie sich die Zukunft auswirken oder bereits Entwicklungsbemühungen unternehmen. "[7]

Softwareentwicklung vs. Webentwicklung

In der Computerprogrammierung bezieht sich sowohl die Softwareentwicklung als auch die Webentwicklung auf denselben Ingenieur oder Programmierer und den Codierungsvorgang. [8]

Hinweis: Softwareprogramme, insb. Mobile Apps können im Web arbeiten.

Die Softwareentwicklung konzentriert sich auf die in Computersystemen verwendeten Programme (oder Software). Softwareentwickler sind verantwortlich für das Konzept, die Erstellung, das Programmieren, einige Dokumentieren, Testen, Verbesserung und Wartung der Software und ihrer Softwarekomponenten. [8]

Softwareentwickler (und mobile Software-Ingenieure) erstellen Programme und mobile Anwendungen für eigenständige Desktop-Computer und mobile Geräte und deren Plattformen. [8]

Softwareentwickler müssen nicht nur die Best Practices der Entwicklung, sondern auch die Theorie hinter der Programmierung verstehen. [8]

Webentwickler verwenden das Codieren und Schreiben von Markup, um interaktive Webseiten zu erstellen.[8]

Die Webentwicklung kann in zwei Separate unterteilt werden, die Client -Seite und die Serverseite. Die clientseitige Programmierung ist für jedes Element verantwortlich Anfragen. [8]

Subtopic

View model

Das Teef Matrix der Ansichten und Perspektiven.

A Modell anzeigen ist ein Rahmen, der die liefert Standpunkte auf der System und sein Umgebung, in der verwendet werden Softwareentwicklungsprozess. Es ist eine grafische Darstellung der zugrunde liegenden Semantik einer Ansicht.

Der Zweck von Gesichtspunkten und Ansichten besteht darin, menschliche Ingenieure zu ermöglichen, sehr zu verstehen Komplexe Systeme und die Elemente des Problems um Bereiche von zu organisieren Sachverstand. In dem Ingenieurwesen Von körperlich intensiven Systemen entsprechen die Ansichtspunkte häufig Funktionen und Verantwortlichkeiten innerhalb der Engineering -Organisation.[9]

Geschäftsprozess und Datenmodellierung

Grafische Darstellung Der aktuelle Informationsstand bietet ein sehr effektives Mittel, um Benutzern und Systemen Informationen vorzustellen Entwickler.

Beispiel für die Interaktion zwischen Geschäftsprozess und Datenmodellen.[10]
  • A Geschäftsmodell Veranschaulicht die Funktionen, die mit dem Geschäftsprozess modelliert werden, und die Organisationen, die diese Funktionen ausführen. Durch die Darstellung von Aktivitäten und Informationsströmen wird eine Stiftung erstellt, um die Art eines Prozesses zu visualisieren, zu definieren, zu verstehen und zu validieren.
  • A Datenmodell Bietet die Details der zu gespeicherten Informationen und ist primär nützlich, wenn das Endprodukt die Generierung von Computer ist Softwarecode Für eine Anwendung oder die Erstellung einer funktionalen Spezifikation zur Unterstützung einer Computer-Software-Entscheidung. In der Abbildung rechts finden Sie ein Beispiel für die Interaktion zwischen Geschäftsprozess und Datenmodellen.[10]

Normalerweise wird ein Modell nach Durchführung eines Interviews erstellt, das als als bezeichnet wird Wirtschaftsanalyse. Das Interview besteht aus einem Moderator, der eine Reihe von Fragen stellt, die die erforderlichen Informationen extrahieren sollen, die einen Prozess beschreiben. Der Interviewer wird als Vermittler bezeichnet, um zu betonen, dass es die Teilnehmer sind, die die Informationen zur Verfügung stellen. Der Moderator sollte über den Interessesprozess informiert werden, dies ist jedoch nicht so wichtig wie eine strukturierte Methodik, durch die die Fragen des Prozessexperten gestellt werden. Die Methodik ist wichtig, da in der Regel ein Team von Moderatoren Informationen in der Einrichtung sammelt und die Ergebnisse der Informationen aller Interviewer nach Abschluss der Fertigstellung zusammenpassen müssen.[10]

Die Modelle werden entwickelt, um entweder den aktuellen Stand des Prozesses zu definieren. In diesem Fall wird das Endprodukt als "As-is" -Snapshot-Modell oder als Sammlung von Ideen des Prozesses bezeichnet, was zu einem "What-Can" führt -be "Modell. Die Erzeugung von Prozess- und Datenmodellen kann verwendet werden, um festzustellen, ob die vorhandenen Prozesse und Informationssysteme solide sind und nur geringfügige Änderungen oder Verbesserungen benötigen oder ob eine erneute Engineering als Korrekturmaßnahme erforderlich ist. Die Schaffung von Geschäftsmodellen ist mehr als eine Möglichkeit, Ihren Informationsprozess anzuzeigen oder zu automatisieren. Eine Analyse kann verwendet werden, um die Art und Weise, wie Ihr Unternehmen oder Ihre Organisation ihre Geschäftstätigkeit durchführt, grundlegend neu zu gestalten.[10]

Computergestützte Softwareentwicklung

Computergestützte Softwareentwicklung (Fall) im Feld Softwareentwicklung, ist die wissenschaftliche Anwendung einer Reihe von Softwaretools und -methoden auf die Entwicklung von Software Dies führt zu qualitativ hochwertigen, fehlerfreien und wartbaren Softwareprodukten.[11] Es bezieht sich auch auf Methoden für die Entwicklung von Informationssysteme zusammen mit automatisierten Tools, die im Softwareentwicklungsprozess verwendet werden können.[12] Der Begriff "computergestützter Software-Engineering" (Fall) kann sich auf die verweisen Software verwendet für die automatisierte Entwicklung von Systemsoftware, d.h. Computercode. Die Fallfunktionen umfassen Analyse, Design und Programmierung. Case -Tools automatisieren Methoden zum Entwerfen, Dokumentieren und Erstellen strukturierter Computercode im gewünschten Programmiersprache.[13]

Zwei wichtige Ideen von computergestütztem Softwaresystem Engineering (Fall) sind:[14]

  • Fördern Computerhilfe in der Softwareentwicklung und Software-Wartung Prozesse und
  • Ein technischer Ansatz für die Entwicklung und Wartung von Software.

Typische Fallwerkzeuge existieren für Konfigurationsmanagement, Datenmodellierung, Modelltransformation, Refactoring, Quellcodegenerierung.

Anjutaeine C- und C ++ - IDE für die Gnome -Umgebung

Modellierungssprache

A Modellierungssprache ist jeder künstliche Sprache Das kann verwendet werden, um auszudrücken Information oder Wissen oder Systeme in einem Struktur Das wird durch eine konsistente Regeln festgelegt. Die Regeln werden zur Interpretation der Bedeutung von Komponenten in der Struktur verwendet. Eine Modellierungssprache kann grafisch oder textuell sein.[15]

Programmierparadigma

A Programmierparadigma ist ein grundlegender Stil von Computerprogrammierung, was im Allgemeinen nicht von der Projektmanagementmethodik (wie Wasserfall oder Agile) diktiert wird. Paradigmen unterscheiden sich in den Konzepten und Abstraktionen, die zur Darstellung der Elemente eines Programms (z. B. Objekte, Funktionen, Variablen, Einschränkungen) und die Schritte, die eine Berechnung (z. B. Zuweisungen, Bewertung, Kontinuationen, Datenflüsse) darstellen, dargestellt. Manchmal werden die vom Paradigma behaupteten Konzepte kooperativ im Aufbau von Systemarchitekturen auf hoher Ebene verwendet. In anderen Fällen ist der Bereich des Programmierparadigmas auf die interne Struktur eines bestimmten Programms oder Moduls beschränkt. Beispiel: Grady Booch's objektorientiertes Design (OOD), auch als objektorientierte Analyse und Design (OOAD) bekannt. Das Booch -Modell enthält sechs Diagramme: Klasse, Objekt, Zustandsübergang, Interaktion, Modul und Prozess.[16]

Siehe auch

Rollen und Industrie

Verweise

  1. ^ "Anwendungsentwicklung (AppDEV) definiert und erklärt". BestpriceComputers.co.uk. 13. August 2007. Abgerufen 5. August 2012.
  2. ^ DRM Associates (2002). "Neue Produktentwicklung Glossar". Abgerufen 29. Oktober 2006.
  3. ^ Systementwicklungsmethoden für Web-fähige E-Business: Ein Anpassungsrahmen Linda V. Knight (Depaul University, USA), Theresa A. Steinbach (Depaul University, USA) und Vince Kellen (Blue Wolf, USA)
  4. ^ Joseph M. Morris (2001). Softwareindustrie Accounting. S.1.10
  5. ^ Alan M. Davis. Tolle Softwaredebatten (8. Oktober 2004), S. 125-128 Wiley-ieee Computer Society Press
  6. ^ Ralph, P. und Zauberstab, Y. Ein Vorschlag für eine formale Definition des Designkonzepts Archiviert 27. Januar 2018 bei der Wayback -Maschine. IN, Lyytinen, K., Loucopoulos, P.,, Mylopoulos, J., und Robinson, W. (Hrsg.), Design Requirts Engineering: Eine zehnjährige Perspektive: Springer-Verlag, 2009, S. 103-136
  7. ^ Otero, Carlos. "Software -Design -Herausforderungen". IT -Leistungsverbesserung. Taylor & Francis LLC. Abgerufen 19. Oktober 2017.
  8. ^ Edward J. Barkmeyer EA (2003). Konzepte zur Automatisierung der Systemintegration NIST 2003.
  9. ^ a b c d Paul R. Smith & Richard Sarfaty (1993). Erstellen eines strategischen Planes für das Konfigurationsmanagement mithilfe von COUSE -Tools (Computer Aided Software Engineering). Papier für 1993 National DOE/Auftragnehmer und Einrichtungen CAD/CAE -Benutzergruppe.
  10. ^ Kuhn, D.L. (1989). "Auswählen und effektiv mithilfe eines computergestützten Software-Engineering-Tools". Jährliches Westinghouse Computer Symposium; 6.-7. November 1989; Pittsburgh, PA (USA); DOE -Projekt.
  11. ^ P. Loucopoulos und V. Karakostas (1995). Systemanforderungen Engineering. McGraw-Hill.
  12. ^ FALL Archiviert 2012-02-18 bei der Wayback -Maschine Definition in: Telecom Glossar 2000 Archiviert 2005-11-22 bei der Wayback -Maschine. Abgerufen am 26. Oktober 2008.
  13. ^ K. Robinson (1992). Setzen Sie das Software -Engineering in den Fall. New York: John Wiley und Sons Inc.
  14. ^ Xiao HE (2007). "Ein Metamodell für die Notation grafischer Modellierungssprachen". Im: Conference für Computersoftware und Anwendungen, 2007. Compsac 2007 - Vol. 1. 31. jährlicher International, Band 1, Ausgabe, 24. bis 27. Juli 2007, S. 219-224.
  15. ^ Merx, Georges G.; Norman, Ronald J. (2006). Unified Software Engineering mit Java. Prentice-Hall, Inc. p.201. ISBN 0130473766.

Weitere Lektüre

  • Kit, Edward (1992). Softwaretests in der realen Welt. Addison-Wesley Professional. ISBN 0201877562.
  • McCarthy, Jim (1995). Dynamik der Softwareentwicklung. Microsoft Press. ISBN 1556158238.
  • Conde, Dan (2002). Software -Produktmanagement: Verwalten der Softwareentwicklung von Idee über Produkt über Marketing bis zum Vertrieb. Aspatore -Bücher. ISBN 1587622025.
  • Davis, A. M. (2005). Gerade genügend Anforderungsmanagement: Wo die Softwareentwicklung Marketing entspricht. Dorset House Publishing Company, Incorporated. ISBN 0932633641.
  • Hasted, Edward (2005). Software, die verkauft wird: Ein praktischer Leitfaden zur Entwicklung und Vermarktung Ihres Softwareprojekts. Wiley Publishing. ISBN 0764597833.
  • Hohmann, Luke (2003). Jenseits der Softwarearchitektur: Erstellen und Aufrechterhaltung von Siegerlösungen. Addison-Wesley Professional. ISBN 0201775948.
  • John W. Horch (2005). "Zwei Orientierungen, wie man mit Objekten arbeitet." Im: IEEE -Software. vol. 12, nein. 2, S. 117–118, März, 1995.
  • Rittinghouse, John (2003). Verwaltung von Software -Zustellungen: Eine Methode zur Verwaltung von Softwareentwicklungsverwaltung. Digitale Presse. ISBN 155558313X.
  • Wiegers, Karl E. (2005). Mehr zu Softwareanforderungen: dornige Probleme und praktische Beratung. Microsoft Press. ISBN 0735622671.
  • Wysocki, Robert K. (2006). Effektiver Softwareprojektmanagement. Wiley. ISBN 0764596365.

Externe Links

Medien im Zusammenhang mit der Softwareentwicklung bei Wikimedia Commons