Software Development Practices Dr. Jaspal Subhlok (Office Hours: M 4-6PM PGH 217 or by appointment) Dr. Course Description: The objective of this course is to bring the students up to speed on the pragmatics of software development. In this hands-on course, the students will work towards developing industrial strength software systems using state of the art techniques and tools. Emphasis will be placed on estimation, planning, risk management, testing, development and deployment. Various good practices in software development, including pragmatic programming and agile software development practices will be emphasized.
Pre-requisite: · You must have completed either COSC 6318 or COSC 4351 · You must have completed COSC 1320 or equivalent · You must have completed COSC 2320 or equivalent
Pre-requisites will be enforced (expected to have knowledge of OO, Data Structures, and software development life cycle). If you have any questions about them, please contact Jaspal. Please fill the pre-requisite certification form available on the course web site and submit it to Jaspal by 6PM January 26th.
Topics:
Agile Software Development Principles and practices Tools for agile development Unit Testing Continuous integration Continuous Feedback Estimation Measuring progress Measuring Quality
Course organization: There will be lecture/presentations for the first 3 weeks. After that the course will be primarily driven by student project iteration with some guest lectures and other presentations. deliverables at the middle and end of the semester.
Lecture Schedule:
January 19 - Introduction to course, expectations, process, project expectations, and student evaluations
January 19 - Introduction to Agile Methodologies and Practices
January 26 - Project Sponsor Presentations
Project: Each student will participate in a software project which will have an external sponsor. The project will be designed and implemented in consultation with the sponsor. The instructors will oversee the project progress in terms of the requirements, progress of the work, and implementation. The success of the project is measured based on the number of criteria including (but not limited to) working software delivered, continued progress, and pace through out the semester. The process and practices followed and the quality of code, the ability to accomodate reasonable change in requirements, feature completeness, and progress in terms of schedule will be considered. Use of tools, techniques, practices, and facilities that reduce risk and promote probability of success will be encouraged. Project
Team Requirements:
Any
exceptions from these requirements require the approval of the instructors.
Project Schedule:
Grading:
Some
details of grading may change but this should give you a good idea. Recommended
Text: There are no required texts for this course. Some recommended texts
are:
|