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:

THE GOAL OF THE COURSE IS TO INTRODUCE THE STUDENT TO THE FUNDAMENTALS OF SOFTWARE ENGINEERING.
THE MAIN SUBJECTS ARE METHODS, METHODOLOGIES, TECHNIQUES AND TOOLS FOR THE DEVELOPMENT OF SOFTWARE OF MEDIUM/LARGE SIZE.
USING THE UML SET OF NOTATIONS THE STUDENT WILL ACQUIRE THE CAPABILITY TO UNDERSTAND AND MANAGE THE WHOLE SOFTWARE LIFE, CYCLE STARTING FROM THE ACTIVITY OF SOFTWARE SPECIFICATION TO THAT OF VERIFICATION AND VALIDATION, FOR THE SOFTWARE UNDER DEVELOPMENT.

APPLYING KNOWLEDGE AND UNDERSTANDING:

AFTER THE COURSE, THE STUDENT WILL BE ABLE TO DEVELOP A SOFTWARE OF MEDIUM/LARGE SIZE USING AN ENGINEERING APPROACH.
THE STUDENT WILL BE INSERTED IN A TEAM CHARGED WITH THE REALIZATION OF A SOFTWARE PROJECT. SHE/HE WILL RECEIVE PART OF A WORK TO DO ACCORDING TO THE TOPICS PRESENTED DURING THE COURSE. HE ALSO WILL LEARN TO BRING BACK TO UNITY THE TASKS THAT THE PROJECT MANAGER HAS DIVIDED AMONG THE TEAM PARTICIPANTS.


COMMUNICATION SKILLS:

THE STUDENT WILL ACQUIRE PLANNED AND UNPLANNED COMMUNICATION ABILITIES. SHE/HE WILL LEARN SYNCHRONOUS AND ASYNCHRONOUS COMMUNICATION MECHANISMS ALSO, ACQUIRING FAMILIARITY WITH SOFTWARE TOOLS THAT SUPPORT EFFECTIVE COMMUNICATION.

MAKING JUDGMENTS:

ON THE BASIS OF A PROJECT PLAN, THE STUDENT WILL MAKE JUDGMENTS ABOUT THE COST, TIME AND QUALITY CONSTRAINTS OF THE PRODUCED ARTIFACTS. THROUGH A CONTINUOUS MONITORING ACTIVITY SHE/HE WILL LEARN TO COMPARE THE PROJECT PLAN WITH THE ACTUAL PROJECT PROGRESS TAKING THE APPROPRIATE DECISIONS.

LEARNING CAPABILITY:

IT WILL APPEAR AS THE CAPABILITY TO IDENTIFY RELEVANT INFORMATION TO ACQUIRE IN ORDER TO DEVELOP APTITUDE FOR PROBLEM SOLVING.
Prerequisites
THE STUDENTS MUST KNOW THE FUNDAMENTALS OF ALGORITHMS AND DATA STRUCTURES AND AT LEAST ONE PROCEDURAL AND ONE OBJECT ORIENTED PROGRAMMING LANGUAGE.
FURTHERMORE, COMPETENCE IN RELATIONAL DATA BASE MANAGEMENT SYSTEMS IS REQUIRED TOGETHER WITH THE LANGUAGE SQL.
EVEN IF NOT STRICTLY NECESSARY, COMPETENCE IN THE USE OF THE PHP PROGRAMMING LANGUAGE WILL BE APPRECIATED.
Contents
FUNDAMENTAL CONCEPTS:
DEVELOPMENT ACTIVITIES AND ARTIFACTS
MANAGING THE SOFTWARE PROJECT
PROJECT COMMUNICATION CONCEPTS

MODELING WITH UML:
DIAGRAMS: USE CASE, CLASS, INTERACTION, STATE MACHINE, ACTIVITY, DEPLOYMENT
USE CASE SPECIFICATION
ORGANIZING DIAGRAMS WITH PACKAGES

