Skip to main content

IPLUSO 24350

Software Engineering I

Computer Engineering and Applications
  • ApresentaçãoPresentation
    This course offers students a thorough introduction to software engineering principles, processes, and methodologies used for designing, developing, maintaining, and testing effective software systems. Covered topics may include software requirements analysis, design, testing, project management, maintenance, and programming languages/paradigms. Students will acquire hands-on experience in applying these practices to real-world scenarios by learning about the software development life cycle (SDLC) and agile methodologies. The ultimate objective is to develop skilled software engineers capable of creating high-quality, scalable, and maintainable software solutions that cater to both users' and clients' needs. This course serves as a strong foundation for further studies in software engineering and related areas.
  • ProgramaProgramme
    PC1: Introduction to Software Engineering. Principles and objectives in software engineering. PC2: Software Engineering Methodologies. Agile and classic methods. PC3: Software Requirements Engineering. Requirement gathering techniques, analysis and specification. PC4: Software Design. Design principles, considerations, methods and notations. PC5: Software Construction. Introduction to programming languages, paradigms, and techniques. PC6: Software Testing and Quality Assurance. Types of test and testing techniques. Introduction to software metrics and measurement. PC7: Software Maintenance and Evolution. Reasons for software maintenance, maintenance and evolution techniques. PC8: Software Engineering Tools and Techniques. Introduction to tools and best practices. Continuous integration and delivery.
  • ObjectivosObjectives
    LO1: Know and understand the concepts, techniques and tools for the correct development of software, maintaining its high quality. LO2: Implement software design techniques to develop large-scale applications. LO3: Know and understand the software development life cycle (SDLC) and how to maintain and manage the software engineering processes applied to the SDLC. LO4: Know and understand the basics of software quality metrics, software maintenance, documentation, and project management in software engineering. LO5: Know how to use version control systems, testing tools, and continuous integration practices.
  • BibliografiaBibliography
    Sommerville, Ian - Software Engineering. 10th Edition. Addison-Wesley, 2016. Pressman, Roger; Maxim, Bruce R. - Software Engineering: A Practitioner's Approach. 8th edition. McGraw-Hill, 2014.
  • MetodologiaMethodology
    The teaching methodologies are based on two parts, namely: (1) Theoretical sessions, where the subject matter is presented through slides provided by the chair teacher, and there is a class discussion about representative case studies. (2) Practical sessions, where a practical approach is given to students with the goal of applying the knowledge taught in the theoretical sessions. In these sessions, there is also teamwork for case studies analysis to create methodologies and solutions of good practices.   The evaluation will comprise 3 components: Knowledge evaluation test (50% of the final grade) Project (40% of the final grade) Attendance and intervention in classes (10% of the final grade)
  • LínguaLanguage
    Português
  • TipoType
    Semestral
  • ECTS
    6
  • NaturezaNature
    Mandatory
  • EstágioInternship
    Não