Modularitätsbetrachtung von Webanwendungen im Rahmen des Plat_Forms Wettbewerbs

bearbeitet von: Andreas Franz

Outline

Bei dieser Masterarbeit soll die Modularität von Platforms Anwendungen (www.plat-forms.org) untersucht werden. Im Plat_Forms-Wettberwerb 2011 galt es eine Webanwendung zu entwickeln, die eine Konferenzverwaltung realisiert. Teilnehmer der Sprachen Perl (3 Teams), Java (4 Teams), PHP (4 Teams), Ruby (4 Teams) und Javascript (1 Team) traten zum Wettbewerb an.

Ziel der Arbeit soll es sein die Modularität zu charakterisieren, analysieren und zu vergleichen. Dabei sollen, falls vorhanden, die Plattformeigenschaften (und -unterschiede) aufgezeigt werden.

Modularität bedeutet die Zerlegung eines komplexen Produkts, in weniger komplexe Teile. Wichtigstes Kriterium für die Zerlegung sollte das Prinzip des Information Hiding sein, dieses besagt, dass so viele Entwurfsprinzipen, wie möglich von einem Modul verborgen werden sollen. Dadurch wird es ermöglicht Module wieder zu verwenden, parallel zu entwickeln und verständlicher zu machen. Zentrale Begriffe, die im Zusammenhang mit Modularität auftauchen, sind Kopplung und Kohäsion. Kopplung beschreibt die Verknüpfungen zwischen Modulen, die Verbindungen sollten möglicht lose sein, vornehmlich steigert das die Wiederverwendung von Modulen. Kohäsion beschreibt den "Zusammenhang" innerhalb eines Moduls, ein Modul sollte stets eine klar abgegrenzte Zuständigkeit haben. Das steigert sowohl die Verständlichkeit, als auch die Wiederverwendbarkeit.

Thesis Requirements

Milestones and Planning

Milestone no. Past days CW Ziele target Status wrench
1 DONE 4 Wochen CWXX Evaluation von Methoden zur Erhebung der Metriken erledigt
2 DONE 8 Wochen CWXX Prüfen der Vergleichbarkeit auf allen Plattformen erledigt
3 DONE 8 Wochen CWXX Auswertung erledigt
4 DONE 4 Wochen CWXX Schreiben der Ausarbeitung erledigt

Weekly Status

Week 1 (CW 09)

Activities

Results

Next Steps

Problems

Week 2 (CW 10)

Activities

Results

Next Steps

Problems

Week 3 (CW 11)

Activities

Results

Next Steps

Problems

Week 4 (CW 12)

Activities

Results

Next Steps

Problems

Week 5 (CW 13)

Activities

Results

Next Steps

Problems

Week 6 (CW 14)

Activities

Results

Next Steps

Problems

*

Week 7 (CW 15)

Activities

Results

Next Steps

Problems

*

Week 8 (CW 16)

Activities

Results

Next Steps

Problems

*

Week 9-11 (CW 17-19)

Activities

Results

Next Steps

Problems

*

Week 12 (CW 20)

Activities

Results

Next Steps

Problems

*

Week 13 (CW 21)

Activities

Results

Next Steps

Problems

Week 14 (CW 22)

Activities

Results

Next Steps

Problems

*

Week 15 (CW 23)

Activities

Results

Next Steps

Problems

*

Week 16 (CW 24)

Activities

Results

Next Steps

Problems

*

Week 17 (CW 25)

Activities

Results

Next Steps

Problems

*

Week 18&19 (CW 26&27)

Activities

Results

Next Steps

Problems

*

Week 20&21 (CW 28&29)

Activities

Results

Next Steps

Problems

*

Week 22&23 (CW 30&31)

Activities

Results

Next Steps

Problems

Week 24&25 (CW 32&33)

Activities

Results

Next Steps

Problems

Week 26&27 (CW 34&35)

Activities

Results

Next Steps

Problems

Week 28&29 (CW 36&37)

Activities

Results

Next Steps

Problems

Week 30&31 (CW 38&39)

Activities

Results

Next Steps

Problems

Week 32-34 (CW 40-42)

Activities

Results

Next Steps

Problems

*

Week 35 (CW 43)

Activities

Results

Next Steps

Problems

*

Week 36&37 (CW 44&45)

Activities

