1.2 oferă o serie de exemple (atât pozitive, cât și negative) care indică impactul software-ului asupra societății noastre.
utilizarea software-ului în societatea noastră are un număr de efecte atât pozitive, cât și negative. În timp ce aspectele pozitive pot fi extrem de utile, cele negative ne oferă oarecum o cârjă. În general, software-ul nu este conceput pentru a ne „răni” în niciun fel, ci mai degrabă pentru a face lucrurile mai ușoare și mai eficiente pentru noi.
1.3 de exemplu, E-banking este un exemplu perfect de software care ne face viața mult mai ușoară. Totul în afara retragerii fizice a banilor din banca dvs. se poate face online. Puteți depune chiar și salariile acum prin simpla a lua o imagine de ea cu telefonul inteligent. Pe dezavantaj, că aceeași tehnologie poate fi folosit pentru a fura numerele de card de credit și de identitate în cazul în care se încadrează în mâini greșite. Același lucru cu software-ul anti-securitate.
există oameni care sunt plătiți bani buni pentru a intra în banca locală și a fura de la ei doar pentru a dovedi băncii că trebuie să-și îmbunătățească securitatea rețelei. În cele mai multe cazuri, băncile sunt mulțumitoare pentru acest tip de intruziune. Cu toate acestea, același software ar putea fi utilizat în scopuri criminale în care banca nu ar fi atât de mulțumită. Software-ul poate fi extrem de util și extrem de periculos, în funcție de cine îl folosește și cum.
1.4 Multe aplicații moderne se schimbă frecvent-înainte de a fi prezentate utilizatorului final și apoi după ce prima versiune a fost pusă în funcțiune. Sugerați câteva modalități de a construi software pentru a opri deteriorarea din cauza schimbării.
în primul rând, aplicațiile software ar trebui să poată fi întreținute. Ceea ce înseamnă că ar trebui să fie proiectat într-o măsură în care modificările pot fi făcute destul de ușor pe măsură ce aplicația crește. O modalitate de a minimiza deteriorarea datorată schimbării este de a permite încorporarea actualizărilor automate. Luați sistemul de operare Windows, de exemplu: are opțiunea de a permite actualizarea automată pentru platformele de securitate și firewall necesare pentru a se asigura că sistemul este întotdeauna „actualizat.”Deoarece aplicațiile anterioare sunt întotdeauna actualizate, este important să construiți software nou cu aceleași capabilități.
1.5 luați în considerare cele șapte categorii de software prezentate în secțiunea 1.1.2. Credeți că aceeași abordare a ingineriei software poate fi aplicată pentru fiecare? Explică-ți răspunsul.
milioane de ingineri software din întreaga lume lucrează din greu la proiectele software din una sau mai multe dintre aceste categorii. În unele cazuri, se construiesc noi sisteme, dar în multe altele, aplicațiile existente sunt corectate, adaptate și îmbunătățite. Din această cauză, poate fi necesară o abordare diferită a ingineriei software pentru categoriile individuale. Multe dintre programele la care lucrează inginerii software sunt extrem de vechi și continuă să fie actualizate. Prin urmare, este logic să nu utilizați aceeași abordare pentru un program existent pe care l-ați folosi pentru un program nou.
1.6 figura 1.3 plasează cele trei straturi de inginerie software deasupra unui strat intitulat „un accent de calitate.”Aceasta implică un program organizațional de calitate, cum ar fi managementul calității totale. Faceți un pic de cercetare și dezvoltați o schiță a principiilor cheie ale unui program de management al calității totale.
TQM poate fi definit ca gestionarea inițiativelor și procedurilor care vizează realizarea livrării de produse și servicii de calitate. O serie de principii cheie pot fi identificate în definirea TQM, inclusiv:
- managementul executiv-managementul de vârf ar trebui să acționeze ca principalul motor pentru TQM și să creeze un mediu care să asigure succesul acestuia.
- Training-angajații ar trebui să beneficieze de formare periodică cu privire la metodele și conceptele de calitate.
- Customer Focus – îmbunătățirea calității ar trebui să îmbunătățească satisfacția clienților.
- luarea deciziilor – deciziile de calitate trebuie luate pe baza măsurătorilor.
- metodologie și instrumente – utilizarea metodologiei și instrumentelor adecvate asigură identificarea, măsurarea și răspunsul consecvent la neconformități.
- îmbunătățirea continuă-companiile ar trebui să lucreze continuu pentru îmbunătățirea procedurilor de fabricație și de calitate.
- cultura companiei-cultura companiei ar trebui să vizeze dezvoltarea capacității angajaților de a lucra împreună pentru a îmbunătăți calitatea.
- implicarea angajaților – angajații ar trebui încurajați să fie proactivi în identificarea și abordarea problemelor legate de calitate.
1.7 este ingineria software aplicabilă atunci când sunt construite aplicații Web? Dacă da, cum ar putea fi modificat pentru a se potrivi caracteristicilor unice ale WebApps?
Software-ul a devenit profund încorporat în aproape fiecare aspect al vieții noastre. Ingineria Software este aplicabilă atunci când sunt construite programe noi și când programele existente sunt actualizate – inclusiv aplicațiile Web. Aplicațiile web sunt una dintre mai multe categorii distincte de software. Și totuși, se poate argumenta că aplicațiile web sunt diferite. Una dintre principalele modificări pe care le solicită WebApps este disponibilitatea. Utilizatorii de aplicații web populare solicită adesea acces 24/7/365. O altă caracteristică unică a WebApps este evoluția lor continuă.
spre deosebire de software-ul convențional de aplicații care evoluează pe o serie de versiuni planificate, distanțate cronologic, aplicațiile Web evoluează continuu. Când vine vorba de ingineria software aplicată aplicațiilor web, trebuie auzite multe voci. Aspectul unei aplicații web este o parte incontestabilă a apelului care va determina în cele din urmă succesul aplicațiilor.
1.8 pe măsură ce software-ul devine mai răspândit, riscurile pentru public (din cauza programelor defecte) devin o preocupare din ce în ce mai semnificativă. Dezvoltați un scenariu apocaliptic, dar realist, în care eșecul unui program de calculator ar putea face rău mare (fie economic, fie uman).
unul dintre primele scenarii tragice, dar realiste, care îmi vine în minte este eșecul unor programe specifice pe un avion. Programele computerizate majore de pe avioane prezintă același risc de eșec ca orice alt program și pot avea rezultate catastrofale. De exemplu, senzorul care detectează altitudinea unei aeronave permite pilotului să știe câte picioare este aeronava deasupra solului. Acest program este necesar în special atunci când condițiile meteorologice ar putea afecta vizibilitatea piloților pe pistă.
odată ce un avion de linie începe decent și se pregătește să aterizeze, pilotul folosește aceste programe pentru a ghida avionul spre o aterizare sigură. Dacă acest program ar eșua, iar vremea ar împiedica vizibilitatea piloților, pilotul ar putea să nu știe cât de departe se află de fapt. Accidentele aviatice se întâmplă tot timpul, iar sute de pasageri mor în fiecare an – mai ales din cauza programelor și instrumentelor eșuate ale aeronavei.
1.9 descrieți un cadru de proces în propriile cuvinte. Când spunem că activitățile cadru sunt aplicabile tuturor proiectelor, înseamnă aceasta că aceleași sarcini de lucru sunt aplicate pentru toate proiectele, indiferent de dimensiune și complexitate? Explică.
procesul de inginerie software nu se întâmplă doar magic fără un fel de ordine și planificare organizațională. Un cadru de proces creează fundamentul procesului de inginerie prin utilizarea unui număr mic de activități care sunt aplicabile tuturor proiectelor. Algoritmul pas cu pas pentru un cadru de proces este format din cinci activități: comunicare, planificare, modelare, construcție și implementare. Toate programele, indiferent de mărimea și complexitatea lor, se conformează acestor activități în această ordine. Deși detaliile procesului software vor fi destul de diferite pentru fiecare program, sarcinile implicate în cadru rămân aceleași.
1.10 activitățile umbrelă apar pe tot parcursul procesului software. Credeți că acestea sunt aplicate uniform pe parcursul procesului sau sunt unele concentrate într-una sau mai multe activități cadru.
în general, activitățile umbrelă sunt aplicate pe parcursul unui proiect software și ajută o echipă de software să gestioneze și să controleze progresul, calitatea, schimbarea și riscul. Deoarece procesul de inginerie software nu este un regim rigid care trebuie urmat tocmai de o echipă de software, procesul are mult spațiu pentru adaptare.
deși activitățile umbrelă care apar pe tot parcursul procesului sunt aplicate în general tuturor aspectelor procesului, ingineria ar trebui să fie agilă și adaptabilă; specifică problemei, proiectului, echipei și culturii organizaționale. Din această cauză, un proces adoptat pentru un proiect ar putea fi semnificativ diferit de un proces adoptat pentru un alt proiect, iar unele activități pot fi concentrate într-unul sau mai multe domenii.