SOFTWARE ENGINEERING

Andrea DE LUCIA SOFTWARE ENGINEERING

0512100019
DIPARTIMENTO DI INFORMATICA
EQF6
COMPUTER SCIENCE
2020/2021

OBBLIGATORIO
YEAR OF COURSE 3
YEAR OF DIDACTIC SYSTEM 2017
PRIMO SEMESTRE
CFUHOURSACTIVITY
648LESSONS
324LAB


Objectives
KNOWLEDGE AND UNDERSTANDING:

STUDENTS WILL LEARN:
- BASIC CONCEPTS OF SOFTWARE ENGINEERING, IN PARTICULAR THE PHASES, ACTIVITIES, AND DELIVERABLES OF SOFTWARE ENGINEERING PROCESSES;
- ANALYSIS AND DESIGN METHODS;
- SOFTWARE MODELLING LANGUAGES, IN PARTICULAR UNIFIED MODELLING LANGUAGE (UML);
- VERIFICATION AND VALIDATION TECHNIQUES.

STUDENTS WILL ALSO LEARN ESSENTIAL CONCEPTS OF TEAM WORKING AND SOFTWARE PROJECT ORGANIZATION AND MANAGEMENT, TO MOVE FROM A PROGRAMMING IN THE SMALL APPROACH, WHERE SMALL SOFTWARE SYSTEMS ARE DEVELOPED BY A SINGLE STUDENT, TO A PROGRAMMING IN THE LARGE APPROACH, WHERE MORE COMPLEX SOFTWARE SYSTEMS ARE DEVELOPED BY A TEAM OF STUDENTS, ACCORDING TO A GIVEN ACTIVITY SCHEDULE.

FINALLY, STUDENTS WILL LEARN THE SOCIAL, SCIENTIFIC, AND ETICHAL IMPLICATION OF THE PROFESSION.


APPLYING KNOWLEDGE AND UNDERSTANDING:

THE STUDENTS WILL BE ABLE TO:
- USE AN ENGINEERING APPROACH TO THE DEVELOPMENT AND MAINTENANCE OF SOFTWARE SYSTEMS;
- WORK IN TEAM AND ORGANIZE THEIR WORK ACCORDING TO GOALS AND CONSTRAINTS TO RESPONSIBLY AND PROACTIVELY CONTRIBUTE TO THE PROJECT SUCCESS AND TO DEADLINES RESPECT;
- QUICKLY MASTER NEW APPLICATION DOMAINS TO UINDERSTAND THE STAKEHOLDERS NEEDS AND TRANSLATE THEM IN QUALITY SOFTWARE SYSTEMS;
- IDENTIFY THE BEST SOLUTION BALANCING DIFFERENT AND OFTEN CONTRASTING GOALS;
- MOTIVATE THE CHOICES MADE;
- ENGAGE AND COMMUNICATE WITH DIFFERENT STAKEHOLDERS DYNAMICALLY ADAPTING TO THEIR DIFFERENT CHARACTERISTICS (KNOWLEDGE, NEEDS, DOMAIN, LANGUAGE) AND TO THE COMMUNICATION GOALS, BY ADOPTING AND SELECTING THE MOST EFFECTIVE COMMINICATION TOOLS.
Prerequisites
STUDENTS SHOULD HAVE BASIC KNOWLEDGE OF:
- PROCEDURAL PROGRAMMING;
- OBJECT-ORIENTED PROGRAMMING;
- DATA STRUCTURES AND ALGORITHMS;
- DATABASES.

STUDENTS MUST BE ABLE TO SOLVE SIMPLE PROGRAMMING PROBLEMS (PROGRAMMING IN THE SMALL) USING BOTH. PROCEDURAL AND OBJECT-ORIENTED PROGRAMMING APPROACHES BY ALSO SELECTING AND/OR REALIZING SUITABLE DATA STRUCTURES AND ACCESSING DATA BASES.
Contents
THE CONTENT IS ORGANIZED IN FIVE MODULES.

M1: GENERAL CONCEPTS OF SOFTWARE ENGINEERING (12H LESSONS AND 6H LAB)

BASIC SOFTWARE ENGINEERING CONCEPTS (PRODUCT, PROCESS, PRINCIPLES, METHODS, METHODOLOGIES, TOOLS, PHASES, AND ACTIVITIES); SOFTWARE ENGINEERING AND SYSTEMS ENGINEERING; SOFTWARE LIFE CYCLE; SOFTWARE PROCESS MODELS (WATERFALL MODEL AND ITERATIVE AND INCREMENTAL MODELS); VISUAL MODELLING AND UNIFIED MODELLING LANGUAGE (UML); BASIC CONCEPTS OF SOFTWARE PROJECT ORGANIZATION AND MANAGEMENT; PROJECT COMMUNICATION AND COLLABORATION MECHANISMS; SOFTWARE CONFIGURATION MANAGEMENT; SOFTWARE EVOLUTION; SOFTWARE DEVELOPMENT SUPPORT TOOLS.

