Ingineria Sistemelor de Programe

Curs
8/10 (1 vot)
Domeniu: Automatică
Conține 13 fișiere: pdf
Pagini : 187 în total
Cuvinte : 56336
Mărime: 4.97MB (arhivat)
Publicat de: Iurie Cristea
Puncte necesare: 0

Extras din curs

INTRODUCERE

Ingineria software a parcurs o cale lungă începând cu 1968, an în care acest termen a fost

utilizat pentru prima oară la o conferinţă NATO. Iar de atunci software-ul a pătruns în viaţa

fiecăruia dintre noi în diverse moduri, aşa cum puţini anticipaseră chiar cu un deceniu în urmă.

Aşadar cunoaşterea noţiunilor de bază legate de teoria şi practica ingineriei software este esenţială

pentru înţelegerea tehnicilor de construire a unui software performant şi de asemenea a metodelor

de evaluare a riscurilor şi oportunităţilor pe care software-ul le oferă vieţii noastre de zi cu zi.

În anul 1946 Goldstine şi von Neumann apreciau că 1000 de instrucţiuni reprezintă o limită

superioară rezonabilă pentru complexitatea problemelor ce pot fi concepute ca rezolvabile cu

ajutorul calculatorului. După ce a prevăzut că nici un program pentru calculatoare personale nu va

necesita vreodată mai mult de 64 KB de memorie RAM, Bill Gates a admis în 1995 că lucrurile sau

schimbat în ultimele două decenii.

Următoarele exemple oferă o imagine asupra gradului de complexitate la care au ajuns

programele:

• Sistemul de rezervare a biletelor pentru compania aeriană KLM conţinea, în anul 1992, două

milioane de linii de cod în limbaj de asamblare;

• Sistemul de operare System V versiunea 4.0 (UNIX) a fost obţinut prin compilarea a

3700000 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 5000 de ani-om.

Pentru a contracara ceea ce se prefigura ca fiind o criză a programării, a fost propus în anul

1968 termenul de “ingineria software” (software engineering), într-un mod oarecum provocator. Se

dorea ca arta programării să împrumute din rigoarea stiinţelor inginereşti pentru a putea livra

programe la timp şi în mod economic.

Definiţii:

IEEE Standard Glossary of Software Engineering Terminology (1990, 1991)

Aplicarea unei abordări sistematice, disciplinate, cuantificabile la realizarea, operarea şi

întreţinerea software-ului.

Fritz Bauer (1968)

Stabilirea şi utilizarea unor principii inginereşti în scopul realizării în mod economic

produse software fiabile care funcţionează eficient pe maşini reale.

Morven Gentlemen (1990)

Utilizarea metodologiilor , instrumentelor şi tehnicilor de rezolvare a problemelor practice

care apar în construcţia , instalarea , întreţinerea şi evoluţia produselor software.

Stephen Schach (1990)

O disciplină având drept obiectiv producţia unui software de calitate, livrat la termen, cu

respectarea bugetului şi care satisface cerinţele stabilite.

Boehm (1979)

Aplicarea practică a cunoştinţelor ştiinţifice în proiectarea şi construcţia programelor şi a

documentaţiei asociate necesare pentru dezvoltarea, operarea şi întreţinerii acestora.

Dennis (1975)

Ingineria software este aplicarea principiilor, aptitudinilor şi arta proiectării si construcţiei

programelor şi sistemelor de programe.

Fairley (1985)

Ingineria software este disciplina tehnică şi managerială având ca obiect producţia

sistematică şi întreţinerea produselor informatice care sunt realizate şi modificate în timp în condiţii

economice.

O definiţie cuprinzătoare a fost prezentată de Bruegge şi Dutoit în Object-Oriented

Software Engineering [2000] conform căreia Ingineria software este:

- activitate de modelare - probleme complexe sunt tratate prin modelare, atenţia fiind

concentrată asupra detaliilor semnificative si ignorând restul.

• modelul - o abstractizare a realităţii

• analiza - construcţia unui model al domeniului problemei

• proiectarea - construirea unui model pentru domeniul soluţiei

În metodele OO, modelul domeniului soluţiei este o extensie a modelului domeniului

problemei, astfel încât structura software-ului reflectă structura problemei.

- activitate de rezolvare a problemelor - modelele folosite pentru a căuta o soluţie acceptabilă

sunt:

• efectuarea de experimente

• reutilizarea unor soluţii model (reuses pattern solutions)

• evoluţia incrementală a sistemului spre o variantă acceptată de client

• revizuirea răspunsului la schimbări

- activitate de achiziţionare de informaţie-în modelare aplicaţiei şi a domeniului soluţiei, se

colectează datele, se organizează in informaţii şi se formalizează în cunoştinţe. Această

activitate este neliniară în sensul că achiziţia de noi informaţii poate invalida cunoştinţele

