Software Engineering Konzepte in PHP: Eine Untersuchung
By:"Andreas Yalcin"
Published on 2007-11-11 by diplom.de
E-book Library:"Computers"
Inhaltsangabe:Einleitung: Das Internet ermöglicht Unternehmen und Institutionen, ihre Dienste und Informationen einer großen Internetnutzergemeinschaft online zur Verfügung zu stellen. Um ihre Dienste und Angebote besser verwalten zu können, benötigen sie eine auf einem Webserver laufende Anwendung, eine so genannte Webanwendung. Beispiele für Webanwendungen sind Online Shops, virtuelle Auktionshäuser oder Content Management Systeme. Es gibt Programmiersprachen, die sich für das Entwickeln von Webanwendungen bewährt haben und daher besonders eignen. Neben Java und ASP.net hat sich vor allem auch die Skriptsprache PHP in den letzen Jahren hervorgetan. Gründe für die hohe Beliebtheit von PHP sind unter anderem, dass es einfach zu Erlernen ist (auch für Nicht-Informatiker). Desweiteren ist es einfach ein PHP Programm auszuführen, ohne hohen Konfigurationsaufwand, so dass schnell Erfolge erzielt werden können. Darüber hinaus sind Schnittstellen zu allen gängigen DBMS in die Programmiersprache integriert. Viele Webhosting Unternehmen bieten die nötige Umgebung (LAMP) zu erschwinglichen Preisen an, was PHP zu einer kostengünstigen Alternative zu anderen Technologien macht, vor allem für kleine und mittelgroße Unternehmen. Gründe, sich nicht für PHP zu entscheiden, sind ein nur rudimentäres Objektmodell und prozedurale Schnittstellen, die Veränderungen oder Erweiterungen an einer bestehenden Anwendung erschweren. Desweiteren haben sich einige Eigenschaften von PHP, die das Programmieren vereinfachen sollten, als sicherheitskritisch und portabilitätsmindernd herausgestellt. Diese Punkte wirken negativ auf die Qualität der Anwendung. Um qualitativ hochwertige Software herzustellen, ist es während des Herstellungsprozesses notwendig, Prinzipien und Konzepte des Software Engineering umzusetzen. Das Software Engineering setzt sich mit allen Aspekten der Softwareherstellung auseinander. Es werden Theorien, Methoden und Werkzeuge verwendet, um Probleme innerhalb organisatorischer und finanzieller Beschränkungen zu lösen. In der Version 5 verfügt PHP über ein überarbeitetes Objektmodell, mit dem objektorientierte Techniken und Prinzipien besser unterstützt werden. Desweiteren werden immer mehr Software Engineering Werkzeuge (CASE-Tools) angeboten, die den Software Herstellungsprozess unterstützen, ebenso wie Frameworks für Webanwendungen, die auf bewährten Konzepten anderer objektorientierter Programmiersprachen basieren. Gang der Untersuchung: Diese Arbeit soll den Software Herstellungsprozess einer PHP Webanwendung, unter der Verwendung von Software Engineering Konzepten, untersuchen, dokumentieren und bewerten. In Kapitel 2 wird zunächst die Programmiersprache PHP vorgestellt und anhand ihrer speziellen Eigenschaften, sowie anhand des Umgangs mit Variablen, Datentypen und Kontrollstrukturen erklärt. Desweiteren werden grundlegende Konzepte des Software Engineering erklärt. In Kapitel 3 werden vier grundlegende Software Prozess Modelle beschrieben, die jeweils Repräsentanten einer spezifischen Vorgehensweise sind. Diese behandeln die wesentlichen Prozessabläufe Analyse, Entwurf, Implementierung, Test und Inbetriebnahme. Anschließend werden die beschriebenen Prozess Modelle auf PHP bezogen. In Kapitel 4 werden CASE-Tools für die Versionskontrolle und für den Testprozess vorgestellt. Die CASE-Tools für den Testprozess beziehen sich auf Unit-Testing, Debugging, Lasttests und Profiling-Tests. In Kapitel 5 werden die IDEs EasyEclipse for PHP und Zend Studio vorgestellt. Anhand einer kleinen Beispielanwendung wird untersucht, inwieweit sie sich für PHP Anwendungen eigenen. Anschließend wird bei beiden die Eignung bewertet und ein Fazit gezogen. In Kapitel 6 wird das neue Objektmodel von PHP 5 vorgestellt. Anhand von Beispielen zu Polymorphismus, Kapselung, Vererbung, abstrakten Klassen und Interfaces, werden objektorientierte Techniken und Prinzipien erklärt. Es werden weitere Neuerungen vorgestellt und anschließend tabellarisch die Objektmodelle von PHP 5 und PHP 4 miteinander verglichen. In Kapitel 7 werden die Konzepte des Software Engineering anhand einer Beispielanwendung umgesetzt. Es wird zunächst ein Framework für Webanwendungen auf Nutzung von Software Engineering Konzepten untersucht. Anschließend soll, anhand einer überschaubaren Beispielanwendung, exemplarisch die Konstruktion einer Webanwendung unter Verwendung von PHP 5, den vorgestellten CASE-Tools und Software Engineering Konzepten beschrieben und der Herstellungsprozess bewertet werden. Zum Schluss wird ein Ausblick gegeben, wie ein sinnvolles Weiterführen dieser Arbeit aussehen könnte. Inhaltsverzeichnis:Inhaltsverzeichnis: 1.Einleitung1 1.1Ziel und Aufbau der Arbeit2 2.Grundlagen4 2.1PHP4 2.1.1PHP Code in HTML einbetten5 2.1.2Variablen6 2.1.3Datentypen7 2.1.4Kontrollstrukturen12 2.2Software Engineering13 2.2.1Software Prozess Modelle14 2.2.2Analyse und Anforderungen14 2.2.3Entwurf16 2.2.4Implementierung18 2.2.5Validierung und Test19 2.2.6Inbetriebnahme und Wartung20 3.Software Prozess Modelle22 3.1Das Wasserfallmodell22 3.2Evolutionäre Entwicklung23 3.3Wiederverwendungsorientierte Entwicklung24 3.4Das V-Modell25 3.5Software Prozess Modelle bezogen auf PHP Projekte26 4.CASE-Tools28 4.1Versionskontrolle28 4.1.1Das Versionskontrollsystem CVS29 4.1.2Das Versionskontrollsystem Subversion29 4.2Testumgebung30 4.2.1Unit-Testing31 4.2.2Debugging33 4.2.3Lasttests36 4.2.4Profiling37 5.IDEs für PHP Anwendungen39 5.1Eclipse39 5.2Zend Studio40 5.3Untersuchung von Eclipse und Zend Studio41 5.3.1Untersuchung von Eclipse43 5.3.2Untersuchung von Zend Studio46 5.3.3Vergleich von Eclipse und Zend Studio48 6.Das neue Objektmodell von PHP 553 6.1Vererbung, abstrakte Klassen und Interfaces53 6.2Kapselung54 6.3Polymorphismus55 6.4Hinweise auf Klassentypen55 6.5Kopier- und Referenzsemantik56 6.6Ausnahmebehandlung56 6.7Überladen mit __get, __set und __call57 6.8Übersicht58 7.Beispielanwendung60 7.1Untersuchung eines Frameworks auf Nutzung von Software Engineering Konzepten60 7.1.1Prinzipien der Implementierung61 7.1.2Design Patterns62 7.1.3Komponenten63 7.1.4Schichtenarchitektur65 7.2Erstellung einer Beispielanwendung66 7.2.1Beschreibung der Anwendung66 7.2.2Software Prozess Modell66 7.2.3Anforderungen66 7.2.4Entwurf68 7.2.5Implementierung70 7.2.6Test74 7.2.7Inbetriebnahme78 7.3Bewertung80 7.3.1Anforderungen80 7.3.2Entwurf81 7.3.3Implementierung82 7.3.4Test83 7.3.5Inbetriebnahme84 7.3.6Architektur des Frameworks84 8.Zusammenfassung und Ausblick85 8.1Zusammenfassung85 8.2Ausblick86 Anhang87 Abkürzungsverzeichnis87 Glossar88 Literaturverzeichnis89 Textprobe:Textprobe: Kapitel 5.1, Eclipse: Eclipse ist eine „not-for-profit“ Open Source Gemeinschaft, dessen Projekte darauf fokus-siert sind, eine Hersteller unabhängige Entwicklungsplattform zur Software Entwicklung bereitzustellen [eclipse]. Eclipse ist kein fertiges Produkt im Sinne einer IDE, sondern eine Plattform, die ein Plug-In basiertes Framework zur Verfügung stellt. So kann Eclipse als Entwicklungsumgebung anhand der eigenen Bedürfnisse und für beliebige Programmiersprachen mit entsprechen-den Plug-Ins zusammengestellt werden. Die von verschiedenen Herstellern und Organisa-tionen angebotenen Plug-Ins für Eclipse variieren in ihrem Funktionsumfang und in den Lizenzbestimmungen. Eclipse selbst ist Open Source Software und wird unter der EPL (Eclipse Public License) frei angeboten. Die aktuelle, und die im Rahmen dieser Arbeit untersuchte Version ist 3.1.2. EasyEclipse: Das Ziel von EasyEclipse besteht darin, einfach zu installierende und einfach zu benutzen-de Eclipse Distributionen zu erstellen. Die Distributionen werden je nach Anwendungsbe-reich zusammengestellt, getestet und dokumentiert. Die Distributionen bestehen aus der Eclipse Plattform als Hauptkomponente und aus zum Anwendungsbereich passenden, aus-gewählten und lizenzfreien Open Source Eclipse Plug-Ins [easyeclipse]. EasyEclipse for PHP ist eine Eclipse Distribution für PHP. Die Hauptkomponenten, aus der die Eclipse Distribution zusammengestellt ist, bestehen aus: - Der Eclipse Plattform. - Dem PHPEclipse ([phpeclipse]) Plug-In für PHP Unterstützung. - Dem Eclipse Plug-In für Subversion (Kapitel 4.1.2). - Dem SimpleTest Plug-In (Kapitel 4.2.1) für Unit-Testing. Eine detaillierte Übersicht zu den Komponenten, aus der die Eclipse Distribution zusam-mengestellt ist, findet man unter [easyeclipse]. Kapitel 5.2, Zend Studio: Zend Studio ([zend_studio]) ist eine IDE für PHP, die von der Firma Zend Technologies [zend] entwickelt wurde. Zend Studio wird in den zwei Editionen Standard und Professio-nal angeboten. Im Rahmen dieser Arbeit wird die Professional Edition in der Version 5.2.0 untersucht. Die Basisfunktionen der Professional Edition sind ([zend_studio]): - Syntaxhervorhebung bei PHP-, HTML-, JavaScript-, XML- und CSS-Dokumenten. - Das Auf- und Zuklappen von Code-Bereichen wie Kommentare, Klassen, Funktio-nen und nicht PHP Bereiche. - Ein Code-Analyser. - Automatische Code-Vervollständigung. - Ein interaktiver Debugger. - Das direkte Anzeigen und Debuggen von Anwendungen mit dem internen Browser. - Das Einbinden von mitgelieferten Code-Beispielen, die nach ihrem Verwendungs-bereich rubriziert sind. - Integrierte Clients der Versionskontrollsysteme CVS und Subversion. - Ein integrierter FTP Client. - Ein integrierter Client für RDBMS. - Web-Services-Unterstützung. Die Lizenzkosten für die Professional Edition in der Version 5.2.0 betragen EUR 347,- (Stand 13.07.06). Kapitel 5.3, Untersuchung von Eclipse und Zend Studio: Im Rahmen dieser Arbeit wird die Eignung von EasyEclipse for PHP und Zend Studio als IDEs für PHP Anwendungen untersucht. Für die Untersuchung der IDEs dient eine einfache Anwendung als einheitliche Kompo-nente des Versuchsaufbaus. Die Anwendung ist ein einfaches Informationssystem für Fahrzeuge. Es sollen Auskünfte über Kosten und Preise, Gewicht und Luftwiderstand, so-wie über Leistung und Leistungsgewicht der Fahrzeuge erteilt werden. Weiterhin haben die Fahrzeuge einen Fahrer, von dem der Name und das Alter erfasst werden sollen. Die Fahr-zeuge sollen nur grob durch ihre wichtigsten Komponenten Motor, Fahrgestell und Karos-serie modelliert werden. Es sollen Einspurfahrzeuge, sowie Zweispurfahrzeuge modelliert werden. Die Fahrzeuge und ihre Komponenten werden durch verschiedene Aspekte model-liert. Diese Aspekte werden durch die folgenden Interfaces repräsentiert: - Physikalisch (Methoden: gewicht, luftwiderstand). - Motorisiert (Methoden: leistung, leistungsgewicht). - Kommerziell (Methoden: kosten, preis). - Personell ( Methoden: name, alter). - MitFahrer ( Methoden: fahrerName, fahrerAlter). Alle Fahrzeuge haben einen Motor und ein Fahrgestell. Aber nur Zweispurfahrzeuge haben eine Karosserie. Bei Zweispurfahrzeugen ist der Luftwiderstand nur von der Karosserie abhängig. Bei Einspurfahrzeugen ergibt sich der Luftwiderstand aus dem Luftwiderstand des Fahrgestells, des Motors und des Fahrers. Ein Passagier auf einem Motorrad sitzt hin-ter dem Fahrer und trägt damit zwar nicht zum Luftwiderstand, aber zum Gewicht und damit zum Leistungsgewicht bei. Die Problemstellung dieser Anwendung bezieht sich auf Spezialisierungs- und Komponen-tenbeziehungen (isA - und hasA - Relationen), sowie auf Polymorphismus durch Verer-bung und durch Nutzung von Interfaces. Abbildung 4.1 zeigt ein UML Diagramm der An-wendung. Die erwähnten Interfaces sind zugunsten einer besseren Darstellung im UML Diagramm nicht berücksichtigt.
This Book was ranked 21 by Google Books for keyword php eclipse.
Thank youE-Book University
Tidak ada komentar:
Posting Komentar