SOFTWARE ENGINEERING

Ingegneria Informatica SOFTWARE ENGINEERING

0622700041
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA
EQF7
COMPUTER ENGINEERING
2022/2023



OBBLIGATORIO
YEAR OF COURSE 1
YEAR OF DIDACTIC SYSTEM 2022
AUTUMN SEMESTER
CFUHOURSACTIVITY
432LESSONS
324LAB
216EXERCISES


Objectives
The course aims at learning models, methods and tools for the design and implementation of large size software systems, and of the main processes occurring during the software life cycle.

Knowledge and understanding
Knowledge of the software production process and of the related activities. Knowledge of the main Design Patterns. Knowledge of Agile Methods for software production. Understanding of the documents for the software analysis and the design written in a standard format.

Applying knowledge and understanding
Ability to participate in a project following a formal software production process. Ability to design a software system using the major Design Patterns; to express the requirements analysis and the design choices using a standard format; to adopt software tools for the testing and revision control.


Prerequisites
IN ORDER TO ACHIEVE THE GOALS OF THE COURSE, A KNOWLEDGE OF THE JAVA LANGUAGE AND OF OBJECT ORIENTED PROGRAMMING IS RECOMMENDED.
Contents
LEARNING UNIT 1:
(HOURS OF LECTURES/EXERCISES/LABORATORY 16/2/2)
- 1 (2 HOURS LECTURE): INTRODUCTION. SOFTWARE LIFE CYCLE.
- 2 (2 HOURS LECTURE): PROCESS MODELS
- 3 (2 HOURS LECTURE): REQUIREMENTS
- 4 (4 HOURS LECTURE): PROJECT MANAGEMENT
- 5 (2 HOURS EXERCISE): EXERCISE ON REQUIREMENTS
- 6 (4 HOURS LECTURE): DESIGN
- 7 (2 HOURS LECTURE): TESTING
- 8 (2 HOURS LABORATORY): THE JUNIT LIBRARY.
KNOWLEDGE AND UNDERSTANDING: TRADITIONAL PROCESS MODELS. MAIN ACTIVITIES OF A SOFTWARE PROCESS.
APPLIED KNOWLEDGE AND UNDERSTANDING: PARTICIPATING TO A SOFTWARE PROJECT FOLLOWING THE ACTIVITIES OF A TRADITIONAL SOFTWARE PROCESS.


LEARNING UNIT 2: AGILE METHODS AND SCRUM
(HOURS OF LECTURES/EXERCISES/LABORATORY 8/4/2)
- 9 (2 HOURS LECTURE): INTRODUCTION TO AGILE METHODS.
- 10 (4 HOURS LECTURE): THE SCRUM PROCESS
- 11 (4 HOURS EXERCISE): EXERCISE ON SCRUM
- 12 (2 HOURS LECTURE): REVISION CONTROL SYSTEMS
- 13 (2 HOURS LABORATORY): THE GIT REVISION CONTROL SYSTEM
KNOWLEDGE AND UNDERSTANDING: PRINCIPLES OF AGILE SOFTWARE PROCESSES. THE SCRUM PROCESS.
APPLIED KNOWLEDGE AND UNDERSTANDING: PARTICIPATING TO A SOFTWARE PROJECT FOLLOWING SCRUM PROCESS.


LEARNING UNIT 3: DESIGN PATTERNS
(HOURS OF LECTURES/EXERCISES/LABORATORY 10/6/0)
- 14 (2 HOURS LECTURE): CREATIONAL DESIGN PATTERNS
- 15 (2 HOURS EXERCISE): EXERCISE ON CREATIONAL DESIGN PATTERNS
- 16 (4 HOURS LECTURE): STRUCTURAL DESIGN PATTERNS
- 17 (2 HOURS EXERCISE): EXERCISE ON STRUCTURAL DESIGN PATTERNS
- 18 (4 HOURS LECTURE): BEHAVIORAL DESIGN PATTERNS
- 19 (2 HOURS EXERCISE): EXERCISE ON BEHAVIORAL DESIGN PATTERNS
KNOWLEDGE AND UNDERSTANDING: THE FUNDAMENTAL CREATIONAL, STRUCTURAL AND BEHAVIORAL DESIGN PATTERNS.
APPLIED KNOWLEDGE AND UNDERSTANDING: USING DESIGN PATTERNS TO SOLVE RECURRING DESIGN PROBLEMS AND TO COMMUNICATE DESIGN DECISIONS.


