Projeto de Software

Base Knowledge

Students must have fundamental knowledge and practice of software programming.

Teaching Methodologies

The course shall run around the development of a software project, preceded by the definition of the necessary software processes

Classes are organized in blocks of 4 hours. The theoretical component will have greater emphasis and duration at the beginning of the semester, with the presentation and discussion about processes, which will progressively decrease until the end of the semester. The remaining time is dedicated to carrying out progress meetings with the teacher, demonstrations to the class and other stakeholders, and clarification on the progress of the work, developed materials and tools. Groups typically have between 5 and 8 elements.

Students carry out weekly group work, inside and outside the classroom, and regularly contact the teacher for clarifications throughout the week in person, or using chat and video calling. Progress meetings are held in person and can take place remotely via video call, an increasingly common situation in the industry.  As the classes are organized in blocks, the way theoretical classes work is similar to that of practical classes.

Students shall be assessed by their work along the semester.

Learning Results

This course is concerned with software processes and the knowledge about planning, organization, and monitoring of all software development life-cycle phases.

In this course, students participate in the definition, analysis and improvement of software processes.

Students also develop a software project, following the defined processes, being involved in all activities such as project management, requirements analysis, architecture, implementation and quality assurance. Questions related to communication, group dynamics, or professional practice are also handled.

The main objective of this course is to provide knowledge, understanding and practice on software processes and project management and development as an engineering activity.

Program

  1. Definition, assessment and improvement of software processes
  2. Project management plan
  3. Effort estimation and scheduling
  4. Project management
  5. Quality management
  6. Risk management
  7. Version and change control management
  8. Configuration management
  9. Reviews
  10. Project monitoring and control
  11. Software requirements
  12. Architecture
  13. Coding
  14. Test
  15. Deployment and maintenance

Curricular Unit Teachers

Internship(s)

NAO

Bibliography

Recommended:

  • Pressman, R. S. (2009). Software Engineering A Practitioner’s Approach 7th Ed. 1A-7-94 (ISEC)
  • Stellman, A., & Greene, J. (2006). Applied software project management. O’Reilly. 1A-7-73 (ISEC)
  • Jalote, P. (2005). An integrated approach to software engineering, 3rd Edition, Springer, 1A-7-101 (ISEC)

Complementary:

  • PMBOK® Guide – Sixth Edition (2017), Project Management Institute
  • Agile Practice Guide (2017), Project Management Institute
  • Scott Ambler, Mark Lines (2020), Choose your WoW: A Disciplined Agile Delivery Handbook for Optimizing Your Way of Working
  • Mark Lines, Scott Ambler (2018), Introduction to Disciplined Agile Delivery 2nd Edition: A Small Agile Team’s Journey from Scrum to Disciplined DevOps