Inginerie Software c2

75
Inginerie Software Curs 2 Instructor : Conf. dr. Cristina Mndruª [email protected] Sites: http://sites.google.com/site/ingswcm http://web.info.uvt.ro/~cmindruta/Curs_IS_SwEng

Transcript of Inginerie Software c2

  • Inginerie SoftwareCurs 2

    Instructor : Conf. dr. Cristina [email protected]

    Sites: http://sites.google.com/site/ingswcmhttp://web.info.uvt.ro/~cmindruta/Curs_IS_SwEng

    id16690669 pdfMachine by Broadgun Software - a great PDF writer! - a great PDF creator! - http://www.pdfmachine.com http://www.broadgun.com

  • Site : http://sites.google.com/site/ingswcm

    Acces cu

    Google account : ingsw.student.uvt Password : ingswuvt

  • Fiind dat o colecie de linii de text (iruri) memorate ntr-un fiier, sortai-le n ordine alfabetic, i scriei-le n alt fiier.

    Un program simplu

    What is the format of the data?

    Cum trebuie stocate datele?

    Sortare ascendent sau descendent?

    Ce facem cu caracterele nealfabetice?

    Cum tratm liniile vide i fiierele vide?

    Cum trebuie tratatecondiiile de eroare?

    Ct de rapid trebuie s fie sortarea?

    Se estimeaz extinderea n viitor a programului?

    Ce fel de interfa trebuie s aib programul?

    Care este dimensiunea datelor de intrare?

    Pe ce platforme trebuie s poat fi executat programul?

    Cnd are clientul nevoie de program i ct e dispus s plteasc?

  • Rezumat; concluzii

    Un singur program Dezvoltat de o singur persoan Puini utilizatori

    Probleme: Cerine funcionale i atribute de calitate Constrngeri i decizii de proiectare Testare Estimare efort Detalii de implementare

    Activiti: nelegerea cerinelor Estimarea efortului i posibil planificarea dezvoltrii Proiectarea soluiei Implementarea soluiei Testarea corectitudinii i a acceptrii de ctre utilizator

    Un process (simplu).Documentaie minimal.

    Dar dac ?Sistem complex cu componente multiple.

  • Subiecte tratate

    Probleme ale dezvoltrii i asigurrii de suport pentru prdusele software

    Un program simplu Mrimea i complexitatea unui sistem Probleme tehnice i non-tehnice Probleme ale aplicaiilor de dimensiuni mari Eforturi de coordonare proces, produs i persoane

    OSUREOHPPDLFRPSOH[: Sistem stat de plat ipoteticStat de plat : (1) suma tuturor nregistrrilor financiare ale salariilor angajailor, bonusurilor i

    deducerilor. (2) sum pltit angajailor pentru serviciile oferite de acetia ntr-un anumit interval de timp.

  • Sistem stat de plat ipotetic Cerine

    Cerine funcionale: (exemple)

    Adugare, modificare, tergere nume i informaii personale asociate ale tuturor angajailor

    Adugare, modificare, tergere toate beneficiile asociate cu toi angajaii

    Care sunt informaiile asociate?Pe cine s ntreb? Utilizator, client, manager proiect?Trebuie s documentez rspunsurile?

    Ce nseamn toate beneficiile?Ce implicaii are posedarea unui beneficiu asupra plii unui angajat?Exist o list cu toate beneficiile posibile? Va fi aceasta modificat n viitor?

  • Sistem stat de plat ipotetic Cerine

    Cerine funcionale: (exemple)

    Adugare, modificare, tergere toate taxele i alte deduceri asociate tuturor angajailor

    Adugare, modificare, tergere toate veniturile brute asociate tuturor angajailor

    Adugare, modificare, tergere toi algoritmii relativi la calcularea plii nete pentru fiecare angajat

  • Sistem stat de plat ipotetic Cerine

    Care este ciclul de realizare a statului de plat?Care este termenul de transmitere a informaiilor (ex. cretere de salariu).

    Pentru a gestiona corect Cerinele funcionale trebuie nelese cunotinele specifice domeniului aplicaiei relative la problem.

    Cerine funcionale: (exemple)

    Generarea unui cec de plat sau a unui depozit bancar direct pentru fiecare angajat

  • Sistem stat de plat ipotetic Cerine

    Atribute de calitate (cerine extra-funcionale): (exemple)

    Performan

    Care este volumul tranzaciilor de plat?Care este viteza de procesare pentru o tranzacie?

    Pentru a gestiona corect atributele de calitate sunt necesare cunotine despre sistemul tehnic.

  • Sistem stat de plat ipotetic Cerine

    Atribute de calitate (cerine extra-funcionale): (exemple)

    Utilizabilitate

    Pentru a gestiona corect atributele de calitate sunt necesare cunotine despre informaii de interfa.

    Ce experien are utilizatorul n folosirea de interfee grafice?Care sunt profilele utilizatorilor? Cum se anuleaz i reproceseaz un cec de plat bazat pe o nregistrare incorect?

  • Sistem stat de plat ipotetic Cerine

    Aprox 15% din defectele software-lui se datoreaz erorilor din cerine.

    Erorile din cerine sunt foarte dificil de remediatGDFVXQWdescoperite trziu.

    REVIZUIREA specificaiilor cerinelor cu clienii / utilizatorii.

    Revizuiri graduale pe specificaii de cerine dezvoltate incremental. Revizuire a cerinelor finale integrate.

  • Sistem stat de plat ipotetic Proiectare

    Cerinele funcionale adaugare, actualizare, tergere trebuie grupate ntr-o singur component numit funcii administrative stat?

    DA !

    Grupare funcii nrudite n componente

  • Sistem stat de plat ipotetic Proiectare

    Trebuie s grupez funciile de procesare(calcularea tuturor deducerilor i a sumei nete de plat) ntr-o singur component numitprocesare stat?

    DA !

    Grupare funcii nrudite n componente

  • Sistem stat de plat ipotetic Proiectare

    S plasez toate funciile de interfa cu sisteme externe ntr-o component numit interfee stat.

    DA !

    Grupare funcii nrudite n componente

  • Sistem stat de plat ipotetic Proiectare

    Trebuie s fiu pregtit s gestionez erorile i excepiile. S adun rutinele de tratare a acestora ntr-o component de procesare a excepiilor?

    DA !

    Grupare funcii nrudite n componente

  • Sistem stat de plat ipotetic Proiectare

    Avantajele gruprii funciilor nrudite n componente:

    Ofer un grad de coeziune n cadrul componentei Corespunde fluxului business i contextului de procesare

    a statului

    Ofer o potenial asignare pe componente a sarcinilor de lucru

    Permite mpachetarea mai simpl a software-lui, pe componente.

  • Sistem stat de plat ipotetic Proiectare

    Proiectanii trebuie s considere att caracteristicile decoeziune ct i de cuplare ale unui model proiect software,

    urmrind

    coeziune puternicSHQWUXILHFDUHFRPSRQHQWi

    cuplare slab ntre componente.

  • Sistem stat de plat ipotetic Proiectare

    Servicii business : grupate n componente coezive.Servicii comune (ex. help, ecrane comune) : utilizate de mai multe

    componente grupate ntr-o component de servicii.

    Vedere bidimensional a entitilor modelului proiect

  • Sistem stat de plat ipotetic Proiectare

    Prototipul interfeei utilizator : Arhitectura ecranului

    Layout i stil Coninut Relaii de navigare

    Obs. In acest exemplu nu e o preocupare central de proiectare deoarece aplicaia este puternic orientat pe procesare n loturi de lucrri i slab interactiv.

  • Sistem stat de plat ipotetic Proiectare

    Proiectarea bazei de date :

    tabele

    chei

    Obs. In acest exemplu este o preocupare central de proiectare deoarece aplicaia lucreaz intensiv cu multe date.

  • Sistem stat de plat ipotetic Proiectare

    Competene de proiectare din perspectiva mrimii : Baz de date

    Reea

    Interfee de transmisie Interfee de imprimare Interfee cu sisteme de operare Medii de dezvoltare Domeniul aplicaie stat de plat

  • Sistem stat de plat ipotetic Proiectare

    Competene de proiectare din perspectiva complexitii : Performan Procesare erori

    Tratarea nregistrrilor angajat ce nu pot fi procesate includere exit-uri ctre procesare manual ireconcilierea nregistrrilor procesate manual cu sistemul stat de plat automat.

    Tratarea informaiilor conflictuale

  • Sistem stat de plat ipotetic Proiectare

    Tehnici aplicate:

    Descompunere funcional

    Sintez

    Definirea interaciunilor dintre componente

    Definirea interaciunilor din componente

  • Sistem stat de plat ipotetic Proiectare

    Diferene fa de proiectarea unui program cu un singur modul:

    Disciplin superioar

    Principii de ghidare suplimentare

    Echipe cu mai muli membri

  • Sistem stat de plat ipotetic Codificare module

    Pentru fiecare unitate funcional dintr-o component dat construii una sau mai multe uniti de programare(module):

    Codificai layout-ul exact al interfeei ecran ntr-un limbaj de programare dat

    Codificai logicaH[DFWde funcionare ntr-un limbaj de programare dat

    Codificai logicaH[DFWGHacces la date i de stocare a acestora, ntr-un limbaj de programare dat

    Codificai logicaH[DFWGHinterfa ntr-un limbaj de programare dat

  • Sistem stat de plat ipotetic Codificare module

    Stabilii standarde n cazul mai multor uniti de programare, pentru:

    Convenii de numire pentru identificarea unic a modulului ntr-o ierarhie de componente i module

    Comentarii pentru descriere : condiii de intrare i de ieire din modul, date vitale pentru procesare, funcie urmrit.

    Mesaje de eroare

  • Sistem stat de plat ipotetic Testare module

    La nivel de modul :

    Testare a fiecrei uniti de programare (modul) : Setarea condiiilor modulului Alegerea datelor de intrare potrivite Rularea modulului i observarea comportamentului su

    prin verificarea ieirilor.

    Remediere eroare descoperit

    Re-testare modul

  • Sistem stat de plat ipotetic Integrare i testare funcionalitate

    La nivel de unitate funcional :

    Integrarea (compilare i editare de legturi) tuturor modulelor testate n cadrul unitii funcionale corespunztoare.

    Aplicarea cazurilor de testare1 asupra unitii funcionale.Remedierea erorilor n modulele specifice.Re-testarea unitii funcionale.

    1Cazurile de testare (scenarii) sunt proiectate pe baza cazurilor de utilizare(scenarii) care sunt derivate din cerinele funcionale ale sistemului.

  • Sistem stat de plat ipotetic Integrare i testare funcionalitate

    La nivel de unitate funcional :

    Dup ce testarea funcional a fost trecut, blocareamodulelor din unitatea funcional fa de modificri ulterioare.

    Aplicarea unui mecanism de management al configuraiilor.Acesta poate fi automatizat utiliznd unelte pentru managementul configuraiilor (ex. CVS, Subversion,)

  • Sistem stat de plat ipotetic Lansare

    Integrarea tuturor componentelor i testarea pentru a ne asigura c ntreg sistemul funcioneaz ca ansamblu i n contextul de la utilizatorul final.

    Detectarea problemelor la interfaa sistemului.Detectarea problemelor de interaciune ntre componente.Remedierea problemelor descoperite. Re-testareaILHFUXL modul modificat, unitilor funcionale

    corelate i sistemului n ansamblu.

    Cnd nu mai apar probleme, protejarea acestei versiuni asistemului (release) fa de modificri ulterioare.

  • Sistem stat de plat ipotetic Lansare

    Educarea utilizatorilor pentru utilizarea sistemului: Pregtirea materialului de instruire Instruirea utilizatorilor

    Pregtirea personalului de asisten tehnic instruit n: Sistemul stat de plat Contexte utilizator Instrumente necesare n acordare de asisten

    utilizatorilor

    LANSARE (RELEASE) sistem stat de plat.

  • Sistem stat de plat ipotetic Suport i ntreinere

    Aplicaie simpl : nu constituie o problem major.

    Aplicaie complex : poate necesita un set foarte complex de activiti.

  • Sistem stat de plat ipotetic Suport i ntreinere

    Aplicaie complex : poate necesita un set foarte complex de activiti.

    Pe cine apeleaz utilizatorul (dup ce a consultat manualul utilizator) cnd aplicaia se oprete i afieaz un mesaj cu mai multe opiuni pentru utilizator nainte de ca sistemul s poat continua procesarea?

    Pe cine apeleaz utilizatorul cnd banca a modificat interfaa de transfer direct a sumelor pltite?

    Pe cine apeleaz utilizatorul cnd sistemul stat de plat expuneRproblem de comportament dup remedierea unei probleme anterioare?

  • Sistem stat de plat ipotetic Suport i ntreinere

    Estimarea i alocarea resursei umane, bazat pe: Numrul ateptat de clieni i utilizatori Numrul i tipurile problemelor cunoscute ce existau la lansarea

    sistemului

    Estimarea numrului de probleme ce vor fi descoperite de utilizator Gradul instruirii utilizatorilor Gradul instruirii personalului de asisten utilizator Numrul personalului de dezvoltare determint s se implice n

    asigurare de asisten utilizator Numrul estimat de lansri pentru remediere probleme i pentru

    modificri funcionale.

  • Sistem stat de plat ipotetic Suport i ntreinere

    Se consider cel puin dou grupuri de personal de asisten tehnic:

    Un grup ce rspunde i gestioneaz utilizarea sistemului i rezolv problemele simple

    Competene: comunicare, cunoaterea utilizrii sistemului

    Un grup ce remediaz problemele dificile i implementeaz modificrile ulterioare.

    Competene: proiectare, codificare

    Obs. Organizaia de asisten tehnic i ntreinere este comparabil n dimensiune i complexitate cu echipa original de dezvoltare.

  • Subiecte tratate

    Probleme ale dezvoltrii i asigurrii de suport pentru prdusele software

    Un program simplu Mrimea i complexitatea unui sistem Probleme tehnice i non-tehnice Probleme ale aplicaiilor de dimensiuni mari Eforturi de coordonare proces, produs i persoane

  • Eforturi de coordonare

    Ultimul exemplu demonstreaz necesitatea mai multor activiti ale ingineriei software (specificarea i analiza cerinelor, proiectarea, implementatarea, testarea i integrarea, asisten tehnic,).

    Sisteme mari i complexe scalare a: Procesului necesar Structurii de proiectare i coninutului produsului Personalului necesar

  • Eforturi de coordonare

    Proces:

    anii 1990 - mbuntit (extins, complicat) prin: Mai multe revizuiri, inspecii, testri, ntruniri de lucru Eforturi mari pentru asigurarea calitii i realizarea de

    msurtori cu scopul de a preveni, detecta i corecta problemele, a mbunti calitatea software-lui i a crete productivitatea dezvoltatorilor de software.

    anii 2000 simplificat pentru a rspunde provocrilor referitoare la timp de lansare i la cost ale pieii de produse software.

    Nu exist un proces valabil n orice situaie !!!

  • Eforturi de coordonare

    Produs:Produsul software conine: Codul executabil Documentaie: specificaiile cerinelor, modelul proiect,

    scenariile testelor funcionale, manualul utilizator Kit instruire utilizator (optional) Suport (optional)

  • Eforturi de coordonare

    Produs:

    Motivaie coordonare modificri: O coeziune iniial puternic i o cuplare slab se vor

    eroda pe msur ce se aplic modificri. Crete complexitatea cresc eforturile de testare

    Cum s proiectm modificrile ?Cum s coordonm modificrile ?

  • Eforturi de coordonare

    Persoane:

    Resursa uman este crucial n dezvoltarea i asigurarea de suport pentru produse software !!!

    Industria de software este nc labor intensive (! Munc intelectual de nalt calificare !)

    Cum s coordonm activitile persoanelor implicate n dezvoltarea produsului software ?

    Cum gestionm resursa uman ?

  • Ce ?INGINERIA SOFTWARE !

    De ce?

    Cum?

    Cine?

    Cnd?

    Q&A

  • Motivaii pentru inginerie software

    Economiile TUTUROR rilor dezvoltate sunt dependente de software.

    Din ce n ce mai multe sisteme sunt controlate prin software.

    Cheltuielile pentru software reprezint o parte semnificativ din PNB n toate rile dezvoltate.

    Apar din ce n ce mai multe cerine pentru sisteme software mai mari i mai complexe.

    Multe proiecte software au euat.

    Apar defecte la sisteme software.

  • Euarea proiectelor

    Factorii de eec cei mai importani: Lips de informaii de la utilizator Cerine i specificaii incomplete Cerine i specificaii instabile Lips resurse

    Chaos Report 1995 doar 16% din proiecte sunt complet realizate cu succes.

    Rspunsuri la sondaje:

    Factorii de succes cei mai importani: Implicarea utilizatorului Suport din partea managementului executiv Declaraii clare ale cerinelor Planificare corespunztoare

  • Euarea produsului

    Procentul mediu al erorilor funcie de originea lor:

    DAR acestea au costuri diferite, cele mai costisitoare fiind erorile provenite din cerine.

  • Euarea produsului

    Alte surse de eec sunt management, comunicare sau instruire defectuoase.

    Strategii de baz pentru management:

    Atenie concentrat pe contextul dezvoltrii software-lui

    Proces de dezvoltare disciplinat Utilizarea metodic a metricelor pentru a msura intele

    de cost, timp i performan.

  • InginerieDefiniii :

    (wikipedia) Disciplina, arta, competena, profesiunea i tehnologia de a achiziiona i aplica cunotine tiinifice, matematice, economice, sociale i practice pentru a proiecta i construi structuri, maini, dispozitive, sisteme, materiale i procese.

    (ECPD) The creative application of scientific principles to design or develop structures, machines, apparatus, or manufacturing processes, or works utiliyzing them singly or in combination; or to construct or operate the same with full cognizance of their design; or to forecast their behavior under specific operating conditions; all as respects an intended function, economics of operation and safety to life and property.

  • Produsul software

    Def. Produs software = programe de calculator i documentaia asociat (cum ar fi cerine, modele de proiectare i manuale utilizator).

    Metode pentru realizare de software nou:

    Dezvoltare de programe noi

    Configurare de sisteme software generice

    Reutilizare software existent.

  • Produsul software

    Def. Produs software = programe de calculator i documentaia asociat (cum ar fi cerine, modele de proiectare i manuale utilizator).

    Specificul produsului software: Intangibil Uor de reprodus costul este dat de dezvoltarea i nu de

    manufacturarea lui Uor de modificat Nu se consum

  • Ingineria software

    Def. Ingineria software = (1) aplicarea unei abordri sistematice, disciplinat, cuantificabil la dezvoltarea, operarea, ntreinerea software-lui; adic, aplicarea ingineriei la software. (2) studiul abordrilor din (1) . (IEEE)

    Def. Ingineria software = disciplin de inginerie care se ocup cu toate aspectele producerii de software, din fazele iniiale ale specificrii sistemului pn la ntreinerea sistemului dup darea lui n folosin. (Ian Sommerville, 2007)

  • Ingineria software

    Def. Ingineria software = disciplina referitoare la dezvoltarea i ntreinerea de sisteme software care se comport fiabil i eficient, se pot dezvolta i ntreine cu preuri accesibile, i satisfac toate cerinele pe care clienii le-au definit pentru ele. (Computing Curricula 2005, ACM, AIS, IEEE-CS )

    Integreaz principii de matematic i tiina calculatoarelor cu practici de inginerie dezvoltate pentru artefacte fizice, tangibile.

  • Inginerul software

    Inginer software LQJLQHUFDUHDSOLFSULQFLSLLOHLQJLQHULHLsoftware la proiectarea, dezvoltarea, testarea, i evoluia produselor.

    Inginerii software trebuie s: adopte o abordare sistematic i organizat a muncii lor utilizeze unelte i tehnici corespunztoare conform cu:

    problema de rezolvat, constrngerile de dezvoltare, resursele disponibile.

  • Inginerul software

    Responsabiliti:

    Proiectarea, dezvoltarea, implementarea i testarea aplicaiilor mpreun cu evaluarea produsului.

    Proiectarea i crearea de software conform cerinelor clientului

    Dezvoltarea de soluii simple i eficiente pentru sarcini complexe

    Proiectarea i generarea de software bazate pe interaciunea cu programatorii i clienii

  • Inginerul software

    Software Engineer Job Responsibilities:

    - Will have to understand and learn new technologies.- Explain the client requirements to the programmers.- Understand the tactics and line of design.- Develop good communication and interaction with the team members for better outcome.- Explain the restraints of technology to the business managers.- Apply real time computation in to practice.- Manage and support multiple projects.- Adapt to different technical environments.- Upgrade with the latest technology.- Development and testing of the applications.- Ensure the performance of the software product.- Conduct quality analysis.- Will have to easily adapt to updated hardware and software fields.- Evaluation of the developed software to ensure the quality and to check whether it meets the required

    standards.- Review various business plans.- Is responsible for full-lifecycle application growth.- Design, code and debug applications in several software languages.

  • Procesul software

    Def. Procesul software - set structurat de activiti ce au ca scopdezvoltarea i evoluia software-lui.

    Activiti generice ce apar n toate procesele software: Specificare

    definirea funciilor sistemului i a constrngerilor n dezvoltarea sa Dezvoltare

    producerea sistemului software Validare

    verificarea faptului c software-ul produs este ceea ce vrea clientul Evoluie

    modificarea software-lui ca rspuns la modificarea cerinelor.

  • Model de proces software

    Def. Un model de proces software este o reprezentare simplificat a unui proces software, prezentat dintr-o perspectiv specific.

    Exemple de perspective ale procesului sunt Perspectiva fluxului de lucru secven de activiti; Perspectiva fluxului de date fluxul informaiilor; Perspectiva rol/actiune cine ce face.

    Modele generice de procese Cascad; Dezvoltare incremental; Inginerie software orientat pe reutilizare.

  • Metode ale ingineriei software

    Def. Metodele ingineriei software sunt abordri structurate ale dezvoltrii de software care includ modele de sisteme, notaii, reguli, recomandri de proiectare i ghidare proces.

    Descrieri de modeleDescrieri de modele grafice ce trebuie produse; ReguliConstrngeri aplicate modelelor sistemului; RecomandriSfaturi referitoare la bune practici de proiectare; Ghidare procesCe activiti trebuie urmate i cum.

  • CASE (Computer-Aided Software Engineering)

    Def. CASE sunt sisteme software destinate s furnizeze suport automat pentru activitile procesului software.

    Sistemele CASE sunt deseori utilizate pentru a oferi suport unor metode.

    Upper-CASE Instrumente utilizate n activitile din primele etape ale

    procesului (specificare cerine, proiectare); Lower-CASE

    Instrumente utilizate n activitile din etapele ulterioare ale procesului (ex. programare, depanare, testare).

    Exemple ?

  • Atribute ale unui software de calitate

    Software-ul trebuie s furnizeze utilizatorului funcionalitatea iperformana solicitate i trebuie s fie mentenabil, de ncrederei acceptabil.

    Mentenabilitate Software-ul trebuie s evolueze n sensul ndeplinirii de cerine n schimbare;De ncredere Software-ul trebuie s inspire ncredere;Eficien Software-ul nu trebuie s fac risip de resursele sistemului;Acceptabilitate Software-ul trebuie s fie acceptat de ctre utilizatorii pentru care a fost

    proiectat. Aceasta nseamn c trebuie s poat fi neles, utilizabil i compatibil cu alte sisteme.

  • Responsabilitate profesional i etic

    Ingineria software implic responsabiliti mai largi dectsimpla aplicare a competenelor tehnice.

    Inginerii software trebuie s aib un comportament onesti s manifeste responsabilitate etic pentru a firespectai ca profesioniti.

    Comportamentul etic nseamn mai mult dect simplasusinere a legii.

  • Probleme de responsabilitate profesional i etic

    Confidenialitate Inginerii trebuie s respecte confidenialitatea

    angajatorului i a clienilor, indiferent dac a fost sau nu semnat un contract de confidenialitate.

    Competen Inginerii trebuie s-i reprezinte corect nivelul de

    competen. Ei nu trebuie s accepte sarcini care nu se ncadreaz n competenele pe care le dein.

  • Probleme de responsabilitate profesional i etic

    Drepturi de proprietate intelectual Inginerii trebuie s fie contieni de legile locale care

    guverneaz utilizarea proprietii intelectuale, cum ar fipatente, copyright, etc. Ei trebuie s fie ateni n a se asigurac este protejat proprietatea intelectual a angajatorului i a clienilor.

    Abuzarea calculatorului Inginerii software nu trebuie s-i utilizeze cunotinele

    tehnice pentru a abuza de calculatoarele altor persoane. Abuzarea calculatoarelor variaz de la relativ trivial (ex. jocpe calculator) la extrem de serios (diseminare de virui).

  • Codul de etic ACM/IEEE

    Societile profesionale din USA au cooperat n vederea producerii unui cod de practic etic.

    Membrii acestor organizaii semneaz un cod de practic etic n momentul aderrii. Codul conine Opt Principii relativ la comportamentul i deciziile inginerilor software

    profesioniti, incluznd liber-profesionitii, educatorii, managerii, supervizorii i cei care fac politicile, precum i instructorii i studenii acestei profesiuni.

    Preambul Inginerii software trebuie s se angajeze n a face din analiza,

    specificarea, proiectarea, dezvoltarea, testarea i ntreinereasoftware-lui o profesiune folositoare i respectat.

    Conform cu angajamentul lor relativ la sntatea, sigurana ibunstarea publicului, inginerii software trebuie s adere la urmtoarele Opt Principii:

  • Codul de etic - principiile

    PUBLIC Inginerii software trebuie s acioneze n concordan cu

    interesul public.

    CLIENT I ANGAJATOR Inginerii software trebuie s acioneze ntr-o manier care s

    reprezinte cel mai bine interesele angajatorului i ale clientului, n concordan cu interesul public.

    PRODUS Inginerii software trebuie s asigure faptul c produsele lor i

    modificrile acestora respect cele mai nalte standardeprofesionale.

  • Codul de etic - principiile

    PUBLIC Inginerii software trebuie s acioneze n concordan cu

    interesul public.

    CLIENT I ANGAJATOR Inginerii software trebuie s acioneze ntr-o manier care s

    reprezinte cel mai bine interesele angajatorului i ale clientului, n concordan cu interesul public.

    PRODUS Inginerii software trebuie s asigure faptul c produsele lor i

    modificrile acestora respect cele mai nalte standardeprofesionale.

  • Codul de etic - principiile

    DISCERNMNT Inginerii software trebuie s-i pstreze integritatea i

    independena n opiniile profesionale.

    MANAGEMENT Managerii i conductorii din ingineria software trebuie s

    subscrie la i s promoveze o abordare etic a managementului dezvoltrii i ntreinerii de software.

    PROFESIUNE Inginerii software trebuie s promoveze integritatea i reputaia

    profesiunii n concordan cu interesul public.

  • Codul de etic - principiile

    COLEGIALITATE Inginerii software trebuie s fie cinstii i s-i sprijine colegii.

    SELF Inginerii software trebuie s se perfecioneze continuu relativ la

    practicarea profesiunii i trebuie s promoveze o abordare eticn practicarea acesteia.

  • Dileme etice

    Dezacordul de principiu cu politicile managementuluisuperior.

    Angajatorul acioneaz ntr-un mod lipsit de etic ilanseaz un sistem critic din punct de vedere al siguranei fr a finaliza testarea acestuia.

    Participarea la dezvoltarea de sisteme militare saunucleare.

  • Computing

    Computing orice activitate orientat pe obiectiv, care necesit, beneficiaz de sau creaz calculatoare.

    Disciplinele fundamentale: Computer Engineering Computer Science Information Systems Information Technology Software Engineering

    Computing Curricula 2005 The Overview Report, A cooperative project of ACM, AIS, IEEE-CS

  • Computing

    Computing Curricula 2005 The Overview Report, A cooperative project of ACM, AIS, IEEE-CS

  • Computing

    Computing Curricula 2005 The Overview Report, A cooperative project of ACM, AIS, IEEE-CS

  • Computing

    Computing Curricula 2005 The Overview Report, A cooperative project of ACM, AIS, IEEE-CS

  • Computing

    Computing Curricula 2005 The Overview Report, A cooperative project of ACM, AIS, IEEE-CS

  • Computing

    Computing Curricula 2005 The Overview Report, A cooperative project of ACM, AIS, IEEE-CS

  • Computing

    Computing Curricula 2005 The Overview Report, A cooperative project of ACM, AIS, IEEE-CS