LEARNING UNIT 4:
(HOURS OF LECTURES/EXERCISES/LABORATORY 0/22/0)
- 20 (2 HOURS EXERCISE): PROBLEM DESCRIPTION. PRESENTATION OF THE TOOLS AND METHODOLOGIES TO BE USED.
- 21 (4 HOURS EXERCISE): PRE-GAME: INITIAL USER-STORY DEFINITION.
- 22 (4 HOURS EXERCISE): FIRST DEVELOPMENT ITERATION.
- 23 (4 HOURS EXERCISE): SECOND DEVELOPMENT ITERATION.
- 24 (4 HOURS EXERCISE): THIRD DEVELOPMENT ITERATION..
- 25 (4 HOURS EXERCISE): FINAL PRESENTATION
KNOWLEDGE AND UNDERSTANDING:
APPLIED KNOWLEDGE AND UNDERSTANDING: DEVELOPING A COMPLETE SOFTWARE PROJECT IN A TEAM FOLLOWING THE SCRUM PROCESS AND APPLYING DESIGN PATTERNS.



TOTAL HOURS LECTURES/EXERCISES/LABORATORY: 34/34/4
Teaching Methods
THE COURSE CONTAINS THEORETICAL LECTURES, IN-CLASS EXERCITATIONS AND PRACTICAL LABORATORY EXERCITATIONS. DURING THE IN-CLASS EXERCITATIONS THE STUDENTS ARE DIVIDED IN TEAMS AND ARE ASSIGNED A PROJECT TO BE DEVELOPED ALONG THE DURATION OF THE COURSE. THE PROJECT INCLUDES ALL THE CONTENTS OF THE COURSE AND IS ESSENTIAL BOTH FOR THE ACQUISITION OF THE ABILITY TO DESIGN AND IMPLEMENT A SOFTWARE SYSTEM STARTING FROM A SPECIFICATION, AND FOR DEVELOPING AND REINFORCING THE ABILITY TO WORK IN A TEAM. IN THE LABORATORY EXERCITATIONS THE STUDENTS WILL USE SOFTWARE TOOLS FOR THE AUTOMATION OF TESTS, AND FOR REVISION CONTROL.

In order to participate to the final assessment and to gain the credits
corresponding to the course, the student must have attended at least 70%
of the hours of assisted teaching activities.
Verification of learning
THE EXAM AIMS AT EVALUATING, AS A WHOLE: THE KNOWLEDGE AND UNDERSTANDING OF THE CONCEPTS PRESENTED IN THE COURSE, THE ABILITY TO APPLY THAT KNOWLEDGE TO SOLVE PROBLEMS OF DESIGN AND IMPLEMENTATION OF SOFTWARE SYSTEMS, INDEPENDENCE OF JUDGMENT, COMMUNICATION SKILLS AND THE ABILITY TO LEARN.
THE EXAM INCLUDES THE DISCUSSION OF A PROJECT WORK, DEVELOPED DURING THE COURSE, AIMED AT EVALUATION OF THE ABILITY TO APPLY KNOWLEDGE, TO WRITE A TECHNICAL REPORT, THE INDEPENDENCE OF JUDGMENT, THE ABILITY TO WORK IN A TEAM, AND AN ORAL INTERVIEW, THE PURPOSE OF WHICH IS TO ASSESS THE ACQUIRED KNOWLEDGE AND ABILITY TO UNDERSTANDING, THE ABILITY TO LEARN, ORAL PRESENTATION.
THE PROJECT WORK IS A SMALL SOFTWARE PROJECT (ASSIGNED BY THE TEACHER) DEVELOPED IN TEAM, IN WHICH THE STUDENTS HAVE TO PERFORM AND DOCUMENT ALL THE ACTIVITIES IN THE SOFTWARE LIFE CYCLE.
THE ORAL EXAMINATION WILL COVER THE THEORETICAL TOPICS OF THE COURSE AND ASSESSMENT WILL TAKE INTO ACCOUNT THE KNOWLEDGE DEMONSTRATED BY THE STUDENT AND THE DEGREE OF ITS DEPTH, PROVEN ABILITY TO LEARN, THE QUALITY OF THE PRESENTATION.
IN THE FINAL EVALUATION, EXPRESSED IN THIRTIETHS, THE EVALUATION OF THE PROJECT WORK WILL ACCOUNT FOR 40% WHILE THE INTERVIEW FOR 60%. THE CUM LAUDE MAY BE GIVEN TO STUDENTS WHO DEMONSTRATE THAT THEY CAN APPLY THE KNOWLEDGE AUTONOMOUSLY EVEN IN CONTEXTS OTHER THAN THOSE PROPOSED IN THE COURSE.
Texts
F. Tsui, O. Karam, B. Bernal: “Essentials of Software Engineering” (3rd ed.), Jones & Bartlett

Suggested reading:
Gamma, Helm, Johnson, Vlissides: “Design Patterns”, Pearson Education Italia

SUPPLEMENTARY TEACHING MATERIAL WILL BE AVAILABLE ON THE UNIVERSITY E-LEARNING PLATFORM (HTTP://ELEARNING.UNISA.IT) ACCESSIBLE TO STUDENTS USING THEIR OWN UNIVERSITY CREDENTIALS.
More Information
The course is held in English.
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2022-11-21]