67717 – Reading Course on Software Development

Reading Course on Software Development (67717)

2011 – Methods, Tools, and Best Practices

Thursday at 2-4, Shprinzak 116.

This course will be based on a combination of lectures, discussions, and presentations by students.

The course requirements are

Presentations are typically allocated 20 minutes. Make sure you emphasize the main ideas in the paper, and what we learn from it. Use the following question as a guideline: why did I choose to include this paper in the seminar? The grade for the presentation is composed of 8% quality of slides (organization and support of the presentation, not flashiness), 8% quality of presentation (including keeping time), and 15% coverage of the material.

The reports should include the following:

Length is strictly limited to half a page of text. Please submit in PDF (not word), or a plain ASCII file.

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 *.

17 Feb 2011

What Is Software Engineering

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.

David L. Parnas, Risks of undisciplined development. Comm. ACM 53(10) pp. 25-27, Oct 2010.

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)

24 Feb 2011

Background: Lifecycle Models

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

Tom Gilb, Principles of Software Engineering Management, Addison Wesley, 1988. (Chapter on evolutionary delivery).
Presenter: Ayelet Blanc (slides)

Jack W. Reeves, Code as design: three essays. C++ Journal 1992 and Developer.* 2005.

Discussion: from sequential to iterative lifecycles. (slides)

3 Mar 2011

Software Reliability

* David Lorge Parnas, Software aspects of strategic defense systems. Comm. ACM 28(12), pp. 1326-1335, Dec 1985.
Presenter: Miri Cohen

Norman F. Schneidewind and Ted W. Keller, Applying reliability models to the space shuttle. IEEE Softw. 9(4) pp. 28-33, Jul/Aug 1992.
Presenter: Barak Nagar (slides)

LONG BREAK between talks

Nancy G. Leveson and Clark S. Turner, An investigation of the Therac-25 accidents. Computer 26(7), pp. 18-41, Jul 1993.
Presenter: Dror (slides)

10 Mar 2011 J.H. Poore, Harlan D. Mills, David Mutchler, Planning and certifying software system reliability. IEEE Software 10(1), pp. 88-99, Jan/Feb 1993.
Presenter: Saed Bhiri

Daniel Jackson, A direct path to dependable software. Comm. ACM 52(4), pp. 78-88, Apr 2009.
Presenter: Maayan Negbi

K. Koscher, A. Czeskis, F. Roesner, S. Patel, T. Kohno, S. Checkoway, D. McCoy, B. Kantor, D. Anderson, H. Shacham, and S. Savage, Experimental security analysis of a modern automobile. In IEEE Symp. Security and Privacy, pp. 447-462, May 2010.
Presenter: Alex Puschinsky

REPORT Ken Thompson, Reflections on trusting trust. Comm. ACM 27(8), pp. 761-763, Aug 1984. Submit via Moodle

Discussion: success, reliability, and security

17 Mar 2011

Requirements Engineering

Daniel M. Berry, The importance of ignorance in requirements engineering. J. Systems & Software 28(2), pp. 179-184, Feb 1995.
Presenter: Omer Brookstein (slides)

* Tom Gilb, What's wrong with requirements specification? An analysis of the fundamental failings of conventional thinking about software requirements, and some suggestions for getting it right. J. Softw. Engineering & Apps. 3(9) pp. 827-838 Sep 2010.
Presenter: Lior Ebel (slides)

Colin J. Neilland Phillip A. Laplante, Requirements engineering: the state of the practice. IEEE Software 20(6), pp. 40-45, Nov-Dec 2003.
Presenter: Dror (slides)

Discussion: self-use and for-hire projects

24 Mar 2011 Martin Fowler, UML Distilled, Addison Wesley, 2000. [Chapters 3, 5, 8]
Presenter: Ahmad Jbara

Alistair Cockburn, Use cases, ten years later, 2002.
Basic use case template, 1998.
Presenter: Yuval Gil

Philippe Kruchten, The 4+1 view model of architecture. IEEE Software 12(6) pp. 42-50, November 1995.
Presenter: Tomer Weller

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

Discussion: Understanding user requirements

31 Mar 2011

Formal Methods

* R.A. DeMillo, R.J. Lipton, and A. Perlis, Social processes and proofs of theorems and programs. Comm. ACM 22(5), pp. 271-280, May 1979.
Presenter: Nissim Avitan

J.H. Fetzer, Program verification: the very idea. Comm. ACM 31(9), pp. 1048-1063, Sep 1988.
Presenter: Michael Zakai

J.A. Hall, Seven myths of formal methods. IEEE Software 7(5), pp. 11-19, Sep 1990.
J.P. Bowen and M.G. Hinchey, Seven more myths of formal methods. IEEE Software 12(4), pp. 34-41, Jul 1995.
Presenter: Roy Sheaffer (slides)

Daniel M. Berry Formal methods: the very idea: Some thoughts about why they work when they work. Science of Computer Programming 42(1) pp. 11-27, Jan 2002.
Presenter: Moneer Omar

