Software Processes and Methodologies

Teaching Methodologies

Classes are taught on a theoretical-practical basis, comprising the theoretical exposition of concepts and the demonstration of their application, using computers and digital tools, in a dynamic teaching-learning process, fundamentally interactive, appealing to the development of the student’s critical sense.

A “Blended learning” model will be used, centred on the student, based on the development of activities and with classes entirely dedicated to the analysis and practical application of concepts and the carrying out of exercises.

Learning Results

To provide students with a set of concepts, techniques and tools that enable them to build software in a variety of application domains and develop the following fundamental skills:

– Have a global vision of the role of the different domains of software engineering.

– Know how to carry out a software requirements analysis.

– Being able to draw up the architecture of the software to be developed.

– Know how to choose the most appropriate implementation techniques.

– Have knowledge of a range of software testing and validation techniques.

– Be aware of the challenges of building larger systems and applications.

Program

1.Software engineering

Introductory concepts

Professional software development

Human aspects

Ethics

2.Software Processes

Software process models

Coping with change

Process improvement

3.Agile software development

Agile methods

Agile development techniques

Large projects

4.Requirements engineering

Functional and non-functional requirements

Obtaining and specifying requirements

Validating and modifying requirements

5.System Modelling

Core principles

Scenario-based and class-based modelling

Functional and behavioral modeling

6. Architectural design

Software architecture

Architectural views and patterns

Application architectures

7.Design and implementation

Object-oriented design using UML

Implementation issues

Open-source development

8. Software testing

Development testing

Test-driven development

Release and user testing

9.Software quality

Fundamental concepts

Software Quality Assurance

The ISO 9000 quality standards

Internship(s)

NAO

Bibliography

Principal

– I. Sommerville (2015), Software Engineering, 10th Ed., ISBN: 978-1292096131, Pearson.

– R. Pressman, B. Maxim (2019), Software Engineering: A practitioners Approach, 9th Ed., ISBN: 978-1260548006, McGraw Hill.

Secundária

– A. Miguel (2015), Gestão de Projetos de Software, 5ª. Ed., ISBN: 978-9727228041, FCA.

– J. P. Pinto (2019), C. Tscharf, SCRUM – A Gestão Ágil de Projetos, ISBN: 978-9727229000, FCA.

– J. Rumbaugh, I. Jacobson, G. Booch (2004), The Unified Modeling Language Reference Manual, 2nd Ed., ISBN: 978-0321718952,Addison-Wesley.