Results

Next Steps

Problems

*

Week 38&39 (CW 46&47)

Activities

Results

Next Steps

Problems

*

Literaturverzeichnis

[BC03] BALDWIN, C. Y. und K. B. CLARK: Managing in the modular age: architectures, networks, and organizations, Kapitel 5, Seiten 149–171. Wiley, 2003.

[Boc00] BOCK, D.: The paperboy, the wallet, and the law of demeter, 2000.

[Cat11] CATALYST CONTRIBUTORS: Catalyst::Manual::Intro. http://search.cpan.org/perldoc?Catalyst::Manual::Intro, 2011. Abruf am: 17. 11. 2011.

[CK94] CHIDAMBER, S.R. und C.F. KEMERER: A metrics suite for object oriented design. IEEE Transactions on software engineering, 20:476–493, 1994.

[CW00] COZENS, S. und P. WAINWRIGHT: Beginning Perl. Wrox Press Ltd., Birmingham, UK, UK, 2000.

[CWE11] CATLIN, H., N. WEIZENBAUM und C. EPPSTEIN: Haml (XHTML Abstraction Markup Language). http://haml-lang.com/docs/yardoc/file.HAML_REFERENCE.html, 2011. Abruf am: 16. 06. 2011.

[Epp91] EPPINGER, S.D.: Model-based approaches to managing concurrent engineering. Journal of Engineering Design, 2(4):283–290, 1991.

[FLO11] FLOW3 CORE TEAM: FLOW3 The Definitive Guide. http://flow3.typo3.org/fileadmin/manual/nightly/TheDefinitiveGuide/PartII/View.html, 2011. Abruf am: 02. 09. 2011.

[Fow03] FOWLER, M.: Patterns of enterprise application architecture. Addison-Wesley Professional, 2003.

[Fow06] FOWLER, M.: Passive View. http://www.martinfowler.com/eaaDev/PassiveScreen.html, 2006. Abruf am: 25. 07. 2011.

[Gor08] GORDEYCHIK, S.: Web Application Security Statistics. https://files.pbworks.com/download/1ANBwCRb7j/webappsec/13247070/WASS-SS-2008.pdf, 2008. Abruf am: 16. 08. 2011.

[HHP02] HARMAN, M., R. HIERONS und M. PROCTOR: A new representation and crossover operator for search-based optimization of software modularization. In: GECCO 2002: Proceedings of the Genetic and Evolutionary Computation Conference, Seiten 1351–1358, 2002.

[HM96] HITZ, M. und B. MONTAZERI: Chidamber and Kemerer’s metrics suite: a measurement theory perspective. Software Engineering, IEEE Transactions on Software Engineering, 22(4):267–271, 1996.

[IEE90] IEEE: IEEE Standard Glossary of Software Engineering Terminology. Office, 121990(1):17,22,49, 1990.

[Joh10] JOHN, ANTANO SOLAR: Catalyst 5.8: The Perl MVC Framework. Packt Publishing Ltd., 2010.

[JPMM04] JABLONSKI, S., I. PETROV, C. MEILER und U. MAYER: Guide to web application and platform architectures. Springer Professional Computing. Springer, 2004.

[Lak93] LAKHOTIA, A.: Rule-based approach to computing module cohesion. In: Proceedings of the 15th international conference on Software Engineering, Seiten 35–44. IEEE Computer Society Press, 1993.

[LD06] LADD, S. und K. DONALD: Expert Spring MVC and Web Flows. Apress, 2006.

[LH89] LIEBERHERR, K. und I. HOLLAND: Formulations and Benefits of the Law of Demeter. ACM SIGPLAN Notices, 24(3):67–78, 1989.

[LHR88] LIEBERHERR, K., I. HOLLAND und A. RIEL: Object-oriented programming: an objective sense of style. In: ACM SIGPLAN Notices, Band 23, Seiten 323–334. ACM, 1988.

[LL07] LUDEWIG, J. und H. LICHTER: Software Engineering: Grundlagen, Menschen, Prozesse, Techniken. Dpunkt-Verl., 2007.

[LR06] LAHRES, B. und G. RAÝMAN: Praxisbuch Objektorientierung. Galileo Computing, 2006.

[McC76] MCCABE, T.J.: A complexity measure. IEEE Transactions on Software Engineering, 2:308–320, 1976.

