Schedule

Class activities will be recorded here. All activities are subject to change.

Week 1 : January 14 - January 20
  • Tuesday
    Introduction
    Thursday
    History of software engineering
Week 2 : January 21 - January 27
  • Tuesday
    Software properties and paradigms
    Reading: [Brooks'87]
    Assignment: A1 posted [OSS]
    Thursday
    Staged model
    Reading: [Rajlich'00]
Week 3 : January 28 - February 3
  • Tuesday
    Software decay and aging
    Reading: [Parnas'94, Eick'01]
    Thursday
    Incremental change 1
    Reading: [Rajlich'04]
Week 4 : February 4 - February 10
  • Tuesday
    A1 1 presentations

    Assignment: A1 due [OSS]
    Thursday
    Incremental change 2
    Assignment: A2 posted [SW change]
Week 5 : February 11 - February 17
  • Tuesday
    Software quality 1
    Reading: [Briand'98, Chidamber'94]
    Thursday
    Software quality 2
    Reading: [Briand'99, Bieman'98, Bieman'94]
Week 6 : February 18 - February 24
  • Tuesday
    A2 preparation
    Thursday
    A2 preparation
Week 7 : February 25 - March 3
  • Tuesday
    Bad smells 1
    Reading: [Fowler'99, Mantyla'06]
    Assignment: A2 due [SW change], A3 posted [metrics+smells]
    Thursday
    Bad smells 2
Week 8 : March 4 - March 10
  • Tuesday
    A3 preparation
    Thursday
    Refactoring 1
    Reading: [Shaw'03, Kedhav'07]
Week 9 : March 11 - March 17
  • Tuesday/Thursday
    Spring break
Week 10 : March 18 - March 24
  • Tuesday
    Refactoring 2
    Reading: [Fowler'99, Mens'04]
    Assignment: A3 due [metrics+smells], A4 posted [refactoring]
    Thursday
    Paper assignment
    How to make research paper presentations
Week 11 : March 25 - March 31
  • Tuesday
    Mining software repositories 1
    Thursday
    A4 preparation
Week 12 : April 1 - April 7
  • Tuesday
    Mining software repositories 2
    Thursday
    Mining software repositories 3
    Assignment: A4 due [refactoring], Project posted [MSR]
Week 13 : April 8 - April 14
  • Tuesday
    Mining software repositories 4
    Thursday
    Defect prediction
Week 14 : April 15 - April 21
  • Tuesday
    Project preparation
    Thursday
    Project updates
Week 15 : April 22 - April 28
  • Tuesday
    Paper presentations 1
    Thursday
    Paper presentations 2
Week 16 : April 29 - May 5
  • Tuesday
    Software documentation
    Thursday
    Project preparation
Week 17 : May 6 - May 12
  • Tuesday
    Project presentations
    Time: 9:40 am - 11:40am

Readings

[Bieman'94]
Bieman, J.M. and Ott, L.M., 1994. Measuring functional cohesion. IEEE transactions on Software Engineering, 20(8), pp.644-657.
[Bieman'98]
Bieman, J.M. and Kang, B.K., 1998. Measuring design-level cohesion. IEEE Transactions on Software Engineering, 24(2), pp.111-124.
[Bieman'14]
Fenton, N. and Bieman, J., 2014. Software metrics: a rigorous and practical approach. CRC Press.
[Briand'98]
Briand, L.C., Daly, J.W. and Wust, J.K., 1999. A unified framework for coupling measurement in object-oriented systems. IEEE Transactions on software Engineering, 25(1), pp.91-121.
[Briand'99]
Briand, L.C., Daly, J.W. and Wüst, J., 1998. A unified framework for cohesion measurement in object-oriented systems. Empirical Software Engineering, 3(1), pp.65-117.
[Brooks'87]
Brooks Jr, F.P., 1987, No silver bullet: essence and accidents of software engineering. IEEE Computer.
[Chidamber'94]
Chidamber, S.R. and Kemerer, C.F., 1994. A metrics suite for object oriented design. IEEE Transactions on software engineering, 20(6), pp.476-493.
[Eick'01]
Eick, S.G., Graves, T.L., Karr, A.F., Marron, J.S. and Mockus, A., 2001. Does code decay? assessing the evidence from change management data. IEEE Transactions on Software Engineering, 27(1), pp.1-12.
[Fowler'99]
Fowler, Martin, et al. "Refactoring: improving the design of existing code. 1999." ISBN: 0-201-48567-2.
[Keshav'07]
Keshav, S., 2007. How to read a paper. ACM SIGCOMM Computer Communication Review, 37(3), pp.83-84.
[Mantyla'06]
Mäntylä, M.V. and Lassenius, C., 2006. Subjective evaluation of software evolvability using code smells: An empirical study. Empirical Software Engineering, 11(3), pp.395-431.
[Mens'04]
Mens, T. and Tourwé, T., 2004. A survey of software refactoring. IEEE Transactions on software engineering, 30(2), pp.126-139.
[Parnas'87]
Parnas, D.L., 1994, May. Software aging. In Proceedings of the 16th international conference on Software engineering (pp. 279-287). IEEE Computer Society Press.
[Rajlich'00]
Rajlich, V.T. and Bennett, K.H., 2000. A staged model for the software life cycle. Computer, 33(7), pp.66-71.
[Rajlich'04]
Rajlich, V. and Gosavi, P., 2004. Incremental change in object-oriented programming. IEEE software, 21(4), pp.62-69.
[Shaw'03]
Shaw, M., 2003, May. Writing good software engineering research papers: minitutorial. In Proceedings of the 25th international conference on software engineering (pp. 726-736). IEEE Computer Society.