next up previous contents
Next: About this document ... Up: Course outlines Previous: Information Systems Development and   Contents

Software Development and Quality Improvement

AT 70.19
Software Development and Quality Improvement

Semester: Summer

Rationale:

  Designing, developing, and improving complex software systems
  requires a mastery of analytical and technical skills, as well as a
  knowledge of appropriate processes, architectures and design
  patterns.  This course teaches the fundamental skills of software
  engineering, drawn from research and best-practice on large open
  source and commercial software projects.  Students will learn
  techniques and tools for modeling, analyzing, developing and 
  evaluating complex software systems.  The emphasis will be on 
  rapid implementation of  complex systems through agile 
  development processes, visual development tools, software 
  frameworks, and integration of open source and commercial 
  components.

  The course will also improve students' practical software
  engineering skills by having them plan and execute a significant
  open-source software development project.  Students may make a
  specific contribution to an existing large open source project or
  start a new project of their own choice.  Projects with the
  potential to play a role in development of the Asian region will be
  strongly encouraged.

  This is the second course in a two course sequence, focusing on
  prototyping and software construction, project management, and
  testing.  Students taking this course will execute the
  open-source software development project they planned in Software
  Architecture and Design.

Catalog description:

  Software engineering, Software development, Software testing,
  CASE Tools, Software project management, Software quality and
  improvement, Open source software

Credits:

  3(2-3)

Prerequisite:

  AT 70.18 (Software Architecture Design)

Course Outline:

  1. Iterative Development: Design, Construction, Testing and Evaluation
     1. Rational Unified Process
     2. Prototyping
     3. Testing and Quality in development
     4. Refinement, refactoring, and reuse
     5. Review and evaluation
  2. Tools and Methods
     1. Programming methodologies
     2. CASE Tools
     3. Build control, version control, integration
     4. Visual analysis tools
  3. Software Configuration Management
     1. Monitoring and auditing
     2. Release management
  4. Testing and Quality
     1. Testing fundamentals and techniques
     2. Debugging
     3. Quality assurance
     4. Verification and validation
     5. Software Improvement
     6. Dynamic analysis
     7. Issue tracking

Textbook:

  Lecture notes provided by instructor

References:

  Brooks, F. P. (1995). The Mythical Man-Month: Essays on Software 
  Engineering. Addison-Wesley.  ISBN 0-201-83595-9. 

  Brown, Malveau, McCormick and Mowbray (1998). AntiPatterns:
  Refactoring Software, Architectures, and Projects in Crisis. Wiley.

  Bruegge, B. and Dutoit, A.ÊH. (2004). Object-Oriented Software 
  Engineering: Using UML, Patterns, and Java. Prentice-Hall, 2nd
  edition. ISBN 0-13-1911791.

  Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995). 
  Design Patterns: Elements of Reusable Object-Oriented Software. 
  Addison-Wesley. ISBN 0201633612.

  Fowler (2003). UML Distilled: A Brief Guide to the Standard Object
  Modeling Language, Third Edition. Addison-Wesley.

  Larman, C. (2005). Applying UML and Patterns: An Introduction to 
  Object-Oriented Analysis and Design and Iterative Development. 
  Prentice-Hall.

  Pressman, R.S. (2004). Software Engineering: A Practitioner's Approach. 
  McGraw-Hill, 6th edition.
  
  Sommerville, I. (2005). Software Engineering. 
  Addison-Wesley, 7th edition.  ISBN 0-321-21026-3 (recommended).

  Stevens, P. (2006). Using UML: Software Engineering with Objects 
  and Components. Addison-Wesley, 2nd edition. ISBN 0-321-26967-5.
  (recommended).

Coursework and Grading:

  Homework (30%), Project (30%), Final Exam (40%). 

Instructor:

  Dr. Paul Janecek



Matthew Dailey 2006-11-20