[MGL+11] MILLER, J., M. GUNDERLOY, M. LINDSAAR, J. INIESTA, R. ARONDEKAR, Y. KATZ, S. MARTINEZ und P. SICHANUGRIST: Getting Started with Rails. http://guides.rubyonrails.org/getting_started.html, 2011. Abruf am: 16. 10. 2011.

[Mic08] MICROSOFT DEVELOPER NETWORK: Model-View-Presenter Pattern. http://msdn.microsoft.com/en-us/library/ff647543.aspx, 2008. Abruf am: 25. 07. 2011.

[MM06] MITCHELL, B.S. und S. MANCORIDIS: On the automatic modularization of software systems using the bunch tool. IEEE Transactions on Software Engineering, 32:193–208, 2006.

[OHK93] OFFUTT, A.J., M.J. HARROLD und P. KOLTE: A software metric system for module coupling. Journal of Systems and Software, 20(3):295–308, 1993.

[Ora11] ORACLE: JSP Standard Tag Library. http://www.oracle.com/technetwork/java/index-jsp-135995.html, 2011. Abruf am: 01. 09. 2011.

[Par72] PARNAS, D. L.: On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15(12):1053–1058, 1972.

[PP03] PRECHELT, L. und M. PETER: Integrating a Tool into Multiple Different IDEs. In: 3rd International Workshop on Adoption-Centric Software Engineering, 2003.

[Pre07] PRECHELT, L.: Plat_Forms 2007: The Web Development Platform Comparison - Evaluation and Results. Technischer Bericht, Institut für Informatik, Freie Universität Berlin, 2007.

[Pre10] PRECHELT, L.: Software Engineering Economics. Vorlesungsskript: Softwareprozesse WS 2010/2011, 2010. Freie Universität Berlin, Institut für Informatik.

[PZ07] POTENCIER, F. und F. ZANINOTTO: The Definitive Guide to symfony. Apress, Berkely, CA, USA, 2007.

[Ree79] REENSKAUG, T.: Models-views-controllers. Technischer Bericht, Xerox PARC, 1979.

[Sen11] SENSIO LABS: A Gentle Introduction to symfony. http://www.symfony-project.org/get/pdf/gentle-introduction-1.4-en.pdf, 2011. Abruf am: 16. 06. 2011.

[SGCH01] SULLIVAN, K.J., W.G. GRISWOLD, Y. CAI und B. HALLEN: The structure and value of modularity in software design. In: ACM SIGSOFT Software Engineering Notes, Band 26, Seiten 99–108. ACM, 2001.

[Sha11] SHANK,G.: HTML::FormHandler::Manual::Reference. https://metacpan.org/module/HTML::FormHandler::Manual::Reference, 2011. Abruf am: 17. 11. 2011.

[She11] SHEIDLOWER, JESSE: Catalyst::Manual::About The philosophy of Catalyst. http://search.cpan.org/perldoc?Catalyst::Manual::About, 2011. Abruf am: 16. 07. 2011.

[SIBa] SIB VISIONS GMBH: JVx Enterprise Application Framework - Anzeige von Daten aus einer Datenbank. http://forum.sibvisions.com/viewtopic.php?f=5&t=23. o.J., Abruf am: 20. 10. 2011.

[SIBb] SIB VISIONS GMBH: JVx Enterprise Application Framework - Features. http://www.sibvisions.com/de/jvxmfeatures. o.J., Abruf am: 20. 10. 2011.

[SIBc] SIB VISIONS GMBH: JVx Enterprise Application Framework - Master/Detail-Beziehung Datenbank. http://forum.sibvisions.com/viewtopic.php?f=2&t=349. o.J., Abruf am: 29.10.2011.

[SLD+11a] SHANK, G., Z. LUKASIAK, T. DORAN, B. GRAF, O. KOSTYUK, F. RAGWITZ, L. A. MESA, D. THOMAS, K. ITA, J. NAPIORKOWSKI, D. MAKI, A. RODLAND, A. CLAYTON, B. BEELEY, C. HENTENYI, E. OISHI, L. W. SITU, MURRAY, N. LOGAN, V. TIMOFEEV, D. KUPERMAN, I. WELLS, A. BARKSDALE und V. MOSELEY: HTML::FormHandler. http://search.cpan.org/perldoc?HTML::FormHandler, 2011. Abruf am: 17. 11. 2011.

