Software Engineering A.Y. 2015-2016": Introduction To The Course! Prof. Luca Mainetti! Università Del Salento!

Download as pdf or txt
Download as pdf or txt
You are on page 1of 13

Software Engineering

a.y. 2015-2016"

Introduction to the course!


Prof. Luca Mainetti!
Universit del Salento!
To keep in touch with the teacher"

Prof. Luca Mainetti!


Students meetings: Wednesday 15:00-19:00!
See www.unisalento.it/people/luca.mainetti for changes!
[email protected] !

Introduction" 2" Luca Mainetti"


Course objectives"

The main goal of the course is to deepen students


knowledge on modern design and development techniques
for interactive software systems!
Methods and tools for automated software testing, agile
processes and design patterns will be analyzed!
All concepts will be experimented by students developing
and documenting a software prototype.!
For the software prototype students will exploits Model-
View-Controller frameworks!
Prerequisites!
Programming languages (better if Java)!
Fundamentals of computer science!

Introduction" 3" Luca Mainetti"


Introduction" 4" Luca Mainetti"
Topics: theory"
Software engineering principles!
Software qualities and software engineering principles!
Software production process!
Management of software engineering!
Software design with UML!
Design and software architectures!
Requirements and use cases!
Class diagrams, sequence diagrams, state charts!
Software design pattern!
Introduction to standard architectures and design patterns!
How to select and adopt a design pattern!
Creational patterns, structural patterns, behavioral patterns!
Software verification!
Introduction to man software verification methods!
Black-box and white-box methods!
Test in the large, test in the small, correctness proofs!

Introduction" 5" Luca Mainetti"


Topics: practice"
Introduction to Struts2 framework!
Struts2 structure, installing Struts2!
Hello world in Struts2!
Commad: Action, Interceptor, Type conversion!
View: Tag, UI components, Results!
Model: Resource management, Validation, Persistence!
Software development and verification tools!
JUnit !
Refactoring!
CVS!
Design patterns and apps development for Android!

Introduction" 6" Luca Mainetti"


Textbooks and learning material"

Textbooks!
Ghezzi, Jazayeri, Mandrioli Fundamentals of Software Engineering
(second edition) Pearson Prentice Hall 2003!
Gamma, Helm, Johnson, Vlissides Design Patterns: Elements of
Reusable Object-Oriented Software Addison-Wesley Professional
1994!
Fowler UML Distilled (third edition) Addison-Wesley
Professional, 2003!
A Java programming textbook!
Other material!
www.unisalento.it/people/luca.mainetti!

Introduction" 7" Luca Mainetti"


Course calendar (part 1)"

Introduction to the course 29-feb-16 11:30-13:30 I-7


Software, software qualities and software principles 01-mar-16 9:30-11:30 I-7
Software production process 02-mar-16 11:30-13:30 I-7
Management of software engineering 07-mar-16 11:30-13:30 I-7
Design and software architecture 08-mar-16 9:30-11:30 I-7
Specification techniques 09-mar-16 11:30-13:30 I-7
Software design patterns (1) 14-mar-16 11:30-13:30 I-7
Software design patterns (2) 15-mar-16 9:30-11:30 I-7
Software design patterns (3) 16-mar-16 11:30-13:30 I-7
Software design patterns (4) 21-mar-16 11:30-13:30 I-7
Software design patterns (5) 22-mar-16 9:30-11:30 I-7
Software validation (1) 23-mar-16 11:30-13:30 I-7
Software validation (2) 30-mar-16 11:30-13:30 I-7
Software validation (3) 04-apr-16 11:30-13:30 I-7
Software metrics 05-apr-16 9:30-11:30 I-7

Introduction" 8" Luca Mainetti"


Course calendar (part 2)"

Introduction to Java EE 06-apr-16 11:30-13:30 I-7


Introduction to Struts2 framework 11-apr-16 11:30-13:30 I-7
Struts2: Validation Framework 12-apr-16 9:30-11:30 I-7
Struts2: Interceptors - Tiles 13-apr-16 11:30-13:30 I-7
ORM: Hibernate framework 18-apr-16 11:30-13:30 I-7
ORM: Hibernate framework 19-apr-16 9:30-11:30 I-7
Software tools (1): Junit 20-apr-16 11:30-13:30 I-7
Software tools (2): Refactoring 26-apr-16 9:30-11:30 I-7
Software tools (3): Concurrent Versions System 27-apr-16 11:30-13:30 I-7

Introduction" 9" Luca Mainetti"


Course calendar (part 3)"

Project requirements presentation 02-mag-16 11:30-13:30 I-7


Introduction to Android and programming environment 03-mag-16 9:30-11:30 I-7
configuration
Base controls (Activity, Intent, Fragment, Views e Layout) 04-mag-16 11:30-13:30 I-7
Android and NFC API 08-mag-16 11:30-13:30 I-7
Android and NFC API 09-mag-16 9:30-11:30 I-7
Android and Arduino 10-mag-16 11:30-13:30 I-7
Android: Consuming REST Service 16-mag-16 11:30-13:30 I-7
Projects discussion 17-mag-16 8:30-11:30 I-7
Projects discussion 18-mag-16 11:30-13:30 I-7
Projects discussion 23-mag-16 11:30-13:30 I-7
Projects discussion 24-mag-16 8:30-11:30 I-7
Projects discussion 25-mag-16 11:30-13:30 I-7
Projects discussion 30-mag-16 11:30-13:30 I-7
Projects discussion 31-mag-16 8:30-11:30 I-7
Projects discussion 01-giu-16 11:30-13:30 I-7

Introduction" 10" Luca Mainetti"


Evaluation method"

The exam consists of!


A written test (10 points of 30) !
A software prototype implementation that will be discussed during an oral test (20
points of 30) !
Both written test and software prototype implementation are mandatory!
The software prototype can be developed in pairs!
The software system must be designed using UML, adopting standard
design patterns!
The software system must be developed starting from a MVC
framework (Struts2), using a structured programming language, and
must be systematically tested!
The software prototype must be developed following an agile process
and must be documented!
Delivered software will be checked using software similarity tools (e.g.
DIFF)!

Introduction" 11" Luca Mainetti"


Student effort"

CFU 9
Student effort (1 CFU = 25 hours) 225

Total classroom time (A1+B1+C1+D1) 148 CFU


Total student effort (A2+B2+C2+D2) 236,5 9,46

A1. Theory 30 CFU


A2. Student effort (hours) 105 4,2

B1. Practice 18 CFU


B2. Student effort (hours) 31,5 1,26

C1. Laboratory 0 CFU


C2. Student effort (hours) 0 0

D1. Project 100 CFU


D2. Student effort (hours) 100 4

Introduction" 12" Luca Mainetti"


For stages and thesis"

Android and IOS Apps!


For cultural heritage, education and other domains!
Interaction with IoT devices!
Arduino, ST Nucleo, BLE!
Iox (Internet of Everithings) platforms!
New concepts, new models, innovative architectures!
Modern (and modernization of) software systems!
Service Oriented Architectures (SOA), Software as a Service (SaaS)!

Introduction" 13" Luca Mainetti"

You might also like