Curricular Unit:Code:
Mobile Applications Project834PJAM
Year:Level:Course:Credits:
2MasterComputer Systems Engineering (Mobile Computation)6 ects
Learning Period:Language of Instruction:Total Hours:
Portuguese/English78
Learning Outcomes of the Curricular Unit:
This course aims to provide students with technical knowledge about the design and development of mobile applications, developing the fundamentals, models and tools of software engineering used in the design, management, development, evaluation and testing, and documentation of mobile applications.
Upon successfully completing this course, students should be able to:
- Manage, plan, design and develop an entire project of a mobile system / application
- Define the architecture components of a mobile application
- Develop the entire project, from the code development to the documentation of the project and the entire application
- Using a Version Control System
- Define a software testing automation plan
- Understand the concepts of continuous integration, delivery and deployment
- Understand the concepts of quality and static code analysis
- Design and develop software optimization and performance improvement processes
Syllabus:
1. Introduction
1.1 Review of software engineering processes
1.2 Review of software design and planning concepts
1.3 Introduction to Mobile Application Project
2. Mobile Application Project
2.1 Graphical interfaces
2.2 Interactivity
2.3 Navigation
2.4 State management
2.5 Networking
2.6 Data persistence
3. Software engineering tools
3.1 Version control
3.2 Static code analysis
3.3 Code optimization
3.4 Improving software performance
4. Software engineering practice
4.1 Development tools
4.2 Automated tests
4.3 Continuous integration
4.4 Continuous delivery
4.5 Continuous deployment
Demonstration of the Syllabus Coherence with the Curricular Unit's Objectives:
The syllabus contents are consistent with the learning objectives as they address the main themes on the definition and planning of mobile application projects as well as on the characterization of mobile applications and existing platforms, which should be mastered by students at the end of the course. In particular, the fundamental concepts inherent in mobile application projects and the different aspects that characterize existing mobile platforms and applications are addressed. The design and development of mobile applications is particularized through concrete application examples. The learning objectives are therefore in line with the topics addressed both at the theoretical-practical and practical levels, being applied in varied concrete examples in the classes and also through the realization of a mobile application project.
Teaching Methodologies (Including Evaluation):
The transmission of knowledge in this course will be carried out using theoretical-practical and practical classes in a laboratory environment. Theoretical-practical classes present the fundamental concepts for understanding the themes of the program. In practical laboratory classes, students are confronted with exercises that they have to solve using mobile application development tools. Students also have the opportunity to apply and develop their concrete projects that complement the experience base on the topics covered. The assessment is continuous, divided into two components: theoretical (30%) and practical (70%). In the first case, the evaluation results from a written test applied during the semester on the subject taught in the classroom. The practical component is evaluated by the planning and management of a practical project, with the respective implementation based on a set of requirements specified during the semester.
Demonstration of the Coherence between the Teaching Methodologies and the Learning Outcomes:
The teaching methodologies applied in this course intent to conduct students to gain know-how about the most important aspects for planning and developing mobile application projects and characterizing the major existing mobile platforms. Moreover, it seeks to develop student’s practical skills in structuring and developing mobile applications implemented with the proposed development tools. Theoretical-practical classes and in particular laboratory practical classes allow permanent contact with the design and development of mobile applications, facilitating gradual progress in the current and implementation of these applications for existing platforms. This experience and contact with concrete practical contexts allow to improve the competence and management skills of mobile applications projects as well as on platforms and development tools, which are essential to improve technical techniques and programming in this area.
Reading:
[1] Guerreiro, S., “Introdução à Engenharia de Software”, FCA, 2015
[2] Pressman, R., ”Software Engineering: A practitioner’s Approach”, 8th Ed., McGraw-Hill, 2015.
[3] McWherter, J., Gowell, S., “Professional Mobile Application Development”, Wrox Press, 2012.
[4] Miguel, A., “Gestão de Projetos de Software”, 5ed, FCA, 2015.
[5] Payne, R., “Beginning App Development with Flutter: Create Cross-Platform Mobile Apps”, Apress, 2019.