Schedule

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

Week 1 : January 15 - January 21
  • Tuesday
    Introduction
    Thursday
    History of software engineering
Week 2 : January 22 - January 28
  • Tuesday
    Assignment 1 posted [OSS]
    Software properties and paradigms
    Reading: [Brooks'87]
    Thursday
    Staged model
    Reading: [Rajlich'00]
Week 3 : January 29 - February 4
  • Tuesday
    Software decay and aging
    Reading: [Parnas'94, Eick'01]
    Thursday
    Incremental change 1
    Reading: [Rajlich'04]
Week 4 : February 5 - February 11
  • Tuesday
    Assignment 1 due, Assignment 2 posted [SW change]
    Assignment 1 presentations
    Thursday
    Incremental change 2
Week 5 : February 12 - February 18
  • Tuesday
    Assignment preparation
    Thursday
    Assignment preparation
Week 6 : February 19 - February 25
  • Tuesday
    Software quality 1
    Reading: [Briand'98, Chidamber'94]
    Thursday
    Assignment 2 due, Assignment 3 posted [metrics+smells]
    Software quality 2
    Reading: [Briand'99, Bieman'98, Bieman'94]
Week 7 : February 26 - March 4
  • Tuesday
    Bad smells 1
    Reading: [Fowler'99, Mantyla'06]
    Thursday
    Bad smells 2
Week 8 : March 5 - March 11
  • Tuesday
    Assignment preparation
    Thursday
    Refactoring 1
    Reading: [Fowler'99, Mens'04]
Week 9 : March 12 - March 18
  • Tuesday/Thursday
    Spring break
Week 10 : March 19 - March 25
  • Tuesday
    Assignment 3 due, Assignment 4 posted [refactoring]
    Refactoring 2
    Thursday
    How to make research paper presentations
    Reading: [Shaw'03, Kedhav'07]
Week 11 : March 26 - April 1
  • Tuesday
    Assignment preparation
    Thursday
    Assignment preparation
Week 12 : April 2 - April 8
  • Tuesday
    Mining software repositories 1
    Thursday
    Assignment 4 due, Project posted [MSR]
    Mining software repositories 2
Week 13 : April 9 - April 15
  • Tuesday
    Mining software repositories 3
    Thursday
    Project preparation
Week 14 : April 16 - April 22
  • Tuesday
    Paper presentation 1
    Thursday
    Project updates
Week 15 : April 23 - April 29
  • Tuesday
    Paper presentation 2
    Thursday
    Project preparation
Week 16 : April 30 - May 6
  • Tuesday
    Project updates
    Thursday
    Software documentation
Week 17 : April 7 - May 13
  • Tuesday
    Final examination week
    Thursday
    Final examination week

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.