Course Catalog URL:
COM S 510
Offered during Fall Semester each year.
- Credits and contact hours: 3 credits, 3 contact hours
- Instructor’s or course coordinator’s name: Carl Chang
- Text book, title, author, and year: None required
- Other supplemental materials: None
Specific course information
- Brief description of the content of the course: Teams of students develop software applications in a modern software engineering environment. Importance, effective processes pertaining to team organization, management and communication, and cultural issues of distributed development. Graduate credit requires in-depth study of concepts and oral presentations.
- Prerequisites or co-requisites: COM S 228, COM S 327, COM S 309; for graduate credit: graduate standing or permission of instructor
- Required, elective, or selected elective? Selected Elective
Specific goals for the course
- Specific outcomes of instruction:
- Ability to understand the major differences between distributed development of software and collocated development of software (1)
- Ability to understand the major risks of distributed development of software are, especially when teams are widely separated by distance, time zones, culture, and native language. (2, 5)
- Ability to mitigate the risks of distributed development of software.
- Ability to use processes, tools, and techniques help to make distributed development of software effective. (6)
- Ability to do Test Driven Development (TDD).
- Ability to understand the benefits of distributed development of software and how to take advantage of those benefits.
- Ability to plan a distributed development project.
- Ability to track the progress of a distributed development project.
- Ability to present the team project.
- Ability to conduct continuous integration with regression tests using the agile methods and supported by the modern-day DevOps.
- Ability to use open-source Agile development support environment to track the progress of development iterations/sprints.
Brief list of topics to be covered
- Software engineering processes employing the Agile Methods (Scrum) in an emulated distributed development environment.
- Effective processes for distributed development (product/task breakdown, incremental development, regression tests, continuous integration, Scrum/sprint, release planning/deployment, etc.)
- Cultural, organizational and communication issues in distributed development
- Test Driven Development