Lassen Uns Erste verstehen welche software engineering stände für. Die Begriff ist Gemacht auf zwei Text, software und engineering.
Software ist Mehr denn nur ein programm code. Ein programm ist Eine Ausführbar code, welche Dient einige rechen purpose Zweck. Software ist als zu sein Sammlung auf ausführbar programmierung code, assoziierte Bibliotheken und dokumentationen. Software, wenn Gemacht für ein spezifisch anforderung ist namens software produkt.
Maschinenbau auf die andere hand, ist alle Über entwicklung produkts, mit Gut-definierten,wissenschaftlich prinzip und methoden.
Software Maschinenbau ist ein Maschinenbau zweig mit der Entwicklung von Software-Produkt Unter Verwendung gut definierten wissenschaftlichen Prinzipien, Methoden und Verfahren. Das Ergebnis des Software-Engineering ist eine effiziente und zuverlässige Software-Produkt.
IEEE definiert Software-Engineering als:
(1) Die Anwendung eines systematischen, disziplinierten, quantifizierbaren Ansatz für die Entwicklung, den Betrieb und die Wartung von Software; das heißt, die Anwendung von Engineering zu Software.
(2) Das Studium der Ansätze wie in der obigen Aussage.
Fritz Bauer, ein deutscher Informatiker, definiert Software-Engineering als:
Software-Engineering ist die Einrichtung und Nutzung von gerechter technischer Grundsätze, in Ordnung zu erhaltenwirtschaftlich Software, die ist zuverlässig und effizient arbeiten an realen Maschinen.
Der Prozess der Entwicklung eines Software-Produkts unter Verwendung Software-Engineering-Prinzipien und Methoden ist bezeichnet als software evolution. Dies umfasst die anfängliche Entwicklung von Software und deren Wartung und Updates,zu erwünscht Software-Produkt ist entwickelt, welche die erwarteten Anforderungen erfüllt.
Evolution geht von der Erfordernis Versammlung Prozess. Nach welche dem Entwickler erstellen einen Prototyp der beabsichtigt Software und zeigen Sie es den Benutzern, ihre Rückmeldungen bei der frühen Bühne der Software-Produktentwicklung zu erhalten. Die Anwender schlägt Änderungen, auf denen mehrere konsekutiv Updates und Wartung behalten auf wechselnden zu. Dieser Vorgang Änderungen an der ursprünglichen Software, bis gewünschte Software ist durchgeführt.
Selbst nachdem der Anwender-hat gewünscht Software in der Hand, die vorrückenden Technologie und die wechselnden Anforderungen erzwingen das Softwareprodukt zu Veränderung entsprechend. Re-Erstellung von Software von Grund auf und zu gehen, eins-zu-eins mit Anforderung ist nicht machbar. Die einzige machbar und wirtschaftliche Lösung ist es, die bestehende Software zu aktualisieren, so dass sie den neuesten Anforderungen Streichhölzer.
Lehman hat Gesetze für die Software-Entwicklung gegeben. Er unterteilt die Software in drei verschiedenen Kategorien:
S-typen (statisch-typen) - Dies ist eine Software, welche streng nach definierten arbeitet Spezifikationen und Lösungen. Die Lösung und das Verfahren um sie zu erreichen, sowohl sind unmittelbar vor der Codierung zu verstehen. Die s-Typen-Software ist dest auf Änderungen unterworfen daher ist dies die einfachste von allen. Zum Beispiel Taschenrechner-Programm für mathematische Berechnungen.
P-typen (praktische-typen) - Dies ist eine Software, mit einer Sammlung von Prozeduren. Dies wird durch genau das, was Prozeduren können tun, definiert. In dieser Software können die Spezifikationen beschrieben werden, aber die Lösung ist nicht Sofort Offensichtlich. Zum Beispiel Gaming-Software.
E-typen (eingebettet-type) - Diese Software funktioniert eng wie das Erfordernis der realen Welt Umwelt. Diese Software hat einen hohen Grad der evolution, da es verschiedene Änderungen von Gesetzen, Steuern usw. in den realen welt Situationen. Zum Beispiel Online-Trading-Software.
Lehman hat acht Gesetze für E-Type-Software Evolution gegeben -
Anhaltenden Wandel - Eine E-Typ-Software-System muss weiterhin auf die Reale Welt veränderungen anpassen, else es fortschrittlich weniger nützlich wird.
Zunehmende Komplexität - Als ein E-Typ-Software-System evolves, seine Komplexität neigt zu erhöhen, es sei denn Arbeit ist getan zu erhalten oder zu reduzieren es.
Erhaltung der Vertrautheit - Die Vertrautheit mit der Software oder dem Wissen darüber über wie es entwickelt wurde, warum wurde es entwickelt in dieser bestimmten Art und Weise etc. müssen um jeden Preis gehalten werden, die Änderungen im System zu implementieren.
kontinuierliche Wachstum - In Ordnung Damit ein E-Typ-System soll zu beheben einige Geschäft Problem, seine Größe von die Umsetzung der Änderungen wächst nach den Änderungen des Lebensstils des Unternehmen.
Reduzierung Qualität - Eine E-Typ-Software-System übernimmt, es sei denn in der Qualität konsequent gepflegt und an eine sich verändernde Arbeitsumgebung angepasst.
Rück systems - Die E-Typ-Software-Systeme bilden Multi-Loop-, Multi-Level-Feedback-Systeme und müssen als solche behandelt werden, um erfolgreich geändert oder verbessert werden.
Selbstregulation - E-Typ-System Evolution Prozesse sind selbstregulierende mit dem Vertrieb von Produkten und Prozessen Maßnahmen nahe normal.
Organisationsstabilität - Der durchschnittliche effektive globale Aktivitätsrate in einem sich entwickelnden E-Typ-System ist invariant über die gesamte Lebensdauer des Produkts.
Software Paradigmen beziehen sich auf die Methoden und Schritte, die ergriffen werden, während die Gestaltung der Software. Es gibt viele Methoden vorgeschlagen und sind in der Arbeit heute, aber wir müssen sehen, wo in der Software-Engineering Diese Paradigmen stehen. Diese können in verschiedenen Gruppen kombiniert werden, obwohl jeder von ihnen in einem anderen enthalten:
Programmierparadigma ist eine Teilmenge des Software-Design-Paradigma, das eine Teilmenge von Software Entwicklungsparadigma weiter ist.
Dieses Paradigma wird als Software-Engineering-Paradigmen, wo alle Engineering-Konzepte in Bezug auf die Entwicklung von Software angewendet werden, bekannt. Es umfasst verschiedene Untersuchungen und Bedarfserfassung, die das Software-Produkt zu bauen hilft. Es besteht aus -
Dieses Paradigma ist ein Teil der Software-Entwicklung und enthält -
Dieses Paradigma ist eng mit der Programmierung Aspekt der Software-Entwicklung zusammen. Dies beinhaltet -
Der Bedarf an Software Engineering entsteht wegen der höheren Änderungsrate der Benutzeranforderungen und Umwelt auf dem die Software funktioniert.
Große Software - Es ist leichter, eine Wand, als ein Haus oder Gebäude zu bauen, ebenso wie die Größe der Software werden groß Engineering hat mit Schritt, um ihm einen wissenschaftlichen Prozess geben.
Scalability - Wenn die Software-Prozess nicht auf wissenschaftlichen und technischen Konzepten, es wäre einfacher, neu zu erstellen neue Software als eine bestehende zu skalieren.
Kosten - Als Hardware-Industrie hat ihre Fähigkeiten gezeigt und hat sehr großen Herstellungs tiefer er Preis von Computer-und Elektronik-Hardware. Aber die Kosten für Software bleibt hoch, wenn die entsprechenden Verfahren wird nicht angepasst.
Dynamische Nature - Die immer wachsende und Anpassung Natur von Software enorm abhängig von der Umgebung, in der Benutzer arbeitet. Wenn die Natur der Software immer ändert, müssen neue Verbesserungen in der bestehenden geführt werden. Dies ist, wo Software-Engineering spielt eine gute Rolle.
Qualitätsmanagement - Bessere Prozess der Software-Entwicklung bietet eine bessere Qualität und Software-Produkt.
Ein Softwareprodukt kann, was es bietet und wie gut sie verwendet werden können, beurteilt werden. Diese Software muss auf folgende Gründe erfüllen:
Ausgereifte Software und in Handarbeit wird erwartet, dass die folgenden Eigenschaften haben:
Das sagt uns, wie gut Software arbeitet im Betrieb. Es kann auf gemessen werden:
Dieser Aspekt ist wichtig, wenn die Software von einer Plattform zur anderen bewegt:
Dieser Aspekt Schriftsätze darüber, wie gut eine Software hat die Fähigkeiten, sich in der sich ständig verändernden Umwelt zu erhalten:
Kurz gesagt, ist ein Zweig der Informatik, die gut definierte technische Konzepte benötigt, um effizient zu produzieren, langlebig, nutzt skalierbare Software-Engineering, in-budget und on-time Software-Produkte.