SOFTWARE ENGINEERING
ING-INF/05 - 9 CFU - 1° Semester
Teaching Staff
ORAZIO TOMARCHIO
Detailed Course Content
- Introduction to Software Engineering
- Origins and motivations of Software Engineering. Basic definitions. Software life cycle. Software process model: waterfall, incremental, iterative/evolutionary, prototypal, spiral, unified process.
- Software requirements
- Functional and non-functional requirements. Requirement analysis and specification. Requirements engineering processes. Documenting requirements. Requirements validation.
- Software design
- Software design methodologies: top-down, structural methods, functional and object oriented strategies. Design quality: cohesion, coupling, software metrics. Architectural design. Architectural patterns. Object oriented analysis and design.
- UML software modeling
- Introduction to UML (Unified Modeling Language). UML and software life cycle. Requirements modeling with use cases. Class diagrams. Sequence and communication diagrams. State diagrams. Activity diagrams. Component and deployment diagrams. Case tools supporting UML.
- Design pattern
- The role of design patterns in the design and development of software systems. Creational, structural and behavioral patterns.
- Verification and validation
- Quality controls of software products: verification and validation. Software testing. Black-box and white-box testing. Test cases. Equivalence partitioning. JUnit.
- Software development management
- Software configuration management. Configuration item, versioning, configurations, repository. Versioning tools (CVS, SVN, Git). Build, release and branch management.
Textbook Information
- [LAR]
- Craig Larman
Applicare UML e i pattern – Analisi e progettazione orientata agli oggetti
Pearson Education Italia
- [FOW]
- M. Fowler
UML Distilled
Pearson Education Italia
- [GAM]
- Gamma, E., Helm, R., Johnson, R. e Vlissides, J.
Design Patterns: elementi per il riuso di software a oggetti
Addison Wesley
Open in PDF format Versione in italiano