REPORT David Harel, On visual formalisms. Comm. ACM 31(5) pp. 514-530 May 1988. Submit via Moodle

7 Apr 2011 * H.D. Mills, M. Dyer, R.C. Linger, Cleanroom Software Engineering. IEEE Software 4(5), pp. 19-25, Sep 1987.
Presenter: Yechiel Weill

B. Nuseibeh, C. B. Haley, and C. Foster, Securing the skies: in requirements we trust. Computer 42(9), pp. 64-72, Sep 2009.
Presenter: Or Shachar (slides)

J.P. Bowen and M.G. Hinchey, Ten commandments of formal methods. IEEEComputer 28(4) pp. 56-63, Apr 1995.
J.P. Bowen and M.G. Hinchey, Ten commandments of formal methods ... ten years later. IEEE Computer 39(1), pp. 40-48, Jan 2006.
Presenter: David Yona

David Lorge Parnas, Really rethinking 'formal methods'. Computer 43(1) pp. 28-34, Jan 2010.

Discussion: where are formal methods? (slides)

5 May 2011

Standards

Martyn Thomas, Unsafe Standardization. IEEE Computer 40(11), pp. 109-111, Nov 1997.
Simone Santini, Standards: What are they Good For? IEEE Computer 39(12), pp. 140-139, Dec 2006.
Presenter: Shani Shanon

Ho-Won Jung, Seung-Gweon Kim, and Chang-Sin Chung, Measuring software product quality: A survey of ISO/IEC 9126. IEEE Software 21(5) pp. 10-13, Sep/Oct 2004.
Hiyam Al-Kilidar, Karl Cox, and Barbara Kitchenham, The use and usefulness of the ISO/IEC 9126 Quality Standard. Proc. Intl. Symp Empirical Software Engineering, pp. 126-132, Nov 2005.
Presenter: Maayan Zadik

Michi Henning, API design matters. Comm ACM 52(5), pp. 46-56, May 2009.
Presenter: Denis Burakov (slides)

Discussion: what and how to standardize (slides)

12 May 2011

Metrics

Linda Westfall, 12 Steps to Useful Software Metrics. 2005.
Presenter: Sivan Gamlieli

Barbara Kitchenham, David Ross Jeffery, and Colin Connaughton, Misleading metrics and unsound analyses. IEEE Software 24(2), pp. 73-78, Mar-Apr 2007.
Presenter: Gil Hartman (slides)

Katrina D. Maxwell and Pekka Forselius, Benchmarking software development productivity. IEEE Software 17(1), pp. 80-88, Jan-Feb 2000.
Presenter: Emily Elbaz

Discussion: why and how to measure software (slides)

19 May 2011

Agile Methods, Software Evolution, and Open Source

* Manifesto for Agile Software Development.

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

Balasubramaniam Ramesh, Lan Cao, and Richard Baskerville, Agile requirements engineering practices and challenges: an empirical study. Inf. Syst. J. 20(5), pp. 449-480, Sep 2010.
Presenter: Tomer Loterman

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: Meir Wahnon

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: Yair Poleg (slides)

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

26 May 2011 Godfrey and Tu, Evolution in open source software: a case study. Intl. Conference on Software Maintenance, Oct 2000.
Presenter: David Kranzdorf

Mark Mahoney, Software Evolution and the Moving Picture Metaphor. Onward! at OOPSLA 2009.
Presenter: Afief Halumi (slides)

V. T. Rajlich and K. H. Bennett, A staged model for the software life cycle. Computer 33(7), pp. 66--71, Jul 2000.
Presenter: Dmitri Gluzman

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

REPORT Eric S. Raymond, The Cathedral and the Bazaar. 2000. Submit via Moodle
(note that this is a LONG essay -- read all of it, not just the first page)

Alistair Cockburn, What is a process good for?, 2007.

Discussion: agile and perpetual development (slides)

2 Jun 2011

Software Engineering Research

Victor R. Basili and Marvin V. Zelkowitz, Empirical studies to build a science of computer science. Comm. ACM 50(11), pp. 33-37, Nov 2007.
Presenter: Arie Shterngertz (slides)

Leon J. Osterweil, Carlo Ghezzi, Jeff Kramer, and Alexander L. Wolf, Determining the Impact of Software Engineering Research on Practice. Computer 41(3), pp. 39-49, Mar 2008.
Presenter: Ilan Goldschmidt

Dieter Rombach, Marcus Ciolkowski, Ross Jeffery, Oliver Laitenberger, Frank McGarry, and Forrest Shull, Impact of research on practice in the field of inspections, reviews, and walkthroughs: learning from successful industrial uses. ACM SIGSOFT Software Engineering Notes 33(6), Nov 2008.
Presenter: Pnina Alfiya

Victor R. Basili and Robert W. Reiter, Jr., A controlled experiment quantitatively comparing software development approaches. IEEE Trans. Softw. Eng. SE-7(3), pp. 299-320, May 1981.

Robert L. Glass, Revisiting the industry/academe communication chasm. Comm. ACM 40(6), pp. 11-12, Jun 1997.

Discussion: the role of academia (slides)