Contribution of the course to the overall degree programme goals
The course will contribute to the following outcomes:
- knowledge about software architectures and formalisms for the analysis and design of software products
- ability to select the most appropriate processes for managing software projects also in emerging application areas
The aim of the course is to provide the main methodologies required for software engineering (from the initial business plan, to the use of UML for the analysis and design phases, to the testing techniques for verification and validation of a software product (an Android app).
Expected learning outcomes
The student will get the knowledge and skills to apply suitable methodologies for the design and implementation of a software product, in all the software life cycle phases.
Programming. Algorithms. Architectures and OS.
1. Software Processes and Project Management
2. Requirement Engineering Processes - System Models - Prototyping
3. Design Methodologies
4. Verification and Validation Techniques
5. Managing People - Software Cost Estimation - Software Change
6. Legal and Quality issues
7. Development of Android apps and LegoMindStorms robot programming
Ian Sommerville. Software Engineering, Pearson, 2015
Roger S Pressman, Software Engineering: A Practitioner's Approach, McGraw-Hill, 2014
Sinan Si Alhir: Learning UML, O'Reilly, 2003
A project will be given to teams of 3/4 students. The aim of the project is the full development of a new Android app. Intermediate appointments will be carried to discuss the quality of the planning, analysis, design, implementation and testing of the software application. A special care will be given to the documentation quality.
The final exam will consist in the evaluation of the developed system as well as of the supporting documents.
Lectures, team-working, project revisions.
The moodle platform will be used to collect all the teaching material and the students' deliverables.
Last update of the programme