SENG 371 Software Evolution

Professor Hausi A. Müller, PhD, PEng
Department of Computer Science
Faculty of Engineering
University of Victoria

Last updated
April 18, 2013

Assignment 1

Due date

  • Mon, Feb 4, 2013 (i.e., Tue before 1 am)
  • One week extension
  • Submission instructions have changed

Objectives

  • Introduction to software evolution
  • Introduction to software evolution terminology
  • Introduction to growing systems
  • Introduction to ULS systems
  • Introduction to autonomic computing

Instructions

This assignment consists of three parts. In Part I you are to define selected software engineering and evolution terms. In Part II you are to discuss evolutionary aspects of growing systems. Part III is an introduction to the world of ultra large scale systems (ULS). List your sources!

Part I

Define the following software architecture and evolution terms. Each definition may be as short as a single sentence or as long as a paragraph. Use textbooks, the library, and the Web to research these terms. Don't assume that these terms be discussed in class. In particular, read the first three chapters of your textbook and the following autonomic computing paper: IBM Corporation: An Architectural Blueprint for Autonomic Computing, Fourth Edition (2006)

  • Legacy system
  • Software complexity
  • Software reverse engineering
  • Program understanding
  • Self-managing system
  • Self-adaptive system
  • Self-organizing system
  • Autonomic element
  • Autonomic manager
  • Control loop

The answers for this question should fit into approximately 2-3 typeset pages.

Part II

Study the following CACM paper:

Truex, D., Baskerville, R., Klein, H.: Growing Systems in Emergent Organizations. Communications of the ACM, 42(8):117-123 (1999). When you are at a UVic location, you can download the paper readily and for free from ACM: http://portal.acm.org/citation.cfm?id=310930.310984&coll=GUIDE&dl=GUIDE,ACM&CFID=2240896&CFTOKEN=98671917

  • Summarize the paper
  • Contrast traditional information systems development (ISD) goals with emergent ISD goals
  • What are your perceived consequences for the software engineering discipline assuming the findings of this paper?
  • What are the consequences with respect to requirements engineering? What is the difference between satisfying requirements outright and regulating the satisfaction of requirements using feedback loops?

The answers for this question should fit into approximately 2-3 typeset pages.

Part III

Study the ULS book:

  • What are the main characteristics of a ULS system?
  • Contrast centralized and decentralized control.
  • Describe three selected challenges for the design and evolution of ULS systems in detail.

The answers for this question should fit into approximately 2-3 typeset pages.

How to submit

Submit your assignment as follows:

  1. Typeset your submission neatly using Word, Pges, or LaTex and generate pdf documents.

  2. Please use the following naming conventions for your file:

      A1-lastName-UVICID.pdf

      or alternatively

      A1-lastName-UVICID-part1.pdf
      A1-lastName-UVICID-part2.pdf
      A1-lastName-UVICID-part3.pdf

  3. Please mail your documents using the following submission interface (ideally as one .pdf file)
    seng371@uvic.ca

Marking

  • Part I is worth 20%; Part II 40%, and Part III 40%.