Metodologias de Desenvolvimento de Software

Base Knowledge

Programming experience.

Teaching Methodologies

The topics and the study materials are presented and discussed, with emphasis on the analysis and discussion of case studies. Classes also include some targeted analyzes, practical activities and presentation and defense of assignments.

The assignments consist essentially of writing small reports, which are presented and discussed by the class.

Some classes are used to carry out practical activities, such as planning and executing tasks related to the development of a small project.

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
    • Case studies on software development failures
    • Examples of software development approaches
  2. Software Process
    • Process, framework, lifecycle
  3. Process and Assessment Models
    • ISO/IEC 12207, CMMI, ISO/IEC 15504
  4. Traditional methodologies
    • Waterfall, incremental, evolutionary
  5. Agile methodologies
    • Scrum, Extreme Programming, Kanban, Agile Unified Process, Less
  6. Design Thinking
  7. Spec Driven Development
  8. Conclusion
    • Global analysis

Curricular Unit Teachers

Ricardo Ângelo dos Santos Filipe

Grading Methods

Students carry out the following practical assignments:

  1. Comparison of approaches using agile and traditional methodologies
  2. Scrum in Practice
  3. Scaling Scrum in Organizations
  4. Agile software development practices (carried out in groups)
  5. Spec Driven Development vs Vibe Coding

Practical assignments sum up to 65% of the final grade.

There will also be a theoretical exam, weighting 35% of the final grade. A minimum of 30% is mandatory for passing.

A student may resubmit 2 assignments until the last class of the semester (two resubmissions at most)


    Internship(s)

    NAO

    Bibliography

    Abrahamsson, P., Salo, O., Ronkainen, J., & Warsta, J. (2002). Agile software development methods: Review and analysis. Finland: VTT Publications.

    Pressman, R. S. (2005). Software engineering: A practitioner’s approach (6th ed.). New York, NY: McGraw-Hill.

    Shore, J., & Warden, S. (2007). The art of agile development. O’Reilly.

    Tsui, F., & Karam, O. (2007). Essentials of software engineering. Sudbury, MA: Jones and Bartlett Publishers.

    Several papers and case studies