SOFTWARE ENGINEERING

Computer science SOFTWARE ENGINEERING

0512100019
DIPARTIMENTO DI INFORMATICA
COMPUTER SCIENCE
2013/2014



OBBLIGATORIO
YEAR OF COURSE 3
YEAR OF DIDACTIC SYSTEM 2008
PRIMO SEMESTRE
CFUHOURSACTIVITY
648LESSONS
336LAB


Objectives
KNOWLEDGE AND UNDERSTANDING:
STUDENTS WILL LEARN BASIC CONCEPTS OF SOFTWARE ENGINEERING, IN PARTICULAR: THE PHASES, ACTIVITIES, AND DELIVERABLES OF SOFTWARE ENGINEERING PROCESSES, THE IMPORTANCE OF MODELLING LANGUAGES, IN PARTICULAR UNIFIED MODELLING LANGUAGE (UML), AND THEIR USE AS COMMUNICATION MEANS BETWEEN THE DIFFERENT STAKEHOLDERS OF A SOFTWARE PROJECT.
STUDENTS WILL LEARN ESSENTIAL CONCEPTS OF SOFTWARE PROJECT ORGANIZATION AND MANAGEMENT, IN ORDER TO BE ABLE TO USE AN ENGINEERING APPROACH TO THE DEVELOPMENT AND MAINTENANCE OF SOFTWARE SYSTEMS, AS WELL AS TO WORK IN A TEAM TO PRODUCE SYSTEM MODELS AND SOFTWARE DOCUMENTS DURING THE DIFFERENT PHASES OF THE SOFTWARE PROCESS.

APPLYING KNOWLEDGE AND UNDERSTANDING:
THE STUDENTS WILL BE ABLE TO DEVELOP SOFTWARE SYSTEMS USING AN ENGINEERING APPROACH AND PRODUCING THE SUITABLE DOCUMENTATION. STUDENTS WILL BE ABLE TO WORK IN TEAM WITHIN DEFINED DEADLINES.

MAKING JUDGEMENTS:
THE STUDENTS WILL BE ABLE TO EVALUATE THE DIFFERENT ALTERNATIVES TO THE SOLUTION OF SOFTWARE DEVELOPMENT PROBLEMS AND TO CONFRONT EACH OTHER WITHIN PROJECT TEAMS. THE STUDENTS WILL ALSO BE ABLE TO EBALUATE THE IMPLICATIONS OF TRADE-OFFS BETWEEN DIFFERENT DESIGN GOALS.

COMMUNICATION SKILLS:
THE STUDENTS WILL LEARN AND PRACTICE THE MECHANISMS CHARACTERIZING THE COMMUNICATION WITHIN SOFTWARE PROJECTS, INCLUDING SHARING SOFTWARE MODELS AND DOCUMENTS WITH OTHER TEAM MEMBERS, CONDUCTING PROJECT MEETINGS AND REVIEWS, PRESENTING PROJECT PROPOSALS AND PROJECT RESULTS. THE STUDENTS WILL ALSO USE LEARN AND PRACTICE IN A DISCIPLINED MANNER THE USE OF SYNCHRONOUS AND ASYNCHRONOUS COMMUNICATIONS TOOLS, TO HELP THE COLLABORATION WITHIN SOFTWARE PROJECTS.


LEARNING SKILLS
THE STUDENTS WILL GAIN THE ABILITY TO AUTONOMOUSLY RETRIEVE, ANALYZE AND UNDERSTAND THE METHODOLOGICAL AND TECHNOLOGICAL TOOLS THAT ARE MORE SUITABLE TO THE SOLUTIONS OF NOVEL PROBLEMS WITHIN SOFTWARE PROJECTS. THE STUDENTS WILL LEARN HOW TO INTERACT WITH DIFERENT STAKEHOLDERS TO QUICKLY MASTER NEW APPLICATION DOMAINS.
Prerequisites
STUDENT SHOULD HAVE KNOWLEDGE OF: DATA STRUCTURES AND ALGORITHMS, PROCEDURAL PROGRAMMING, OBJECT-ORIENTED PROGRAMMING, 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 EFFICIENT DATA STRUCTURES AND ACCESSING DATA BASES.
Contents
THE CONTENT IS ORGANIZED IN FIVE MODULES.

M1: INTRODUCTION TO SOFTWARE ENGINEERING

BASIC SOFTWARE ENGINEERING CONCEPTS (PRODUCT, PROCESS, PRINCIPLES, METHODS, METHODOLOGIES, TOOLS, PHASES, AND ACTIVITIES); SOFTWARE LIFE CYCLE 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 PRINCIPLES.

M2: REQUIREMENTS ANALYSIS AND SPECIFICATION

REQUIREMENTS ELICITATION, ANALYTSIS, AND SPECIFICATION; 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; PHYSICAL DESIGN OF A SOFTWARE SYSTEMS; COMPONENT AND DEPLOYMENT DIAGRAM; DESIGN RATIONALE.

M4: LOW LEVEL DESIGN (OBJECT DESIGN)

DOFTWARE REUSE AND INTRODUCTION TO DESIGN PATTERNS; CLASS AND SUBSYSTEM INTERFACE SPECIFICATION; UML CONTRACTS AND OBJECT CONSTRAINT LANGUAGE (OCL); MAPPING MODELS TO CODE; REFACTORING AND REVERSE ENGINEERING CONCEPTS.

M5: SOFTWARE TESTING

SOFTWARE VERIFICATION AND VALIDATION CONCEPTS; TESTING LEVELS; UNIT, INTEGRATION AND SYSTEM TESTING; PLANNING AND EXECUTION ACTIVITIES OF SOFTWARE TESTING; TESTING DOCUMENTATION; INTRODUCTION TO BLACK BOX AND WHITE BOX TESTING TECHNIQUES.
Teaching Methods
THE ACTIVITIES OF THE COURSE ARE ORGANIZED AS FOLLOWS:
- LECTURES: 48 H
- LABORATORY: 36 H
- INDIVIDUAL STUDY: 81 H
- PROJECT DEVELOPMENT: 60 H
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. AN 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 ACHIEVED 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

OTHER BOOKS:
JIM ARLOW, ILA NEUSTADT, UML E UNIFIED PROCESS, MCGRAW-HILL ITALIA, 2003
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

SLIDES OF THE COURSE
More Information
ADELUCIA@UNISA.IT
FFERRUCCI@UNISA.IT
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2016-09-30]