Ingineria software: Ingineria software include tehnologia de dezvoltare software și tehnologia de management software și este o disciplină care studiază producția software. O combinație între tehnologia de management și tehnologia calculatoarelor.
Există patru etape de dezvoltare a calculatoarelor: tuburi electronice, tranzistori, circuite integrate și circuite integrate la scară largă
Dezvoltarea software necesită 3 procese și 8 etape:
Primul proces: definirea problemei, studiul de fezabilitate și analiza cerințelor Al doilea proces: proiectare generală, proiectare detaliată, programare, testare Al treilea proces: întreținerea
Studiu de fezabilitate: Poate acest software să facă acest lucru? Analiza cerințelor: siguranță, mediu de realizare
Ciclul de viață al software-ului este de 5-8 ani, iar costul se recuperează în 5 ani, iar profitul se obține în 3 ani
Cauzele crizei software: 1: Este legat de propriile sale caracteristici; 2: Persoana care a proiectat software-ul are o relație; 3: Arhitectura calculatoarelor, proiectarea hardware-ului pe termen lung, principiile de proiectare ale lui von Neumann.
Cum arată o criză software: 1: Estimarea costurilor și a programelor de dezvoltare software este adesea inexactă; 2: Utilizatorii sunt nemulțumiți de sistemul software finalizat din când în când; 3: Calitatea produselor software este adesea nesigură; (Calitate Garantată a Software-ului: Testare, Verificări) 4: Software-ul nu este adesea neîntreținut; (Nu este cod sursă, nu poate fi modificat, software-ul este confidențial, comportamentul comercial) 5: Software-ul nu are documentația corespunzătoare (documentele conțin confidențialitate tehnică) 6: Costul software-ului în proporția costurilor calculatoarelor crește de la an la an; 7: Productivitatea dezvoltării software este mult mai mică decât numărul aplicațiilor informatice. (Dezvoltarea software nu este la fel de rapidă ca cea hardware)
Abordări și metode de rezolvare a crizelor software: 1: Accelerarea dezvoltării unei noi generații de calculatoare; 2: Organizarea și planificarea, mijloace stricte de management pentru dezvoltarea software (dezvoltarea companiilor obișnuite); 3: Rezumați tehnologiile și metodele de succes ale software-ului și promovați-le. (Adesea organizează seminarii, publică lucrări și organizează schimburi academice) 4: Ar trebui să alegi un instrument bun de dezvoltare. De exemplu: unelte IDE.
Model de dezvoltare software: 1: Modul cascadă (cunoscut și ca: modul segmentat); Acest mod de dezvoltare este potrivit pentru situații în care cerințele software sunt relativ clare, tehnologia de dezvoltare este relativ matură, iar managementul ingineriei este relativ strict. Avantaje: Software-ul dezvoltat folosind acest mod are o structură bună.
2: Mod incremental Pornind de la o parte a analizei cerințelor, se stabilește mai întâi un sistem incomplet, apoi testează și rulează sistemul, apoi testează și rulează sistemul, obținând experiență și informații de feedback, astfel încât sistemul să fie continuu extins și îmbunătățit până când utilizatorul este mulțumit. (La început, nu puteam propune o cerință completă, variabilitatea era relativ puternică, software de cercetare, startup-uri) Avantaje: Folosind această metodă pentru dezvoltarea software-ului, rata de satisfacție a utilizatorilor este cea mai ridicată.
3: Modul de transformare Pornind de la specificația formală a cerințelor inițiale, sistemul final de program este obținut după o serie de transformări ale programului. Acest model necesită sprijinul unei teorii matematice riguroase și a unor tehnici formale și se află încă în faza de cercetare și experimentare.
Revizuire tehnică a software-ului și revizuire de management: 1: Rolul revizuirii tehnice Măsuri importante pentru asigurarea calității software-ului în timpul revizuirii tehnice și măsuri importante pentru reducerea costurilor software-ului în timpul revizuirii tehnice. (Costul calității) 2: Rolul revizuirii managementului Principalul mijloc de gestionare și control al proiectelor de dezvoltare software este cheia luării deciziilor în proiectele de dezvoltare software.
|