SOFTWARE ENGINEERING

Computer science SOFTWARE ENGINEERING

0512100019
DIPARTIMENTO DI INFORMATICA
EQF6
COMPUTER SCIENCE
2018/2019



OBBLIGATORIO
YEAR OF COURSE 3
YEAR OF DIDACTIC SYSTEM 2015
PRIMO SEMESTRE
CFUHOURSACTIVITY
648LESSONS
330LAB


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 ETHICAL 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 UNDERSTAND 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 COMMUNICATION 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 DATABASES.
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 9H 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 6H 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 3H 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 6H 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 (30 H): FOR AN IN DEPTH ANALYSIS OF MORE PRACTICAL ASPECTS WITH AN INTERACTION BETWEEN STUDENTS AND LECTURER
•PROJECT DEVELOPMENT (51 H): STIMULATING THE ACTIVE PARTICIPATION OF STUDENTS, THEIR ATTITUDE TO THE PERSONAL ELABORATION AND APPLICATION OF THE ACQUIRED KNOWLEDGE AND ABILITY TO UNDERSTAND
•INDIVIDUAL STUDY (96 H)
IN PARTICULAR, THROUGH THE PROJECT STUDENTS 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 SYNCHRONOUS 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, A WRITTEN TEST, AND AN ORAL EXAMINATION.

DELIVERING THE PROJECT DOCUMENTATION IS PREPARATORY FOR THE WRITTEN AND ORAL EXAMINATION.

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. STUDENTS PASSING TWO MIDTERM TESTS DURING THE CLASS ARE EXEMPTED BY THE WRITING TEST.

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.
Texts
B. BRUEGGE, A.H. DUTOIT, OBJECT ORIENTED SOFTWARE ENGINEERING – USING UML, PATTERNS AND JAVA, PRENTICE HALL, 3RD 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 EDITION, 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:
FFERRUCCI@UNISA.IT
GRAVINO@UNISA.IT
ADELUCIA@UNISA.IT
FRANCESE@UNISA.IT
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2019-10-21]