precedente şi se caracterizează prin:

• dezvoltare bazata pe risc - identificarea componentelor cu risc mare pentru a evita

surprizele ulterioare

• dezvoltare pe probleme (issue-based development) - execuţia in paralel a activităţilor de

dezvoltare, organizarea făcându-se ţinând cont de problemele care sunt încă nerezolvate

• dezvoltare iterativa – proiectarea si implementarea la început a părţilor cu risc ridicat

(dificile)

- activitate raţională-logică – realizatorii de software trebuie să înţeleagă contextul în care au

fost luate deciziile şi logica ce stă in spatele lor pentru a înţelege implicaţiile unei schimbări

propuse atunci când decizia este reanalizată; utilă în cazul unor sisteme care să schimbă în mod

frecvent precum şi utilă in etapa de întreţinere

Clasificarea aplicaţiilor software

• Sisteme de operare şi software de sistem

• Software timp real – restricţii timp de răspuns

• Sisteme informatice – baze de date

• Software ştiinţific

• Software inclus (ascensoare, telefoane, aparatură casnică)

Conținut arhivă zip

  • C1_introducere.pdf
  • C10_Proiectarea_sistemelor_software.pdf
  • C11_Implementare.pdf
  • C12_Testarea_sistemelor_software.pdf
  • C13_Estimare_costuri_curs.pdf
  • C2_Modele _de dezvoltare.pdf
  • C3_Anexa1_Exemplu_DCU.pdf
  • C3_Anexa2_Exemplu_DCU.pdf
  • C3_ingineria_cerintelor.pdf
  • C4_is_curs_4.pdf
  • C5_C6_is_curs_5_6.pdf
  • C7_C8_UML.pdf
  • C9_Exprimarea_constrangerilor_in_OCL.pdf

Alții au mai descărcat și

Ingineria Sistemelor de Programe

Ingineria Sistemelor de Programe Curs 1 – 2009 • Criza software-ului, inginerie software • Despre complexitatea software-ului - exemplu •...

Automate și Microprogramare

Aplicatia consta în controlul unei macarale care trebuie sa realizeze cele 2 cicluri de miscare reprezentate în figura 5.1. Initial macaraua se...

Arhitectura calculatoarelor

1. INTRODUCERE OBIECTIVE Principalele obiective ale acestui capitol introductiv sunt urmatoarele: caracterizarea notiunii de informatie,...

Laboratoare Limbajul de Programare HTML

Laboratorul 1 Limbajul HTML - Introducere Limbajul HTML este un limbaj ce permite descrierea paginilor web. - HTML = Hyper Text Markup Language...

Sisteme cu Microprocesoare

Structura generala a unui sistem cu microprocesor pentru conducerea proceselor Sistem cu microprocesor (SMP) Caracterizare din punct de vedere...

Automate programabile

Un controler logic programabil sau automat programabil, este un calculator industrial care îndeplinește funcții de control discrete sau continue...

Subiect examen Ingineria sistemelor de programe

Modele de ciclu de viata al dezvoltarii software 1. Modelul in cascada In modelul waterfall exista 5 etape care se succed si nu se repeta: -...

Te-ar putea interesa și

Sistem Informatic pentru Creditarea Persoanelor Juridice

INTRODUCERE În conţinutul lucrării îmi propun să cuprind elementele de bază ale limbajului de programare C#.NET, a transferului de date între...

Ingineria Sistemelor de Progamare - Software Engineering

Generalitati. Istoric Ingineria sistemelor de programare sau ingineria software, sub alta denumire, este o disciplina care se ocupa de toate...

Proiectarea unui Sistem Informatic

Un sistem reprezintă un ansamblu de elemente care interacţionează între ele şi cu mediul înconjurător în vederea atingerii unui anumit scop. Un...

Ingineria Sistemelor de Programe

Ingineria Sistemelor de Programe Curs 1 – 2009 • Criza software-ului, inginerie software • Despre complexitatea software-ului - exemplu •...

Cursuri inteligență artificială

1.1. Introducere Termenul de inteligenţă artificială a fost folosit pentru prima dată în 1956 de omul de ştiinţă american John McCarthy. Până...

Ingineria Sistemelor de Programe - Capitolul 2

Capitolul II Structuri complexe de date in ingineria programarii 1. Generalitati Variabilele utilizate in Limbajul C/C++, din punct de vedere al...

Ingineria Sistemelor de Programe - Capitolul 3

1. Definirea unui algoritm. Proprietati. Un algoritm reprezintă, în mod uzual, o metodă de descriere a rezolvării unor probleme. Mai exact, un...

Informatică în afaceri

Raiffeisen BankCurs 1. – Problematica sistemelor informatice 1.1 Notiunea de sistem Un sistem reprezintã un ansamblu de elemente interdependente...

Ai nevoie de altceva?