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.
Understand the basic principles and challenges of effectively managing software development projects.
Understand how to identify and manage project and product risk.
Develop a basic security plan for a software system.
Conduct a representational Failure Analysis for a software system.