Reading Course on Software Development (67717)

2009 – Processes and Lifecycle Models

Thursday at 2-4, Shprinzak 26.

This course will be based on a combination of lectures, discussions, and presentations by students. Each student will be required to make at least one short presentation based on a paper that he or she read, and read a couple more.

Note: this course does not fulfill the requirement for a seminar for MSc students.

Topics and papers we hope to cover are the following. Papers that are well worth a read even if not assigned to you are marked with a *.
12 Mar 2009

The Software Engineering Profession

Mary Shaw, Prospects for an engineering discipline of software. IEEE Software 7(6) pp. 15-24, Nov.-Dec. 1990.

Philippe Kruchten, Putting the “engineering” into “software engineering”. Australian Softw. Eng. Conf., pp. 2-8, 2004.

Melody M. Moore, A License to practice software engineering. IEEE Software 20(3), pp. 112-113, May/June 2003.

Discussion: software engineering vs. programming. Types of software development. (slides)

19 Mar 2009

Classical Software Development Processes

* Winston W. Royce, Managing the development of large software systems. Proc. IEEE WESCON, Aug 1970.
Presenter: Dina Zeliger (slides)

Kurt Schneider, Prototypes as assets, not toys: why and how to extract knowledge from prototypes. 18th Intl. Conf. Software Engineering pp. 522-531, May 1996.
Presenter: Moamen Khiet (slides)

Discussion: the waterfall model and prototyping. (slides)

26 Mar 2009 * Barry W. Boehm A spiral model of software development and enhancement. Computer 21(5), pp. 61-72, May 1988.
Presenter: Ari Yoskowitz

Barry W. Boehm, Software Risk Management: Principles and Practice. IEEE Software 8(1), pp. 32-41, Jan-Feb 1991.
Presenter: Netanel Zakay

Barry Boehm Anchoring the software process. IEEE Software 13(4), pp. 73-82, Jul 1996.
Presenter: Saleem Salfete

Discussion: risks in software development. (slides)

2 Apr 2009 * David Harel and Eran Gery, Executable object modeling with statecharts. Computer 30(7), pp. 31-42, Jul 1997.
Presenter: Moshe Strenger

Bran Celic, The pragmatics of model-driven development. IEEE Software 20(5), Sep-Oct 2003.
Presenter: Elad Benedict

Ed Seidewitz, What models mean. IEEE Software 20(5), Sep-Oct 2003.
Presenter: Yair Netzer

Discussion: model-driven development. (slides)

23 Apr 2009 * Watts S. Humphrey, Characterizing the software process: a maturity framework. IEEE Software 5(2), pp. 73-79, Mar-Apr 1988.
Presenter: Keren Haas

R. van Solingen, Measuring the ROI of software process improvement. IEEE Software 21(3), pp. 32-38, May-Jun 2004.
Presenter: Ariel Lev

Stephen R. Schach, Object-Oriented and Classical Software Engineering. McGraw-Hill, 6th ed., 2005. (Osbert Oglesby case study, especially requirements and analysis – slides)

30 Apr 2009 Ivar Jacobson, Grady Booch, and James Rumbaugh, The Unified Software Development Process. Addison Wesley, 1999. (workflows and their roles; phases in brief)
Presenters: Tom Ron and Dan Cohen (slides and slides)

Susan Lily, Use case pitfalls: top 10 problems from real projects using use cases. Technology of Object-Oriented Languages and Systems (TOOLS 30), pp. 174-183, Aug 1999.
Presenter: Netanell Avisdris

Discussion: unified process, use cases, UML, etc. (slides)

7 May 2009

Stories of Failure and Success

Jake Widman, IT's biggest project failures -- and what we can learn from them. Computerworld Oct 2008.
Linda Geppert, Lost radio contact leaves pilots on their own. IEEE Spectrum 41(11), Nov 2004.
Presenter (both the above): Eldad Moneta (slides)

* H. Goldstein, Who killed the virtual case file?. IEEE Spectrum 42(9), pp. 24-35, Sep 2005.
Presenter: Yael Haas (slides)

Barton P. Miller, Louis Fredriksen, and Bryan So, An empirical study of the reliability of UNIX utilities. Comm. ACM 33(12), pp. 32-44, Dec 1990.

Discussion: is there a software crisis? (slides)

14 May 2009 * H.D. Mills, M. Dyer, R.C. Linger, Cleanroom Software Engineering. IEEE Software 4(5), pp. 19-25, Sep 1987.
Presenter: Dafna Hirschfeld (slides)

R.W. Selby,V.R. Basili, and F.T. Baker, Cleanroom Software Development: An Empirical Evaluation. IEEE Trans. Software Engineering SE-13(9), pp. 1027-1037, Sep 1987.
Presenter: Eviathar Ben Lulu

Buford D. Tackett and Buddy Van Doren, Process control for error-free software: a software success story. IEEE Software 16(3), May-Jun 1999.
Presenter: Tamar Shouker (slides)

Discussion: where are these methods? (slides)

4 Jun 2009

Agile Methods

Manifesto for Agile Software Development. (everybody reads this)

Kent Beck, Extreme programming explained: embrace change. Addison-Wesley, 1999.
Presenter: Yanai Sachs

Laurie A. Williams and Robert R. Kessler, All I really need to know about pair programming I learned in kindergarten. Comm. ACM 43(5), pp. 108-114, May 2000.
Presenter: Michal Ben-Hamo

T. Dyba, E. Arisholm, D.I.K. Sjoberg, J.E. Hannay, and F. Shull, Are two heads better than one? On the effectiveness of pair programming. IEEE Software 24(6), pp. 12-15, Nov-Dec 2007.
Presenter: Tamar Holzman (slides)

Discussion: agile vs. traditional (slides)

11 Jun 2009 D. Gelperin and B. Hetzel, The growth of software testing. Comm. ACM 31(6), pp. 687-695, June 1988.
Presenter: Max Panasenkov

J.A. Whittaker, What is software testing? And why is it so hard?. IEEE Software 17(1), pp. 70-79, Jan-Feb 2000.
Presenter: Avital Braner (slides)

Robert C. Martin, Professionalism and test-driven development. IEEE Software 24(3), pp. 32-36, May-Jun 2007.
Presenter: David Mehrzadi (slides)

Mark C. Paulk, Extreme programming from a CMM perspective. IEEE Software 24(3), pp. 19-26, Nov-Dec 2001.
Presenter: Sivan Golan

Discussion: the role of testing -- first or last?

18 Jun 2009

Software Evolution and Open Source

* David Parnas, Software aging. 16th Intl. Conf. Software Engineering, May 1994.
Presenter: Rami Sass

Meir M. Lehman, On understanding laws, evolution, and conservation in the large-program life cycle . J. Systems & Software 1, pp. 213-221, 1980.
Presenter: Mordechai Yaakobi

Godfrey and Tu, Evolution in open source software: a case study. Intl. Conference on Software Maintenance, Oct 2000.
Presenter: Shay Senders

Discussion: evolution vs. maintenance (slides)

25 Jun 2009 Luqi, Software evolution through rapid prototyping. Computer 22(5) pp. 13-25, May 1989.
Presenter: Natan Shaltiel

* Eric S. Raymond, The Cathedral and the Bazaar. 2000.
Presenter: David Krakov

Denning, Gunderson, and Hayes-Roth, Evolutionary system development. Comm. ACM 51(12), Dec 2008.

Discussion: perpetual development (slides)