Software Development Methodologies
This course covers non-programming related aspects and best practices of the software development process, from requirements engineering, architectural design, and quality management to software maintenance and process improvement. Concepts addressed include software engineering tools, models, and methodologies; requirements engineering and specifications; system modeling; business process analysis; VORD and Use Case analysis; control and distribution models; estimating and scheduling; risk management; software maintenance and improvement; and ethics within the industry.
At the end of the course, students will be able to:
Select and rationalize the appropriate development methodology.
Select appropriate software process models.
Use the principles of software project management as they relate to planning, scheduling and determining risk.
Write a clear, concise requirement specification.
Create and analyze system models including context, behavioral, data, object, and structured models.
Apply knowledge of system development to the selection of rapid development techniques including agile methods, extreme programming RAD and prototyping.
Apply knowledge of system development to the selection of code reuse and component-based development.
Apply knowledge of various manual and automated techniques to verify and validate both the software and the process.