Home > Teaching > CS 253: Software Development and Operations

CS 253: Software Development and Operations

Credits: 3-0-3-12
 

Prerequisites: ESC 111/112, ESO 207.
 

Major, Measurable Learning Objectives

Having successfully completed this course, the student will be able to:

• Learn how to develop large scale software from scratch

• Develop a full-fledged software development environment with knowledge of utilities such as shell scripting make file creation, regular expression tools, and other development tools such as autoconfiguration tools

• Develop testing harnesses and testing techniques including unit testing, integration testing, and system level testing

• Develop deployment environments, and software maintenance tools, and updating tools

• Practice defensive and secure programming with awareness of various vulnerabilities at the code level, software design level, architecture level

• Use software libraries in large scale software development - networking libraries, data base connectivity libraries, and GUI libraries etc.

• Develop software design documents and test documents

 
Syllabus

The students will be exposed to the following topics:

  1. Regular Expression Tools (e.g Awk)
  2. Lex and Yacc
  3. Bash Scripting
  4. Basic Perl, Python or Ruby Scripting
  5. Make File Details and Autoconfiguration tools, gdb
  6. Object Oriented Programming (C++ or Java)
  7. Unit Testing Tools and Techniques
  8. Integration and System Level Testing Techniques
  9. Software Requirements Analysis, Requirements Generation, Documentation
  10. Software Architecture, Functional, Performance and Security Specification
  11. Software Design with Object Oriented Design Techniques, Design Documentation
  12. Implementation techniques with defensive programming and secure programming techniques
  13. Unit testing
  14. Development and Integration and System Testing, Test Automation
  15. Deployment Issues and Maintenance issues
  16. Software Quality Metrics and measurements

The course will consist of 3 hours of lectures per week, projects and homework, and a course project.

 

Texts and Special Teaching Aids

Course notes, lecture slides, man pages, and other documentations will be provided to students by the instructor. Self-study would be an important component of this course.