Ingegneria del So-ware (e Prova Finale) Luciano Baresi [email protected] Organizzazione dei corsi • Ingegneria del so-ware (7 crediB) – Lezioni: 42 ore – Esercitazioni: 28 ore • Prova finale (3 crediB) – Esercitazioni: 16 ore – Laboratorio: 32 ore 2 Chi siamo • Titolare del corso: Luciano Baresi – [email protected] • Esercitazioni – Alessandro Campi • Laboratorio 3 Orario • Lunedì (D0.3) – 13:15 – 15:15 • Martedì (S1.3) – 13:15 – 17:15 • Mercoledì (T0.2) – 10:15 – 12:15 • Venerdì (CE1) – 8:15 – 10:15 4 Programma • Programmazione nei linguaggi orientaB agli oggeW – Linguaggio Java • Principi di programmazione di rete e distribuita • Principi di programmazione delle interfacce utente • ProgeZazione orientata agli oggeW – Unified Modeling Language – Design paZern • Specifica di metodi e classi • Principi del test funzionale e struZurale 5 Materiale didaWco • Non esiste un libro di testo unico • hZp://home.deib.polimi.it/baresi/is.htm 6 ObieWvi • ProgeZazione e programmazione ad oggeW – Java/RMI/Swing – UML • Specifica rigorosa (per contraW) • ElemenB per il test sistemaBco dei programmi 7 Iniziamo? Ingegneria del So-ware • SeZore dell'informaBca che studia sistemi – complessi e di grandi dimensioni – naB dal lavoro di gruppo • QuesB sistemi – esistono in diverse versioni – hanno una durata di anni – sono soggeW a frequenB modifiche 9 Possibili definizioni • Approccio sistemaBco allo sviluppo, alla messa in opera e alla manutenzione del so-ware • Metodi tecnici e manageriali per prevedere e tenere soZo controllo i cosB per tuZa la vita ("lifecycle") dei prodoW so-ware • Come tuZe le ingegnerie: – Fornisce una guida per applicare la conoscenza scienBfica allo sviluppo di soluzioni (so-ware) "cost-‐ effecBve" per risolvere problemi praBci a beneficio dell'uomo 10 Processo e prodoZo • Processo – Come avviene lo sviluppo industriale del so-ware • ProdoZo – Che cosa viene prodoZo? Studiare i metodi da usare perché il processo porB allo sviluppo di prodoW di qualità 11 Ingegneria • ProgeZo normale/standard – Soluzione a un problema noto e ricorrente – Riuso di soluzioni note – Innovazione limitata • Bpico di discipline mature • ProgeZo innovaBvo – Soluzioni radicalmente nuove a problemi non noB • Occorre saper disBnguere tra i due 12 Confronto con ingegneria tradizionale • (Troppo) spesso viene traZata come “progeZo innovaBvo” • (Troppo) spesso viene praBcata in modo poco sistemaBco (ingegnerisBco/industriale) 13 Differenze • Ingegnerie tradizionali – prevale il progeZo di rouBne – progeZo di estremo deZaglio che produce le specifiche per la realizzazione – processo di produzione separato – progeW alternaBvi convalidaB aZraverso modelli – dopo il progeZo, pochi margini di cambiamento – processi standard per progeZo e produzione 14 Ingegneria del so-ware (1) • L’ingegneria civile ha alle spalle 3000 anni – Un patrimonio di conoscenze • Ciò è vero per quasi tuZe le ingegnerie • L’ingegneria del so-ware ha solo 45 anni 15 Ingegneria del so-ware (2) • Congelare le specifiche di prodoZo e di progeZo è spesso non realisBco • CambiamenB ed evoluzione spesso inevitabili – poichè il so-ware è il cuore dei processi sociali e di business – QuesB conBnuano ad evolvere 16 Il so-ware oggi • Il so-ware è parte essenziale di molB prodoW di largo consumo – Dal telefonino alla lavatrice, dall’automobile al forno • Spesso il so-ware non è il prodoZo, ma è una parte del prodoZo – Deve essere ingegnerizzato con il resto dell’applicazione • Il meccanismo delle patch non funziona in tuW quesB casi – Come faccio ad aZaccare la macchina ad Internet 17 18 Complessità, criBcità e dimensione • Fanno la vera differenza – Richiedono un approccio sistemaBco (ingegnerisBco) per poter oZenere la necessaria qualità controllando cosB e tempi • Secondo F. Brooks (The Mythical Man Month) – "programmare per se stesso" rispeZo a "programmare per altri" -‐> costo al quadrato – Aggiungere persone a un progeZo in ritardo lo ritarda ulteriormente 19 CHAOS report (I) RESOLUTION 2004 2006 2008 2010 2012 Successful 29% 35% 32% 37% 39% Failed 18% 19% 24% 21% 18% Challenged 53% 46% 44% 42% 43% Project resolution results from CHAOS research for years 2004 to 2012. OVERRUNS AND FEATURES Time and cost overruns, plus percentage of features delivered from CHAOS research for the years 2004 to 2012. 100 80 60 40 Features 20 Cost Time 0 2004 2006 2008 2010 2012 TIME 84% 72% 79% 71% 74% COST 56% 47% 54% 46% 59% FEATURES 64% 68% 67% 74% 69% Determining the relationship of project overruns to features delivered is an analytical process. An analyst reviews each challenged project. This year’s figures show a slight increase in both cost and time overruns. Cost overruns increased from 56% in 2004 to 59% in 2012. Time overruns also have gone up, from 71% in 2010 to 74% in 2012. The high point in time overruns was 2004 (84%). 20 CHAOS report (II) FACTORS OF SUCCESS FOR SMALL PROJECTS The current 2013 Factors of Success in the Factors of Success CKC are unchanged from 2012. We have Executive management support 20 developed a special version of the Factors User involvement 15 of Success for Small Projects using our new Optimization 15 Skilled resources 13 Project management expertise 12 CHAOS database and analytic tools. The small project version of the Factors of Success also Points Agile process 10 has executive sponsorship as the number one Clear business objectives 6 factor, but the prioritization of some of the Emotional maturity 5 other factors shifts. Execution 3 Tools and infrastructure 1 Executive Management Support: The most important person in the project is the executive sponsor. The executive sponsor is ultimately responsible for the Agile Process: Embodies the small project philosophy. CHAOS RESOLUTION success and failure of the project. We give executive TheBY agileLARGE process AND directlySMALL addressesPROJECTS user involvement, sponsorship 20 small project success points. executive support, and the other success factors. We Small Projects Project resolution for the Large Projects give the agile process 10 small project success points. User Involvement: CHAOS research clearly shows that calendar year 2012 in the projects that lack user involvement perform poorly. User Small Clear Business Objectives: A less important ingredient new CHAOS database. projects resolution are defined as participation has a major effect on project 10% for small projects than larger 20% projects. Still, the small projects lessproject than $1 project should have a business objective, though it might large or small; in fact, we give it 15% of ourwith small million in labor content and success points. be less clear. Even so, all projects 4% should align the large projects are considered organization’s goals and strategy, which is why it has 6 with moreIfthan $10 Optimization: Is in the third spot forprojects small projects. of the small project success points. 76% labor content. we defined optimization as a projectmillion with ainsmall labor Successful Failed Challenged 52% 38% content and fast delivery, it could be number one. Size and complexity trump all other factors. Optimization gets 15 small project success points. Skilled Resources: In the fourth position and with 13 small project success points, it may seem that skilled resources gets no respect, but that is not true. A project is made up of people, and success is on their shoulders. This is especially true for small projects. Emotional Maturity: Covers the emotional state of the project environment. Projects get resolved within the ecosystem; a healthy ecosystem produces more successful projects. Emotional maturity accounts for 5 small project success points. Execution: Is the process that governs and controls the project. Much of this factor focuses on financial controls and procedures. We give execution 3 small project success points. 21 ProgeZazione vs. Programmazione • Saper programmare non basta per essere un ingegnere del so-ware – programmatore • sviluppa un programma completo • partendo da specifiche fornite da altri • lavora individualmente – ingegnere del so-ware • • • • analizza problemi e domini applicaBvi coglie i requisiB e sviluppa specifiche progeZa componenB, potenzialmente riusabili lavora in un gruppo 22 ProgeZazione • Scomposizione di un sistema in moduli – scomporre un problema in soZo-‐problemi che possano essere risolB indipendentemente • Quali obieWvi della scomposizione? – governare la complessità • divide et impera – rendere efficiente il processo • sviluppo indipendente delle parB • Riduzione di confliW/incomprensioni fra gli sviluppatori 23
© Copyright 2024 Paperzz