Object Oriented Design e UML
La progettazione ad oggetti con UML e con i tool
Questo corso professionale è erogato presso aziende ed istituti di formazione (es. FSE Fondo Sociale Europeo). Tratta gli aspetti fondamentali della programmazione ad oggetti, spiega il modello OO, la sua terminologia base, ed i concetti fondamentali di progettazione ad oggetti ed ingegneria del software. Successivamente spiega in dettaglio UML e le metodologie basate su UML. Due ricchi casi di studio sono proposti e spiegati in classe, con l'ausilio di tool UML industriali. Questo corso è erogato sia in inglese che in italiano.
This professional course is administered within companies and professional training courses such as the ones from European Social Fund. This courseaddresses the fundamentals of Object Oriented Programming, explaining the OO Model, its basic terminology, and the fundamentals of design and softwareengineering. It then explains in detail UML and UML-based methodologies.Two case studies are proposed and discussed in class.
This course is administered both in english and italian.
Upcoming is a part on Design Patterns for OO reusability.
Per utilizzare il materiale è necessaria una password. Seguire il corso per ottenere la password.
You need a password to use this material. Attend class to get the password.
Una lezione di Progettazione UML in corso
References
Questo corso è già stato erogato presso:
- CISCO Photonics Italia (Milano)
- European Space Agency ESA-ESRIN Frascati (Roma)
- Intersistemi SpA (Roma)
- Mascherpa SpA (Milano)
- Advanced Network Solutions SpA (Milano)
- SpazioZeroUno SpA (Milano)
- Corsi FSE Regione Lombardia
- Information Technology Italia SpA (Milano) - Sopra Group
Programma del corso
- Ingegneria del Software: l'importanza della modellazione
- Storia di UML
- La filosofia UML e le Viste Architetturali
- Panoramica sui Diagrammi UML
- Primo Ciclo: il modello di un ospedale con casi d'uso, class diagram e sequence diagram
- Relazioni tra i diagrammi
- Secondo Ciclo: modellazione di un sistema di gestione progetto, con diagrammi e commenti
- La natura iterativa della modellazione, flussi di lavoro possibili
- Terzo Ciclo: tutti i dettagli su use case, collaboration, sequence, activity, state, object, component, deployment, con esempi e commenti
(L'approccio a UML è strutturato in tre cicli: per ciascun ciclo vengono forniti sempre maggiori dettagli su determinati formalismi, tecniche, e notazioni, ripassando brevemente i concetti trattati al ciclo precedente. Al termine del terzo ciclo, i partecipanti avranno un buona conoscenza degli elementi base di UML)
- Presentazione di Rational Rose 2001: funzionamento base ed esempi
- Utilizzo di Rational Rose 2001 per la modellazione e la progettazione
- Roundtrip engineering con Rational Rose: generazione di codice (forward) e reverse engineering
- Uso di Design Pattern e di Template
- Uso di Rational SoDA for Word per la generazione automatica dei rapporti di Analisi e di Progettazione. Creazione di un Template SoDA.
- La gestione dei requisiti (Cenni) con Rational RequisitePro
- La generazione automatica dei casi di test (Cenni) con Rational QualityArchitect
- Cenni sulla stima della dimensione del software con analisi a Function Point, applicata al modello OOSE/UML
- Discussione di un caso di studio in modalità interattiva con i partecipanti
- Caso Di Studio: Retroingegnerizzazione di interfacce e uso di Rose per la creazione rapida di implementazioni in forward engineering
- Discussione di un Caso di Studio Complesso
- Esercizio Autonomo: Svolgimento di un Tema riguardante un'applicazione simulata, in modalità autonoma o interattiva, utilizzando il tool.
- Discussione su alcuni Design Pattern con UML per l'aumento della riusabilità e strutturazione del software
Bibliografia:
- Inside the UML Rational Documentation
- The Unified Modeling Language User Guide, Booch, Rumbaugh, Jacobson. Addison Wesley
- UML In a Nutshell, Si Alhir, O'Reilly
Gli allievi dovranno disporre di una macchina con i seguenti requisiti minimi:
- 500 MB spazio libero su HD
- 128 MB RAM
- Windows 98 o superiore
Course Program (in English)
First Day
- Software Engineering: the importance of modeling
- Everything can be modeled, not just software
- History of UML
- The UML Philosophy and Architectural Views
- Overview of the UML Diagrams
- Diving In (first iteration): modeling a hospital with use cases, class, collaboration, sequence diagrams
- Establishing relationships between diagrams
- Diving In (second iteration): modeling a Project Management system with use cases, class, sequence diagrams
- Comments on the iterative nature of modeling, possible workflows
- Diving In (third iteration): full details on use case diagrams, collaboration diagrams, sequence diagrams, activity diagrams, state diagrams, class diagrams, object diagrams, component diagrams, deplyoment diagrams, all with examples and comments
(The first day uses three iterations: at each iteration more details are given about formalisms, techniques and adornments, reviewing briefly concepts of the previous iteration. At the end of the third iteration, attendees have a solid grasp of all the basic elements of UML)
Second Day
- Presentation of Argo UML: installation, basic operation and examples
- Presentation of Rational Rose 2000: basic operation and examples
- Discussion of a Case Study, showing a sample workflow of modeling with UML assisted by the tools
- Discussion of a second Case Study, more complex
- Optional: Discussion of Software Design Patterns with UML: Singleton, Abstract Factory, Mediator...
(The second day exploits information given in the previous day to show possible workflows of modeling with UML assisted by industry tools, applied in real cases, of different difficulty levels)
Bibliography:
- Inside the UML Rational Documentation
- The Unified Modeling Language User Guide, Booch, Rumbaugh, Jacobson. Addison Wesley
- UML In a Nutshell, Si Alhir, O'Reilly
Materiale per il corso In Italiano
Material for the English Course
Common Links and References
Testo di riferimento del corso in formato PDF
Course TextBook in PDF format
An interesting article about using UML for modeling real-time applications and systems