Software engineering practice applied to the life cycle of software applications and engineering projects. Software project planning and management, with a focus on the Agile software development process.
Software development topics: requirements gathering, analysis and design modeling, user interface design, architectural and detailed design, documentation, testing strategies/methods, test plan generation, security, and ethics. Requires a major team project.