Școala de vară 23 Iulie 2014 Adrian Iftene...
Transcript of Școala de vară 23 Iulie 2014 Adrian Iftene...
![Page 2: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/2.jpg)
Context
Motivație
Definiție
Etapele necesare dezvoltării aplicațiilor
Forward and Reverse Engineering
![Page 3: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/3.jpg)
Aplicații de dimensiuni mari (milioane de linii de cod) scrise pe durata a câteva luni, ani,…
Echipe de lucru: Project manageri, Analiști, Arhitecți, Programatori, Testeri, Ingineri de suport (de ordinul 10, 100, 1.000 de persoane,…)
Soluția acestor probleme este o soluție scrisă într-un limbaj de programare orientat-obiect
3
![Page 4: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/4.jpg)
Din ce în ce mai multe sisteme sunt controlate de software: controlul traficului (aerian, feroviar, auto, naval, etc.), băncile, telefonia mobilă, Internet
Economiile tuturor statelor depind de software
Ingineria programării propune teorii, metodologii și instrumente pentru dezvoltarea de software profesional
4
![Page 5: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/5.jpg)
1946 Goldstine și von Neumann: “1.000 de instrucțiuni reprezintă o limită superioară rezonabilă pentru complexitatea problemelor ce pot fi concepute ca rezolvabile cu ajutorul calculatorului”
Sistemul de rezervare a biletelor pentru compania aerian a KLM conținea, în anul 1992, două milioane de linii de cod în limbaj de asamblare
5
![Page 6: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/6.jpg)
Sistemul de operare System V versiunea 4.0 (UNIX) a fost obținut prin compilarea a 3.700.000 linii de cod
Programele scrise pentru naveta spațială NASA au circa 40 de milioane de linii de cod obiect
Pentru realizarea sistemului de operare IBM OS360 au fost necesari 5.000 de ani-om
6
![Page 7: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/7.jpg)
Facturi imense la energia electrică pentru pensionari, recalcularea pensiilor
IBM OS360 conținea la fiecare relansare 1.000 de greșeli. Resemnare...
7
![Page 8: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/8.jpg)
Programatorul ghinionist de la o bancă: Banca dorea să trimită la clienți prin poștă o scrisoare care să le semnaleze diverse servicii
Programatorul a scris un program ce selecta 2.000 de clienți și le scria o scrisoare personalizată
În procesul de testare acesta a folosit un nume fictiv de client Rich Bastard
Din păcate 2.000 de clienți au primit o scrisoare care începea "Dear Rich Bastard, ..."
8
![Page 9: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/9.jpg)
Sacramento: un dentist primește în căsuța poștală într-o săptămână 16.000 de formulare pentru plata taxelor – “It was a computer problem” a declarat un oficial
“Failure to convert English measures to metric values was the root cause of the loss of the Mars Climate Orbite…”
9
![Page 10: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/10.jpg)
Pierdere vehicul explorare Venus. Ah, era de fapt .,. in FOR!...
Sistem de avertizare anti-rachetă activat. Atacăm sau nu?
Ariane 5 explodeaza. Cost articii: 500.000.000$
10
![Page 11: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/11.jpg)
Prima definiție a ingineriei programării (NATO,1968): Ingineria programării este stabilirea și utilizarea de principii inginerești solide pentru a obține în mod economic programe care sunt sigure și funcționează eficient pe mașini de calcul concrete
O definiție mai recentă (și mai rezervată, IEEE Standard Glossary of Software Engineering Tehnology, 1983): Ingineria programării reprezintă abordarea sistematică a dezvoltării, funcționării, întreținerii, și retragerii din funcțiune a programelor
11
![Page 12: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/12.jpg)
Este o disciplină inginerească care se ocupă de toate aspectele dezvoltării unui program de dimensiuni mari, de către o echipă de dezvoltatori
Propune adoptarea unei abordări sistematice și organizate a procesului de dezvoltare software
Propune folosirea tehnicilor și instrumentelor adecvate având în vedere ◦ problema care trebuie rezolvată
◦ restricțiile impuse
◦ resursele disponibile
12
![Page 13: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/13.jpg)
Analiza cerințelor (Requirements analisys)
Proiectarea arhitecturală (Arhitectural design)
Proiectarea detaliată (Detailed design)
Scrierea codului (Implementation)
Integrarea componentelor (Integration)
Validare (Validation)
Verificare (Verification)
Întreținere (Maintenance)
13
![Page 14: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/14.jpg)
Se stabilește ce anume vrea clientul ca programul să facă
Scopul este înregistrarea cerințelor într-o manieră cât mai clară și mai fidelă
Probleme ◦ Comunicare
◦ Negociere
◦ Sfătuirea clientului
14
![Page 15: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/15.jpg)
Arhitecturală ◦ Din motive de complexitate, programele mari nu
pot fi concepute și implementate ca o singură bucată
◦ Programul este împărțit în module sau componente mai simple, care pot fi abordate individual
Detaliată ◦ Se proiectează fiecare modul al aplicației, în cele
mai mici detalii
15
![Page 16: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/16.jpg)
Implementare ◦ Proiectul detaliat este transpus într-un limbaj de
programare
◦ Acesta se realizează modular, pe structura rezultată la proiectarea arhitecturală
Integrare ◦ Modelul big-bang
◦ Modelul incremental
16
![Page 17: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/17.jpg)
Validare: ne asigurăm că programul îndeplinește cerințele utilizatorului ◦ Construim produsul corect?
Verificare: ne asigurăm că programul este stabil și că funcționează corect din punctul de vedere al dezvoltatorilor. ◦ Construim corect produsul?
17
![Page 18: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/18.jpg)
După livrare ◦ Sunt descoperite greșeli ce trebuie reparate
◦ Pot apărea schimbări în specificații
◦ Pot apărea noi cerințe
◦ Instruirea celor ce vor folosi produsul
Întreținere = gestionarea acestor tipuri de probleme
18
![Page 19: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/19.jpg)
Cum efectuăm activitațile indicate de etapele dezvoltării programelor
Exemple de modele de dezvoltare: ◦ Ad-hoc: descurcă-te cum poți
◦ Modelul în cascadă (cu feedback)
◦ Prototipizare
◦ Modelul în spirală
◦ RUP (Rational Unified Process)
◦ V-Model
◦ XP (Extreme Programming)
◦ Agile, Lean, Scrum
◦ MDD, AMDD
◦ TDD
19
![Page 20: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/20.jpg)
20
Ingineria
Cerințelor
Proiectarea
Arhitecturală
Proiectarea
Detaliată
Implementare
Testarea
Unităților
Testarea
Sistemului
Acceptare
• Winston W. Royce in 1970
![Page 21: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/21.jpg)
+: Împarte o sarcină complexă în pași mai mici
+: Ușor de administrat și controlat
+: Fiecare pas are ca rezultat un produs bine definit
+: Tot timpul știm unde ce am făcut până în acel moment și știm ce mai avem de făcut
-: Erorile se propagă între pași
-: Nu exista mecanisme de reparare a erorilor
21
![Page 22: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/22.jpg)
Clientul devine parte a echipei de dezvoltare
Frecvente distribuiri intermediare a părţii software, cu verificări şi validări imediate
Discuţii zilnice: ◦ Ce ai făcut ieri? (realizări)
◦ Ce ai de gând să faci până mâine? (de realizat)
◦ Care sunt problemele care te-ar putea încurca? (probleme/riscuri)
Transparenţă în planificare şi dezvoltare
Întâlniri frecvente pentru a monitoriza progresul
Nu sunt probleme ţinute sub covor
Eficienţa muncii: “să lucrezi mai multe ore" nu înseamnă neapărat “obţinerea mai multor rezultate"
22
![Page 23: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/23.jpg)
23
![Page 24: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/24.jpg)
24
![Page 25: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/25.jpg)
A traditional process of moving from high-level abstractions and logical to the implementation-independent designs to the physical implementation of a system
FE follows a sequence of going from requirements through designing its implementation
25
![Page 26: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/26.jpg)
Reverse engineering (RE) is the process of discovering the technological principles of a device, object or system through analysis of its structure, function and operation
To try to make a new device or program that does the same thing without copying anything from the original
Reverse engineering has its origins in the analysis of hardware for commercial or military advantage
26
![Page 27: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/27.jpg)
Interoperability
Lost documentation
Product analysis
Security auditing
Removal of copy protection, circumvention of access restrictions
Creation of unlicensed/unapproved duplicates
Academic/learning purposes
Curiosity
Competitive technical intelligence (understand what your competitor is actually doing versus what they say they are doing)
Learning: Learn from others mistakes 27
![Page 28: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/28.jpg)
Reverse engineering of mechanical devices
Reverse engineering of integrated circuits/smart
cards
Reverse engineering for military applications
Reverse engineering of software
28
![Page 29: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/29.jpg)
Involves measuring an object and then reconstructing it as a 3D model
The physical object can be measured using 3D scanning technologies like CMMs, laser scanners, structured light digitizers or computed tomography
29
![Page 30: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/30.jpg)
30
![Page 31: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/31.jpg)
31
![Page 32: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/32.jpg)
32
![Page 33: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/33.jpg)
Rapid prototyping
FullCure materials
33
![Page 34: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/34.jpg)
34
![Page 35: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/35.jpg)
35
![Page 36: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/36.jpg)
RE is an invasive and destructive form of analyzing a smart card
The attacker grinds away layer by layer of the smart card and takes pictures with an electron microscope
Engineers employ sensors to detect and prevent this attack
36
![Page 37: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/37.jpg)
37
![Page 38: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/38.jpg)
38
![Page 39: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/39.jpg)
Satellite TV
Security card
Phone card
Ticket card
Bank card
39
![Page 40: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/40.jpg)
Reverse engineering is often used by militaries in order to copy other nations' technologies, devices or information that have been obtained by regular troops in the fields or by intelligence operations
It was often used during the Second World War and the Cold War
Well-known examples from WWII and later include: rocket, missile, bombers, China has reversed many examples of US and Russian hardware, from fighter aircraft to missiles and HMMWV cars
40
![Page 41: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/41.jpg)
US – B-29 URSS – Tupolev Tu-4
41
![Page 42: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/42.jpg)
Chinese J-20, Black Eagle US F-22, Russian Sukhoi T-50
42
![Page 43: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/43.jpg)
US -AIM-9 Sidewinder Soviet - Vympel K-13
43
![Page 44: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/44.jpg)
44
![Page 45: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/45.jpg)
45
![Page 46: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/46.jpg)
46
![Page 47: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/47.jpg)
Reverse engineering is the process of analyzing a subject system to create representations of the system at a higher level of abstraction
In practice, two main types of RE emerge: ◦ Source code is available (but it is poorly documented)
◦ There is no source code available for the software
Black box testing in software engineering has a lot in common with reverse engineering
47
![Page 48: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/48.jpg)
48
![Page 49: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/49.jpg)
Decompilation of binaries for the Java platform can be accomplished using Jad or DJ Decompiler
The Samba software, which allows systems that are not running Microsoft Windows systems to share files with systems that are
OpenOffice.org is one party doing this for the Microsoft Office file formats
49
![Page 50: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/50.jpg)
public class Test
{
private int n;
private int m;
public static void main(String args[])
{
for(int i=1;i<10;i++)
System.out.println("Test");
}
}
50
![Page 51: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/51.jpg)
Link: http://www.steike.com/code/java-reverse-engineering/
jad.exe NumeFisier.class => NumeFisier.jad
51
![Page 52: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/52.jpg)
52
![Page 53: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/53.jpg)
File -> Import Sources...
53
![Page 54: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/54.jpg)
54
![Page 55: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/55.jpg)
Forward engineering: ◦ Diagrame de clasă -> .java files (ArgoUML)
◦ .java files -> .class files (NetBeans)
Reverse engineering:
◦ .class files -> .java files (JAD Decompiler)
◦ .java files -> Diagrame de Clasă (ArgoUML)
55
![Page 56: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/56.jpg)
Cursul, Laboratorul, Proiectul, Examenul
Context
Motivație
Definiție
Etapele necesare dezvoltării aplicațiilor
Forward and Reverse Engineering
![Page 57: Școala de vară 23 Iulie 2014 Adrian Iftene adiftene@info.uaicadiftene/Scoala/2014/ScoalaDeVara/Curs_SV.pdf · Din ce în ce mai multe sisteme sunt controlate de software: controlul](https://reader030.fdocuments.net/reader030/viewer/2022040710/5e100e58df720330c4508bc1/html5/thumbnails/57.jpg)
http://thor.info.uaic.ro/~adiftene/Scoala/2014/IP/