[SLD+11b] SHANK, G., Z. LUKASIAK, T. DORAN, B. GRAF, O. KOSTYUK, F. RAGWITZ, L. A. MESA, D. THOMAS, K. ITA, J. NAPIORKOWSKI, D. MAKI, A. RODLAND, A. CLAYTON, B. BEELEY, C. HENTENYI, E. OISHI, L. W. SITU, MURRAY, N. LOGAN, V. TIMOFEEV, D. KUPERMAN, I. WELLS, A. BARKSDALE und V. MOSELEY: HTML::FormHandler::TraitFor::Model::DBIC. http://search.cpan.org/perldoc?HTML::FormHandler::TraitFor::Model::DBIC, 2011. Abruf am: 16. 11. 2011.

[SP11] STÄRK, U. und L. PRECHELT: Plat_Forms 2011 Task: CaP, 2011.

[SRK07] SARKAR, S., G.M. RAMA und A.C. KAK: API-based and information-theoretic metrics for measuring the quality of software modularization. IEEE Transactions on Software Engineering, 33:14–32, 2007.

[TFH04] THOMAS, D., C. FOWLER und A. HUNT: Programming Ruby: The Pragmatic Programmer’s Guide. Pragmatic Bookshelf, Second Edition Auflage, 2004. Abruf am: 04.05.2011.

[THS+] THOMAS, D., A. HUNT, G. SINCLAIR, E. HODEL, W. WEBBER, L. JOHNSON und J. E. GRAY II: ERB - Ruby Templating. http://ruby-doc.org/stdlib/libdoc/erb/rdoc/classes/ERB.html. o.J., Abruf am: 16.06.2011.

[Tro11a] TROUT, MATT: Alarms, excursions, apologia and conclusions. http://www.shadowcat.co.uk/blog/matt-s-trout/plat-forms-redux/, 2011. Abruf am: 07.09.2011.

[Tro11b] TROUT, MATT: HTML::Zoom. http://search.cpan.org/perldoc?HTML::Zoom, 2011. Abruf am: 30.08.2011.

[TYP11a] TYPO3 ASSOCIATION: FLOW3 - The Definitive Guide - Part II: Getting Started - Controller. http://flow3.typo3.org/documentation/guide/partii/controller.html, 2011. Abruf am: 25.10.2011.

[TYP11b] TYPO3 ASSOCIATION: FLOW3 - The Definitive Guide - Part II: Getting Started - Model and Repository. http://flow3.typo3.org/documentation/guide/partii/modelandrepository.html, 2011. Abruf am: 25.10.2011.

[TYP11c] TYPO3 ASSOCIATION: FLOW3 - The Definitive Guide - Part II: Getting Started - View. http://flow3.typo3.org/documentation/guide/partii/view.html, 2011. Abruf am: 25.10.2011.

[Ull11] ULLENBOOM, C.: Java ist auch eine Insel. Galileo Computing, Bonn, 9. aktualisierte Auflage, 2011.

[Vas11] VASWANI, V.: Zend Framework - A Benginner’s Guide. The McGraw-Hill Companies, 2011.

[Wan] WANSTRATH, C.: Mustache Manual: mustache – Logic-less templates. http://mustache.github.com/mustache.5.html. o.J., Abruf am: 14.06.2011.

[War] WARDLEY, A.: Template-Toolkit-2.22. http://search.cpan.org/~abw/Template-Toolkit-2.22/lib/Template/Manual/Syntax.pod. o.J., Abruf am: 14.06.2011.

[War08] WARDLEY, ANDY: Template::Toolkit Template Processing System. http://search.cpan.org/perldoc?Template::Toolkit, 2008. Abruf am: 20.09.2011.

[YC87] YOURDON, E. und L. L. CONSTANTINE: Structured Design - Fundamentals of a Discipline of Computer Program and Systems Design. Prentice Hall, 1987.

[Zen05] ZEND TECHNOLOGIES INC.: Zend_Form - Programmer’s Reference Guide. http://framework.zend.com/manual/en/zend.form.quickstart.html, 2005. Abruf am: 16.06.2011.

[Zus98] ZUSE, H.: A framework of software measurement. de Gruyter, 1998.