Software Engineering

Pasquale FOGGIA Software Engineering

0622700002
DIPARTIMENTO DI INGEGNERIA DELL'INFORMAZIONE ED ELETTRICA E MATEMATICA APPLICATA
COMPUTER ENGINEERING
2015/2016



OBBLIGATORIO
YEAR OF COURSE 1
YEAR OF DIDACTIC SYSTEM 2015
PRIMO SEMESTRE
CFUHOURSACTIVITY
990LESSONS
Objectives
THE COURSE AIMS AT LEARNING MODELS, METHODS AND TOOLS FOR THE DESIGN AND IMPLEMENTATION OF LARGE SIZE SOFTWARE SYSTEMS, AND OF THE MAIN PROCESSES OCCURRING DURING THE SOFTWARE LIFE CYCLE.

KNOWLEDGE AND UNDERSTANDING
KNOWLEDGE OF THE MAIN DESIGN PATTERNS. UNDERSTANDING OF THE DOCUMENTS FOR THE SOFTWARE ANALYSIS AND THE DESIGN WRITTEN USING THE UML LANGUAGE.

APPLYING KNOWLEDGE AND UNDERSTANDING
ABILITY TO DESIGN A SOFTWARE SYSTEM USING THE MAJOR DESIGN PATTERNS; TO EXPRESS THE REQUIREMENTS ANALYSIS AND THE DESIGN CHOICES USING UML; TO ADOPT SOFTWARE TOOLS FOR THE AUTOMATIC DOCUMENTATION, TESTING AND REVISION CONTROL.

MAKING JUDGEMENTS
TO CHOOSE THE MOST APPROPRIATE METHODS TO DESIGN AND IMPLEMENT A SOFTWARE SYSTEM ON THE BASIS OF THE CONSIDERED CONTEXT.

COMMUNICATION SKILLS
BEING ABLE TO DOCUMENT AND TO COMMUNICATE USING THE APPROPRIATE FORMALISMS THE REQUIREMENTS AND THE DESIGN CHOICES. BEING ABLE TO ORGANIZE WITHIN A TEAM THE SOFTWARE PRODUCTION PROCESS.

LEARNING SKILLS
BEING ABLE TO APPLY THE ACQUIRED KNOWLEDGE TO CONTEXTS THAT ARE DIFFERENT FROM THOSE PRESENTED IN THE COURSE, AND TO ACQUIRE MORE KNOWLEDGE USING ADDITIONAL SOURCES WITH RESPECT TO THE ONES PROPOSED IN THE COURSE.
Prerequisites
IN ORDER TO ACHIEVE THE GOALS OF THE COURSE, A KNOWLEDGE OF THE JAVA LANGUAGE AND OF OBJECT ORIENTED PROGRAMMING IS REQUIRED.
Contents
COURSE INTRODUCTION
INTRODUCTION TO THE SOFTWARE LIFE CYCLE. SOFTWARE QUALITIES: PRODUCT AND PROCESS CHARACTERISTICS. (HOURS LECTURE / PRACTICE / LABORATORY 4/0/0)
SOFTWARE LIFE CYCLE: TRADITIONAL PROCESSES.
THE WATERFALL MODEL. REQUIREMENT ANALYSIS. DESIGN. IMPLEMENTATION. TEST. DEPLOYMENT AND MAINTENANCE. EVOLUTIONS OF THE WATERFALL MODEL. THE RUP FRAMEWORK. MODEL DRIVEN APPROACHES. (HOURS 14/12/0)
SOFTWARE LIFE CYCLE: AGILE METHODS.
LIMITATIONS OF TRADITIONAL PROCESSES. AGILE METHODS: FUNDAMENTAL PRINCIPLES. TEST-DRIVEN DEVELOPMENT. REFACTORING. THE XP AND SCRUM PROCESSES. (HOURS 10/12/0)
DESIGN PATTERNS
INTRODUCTION TO SOFTWARE DESIGN PATTERNS. CREATIONAL PATTERNS. STRUCTURAL PATTERNS. BEHAVIORAL PATTERNS (HOURS 10/12/0)
SOFTWARE TOOLS:
UNIT TESTING: JUNIT. AUTOMATIC BUILD: ANT. REVISION CONTROL SYSTEMS: SUBVERSION. (ORE 6/0/10)