M2: REQUIREMENTS ANALYSIS AND SPECIFICATION (12H LESSONS AND 6H LAB)

REQUIREMENTS ELICITATION, ANALYTSIS, AND SPECIFICATION; FUNCTIONAL AND NON FUNCTIONAL REQUIREMENTS; REQUIREMENTS ELICITATION, SCENARIOS AND USE CASES; OBJECT MODELLING AND UML CLASS DIAGRAM; DYNAMIC MODELLING AND UML INTERACTION, STATE AND ACTIVITY DIAGRAMS; REQUIREMENTS ANALYSIS DOCUMENT.

M3: HIGH LEVEL ARCHITECTURAL DESIGN - SYSTEM DESIGN (8H LESSONS AND 4H LAB)

LOGICAL DESING AND MODULAR DECOMPOSITION OF A SOFTWARE SYSTEMS; COHESION AND COUPLING PRINCIPLES; ARCHITECTURAL STYLES AND PARADIGMS; CLIENT-SERVER AND DISTRIBUTED ARCHITECTURES; PHYSICAL DESIGN OF A SOFTWARE SYSTEMS; COMPONENT AND DEPLOYMENT DIAGRAM; DESIGN RATIONALE.

M4: LOW LEVEL DESIGN (OBJECT DESIGN) AND IMPLEMENTATION (8H LESSONS AND 4H LAB)

SOFTWARE REUSE AND INTRODUCTION TO DESIGN PATTERNS; CLASS AND SUBSYSTEM INTERFACE SPECIFICATION; UML CONTRACTS AND OBJECT CONSTRAINT LANGUAGE (OCL); MAPPING MODELS TO CODE; CODING PRACTICES AND STANDARDS; SOFTWARE CHANGES; REFACTORING AND REVERSE ENGINEERING.

M5: SOFTWARE VERIFICATION AND VALIDATION (8H LESSONS AND 4H LAB)

SOFTWARE VERIFICATION AND VALIDATION CONCEPTS; SOFTWARE RELIABILITY; FAULTS AND FAILURES; STATIC AND DYNAMIC VERIFICATION; SOFTWARE INSPECTIONS, REVIEWS, AND AUDIT; TESTING AND DEBUGGING; TESTING LEVELS; UNIT, INTEGRATION, AND SYSTEM TESTING; PLANNING AND EXECUTION ACTIVITIES OF SOFTWARE TESTING; TEST PLAN DOCUMENT; TEST CASE GENERATION; BLACK BOX AND WHITE BOX TESTING TECHNIQUES; REGRESSION TESTING; TEST AUTOMATION. DEFECT TRACKING AND TEST EXECUTION REPORT.
Teaching Methods
THE ACTIVITIES OF THE COURSE ARE ORGANIZED AS FOLLOWS:
- LECTURES (48 H): USED TO TRANSFER THE KNOWLEDGE REQUIRED FOR THE ANALYSIS, DESIGN, IMPLEMENTATION, AND TESTING OF COMPLEX SOFTWARE SYSTEMS;
- LABORATORY (24 H): FOR AN IN DEPTH ANALYSIS OF MORE PRACTICAL ASPECTS WITH AN INTERACTION BETWEEN STUDENTS AND LECTURER;
- PROJECT DEVELOPMENT (57 H): STIMULATING THE ACTIVE PARTICIPATION OF STUDENTS, THEIR ATTITUDE TO THE PERSONAL ELABORATION AND APPLICATION OF THE ACQUIRED KNOWLEDGE AND ANILITY TO UNDERSTAND
- INDIVIDUAL STUDY (96 H).