DEALING WITH COMPLEXITY:
REQUIREMENT ELICITATION
FUNCTIONAL AND NONFUNCTIONAL REQUIREMENTS
REQUIREMENTS PROPERTIES
SOFTWARE ENGINEERING ACTIVITIES
THE RAD DOCUMENT

ANALYSIS:
ENTITY, BOUNDARY AND CONTROL OBJECTS
CRC CARDS
ANALYSIS ACTIVITIES
MANAGING ANALYSIS

SYSTEM DESIGN: DECOMPOSING THE SYSTEM
REPRESENTING SUBSYSTEMS WITH PACKAGES
SUBSYSTEM INTERFACES
COUPLING, COHESION, LAYERS AND PARTITIONS
SOFTWARE ARCHITECTURES

SYSTEM DESIGN: ADDRESSING DESIGN GOALS
PROJECT GOALS
DEPLOYMENT DIAGRAMS
PERSISTENT DATA
ACCESS CONTROL
GLOBAL CONTROL FLOW
BOUNDARY CONDITIONS
MANAGING SYSTEM DESIGN WITH THE SDD DOCUMENT

OBJECT DESIGN:
INTERFACE SPECIFICATION, TYPES, SIGNATURES AND VISIBILITY
CONTRACTS: INVARIANTS, PRECONDITIONS AND POSTCONDITIONS
THE LANGUAGE OCL (HINT)
INTERFACE SPECIFICATION ACTIVITIES
THE DOCUMENT ODD

MAPPING MODELS TO CODE:
MODEL TRANSFORMATIONS
REFACTORING
FORWARD ENGINEERING
REVERSE ENGINEERING
MAPPING ACTIVITIES
MANAGING IMPLEMENTATION

TESTING:
TESTING CONCEPTS
TESTING ACTIVITIES: INSPECTION, USABILITY, UNIT, INTEGRATION, SYSTEM
INTEGRATION TESTING: BOTTOM UP AND TOP DOWN STRATEGIES
PLANNING AND MANAGING TESTING
Teaching Methods
THE SOFTWARE ENGINEERING COURSE PROPOSES 48 HOURS OF LECTURE AND 36 HOURS OF LABORATORY ACTIVITIES.
THE STUDENTS WILL BE ORGANIZED IN TEAM WORK ASSIGNING TO EACH TEAM A SOFTWARE PROJECT TO DEVELOP.
TO SUBSTAIN THE LEARNING PROCESS A KNOWLEDGE MANAGEMENT SYSTEM WILL BE USED TO TRANSFER AND SHARE DIDACTICAL MATERIAL, PROJECT DELIVERABLES AND PRACTICAL EXPERIENCES.
Verification of learning
THE FIRST VERIFICATION ACTIVITY IS DONE AT EACH PROJECT MILESTONE, WHEN THE MAIN PROJECT DELIVERABLE WILL BE PRODUCED.

THE EXAM WILL CONSIST OF A WRITTEN TEST (SCORE: 20) AND OF DISCUSSION ABOUT THE SOFTWARE PROJECT DEVELOPED DURING THE COURSE (SCORE: 10)
Texts
1. BERND BRUEGGE, ALLEN H. DUTOIT “OBJECT-ORIENTED SOFTWARE ENGINEERING USING UML, PATTERNS AND JAVA” - THIRD ED. - PEARSON, 2010.
(CAP. DA 1 A 7 INCLUSO, 9, 10, 11, 14 E 15).

2. IAN SOMMERVILLE “SOFTWARE ENGINEERING” NINTH ED., ADDISON WESLEY, 2011.
(CAP. 1 E 22)

3. SLIDE AND COURSE NOTES
More Information
THE REFERENCES WILL BE INTEGRATED WITH COURSE NOTES AND DIDACTIC MATERIAL ESPECIALLY WITH RESPECT TO THE SOFTWARE SYSTEMS USED DURING THE PRACTICAL EXERCISES

EMAIL CONTACT: NOTA@UNISA.IT
  BETA VERSION Data source ESSE3 [Ultima Sincronizzazione: 2016-09-30]