Unter Software-Qualitätssicherung wird häufig lediglich das nachträgliche Testen eines Programms oder das Durchsehen des Codes verstanden. Warum aber verhindert man nicht von vorneherein, dass Programmierer Defekte in die Software einbauen? Denn ist ein "Bug" (siehe Bild) erst einmal verbreitet, ist es schwer, ihn zu entdecken und zu entfernen.
In diesem Seminar soll untersucht werden, was die Ursachen für das Einbauen von Defekten sind, in welchen Ausprägungen diese auftauchen und welche (neuen wie alten) Strategien entwickelt wurden, sie zu vermeiden.
Jede/r Teilnehmer/in arbeitet in diesem Seminar ein Referat zu einem interessanten Teilaspekt aus. Neben der fachlichen Arbeit werden auch Vortragstechniken diskutiert und das Schreiben von Ausarbeitungen geübt.
Die Themen bauen auf das gleichlautende Seminar von WS 04/05 auf.Das Seminar wird an einem Block in der vorlesungsfreien Zeit vom 3. - 5. April 2006 (KW 14) im Raum 046 (Info-Gebäude, Takustr. 9) statt finden.
Die Vorbereitungstermine sind:Aus dem Seminar können sich Bachelor-/Studien- und Master-/Diplomarbeitsthemen ergeben.
Im ersten Teil gehen wir eher analytisch an das Thema heran und betrachten Untersuchungen über das Auftreten von Defekten (in der Software) und Fehlern (von Programmierern). Die Referenzen beziehen sich auf die Tabelle darunter, wenn sie nicht direkt verlinkt sind. Durch Klick auf das Kürzel können Sie die Quelle (Berechtigung vorausgesetzt) herunterladen.
Defektanalyse: Es geht um die reine statistische Betrachtung von Defekten.Der Grundgedanke im zweiten Teil ist immer: Wenn das entstandene Produkt schlecht ist, muss der Fehler in der Weise liegen, wie das Produkt entstand.
Prozessorientierte Mittel: Hier werden Vorgaben für den Entwicklungsprozess diskutiert, also der gesamte Weg der Produktentstehung wird untersucht.Durch Klick auf das Kürzel können Sie die Quelle (Berechtigung vorausgesetzt) herunterladen.
Aus01 (2,5 MByte) | Robert D. Austin. The Effects of Time Pressure on Quality in Software Development: An Agency Model. Information Systems Research, Volume 12, Issue: 2, June 2001, pages 195 ff. |
BasBriMel96 | Victor R. Basili, Lionel C. Briand, Walcélio L. Melo. A Validation of Object-Oriented Design Metrics as Quality Indicators. IEEE Transactions on Software Engineering, Volume 22, Issue 10 (October 1996), pages: 751 - 761 |
BasPer84 | Victor R. Basili, Barry T. Perricon. Software errors and complexity: an empirical investigation, Communications of the ACM, Volume 27, Issue 1 (January 1984), Pages: 42 - 52 |
Bei00 | Boris Beizer. Software is different. Annals of Software Engineering, Volume 10, Numbers 1-4, March 2000, Pages: 293 - 310 |
BriWueDal98 | Lionel C. Briand, Jürgen Wüst, John W. Daly, D. Victor Porter. Exploring the relationship between design measures and software quality in object-oriented systems. Journal of Systems and Software, Volume 51, Issue 3 (May 2000), pages: 245 - 273 |
Bro87 | Frederick P. Brooks, Jr.: No Silver Bullet: Essence and Accidents of Software Engineering. IEEE Computer, Vol. 20, No. 4 (April 1987) pp. 10-19 |
ChuBoe99 | Sunita Chulani, Barry Boehm. Modeling Software Defect Introduction Removal: COQUALMO(COnstructive QUALity MOdel). Technical report USC-CSE-99-510, USC-Center for Software Engineering, 1999 |
CocWil01 | Laurie Williams, Alistair Cockburn. The Costs and Benefits of Pair Programming. Humans and Technology Technical Report 2000.01, Jan '00 |
Det02 | Francoise Detienne: Software Design - cognitive aspects, 2002 |
Dzi95 | Wolfgang Dzida (Hrsg.). Psychologie des Software-Entwurfs. Göttingen/Stuttgart 1995 |
ElEBenGoe02 | Khaled El Emam, Saïda Benlarbi, Nishith Goel, Walcelio Melo, Hakim Lounis, Shesh N. Rai. The Optimal Class Size for Object-Oriented Software. IEEE Transactions on Software Engineering, Volume 28, Issue 5 (May 2002), Pages: 494 - 509 |
FenOhl98 | Norman E. Fenton, Niclas Ohlsson. Quantitative Analysis of Faults and Failures in a Complex Software System, IEEE Transactions of Software Engineering, August 2000 (Vol. 26, No. 8), pp. 797-814 |
FerHumKha97 | Pat Ferguson, Watts S. Humphrey, Soheil Khajenoori, Susan Macke, Annette Matvya. Results of Applying the Personal Software Process. IEEE Computer, Volume 30, Issue 5 (May 1997), Pages: 24 - 31 |
FurAraIio94 | Tsuneo Furuyama, Yoshio Arai, Kazuhiko lio. Fault Generation Model and Mental Stress Effect Analysis. J. SYSTEMS SOFTWARE 1994; 26:31-42 |
Gla97 | Robert L. Glass. The ups and downs of programmer stress. Communications of the ACM, Volume 40, Issue 4, April 1997, pages: 17 - 19 |
HasHol01 | Ahmed E. Hassan and Richard C. Holt. The Top Ten List: Dynamic Fault Prediction. Software Architecture Group (SWAG), School of Computer Science, University of Waterloo, Canada |
Hat97 | Les Hatton. Reexamining the Fault Density-Component Size Connection. IEEE Software, Volume 14, Issue 2 (March 1997), Pages: 89 - 97 |
HirKha00 | Iraj Hirmanpour, Soheil Khajenoori. Personal Software Process Technology: An Experiential Report. In Proceedings of ISECON 2000, v 17 (Philadelphia): pp. 115 |
Hoc90 | Jean-Michel Hoc et.al (Hrsg.). Psychology of programming. Academic Press 1990 |
HovPug04 | David Hovemeyer, William Pugh: Finding Bugs is Easy. ACM SIGPLAN Notices, Volume 39, Issue 12, December 2004, pages: 92 - 106 |
NagBal05 | Nachiappan Nagappan, Thomas Ball. Static analysis tools as early indicators of pre-release defect density Proceedings of the 27th International Conference on Software Engineering, St. Louis, MO, USA, pages: 580 - 586, 2005 |
HulAbr05 | Hanna Hulkko, Pekka Abrahamsson. A multiple case study on the impact of pair programming on product quality. Proceedings of the 27th International Conference on Software Engineering, St. Louis, MO, USA, pages: 495 - 504, 2005 |
LesPerSto02 | Marek Leszaka, Dewayne E. Perry, Dieter Stoll. Classification and evaluation of defects in a project retrospective. The Journal of Systems and Software 61 (2002) 173–187 |
LivZim05 | V. Benjamin Livshits and Thomas Zimmermann. DynaMine: Finding Common Error Patterns by Mining Software Revision Histories. In Proceedings of the ACM SIGSOFT Symposium on the Foundations of Software Engineering (FSE 2005), September 2005 |
MalDen00 | Yashwant K. Malaiya, Jason Denton. Module Size Distribution and Defect Density, 11th International Symposium on Software Reliability Engineering (ISSRE'00), p. 62, 2000 |
Mil75 | Harlan D. Mills. How to write correct programs and know it. Proceedings of the international conference on Reliable software, Los Angeles, California, 1975, pp.363-370 |
Mue03 | Matthias M. Müller. Are Reviews an Alternative to Pair Programming? In Conference on Empirical Assessment In Software Engineering (EASE), Keele, UK, April 2003 |
NagBal05 | Nachiappan Nagappan, Thomas Ball. Use of Relative Code Churn Measures to Predict System Defetc Density. Proc. ICSE 2005, St. Louis, USA, Pages 284ff. |
NakKum91 | Takeshi Nakajo, Hitoshi Kume. A case history analysis of software error cause-effect relationships. IEEE Transactions on Software Engineering, Volume 17, Issue 8 (August 1991), Pages: 830 - 838 |
NawWoj01 | Jerzy Nawrocki, Adam Wojciechowski. Experimental Evaluation of Pair Programming. In: K.Maxwell, S.Oligny, R. Kusters, E. van Veenendaal (eds.), Project Control: Satisfying the Customer, Shaker Publishing 2001 (Proceedings of the 12th European Software Control and Metrics Conference, ESCOM 2001, 2-4 April 2001, London), 269-276 |
Nos98 | John T. Nosek. The case for collaborative programming. Communications of the ACM, Volume 41, Issue 3 (March 1998), Pages: 105 - 108 |
OstWey02 | Thomas J. Ostrand, Elaine J. Weyuker. The distribution of faults in a large industrial software system. Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis, Roma, Italy 2002, Pages: 55 - 64 |
OstWey05 | Thomas J. Ostrand, Elaine J. Weyuker. A Tool for Mining Defect-Tracking Systems to Predict Fault-Prone Files. MSR 2005: International Workshop on Mining Software Repositories |
OstWeyBel04 | Thomas J. Ostrand, Elaine J. Weyuker, Robert M. Bell. Where the bugs are. Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis, Boston, Massachusetts, USA, Pages: 86 - 96 |
PerSti93 | Dewayne E. Perry, Carol S. Stieg. Software Faults in Evolving a Large, Real-Time System: a Case Study. Proceedings of the 4th European Software Engineering Conference on Software Engineering, September 13 - 17, 1993, Pages: 48 - 67 |
PurPer03 | Ranjith Purushothaman, Dewayne E. Perry. Toward understanding the rhetoric of small source code changes. IEEE Transactions on Software Engineering, Volume 31, Issue 6, June 2005, Pages 511 - 526 |
RajAna03 | K. S. Rajeswari, R. N. Anantharaman. Development of an instrument to measure stress among software professionals: factor analytic study. Proceedings of the 2003 SIGMIS Conference on Computer Personnel Research, Philadelphia, Pennsylvania, pages: 34 - 43 |
SliZimZel05 | Jacek Śliwerski, Thomas Zimmermann, and Andreas Zeller. When do changes induce fixes? On Fridays. Proc. International Workshop on Mining Software Repositories (MSR), Saint Louis, Missouri, USA, May 2005 |
Tom05 | J. Tomayko. A Comparison of Pair Programming to Inspections for Software Defect Reduction. Computer Science Education, 12(3):213–222, 2002 |
TorMatNak99 | Koji Torii, Ken-ichi Matsumoto, Kumiyo Nakakoji, Yoshihiro Takada, Shingo Takada, Kazuyuki Shima. Ginger2: An Environment for Computer-Aided Empirical Software Engineering. IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 25, NO. 4, JULY/AUGUST 1999 |
Wes00 | Anders Wesslén, A Replicated Empirical Study of the Impact of the Methods in the PSP on Individual Engineers, Empirical Software Engineering, Volume 5, Issue 2, Jun 2000, Page 93 |
WilHol04 | Chadd C. Williams, Jeffrey K. Hollingsworth. Bug Driven Bug Finders. International Workshop on Mining Software Repositories (MSR), May 2004 |
WilKesCun00 | Laurie Williams, Robert R. Kessler, Ward Cunningham, Ron Jeffries. Strengthening the Case for Pair Programming. IEEE SOFTWARE, July/August 2000, pp 19--25 |
WohHoeOhl00 | Claes Wohlin, Martin Höst, Magnus C. Ohlsson. Understanding the Sources of Software Defects: A Filtering Approach. 8th International Workshop on Program Comprehension (IWPC'00), June 10 - 11, Limerick, Ireland 2000, p. 9 |
Yan95 (Japanese, 26 MByte!) | M. Yanagi. A prototype system for warning programmers against committing errors. Master's Thesis, Department of Information Systems, Graduate School of Information Science, Nara Institute of Science and Technology, NAIST-IS-MT351119, Feb. 1995 |
YanMonTak94 (Japanese!) | M. Yanagi, A. Monden, Y. Takada, K. Torii. A tool detecting patterns of programmers' behavior when they likely inject bugs. Technical Report of IEICE SS94-36, Vol. 94, No. 334, pp.9-16, Nov. 1994 |
Yu98 | Weider D. Yu. A software fault prevention approach in coding and root cause analysis. Bell Labs Technical Journal, 3(2), 3-21, (1998, April/June) |
(Hier ist Platz für Kommentare.)
SWTIDSR