Base Knowledge
Programming experience.
Teaching Methodologies
Students carry out the following practical assignments:
- Analysis of a software development process
- Comparison of approaches using agile and traditional methodologies
- Agile software development practices (carried out in groups)
- Analysis of case studies of software projects and processes
Practical assignments have a similar weight, summing up to 55% of the final grade.
There will also be a theoretical exam, weighting 45% of the final grade. A minimum of 40% is mandatory for passing.
A student may resubmit 2 assignments by the end of any of the exam periods (two resubmissions at most)
Learning Results
This curricular unit covers several software development methodologies, including traditional and agile.
Students will be able to plan and apply simple plans for developing applications and systems. Upon completing this course, students should be able to:
- Identify the different phases of software life cycles.
- Know agile and traditional software development methodologies.
- Understand the objectives and levels of software maturity.
- Develop small applications using agile methodologies.
- Justify the application of different methodologies to specific projects.
- Analyze real software development projects and information systems.
- Write clear, concise and tangible artifacts.
Program
1. Motivation
a. Case studies on software development failures
b. Examples of software development approaches
2. Software Process
a. Process, framework, lifecycle
3. Process and Assessment Models
a. ISO/IEC 12207, CMMI, ISO/IEC 15504
4. Traditional methodologies
a. Waterfall, incremental, evolutionary
5. Agile methodologies
a. Scrum, Extreme Programming, Kanban, Agile Unified Process, DevOps
6. Design Thinking
7. Conclusion
a. Global analysis
Internship(s)
NAO