TOTAL HOURS 44/36/10
Teaching Methods
THE COURSE CONTAINS THEORETICAL LECTURES, IN-CLASS EXERCITATIONS AND PRACTICAL LABORATORY EXERCITATIONS. DURING THE IN-CLASS EXERCITATIONS THE STUDENTS ARE DIVIDED IN TEAMS AND ARE ASSIGNED A PROJECT TO BE DEVELOPED ALONG THE DURATION OF THE COURSE. THE PROJECT INCLUDES ALL THE CONTENTS OF THE COURSE AND IS ESSENTIAL BOTH FOR THE ACQUISITION OF THE ABILITY TO DESIGN AND IMPLEMENT A SOFTWARE SYSTEM STARTING FROM A SPECIFICATION, AND FOR DEVELOPING AND REINFORCING THE ABILITY TO WORK IN A TEAM. IN THE LABORATORY EXERCITATIONS THE STUDENTS WILL USE SOFTWARE TOOLS FOR THE AUTOMATION OF TESTS AND DOCUMENTATION, AND FOR REVISION CONTROL.
Verification of learning
THE EXAM AIMS AT EVALUATING, AS A WHOLE: THE KNOWLEDGE AND UNDERSTANDING OF THE CONCEPTS PRESENTED IN THE COURSE, THE ABILITY TO APPLY THAT KNOWLEDGE TO SOLVE PROBLEMS OF DESIGN AND IMPLEMENTATION OF SOFTWARE SYSTEMS, INDEPENDENCE OF JUDGMENT, COMMUNICATION SKILLS AND THE ABILITY TO LEARN.
THE EXAM INCLUDES THE DISCUSSION OF A PROJECT WORK, DEVELOPED DURING THE COURSE, AIMED AT EVALUATION OF THE ABILITY TO APPLY KNOWLEDGE, TO WRITE A TECHNICAL REPORT, THE INDEPENDENCE OF JUDGMENT, THE ABILITY TO WORK IN A TEAM, AND AN ORAL INTERVIEW, THE PURPOSE OF WHICH IS TO ASSESS THE ACQUIRED KNOWLEDGE AND ABILITY TO UNDERSTANDING, THE ABILITY TO LEARN, ORAL PRESENTATION.
THE PROJECT WORK IS A SMALL SOFTWARE PROJECT, DEVELOPED IN TEAM, IN WHICH THE STUDENTS HAVE TO PERFORM AND DOCUMENT ALL THE ACTIVITIES IN THE SOFTWARE LIFE CYCLE.
THE ORAL EXAMINATION WILL COVER ALL THE TOPICS OF THE COURSE AND ASSESSMENT WILL TAKE INTO ACCOUNT THE KNOWLEDGE DEMONSTRATED BY THE STUDENT AND THE DEGREE OF ITS DEPTH, PROVEN ABILITY TO LEARN, THE QUALITY OF THE PRESENTATION.
IN THE FINAL EVALUATION, EXPRESSED IN THIRTIETHS, THE EVALUATION OF THE PROJECT WORK WILL ACCOUNT FOR 40% WHILE THE INTERVIEW FOR 60%. THE CUM LAUDE MAY BE GIVEN TO STUDENTS WHO DEMONSTRATE THAT THEY CAN APPLY THE KNOWLEDGE AUTONOMOUSLY EVEN IN CONTEXTS OTHER THAN THOSE PROPOSED IN THE COURSE.
Texts
REFERENCE MATERIAL
- I. SOMMERVILLE, INGEGNERIA DEL SOFTWARE (8 ED.), ADDISON-WESLEY, 2007.

OTHER SUGGESTED MATERIAL
- E. GAMMA ET AL., DESIGN PATTERNS, PEARSON EDUCATION ITALIA, 2002.

More Information
-
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2016-09-30]