Scheda programma d'esame
SOFTWARE SYSTEMS ENGINEERING
MARIO GIOVANNI COSIMO ANTONIO CIMINO
Academic year2022/23
CourseCOMPUTER ENGINEERING
Code911II
Credits6
PeriodSemester 1
LanguageEnglish

ModulesAreaTypeHoursTeacher(s)
SOFTWARE SYSTEMS ENGINEERINGING-INF/05LEZIONI60
ANTONIO LUCA ALFEO unimap
MARIO GIOVANNI COSIMO ANTONIO CIMINO unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

To know the different software development lifecycle phases used in developing, delivering, and maintaining software products.

To know the fundamental phases of the Software Development Lifecycle.

To know fundamental software engineering terminology and coding practices.

Knowledge

The student who completes the course successfully will be able to demonstrate a solid knowledge of advanced techniques for designing software systems. Finally he/she will be able to perform, working in group, a software project and produce all necessary documentation.

 

Modalità di verifica delle conoscenze

 

In the oral test, students will present and discuss their sofrtware solution developed in the team project.

Assessment criteria of knowledge

During the oral exam the student must be able to demonstrate his/her knowledge of the course material and be able to discuss the reading matter thoughtfully and with propriety of expression. Through the project the student must demonstrate the ability to put into practice and to execute, with critical awareness, the activities illustrated or carried out under the guidance of the teacher during the course.

Methods:

  • Final oral exam
  • Final essay

 

Capacità

To acquire software development skills and understand common terminology used in the software engineering profession.

To learn and practice using traditional coding standards/guidelines. Python software development libraries and debugging tools are explored and used in projects.

To demonstrate key concepts using collaborative learning strategies.

To modify/build a software program that introduces to software development tools / environments

To develop an original Python software program, learning Python language syntax

To analyze the functionality and performance of software application programs

To demonstrate and communicate software engineering principles effectively through written reports and/or verbal presentations.

Modalità di verifica delle capacità

In the oral test, students will present and discuss their sofrtware solution developed in the team project.

Prerequisites

UML concepts and techniques.

Teaching methods

Delivery: face to face

Learning activities:

  • attending lectures
  • preparation of oral/written report
  • individual study
  • group work

Attendance: Advised

Teaching methods:

  • Lectures
  • project work

 

 

Programma (contenuti dell'insegnamento)

Requirements engineering. Requirements specification. Use cases. Domain modeling. Object-oriented design. Service-oriented design. Process-oriented design. Unified Modeling Notation.Software Implementation. Software Testing.
Modeling enterprise systems, landscape, DevOps, toolchain, process orientation approach, Business Process Model and Notation. BPMN modeling, control flow, events, tasks, gateways, event-driven gateways, types of task.
Team projects, toolchain, python, workflow. PyCharm IDE. Data analysis in python, code quality pep8 standard, naming, automatic quality checking, plint installation. Restful api, git and github, repository, commit, branch, merge, github, fork, pull, vcs, pycharm integration with github, share a project.
Requirement: semi-formal notation, BPMN, use case, class, scenario, GUI storyboard. Design: class diagram, sequence diagram. Implementation: quality of code, JSON, JSON Schema, validation. Application domains.
Metrics: automation, responsiveness, elasticity, resiliency, interoperability. The cognitive taxonomy. Machine Learning Software pipeline: data ingestion, data preparation, data segregation, model training, candidate model evaluation, model deployment, performance monitoring.
Continuous Integration and delivery (CI/CD) with Github Actions. Git Workflow. Git Branches and Tags. Continuous Integration and Delivery. CI/CD Providers Comparison. GitHub Actions: Overview, Action, Syntax, Containers and Services, Events, Secrets, Complex Workflows, Matrix, Code Reuse.

Syllabus

 

The course addresses software system development issues: all phases of the software life cycle are crossed. The development process management and planning is illustrated and accompanied by related supporting tools; also the international quality standards for these phases are presented and the maturity models. Students, in group, must perform a software project, this year following an Agile methodology.

 

Bibliografia e materiale didattico

I. Sommerville, Software Engineering. 10th Edition, Pearson Education Limited, Boston,2016.

T. Allweyer, D. Allweyer, BPMN 2.0, 2nd ed., BoD press, Norderstedt, 2010.

J. Arlow, I. Neustadt, UML 2 and the Unified Process, Pearson Education, 2005.

J. Rumbaugh, I. Jacobson, G. Booch, The UML Reference Manual, Addison-Wesley, 2004.

Bibliography


 

"Software Engineering" Ian Sommerville, Addison-Wesley; 10 Har/Psc edizione

G.Vaglini, M. Cimino, slides at http://elearn.ing.unipi.it/course/view.php?id=2699

 

Non-attending students info

Attendance is not mandatory but highly recommended.

Modalità d'esame

Oral test based on discussion and motivation of a software project

Updated: 28/09/2022 00:16