Pasquale FOGGIA | SOFTWARE ENGINEERING
Pasquale FOGGIA SOFTWARE ENGINEERING
cod. 0612700121
SOFTWARE ENGINEERING
0612700121 | |
DEPARTMENT OF INFORMATION AND ELECTRICAL ENGINEERING AND APPLIED MATHEMATICS | |
EQF6 | |
COMPUTER ENGINEERING | |
2024/2025 |
OBBLIGATORIO | |
YEAR OF COURSE 3 | |
YEAR OF DIDACTIC SYSTEM 2022 | |
AUTUMN SEMESTER |
SSD | CFU | HOURS | ACTIVITY | ||
---|---|---|---|---|---|
INGEGNERIA DEL SOFTWARE | |||||
ING-INF/05 | 4 | 32 | LESSONS | ||
ING-INF/05 | 2 | 16 | EXERCISES | ||
PROGETTO DI INGEGNERIA DEL SOFTWARE | |||||
ING-INF/05 | 3 | 24 | LAB |
Exam | Date | Session | |
---|---|---|---|
INGEGNERIA DEL SOFTWARE (A-H) | 23/01/2025 - 09:00 | SESSIONE ORDINARIA | |
INGEGNERIA DEL SOFTWARE (A-H) | 23/01/2025 - 09:00 | SESSIONE DI RECUPERO | |
INGEGNERIA DEL SOFTWARE (A-H) | 20/02/2025 - 09:00 | SESSIONE ORDINARIA | |
INGEGNERIA DEL SOFTWARE (A-H) | 20/02/2025 - 09:00 | SESSIONE DI RECUPERO |
Objectives | |
---|---|
THE COURSE PRESENTS MODELS, METHODS AND TOOLS FOR THE DOCUMENTATION, DESIGN, IMPLEMENTATION AND TESTING OF SOFTWARE COMPONENTS. KNOWLEDGE AND UNDERSTANDING OUTLINE OF THE SOFTWARE PRODUCTION PROCESS AND RELATED ACTIVITIES. THE REQUIREMENTS AND SPECIFICATION OF A SOFTWARE COMPONENT. THE DESIGN BY CONTRACT METHODOLOGY. STATIC AND DYNAMIC MODELS FOR THE DESIGN OF A SOFTWARE COMPONENT. THE UML FORMALISM FOR DESCRIBING SOFTWARE MODELS. METHODOLOGIES FOR TESTING A SOFTWARE COMPONENT. APPLIED KNOWLEDGE AND UNDERSTANDING PARTICIPATE IN A PROJECT FOLLOWING A FORMALIZED SOFTWARE PRODUCTION PROCESS. ANALYZE THE REQUIREMENTS AND DEFINE THE SPECIFICATIONS OF A SOFTWARE COMPONENT. DESIGN A SOFTWARE COMPONENT THROUGH THE DEFINITION OF STATIC AND DYNAMIC MODELS. DESCRIBE DESIGN CHOICES THROUGH UML. TEST A SOFTWARE COMPONENT. USE SOFTWARE TOOLS TO AUTOMATE THE DOCUMENTATION, COMPILATION, AND TESTING OF SOFTWARE COMPONENTS. USE AUTOMATED TOOLS FOR REVISION CONTROL. |
Prerequisites | |
---|---|
PROPAEDEUTIC EXAMS: ALGORITHMS AND DATA STRUCTURES, SIGNAL ANALYSIS, ELECTROTECHNICS FOR THE PROFITABLE ACHIEVEMENT OF THE COURSE OBJECTIVES, ATTENDING THE OBJECT-ORIENTED PROGRAMMING COURSE IS STRONGLY RECOMMENDED. |
Contents | |
---|---|
DIDACTIC UNIT 1: THE SOFTWARE LIFE-CYCLE (LECTURE/PRACTICE/LABORATORY HOURS 4/0/0) - 1 (2 HOURS LECTURE): INTRODUCTION TO THE SOFTWARE LIFE-CYCLE AND RELATED ACTIVITIES - 2 (2 HOURS LECTURE): THE WATERFALL AND ITERATIVE PROCESS MODELS KNOWLEDGE AND UNDERSTANDING: THE MAIN PROCESS MODELS, AND THE MAIN ACTIVITIES OF A PROCESS. APPLIED KNOWLEDGE AND UNDERSTANDING: PARTICIPATE IN A PROJECT FOLLOWING A FORMALIZED SOFTWARE PRODUCTION PROCESS. DIDACTIC UNIT 2: REQUIREMENTS, SPECIFICATION AND DOCUMENTATION OF A SOFTWARE COMPONENT (LECTURE/PRACTICE/LABORATORY HOURS 4/4/2) - 3 (2 HOURS LECTURE): REQUIREMENTS FOR A SOFTWARE COMPONENT. CATEGORIES OF REQUIREMENTS. INTRODUCTION TO REQUIREMENTS ENGINEERING ACTIVITIES. THE USE CASES. UML USE CASE DIAGRAM. - 4 (2 HOURS PRACTICE): EXAMPLES OF USE CASE DESCRIPTIONS AND USE CASE DIAGRAMS. - 5 (2 HOURS LECTURE): THE CONTRACT METAPHOR FOR THE SPECIFICATION OF A SOFTWARE COMPONENT. PRECONDITIONS. POSTCONDITIONS. INVARIANTS. SPECIFYING THE PARAMETERS OF A SUBROUTINE. - 6 (2 HOURS PRACTICE): EXAMPLES OF SPECIFYING SUBPROGRAMS AND DATA STRUCTURES USING THE CONTRACT METAPHOR. - 7 (2 HOURS LABORATORY): THE DOXYGEN TOOL FOR THE AUTOMATIC GENERATION OF SOFTWARE COMPONENT DOCUMENTATION. KNOWLEDGE AND UNDERSTANDING: THE REQUIREMENTS AND SPECIFICATION OF A SOFTWARE COMPONENT. THE DESIGN BY CONTRACT METHODOLOGY. APPLIED KNOWLEDGE AND UNDERSTANDING: : ANALYZE THE REQUIREMENTS AND DEFINE THE SPECIFICATIONS OF A SOFTWARE COMPONENT. DESCRIBE USE CASES THROUGH THE UML LANGUAGE. USE AUTOMATIC TOOLS FOR SOFTWARE DOCUMENTATION. DIDACTIC UNIT 3: DESIGN OF A SOFTWARE COMPONENT (LECTURE/PRACTICE/LABORATORY HOURS 8/8/0) - 8 (2 HOURS LECTURE): PROPERTIES OF A SOFTWARE SYSTEM. SOFTWARE MODELS. STATIC AND DYNAMIC MODELS. DESIGN THROUGH THE DEFINITION OF MODELS. - 9 (2 HOURS LECTURE): DECOMPOSITION OF A SOFTWARE COMPONENT. COHESION AND COUPLING. UML COMPONENT DIAGRAM. - 10 (2 HOURS PRACTICE): EXAMPLES OF DECOMPOSITION OF A SOFTWARE COMPONENT AND REPRESENTATION USING A UML COMPONENT DIAGRAM. - 11 (2 HOURS LECTURE): OBJECT-ORIENTED DECOMPOSITION. INHERITANCE, ASSOCIATION, COMPOSITION RELATIONSHIPS. THE CONTRACT METAPHOR FOR INHERITANCE RELATIONSHIPS. UML CLASS DIAGRAM AND UML OBJECT DIAGRAM. - 12 (2 HOURS PRACTICE): EXAMPLES OF OBJECT-ORIENTED DECOMPOSITION AND REPRESENTATION USING UML CLASS AND OBJECT DIAGRAMS. - 13 (2 HOURS PRACTICE): DESCRIPTION OF THE BEHAVIOR OF A COMPONENT USING UML STATE DIAGRAMS AND UML SEQUENCE DIAGRAMS. - 14 (2 HOURS LECTURE): PRINCIPLES OF GOOD SOFTWARE DESIGN: KEEP IT SIMPLE (KISS), DON'T REPEAT YOURSELF (DRY), PRINCIPLE OF MINIMAL SURPRISE. - 15 (2 HOURS LECTURE): EXAMPLES OF APPLICATION OF THE PRINCIPLES OF GOOD DESIGN. KNOWLEDGE AND UNDERSTANDING: STATIC AND DYNAMIC MODELS FOR THE DESIGN OF A SOFTWARE COMPONENT. THE UML FORMALISM FOR DESCRIBING SOFTWARE MODELS. APPLIED KNOWLEDGE AND UNDERSTANDING: DESIGN A SOFTWARE COMPONENT THROUGH THE DEFINITION OF STATIC AND DYNAMIC MODELS. DESCRIBE DESIGN CHOICES THROUGH UML. DIDACTIC UNIT 4: TESTING AND DEBUGGING (LECTURE/PRACTICE/LABORATORY HOURS 4/4/2) - 16 (2 HOURS LECTURE): CORRECTNESS OF A SOFTWARE COMPONENT. INTRODUCTION TO TESTING. FUNCTIONAL TESTING. - 17 (2 HOURS LECTURE): STRUCTURAL TESTING. - 18 (2 HOURS PRACTICE): EXAMPLES OF TEST DEFINITIONS WITH A FUNCTIONAL AND STRUCTURAL APPROACH. - 19 (2 HOURS LABORATORY): USE OF THE CUNIT AND JUNIT LIBRARIES FOR TEST AUTOMATION. - 20 (2 HOURS LABORATORY): USE OF A SYMBOLIC DEBUGGER. KNOWLEDGE AND UNDERSTANDING: METHODOLOGIES FOR TESTING A SOFTWARE COMPONENT. APPLIED KNOWLEDGE AND UNDERSTANDING: TESTING A SOFTWARE COMPONENT. USE SOFTWARE TOOLS TO AUTOMATE THE TESTING OF SOFTWARE COMPONENTS. DIDACTIC UNIT 5: TOOLS FOR BUILDING AND REVISION CONTROL (LECTURE/PRACTICE/LABORATORY HOURS 4/4/2) - 21 (2 HOURS LABORATORY): BUILD AUTOMATION IN C USING MAKE - 22 (2 HOURS LABORATORY): BUILD AUTOMATION IN JAVA USING MAVEN - 23 (4 HOURS LABORATORY): REVISION MANAGEMENT WITH GIT APPLIED KNOWLEDGE AND UNDERSTANDING: APPLIED KNOWLEDGE AND UNDERSTANDING: USE SOFTWARE TOOLS TO AUTOMATE COMPILATION AND REVISION CONTROL. DIDACTIC UNIT 6: PROJECT WORK (LECTURE/PRACTICE/LABORATORY HOURS 0/0/24) KNOWLEDGE AND UNDERSTANDING: APPLIED KNOWLEDGE AND UNDERSTANDING: DEVELOP A COMPLETE SOFTWARE PROJECT IN A TEAM DOCUMENTING THE RESULTS OF THE DIFFERENT PHASES OF THE PROCESS. TOTAL LECTURE/PRACTICE/LABORATORY HOURS: 20/14/38 |
Teaching Methods | |
---|---|
THE COURSE (72 HOURS OF LECTURES, EXERCISES AND LABORATORY ACTIVITIES) IS CHARACTERISED BY A DYNAMIC SETTING, WHICH COMBINES THEORETICAL LECTURES WITH PRACTICAL EXERCISES AND CASE STUDIES TO FACILITATE THE ACTIVE PARTICIPATION OF THE STUDENTS, WHO WILL HAVE THE OPPORTUNITY TO APPLY THEORETICAL AND METHODOLOGICAL KNOWLEDGE IN PRACTICE. IN PARTICULAR, THE TEACHING ACTIVITIES WILL INCLUDE LECTURES (34 HOURS), EXERCISES (14 HOURS) AND LABORATORY ACTIVITIES (24 HOURS), THE LATTER DEDICATED TO THE DEVELOPMENT OF THE PROJECT WORK. FOR THE DEVELOPMENT OF THE PROJECT, THE STUDENTS, ORGANISED IN GROUPS OF 2-4 PEOPLE, WILL HAVE TO APPLY THE KNOWLEDGE ACQUIRED TO THE REALISATION OF A SIMPLE (FROM THE IMPLEMENTATION POINT OF VIEW) SOFTWARE SYSTEM WITH PARTICULAR EMPHASIS ON THE DOCUMENTATION ASPECTS OF THE VARIOUS PHASES OF THE DEVELOPMENT PROCESS. THE PROJECT WILL ALSO BE FUNCTIONAL TO DEVELOP AND STRENGTHEN THE ABILITY TO WORK IN A TEAM. THE TEACHING ACTIVITIES WILL BE SUPPORTED BY THE USE OF THE UNIVERSITY'S E-LEARNING PLATFORM TO FACILITATE AND STIMULATE DISCUSSION AND DEBATE AMONG THE STUDENTS, AS WELL AS FOR THE NOTIFICATION AND DISTRIBUTION OF TEACHING MATERIALS. ATTENDANCE OF THE LECTURES IS COMPULSORY. IN ORDER TO QUALIFY FOR THE FINAL EXAMINATION, STUDENTS MUST HAVE ATTENDED AT LEAST 70% OF THE FRONTAL TEACHING HOURS. |
Verification of learning | |
---|---|
THE EXAMINATION IS AIMED AT ASSESSING THE KNOWLEDGE AND OVERALL UNDERSTANDING OF THE CONCEPTS PRESENTED IN THE COURSE, THE ABILITY TO APPLY THIS KNOWLEDGE TO REALISE AND DOCUMENT SOFTWARE APPLICATIONS AND THE ABILITY TO COMMUNICATE AND PRESENT THE WORK CARRIED OUT. THE EXAMINATION CONSISTS OF A DISCUSSION OF THE PROJECT WORK, CARRIED OUT DURING THE COURSE, THE AIM OF WHICH IS TO ASSESS THE ABILITY TO APPLY THE KNOWLEDGE, TO COMMUNICATE THROUGH THE PRESENTATION OF THE RESULTS ACHIEVED, THE AUTONOMY OF JUDGEMENT AND THE ABILITY TO WORK IN A GROUP, AND AN ORAL INTERVIEW, THE AIM OF WHICH IS TO ASSESS THE KNOWLEDGE AND UNDERSTANDING ACQUIRED, THE ABILITY TO LEARN DEMONSTRATED, THE ORAL PRESENTATION. THE PROJECT WORK CONSISTS OF A SMALL SOFTWARE PROJECT, TO BE CARRIED OUT IN A GROUP (THE SPECIFICATION OF WHICH IS ASSIGNED BY THE LECTURER DURING THE COURSE) IN WHICH ALL THE PHASES OF THE LIFE CYCLE MUST BE CARRIED OUT AND DOCUMENTED. EACH MEMBER OF THE GROUP MUST PRESENT THEIR CONTRIBUTION TO THE REALISATION OF THE PROJECT TOGETHER WITH A DISCUSSION OF THE TOOLS AND TECHNOLOGIES USED. THE ORAL INTERVIEW WILL FOCUS ON THE THEORETICAL TOPICS OF THE COURSE AND THE ASSESSMENT WILL TAKE INTO ACCOUNT THE KNOWLEDGE DEMONSTRATED BY THE STUDENT AND THE DEGREE OF ITS DEPTH, THE ABILITY TO LEARN, THE QUALITY OF THE EXPOSITION. IN THE FINAL ASSESSMENT, EXPRESSED IN THIRTIETHS, THE ASSESSMENT OF THE PROJECT PAPER AND THE ORAL INTERVIEW WILL HAVE EQUAL WEIGHT. HONOURS MAY BE AWARDED TO STUDENTS WHO DEMONSTRATE THE ABILITY TO APPLY THE KNOWLEDGE ACQUIRED WITH AUTONOMY EVEN IN CONTEXTS OTHER THAN THOSE PROPOSED IN THE COURSE. |
Texts | |
---|---|
REFERENCE TEXT: F. TSUI, O. KARAM, B. BERNAL: “ESSENTIALS OF SOFTWARE ENGINEERING” (5TH ED.), JONES & BARTLETT ADDITIONAL TEXTS: M. FOWLER: UML DISTILLED (3RD ED.), ADDISON WESLEY. SUPPLEMENTARY EDUCATIONAL MATERIAL WILL BE AVAILABLE IN THE DEDICATED COURSE SECTION WITHIN THE UNIVERSITY E-LEARNING PLATFORM (HTTPS://ELEARNING.UNISA.IT) ACCESSIBLE TO STUDENTS OF THE COURSE THROUGH THE UNIQUE UNIVERSITY CREDENTIALS |
More Information | |
---|---|
THE COURSE IS HELD IN ITALIAN. |
BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2024-12-13]