IN PARTICULAR, THROUGH THE PROJECT STUNDETNS WILL BE ABLE TO:
- SIMULATE TYPICAL GROUP DYNAMICS OF REAL WORLD SOFTWARE PROJECTS;
- SIMULATE REQUIREMENTS ELICITATION;
- SELECT, ELABORATE, AND INTERPRET THE INFORMATION USEFUL TO ACHIEVE THE DEFINED GOALS;
- LEARNS TO IDENTIFY THE MOST COST-EFFECTIVE SOLUTION, BASED ON A TRADE-OFF ANALYSIS OF DIFFERENT DESIGN GOALS AND CHECK THAT THESE GOALS ARE ACTUALLY ACHIEVED;
- COMPARE THE POSITIONS OF THE DIFFERENT TEAM MEMBERS ON PRACTICAL ISSUES, BY SUITABLY DEBATING AND MOTIVATING THEIR POSITIONS;
- UNDERSTAND THE NEEDS OF A SUITABLE COMMUNICATION;
- TEST AND IMPROVE THEIR ABILITIES, BY SHARING MODELS AND DOCUMENTS, SIMULATING MEETINGS, REVIEWING PROJECT DOCUMENTS, PRODUCING REPORTS, REQUESTING SOFTWARE CHANGES, RESOLVING PROBLEMS, USING SYNCRONOUS AND ASYNCHRONOUS COMMUNICATION TOOLS.
- UNDERSTAND THE IMPORTANCE OF A RESPONSIBLE AND PROFESSIONALLY ETHICAL BEHAVIOUR.
Verification of learning
LEARNING ASSESSMENT IS BASED ON AN EXAM WITH GRADES ON A SCALE OF 30. THE EXAM CONSISTS OF A SOFTWARE PROJECT DEVELOPED BY A GROUP OF STUDENTS AND AN ORAL EXAMINATION.

DELIVERING THE PROJECT DOCUMENTATION IS PREPARATORY FOR THE ORAL EXAMINATION.

THE ORAL EXAMINATION IS BASED ON QUESTIONS AND DISCUSSION ABOUT THE ISSUES RAISED DURING THE DEVELOPMENT OF THE PROJECT AND ON THE THEORETICAL AND METHODOLOGICAL TOPICS OF THE COURSE. IT AIMS AT ASSESSING THE LEVEL OF KNOWLEDGE ACHIEVED BY THE STUDENT ON THE THEORETICAL AND METHODOLOGICAL TOPICS OF THE COURSE, HOW THE METHODS PRESENTED DURING THE COURSE HAVE BEEN APPLIED WITHIN THE PROJECT, THE ACTUAL CONTRIBUTION GIVEN TO THE PROJECT, AND THE LEVEL OF CORRECTNESS AND COMPLETENESS OF THE PROJECT DOCUMENTATION. THE ORAL EXAMINATION ALSO AIMS AT VERIFYING THE CAPABILITY OF AUTONOMOUSLY ORGANISING THE PRESENTATION BY USING THE CORRECT TERMINOLOGY AND THE CAPABILITY OF PROPERLY MOTIVATING AND DISCUSSING THE PROJECT CHOICES.

A WRITTEN TEST WILL BE ALSO FORESEEN, IN CASE IT WILL BE POSSIBLE TO DO IT IN PRESENCE IN THE CLASSROOM. THE WRITTEN TEST INCLUDES MULTIPLE CHOICE AND OPEN-ENDED QUESTIONS ON THE TOPICS OF THE COURSE. IT GENERALLY LASTS ABOUT 60 MINUTES AND AIMS AT VERIFYING THE CAPABILITY TO CORRECTLY APPLY THE THEORETICAL KNOWLEDGE AS WELL AS THE CAPABILITY TO UNDERSTAND THE RAISED ISSUES. THE WRITTEN TEST IS PASSED WITH A GRADE OF 18/30. TWO MIDTERM TESTS WILL ALSO BE FORESEEN IN THE SAME CONDITIONS. STUDENTS PASSING TWO MIDTERM TESTS DURING THE CLASS WILL BE EXEMPTED BY THE WRITTEN TEST.
Texts
B. BRUEGGE, A.H. DUTOIT, OBJECT ORIENTED SOFTWARE ENGINEERING – USING UML, PATTERNS AND JAVA, PRENTICE HALL, 3D EDITION, 2009

HANDOUTS OF THE LECTURER

OTHER BOOKS FOR IN DEPTH ANALYSES:
C. GHEZZI, D. MANDRIOLI, M. JAZAYERI, INGEGNERIA DEL SOFTWARE – FONDAMENTI E PRINCIPI, PRENTICE HALL, 2004
R. S. PRESSMAN, PRINCIPI DI INGEGNERIA DEL SOFTWARE, QUARTA EDIZIONE, MC GRAW HILL ITALIA, 2004
I. SOMMERVILLE, SOFTWARE ENGINEERING, ADDISON WESLEY
More Information
E-LEARNING PLATFORM WEB SITE:
HTTP://ELEARNING.INFORMATICA.UNISA.IT/EL-PLATFORM/

CONTACT INFORMATION:
ADELUCIA@UNISA.IT
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2021-06-03]