Carmine GRAVINO | SOFTWARE ENGINEERING
Carmine GRAVINO SOFTWARE ENGINEERING
cod. 0512100019
SOFTWARE ENGINEERING
0512100019 | |
DIPARTIMENTO DI INFORMATICA | |
EQF6 | |
COMPUTER SCIENCE | |
2016/2017 |
OBBLIGATORIO | |
YEAR OF COURSE 3 | |
YEAR OF DIDACTIC SYSTEM 2008 | |
PRIMO SEMESTRE |
SSD | CFU | HOURS | ACTIVITY | |
---|---|---|---|---|
INF/01 | 6 | 48 | LESSONS | |
INF/01 | 3 | 30 | LAB |
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]