SOFTWARE ENGINEERING

Carmine GRAVINO SOFTWARE ENGINEERING

0512100019
DIPARTIMENTO DI INFORMATICA
EQF6
COMPUTER SCIENCE
2016/2017



OBBLIGATORIO
YEAR OF COURSE 3
YEAR OF DIDACTIC SYSTEM 2008
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 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

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

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)

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

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

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 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:

1. A SOFTWARE PROJECT DEVELOPED BY A GROUP OF STUDENTS WITH FINAL DEMONSTRATION AND DISCUSSION. IT AIMS AT VERIFYING HOW THE METHODS PRESENTED DURING THE COURSE HAVE BEEN APPLIED, WITH SPECIAL FOCUS ON CORRECTNESS AND COMPLETENESS OF THE DOCUMENTATION.

2. A WRITTEN/ORAL EXAMINATION TO VERIFY THE GAINED KNOWLEDGE. THE EVALUATION CRITERIA INCLUDE THE COMPLETENESS AND CORRECTNESS OF THE LEARNING AND THE CLARITY OF THE PRESENTATION.

THE FINAL MARK IS COMPUTED AS AVERAGE OF THE EVALUATIONS.

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:
fferrucci@unisa.it
gravino@unisa.it
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2019-03-11]