1DITF LDILietišķo datorsistēmu programmatūrasprofesora grupaLietišķo datorsistēmu programmatūra1.lekcijaMateriālu sagatavo...
2Mērķi➢ Lietišķās un uzņēmuma līmeņa programmatūras tehnoloģijuun izstrādes līdzekļu apskats➢ Ieskats vairākās programmatū...
3Informācija➢ LekcijasProgrammatūras atkārtotā lietošanaSemantiskais tīmeklis➢ Materiālihttp://www.cs.rtu.lv/astf/ldppg/in...
4Tēmu plāns (1/2)➢ Pamata programmatūras inženierijas attīstības tendences.➢ Ieskats programmatūras kvalitātē.➢ Atkārtotā ...
5Tēmu plāns (2/2)➢ Uz komponentiem balstītās programmatūras izstrādesmetodes.➢ Ieskats aspektu orientētā programmēšanā. As...
6LiteratūraGamma E., Helm R., Johnson R., Vlissides J. DesignPatterns. Elements Of Reusable Object OrientedSoftware➢ Fowle...
71.Programmatūras inženierijasattīstības tendences (1/3)➢ Nemitīgi pieaugoša programmatūras sarežģītībaSarežģītībaLaiksFor...
81.Programmatūras inženierijasattīstības tendences (2/3)➢ Kopēja abstrakcijas līmeņapaaugstināšana✔ no mašīnkodiem līdz au...
91.Programmatūras inženierijasattīstības tendences (3/3)➢ Tieksme izvairīties no problēmu risināšanas, vadotiespēc sākuma ...
10Enterprise application● Lots of long living data, accessed concurently● Multiple systems, dissonance in integrationtechn...
11Software architecture● “a shared understanding of a system designby the expert developers on a project”● “decisions deve...
12http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html
132.Ieskats programmatūraskvalitātē (1/3)➢ Fakti✔ zemas lietojumu kvalitātes rezultātā zaudējumi ir 22.2 –59.5 miljardu do...
142.Ieskats programmatūraskvalitātē (2/3)➢ Makols, Ričards, Valters – kvalitātes kritēriju kategorijas✔ produkta izmantoša...
152.Ieskats programmatūraskvalitātē (3/3)➢ ISO 9126 standarts✔ Karkass programmatūras produkta kvalitātes modelim✔ Kvalitā...
163.Programmatūras atkārtotālietošana (1/8)➢ Priekšnosacījumi✔ programmatūras sistēmām vai to daļām piemīt līdzība unanalo...
173.Programmatūras atkārtotālietošana (2/8)➢ Fakti✔ līdz 40% - 60% koda tiek lietots atkārtoti✔ līdz 75% funkciju ir kopīg...
183.Programmatūras atkārtotālietošana (3/8)➢ Atkārtotā lietojamība✔ Programmatūras izstrādes elementu (artefaktu) spējanod...
193.Programmatūras atkārtotālietošana (4/8)➢ Pamata atkārtoti lietojami artefakti✔ Darbaspēks - netehniskā atkārtotas liet...
203.Programmatūras atkārtotālietošana (5/8)➢ Labumi➢ Produktivitātes pieaugums✔ tiek saglabāti resursi un laiks✔ samazina ...
213.Programmatūras atkārtotālietošana (6/8)➢ Kavēkļi➢ Ekonomiskie un organizatoriskie kavēkļi✔ nepieņemamas izmaksas un ri...
223.Programmatūras atkārtotālietošana (7/8)Daudznozaru programmatūras atkārtotā lietošana➢ Organizācijas aspekti➢ Vadības ...
233.Programmatūras atkārtotālietošana (8/8)➢ Tehniskie aspekti➢ Domēnu inženierijas aspekti.✔ atkārtoti lietojamo programm...
244.AL orientētās izstrādestehnoloģijas➢ Kompozīcijas balstītā izstrāde✔ atkārtoti lietojami artefakti ir pabeigti program...
255. Modularitāte (1/2)➢ Piemērotākā atkārtotās lietošanas forma - programmatūraskomponents, kurš apmierina modularitātes ...
265. Modularitāte (2/2)➢ Pamata modularitātes principi➢ Lingvistiski modulāras vienības princips✔ moduļiem ir jāatbilst iz...
276.Projektēšanas šabloni (1/2)➢ Šablons✔ forma, veidne, modelis, noteikumu kopa kādu lietu vai to daļuģenerēšanai (wikipe...
286.Projektēšanas šabloni (2/2)Fakti✔ Dokumentē eksistējošo un pierādīto projektēšanas pieredzi✔ Balstās uz abstrakcijām, ...
298.MVC. Projektēšanas šablonapiemērs (1/2)➢ Model-view-controller (MVC) – pielietojams programmatūras sistēmās, laiatdalī...
308.MVC. Projektēšanas šablonapiemērs (2/2)Citi klasiskie projektēšanas šabloni:Novērotājs (Observer), Vienpatis (Singleto...
Upcoming SlideShare
Loading in …5
×

LDP lecture 1

327 views
261 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
327
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

LDP lecture 1

  1. 1. 1DITF LDILietišķo datorsistēmu programmatūrasprofesora grupaLietišķo datorsistēmu programmatūra1.lekcijaMateriālu sagatavoja: V.KotovsAtbildīgais pasniedzējs: prof. L.Novickis
  2. 2. 2Mērķi➢ Lietišķās un uzņēmuma līmeņa programmatūras tehnoloģijuun izstrādes līdzekļu apskats➢ Ieskats vairākās programmatūras inženierijas tehnoloģijāsun metodoloģijās➢ Analītiskās domāšanas un praktisko iemaņu attīstība* Programmatūras inženierija - inženierzinātne; sistematizēta pieeja programmatūras izstrādāšanai* Lietišķā programmatūra - paredzēta konkrēta datu apstrādes sistēmas uzdevuma risināšanai* Biznesa sistēmas - paredzētas biznesa informācijas apstrādei, pārvaldības lēmumu pieņemšanai* Tehnoloģija - ražošanas procesu, apstrādes metožu, izejvielas īpašību maiņas līdzekļu kopums* Metodoloģija - mācība par metodēm
  3. 3. 3Informācija➢ LekcijasProgrammatūras atkārtotā lietošanaSemantiskais tīmeklis➢ Materiālihttp://www.cs.rtu.lv/astf/ldppg/index.htm➢ Kontaktivladimir.kotov@gmail.com
  4. 4. 4Tēmu plāns (1/2)➢ Pamata programmatūras inženierijas attīstības tendences.➢ Ieskats programmatūras kvalitātē.➢ Atkārtotā lietošana programmatūras izstrādē.➢ Modularitātes jēdziens un principi programmatūrasinženierijā.➢ Projektēšanas šabloni. Šablonu sistēmas. Šablonuizmantošana programmatūras izstrādē.
  5. 5. 5Tēmu plāns (2/2)➢ Uz komponentiem balstītās programmatūras izstrādesmetodes.➢ Ieskats aspektu orientētā programmēšanā. Aspektuizmantošana programmatūras izstrādē.➢ Ieskats modeļvadāmā programmatūras izstrādē.➢ Programmatūras izstrādes artefaktu uzturēšana unkonfigurācijas vadība.
  6. 6. 6LiteratūraGamma E., Helm R., Johnson R., Vlissides J. DesignPatterns. Elements Of Reusable Object OrientedSoftware➢ Fowler M., Enterprise Software Architecture➢ Sommerville I. Software Engineering➢ Meyer B. Object-Oriented Software Construction➢ Mili H., Mili A., Yacoub S., Addy E. Reuse-basedSoftware Engineering: Techniques, Organization, andMeasurement➢ http://alistair.cockburn.us/Hexagonal+architecture66
  7. 7. 71.Programmatūras inženierijasattīstības tendences (1/3)➢ Nemitīgi pieaugoša programmatūras sarežģītībaSarežģītībaLaiksFortran, Basicsimboli, izteiksmesPascal, Cstrukturētā programmēšanaC++objektiJavavirtuālā mašīnaPython, XML✔ seko Mūra likumam✔ vadāmā ar pasūtītāju prasībām✔ ietekmē periodisku paradigmumaiņu✔ mēroga sarežģītība✔ domēnu sarežģītība✔ biznesa sarežģītība✔ mākslīga sarežģītība
  8. 8. 81.Programmatūras inženierijasattīstības tendences (2/3)➢ Kopēja abstrakcijas līmeņapaaugstināšana✔ no mašīnkodiem līdz augstākālīmeņa valodām➢ Nemitīga izstrādes procesauzlabošana✔ to automatizēšanas un uzturamībasatvieglošana
  9. 9. 91.Programmatūras inženierijasattīstības tendences (3/3)➢ Tieksme izvairīties no problēmu risināšanas, vadotiespēc sākuma principiem✔ efektīvu un pierādītu risinājumu atkārtota izmantošana➢ Spēja cīnīties ar prasību mainīgumu✔ lietojumu elastīgums, stiepjamība un atkārtotapielietojamība
  10. 10. 10Enterprise application● Lots of long living data, accessed concurently● Multiple systems, dissonance in integrationtechnologies and data interpretation● Business “illogic” (Martin Fowler)● Specific patterns
  11. 11. 11Software architecture● “a shared understanding of a system designby the expert developers on a project”● “decisions developers wish they could get rightearly on”● “decisions perceived as hard to change”● Subjective
  12. 12. 12http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html
  13. 13. 132.Ieskats programmatūraskvalitātē (1/3)➢ Fakti✔ zemas lietojumu kvalitātes rezultātā zaudējumi ir 22.2 –59.5 miljardu dolāru robežās (NIST)✔ kvalitātes vadības problēma nav tas, ka cilvēki nezinpar to, bet gan domā, ka zin✔ kvalitātes atribūtu un metriku identificēšanas procesusnav iespējams formalizēt pilnā apjomā
  14. 14. 142.Ieskats programmatūraskvalitātē (2/3)➢ Makols, Ričards, Valters – kvalitātes kritēriju kategorijas✔ produkta izmantošana (korektums, drošums, integritāte,lietojamība un efektivitāte)✔ produkta pārstrādāšana (uzturamība, elastīgums,testējamība)✔ produkta pāreja (sadarbspēja, atkārtota lietojamība,pārnesamība)➢ Maijers, McConnell - kvalitātes faktori– ārējie (pareizums, robustums, drošums, atkārtotalietojamība, stiepjamība, pārnesamība un efektivitāte)– iekšējie (koda lasāmība)
  15. 15. 152.Ieskats programmatūraskvalitātē (3/3)➢ ISO 9126 standarts✔ Karkass programmatūras produkta kvalitātes modelim✔ Kvalitātes īpašības✔ Funkcionalitāte (Functionality)✔ Drošums(Reliability)✔ Lietojamība (Usability )✔ Efektivitāte (Efficiency)✔ Uzturamība (Maintainability )✔ Pārnesamība (Portability)➢ Kvalitātes vadības, procesa standarti, ... (ISO 9001, CMMI,ISO 12207)
  16. 16. 163.Programmatūras atkārtotālietošana (1/8)➢ Priekšnosacījumi✔ programmatūras sistēmām vai to daļām piemīt līdzība unanaloģija✔ atkārtoti izmantojot procesu un iepriekšējas izstrādes rezultātus iriespējams paaugstināt kopējo izstrādes produktivitāti un kvalitāti➢ Atkārtotā lietošana✔ jebkuras informācijas izmantošana izstrādes procesā (Freeman)✔ eksistējošo sistēmu artefaktu vai zināšanu pielietošana jaunosistēmu izstrādē (Isoda)✔ process, kura ietvaros organizācija definē sistemātiskipielietojamo procedūru kopu, lai specificētu, izveidotu, klasificētu,dabūtu un adaptētu programmatūras artefaktus, ko var pielietotlietojumu izstrādes procesā (Mili)
  17. 17. 173.Programmatūras atkārtotālietošana (2/8)➢ Fakti✔ līdz 40% - 60% koda tiek lietots atkārtoti✔ līdz 75% funkciju ir kopīgas vairāk nekā vienā lietojumā✔ Līdz 85% - teorētiskais atkārtotās lietošanas potenciāls✔ 10% lieku izmaksu IT lietojumu izstrādē ar atklātā pirmkoda projektiem(ietaupījums $22 miljardi/gada)➢ “Tipiska” lietojuma kompozīcija
  18. 18. 183.Programmatūras atkārtotālietošana (3/8)➢ Atkārtotā lietojamība✔ Programmatūras izstrādes elementu (artefaktu) spējanoderēt vairāku citu lietojumu izstrādē✔ 2 raksturojumu summa: Lietojamība - nosaka elementa vieglu izmantojamībaspakāpi, neņemot vērā to funkcionalitāti atlase - elementa identificēšana kā potenciālā kandidāta prasībuapmierināšanai analīze - kādā veidā elements ir izmantojams pielāgošana - adaptēšana kontekstam ieviešana - elementa integrēšana izstrādē Derīgums - novērtē elementa vajadzības un plašasizmantojamības pakāpi
  19. 19. 193.Programmatūras atkārtotālietošana (4/8)➢ Pamata atkārtoti lietojami artefakti✔ Darbaspēks - netehniskā atkārtotas lietošanas forma✔ Specifikācijas - kopējais dokumentu repozitorijs arpieņemtām projektēšanas struktūrām un standartiem✔ Projektējumi- vispārēji projektēšanas lēmumu attēlojumi✔ Programmatūras arhitektūras - sistēmas struktūra kākomponentu kopas agregācija✔ Pirmkods un izpildāmie komponenti - dabiskaprogrammatūras atkārtotas lietošanas forma✔ Dokumentācija
  20. 20. 203.Programmatūras atkārtotālietošana (5/8)➢ Labumi➢ Produktivitātes pieaugums✔ tiek saglabāti resursi un laiks✔ samazina testēšanas izmaksas➢ Kvalitātes un drošuma pieaugums✔ lielāki ieguldījumi ar cerību uz elementa daudzkārtīguizmantošanu✔ pievērsta lielākā uzmanība un noteiktas stingrākas prasības.✔ kļūdu labojumi tiek akumulēti ar katru izmantošanas gadījumu➢ Uzlabojumi izstrādes plānošanā✔ samazina programmatūras piegādes laiku uz tirgus✔ samazina uzturēšanas izmaksas➢ Ātrās prototipēšanas atbalsts
  21. 21. 213.Programmatūras atkārtotālietošana (6/8)➢ Kavēkļi➢ Ekonomiskie un organizatoriskie kavēkļi✔ nepieņemamas izmaksas un riski✔ augstākās vadības atbalsta trūkums✔ nepieciešamas izmaiņas organizācijas struktūrās unprocesos✔ pamudinājumu trūkums➢ Tehnoloģiskie kavēkļi✔ atkārtoti lietojamo artefaktu atrāšana✔ mantojuma sistēmu komponentu atkārtotā lietošana✔ artefaktu modificēšana un adaptēšana
  22. 22. 223.Programmatūras atkārtotālietošana (7/8)Daudznozaru programmatūras atkārtotā lietošana➢ Organizācijas aspekti➢ Vadības infrastruktūra✔ funkciju, atbildību, atlīdzības un stimulēšanasmehānismu kopā, lai nodrošinātu caurspīdīguatkārtotas lietošanas procesu funkcionēšanu➢ Tehnoloģijas infrastruktūra✔ konfigurāciju un versiju kontroles vadība, kvalitāteskontrole➢ Ekonomiskie aspekti✔ Metrikas artefaktu kvantitatīvai novērtēšanai✔ AL izdevumu un investīciju atgriešanas (ROI) novērtēšanastehnikas
  23. 23. 233.Programmatūras atkārtotālietošana (8/8)➢ Tehniskie aspekti➢ Domēnu inženierijas aspekti.✔ atkārtoti lietojamo programmatūras artefaktu izstrāde➢ Lietojumu inženierijas aspekti.✔ atkārtoti lietojamu artefaktu izmantošana izstrāde
  24. 24. 244.AL orientētās izstrādestehnoloģijas➢ Kompozīcijas balstītā izstrāde✔ atkārtoti lietojami artefakti ir pabeigti programmatūrasprodukti kompilējamā vai izpildāmā formā✔ pamata aktivitātes paredz tādu elementu (komponentu)kompozīciju un integrēšanu✔ nodrošina zemākā līmeņa atkārtotu lietošanu➢ Ģeneratīvā izstrāde✔ atkārtoti lietojami artefakti ir atspoguļojami šablonu vaimodeļu veidā✔ ļauj atkārtoti izmantot augstākā līmeņa projektējuma unarhitektūras struktūras
  25. 25. 255. Modularitāte (1/2)➢ Piemērotākā atkārtotās lietošanas forma - programmatūraskomponents, kurš apmierina modularitātes prasības (Maijers)➢ Pamata modularitātes kritēriji✔ Dekompozīcija✔ Programmatūras izstrādes metodes palīdz problēmas sadalījumāmazāk sarežģīto problēmu kopā✔ Kompozīcija✔ Tādu programmatūras izstrādes elementu esamība, kurus varkombinēt, lai veidotu jaunas sistēma✔ Saprotamība✔ Lietotāji (cilvēki) var saprast atsevišķa moduļa (komponenta) būtībubez nepieciešamības zināt citus, vai tikai nelielo to skaitu✔ Nepārtrauktība✔ Nelielas izmaiņas problēmas specifikācijā ietekmē izmaiņas tikaivienā vai nedaudz moduļos.
  26. 26. 265. Modularitāte (2/2)➢ Pamata modularitātes principi➢ Lingvistiski modulāras vienības princips✔ moduļiem ir jāatbilst izmantotas valodas formālismam jebkurāizstrādes līmenī (analīzē, projektēšanā, implementēšanā)➢ Atklāts-Slēgts princips✔ moduļiem vienlaikus jābūt atklātiem un slēgtiem:• atklāts - ir iespējama paplašināšana• slēgts - modulim ir stingri definēta un stabila saskarne✔ atkārtotas lietojamības un pielāgošanas divējādība – veiksmīgiemkomponentiem jābūt lietojamiem savā oriģinālā (slēgtā) stāvoklī un tajāpašā laikā viegli adaptējamiem (atklātiem)➢ Iekļautas dokumentācijas princips
  27. 27. 276.Projektēšanas šabloni (1/2)➢ Šablons✔ forma, veidne, modelis, noteikumu kopa kādu lietu vai to daļuģenerēšanai (wikipedia.org)✔ konkrētas formas abstrakcija, kura atkārtojas kādā noteiktajā kontekstā(Rīle)✔ pilnīgi realizēta forma, oriģināls vai modelis, pieņemts un piedāvātsimitācijai; normatīvs piemērs, arhetips (Kouds)✔ apraksta problēmu, kura vairākas reizes atkārtojas mūsu vidē, kopā arproblēmas risinājumu, kuru var izmantot vairākas reizes (K.Aleksanders)➢ Projektēšanas šablons datorzinātnē✔ apzīmē galvenos projektēšanas struktūru aspektus✔ identificē, nosauc un abstrahē veiksmīgas projektējuma struktūras,lietderīgas elastīga un atkārtoti lietojama objektorientēta projektējumaizstrādē
  28. 28. 286.Projektēšanas šabloni (2/2)Fakti✔ Dokumentē eksistējošo un pierādīto projektēšanas pieredzi✔ Balstās uz abstrakcijām, kuras atrodas augstākā līmenī parprocedūrām, klasēm un objektiem✔ Nodrošina kopējo vārdnīcu un projektēšanas principu saprašanu✔ Ir instruments programmatūras arhitektūras dokumentēšanai✔ Atbalsta programmatūras izstrādi ar definētām īpašībām✔ Nosaka programmatūras atbilstību dažām nefunkcionālāmprasībām (piem. drošums, mainīgums, testējamība, atkārtotālietojamība)✔ Palīdz izveidot sarežģītas programmatūras arhitektūru✔ Palīdz tikt galā ar programmatūras sarežģītību
  29. 29. 298.MVC. Projektēšanas šablonapiemērs (1/2)➢ Model-view-controller (MVC) – pielietojams programmatūras sistēmās, laiatdalītu datu modeli, sistēmas (biznesa) loģiku no lietotāja saskarnesaspektiem➢ Dalībnieki• Model – lietojuma domēna specifiskas informācija• View – modeļa atspoguļošana• Controller – apstrādā un reaģē uz lietotāja darbībām, iniciē izmaiņas modelī➢ Labumi:• Izmaiņas lietotāju saskarnē neietekmē datu modeli• Datu modeļa reorganizācija bez nepieciešamības mainīt lietotāju saskarni• Informācijas piekļuves un biznesa loģikas atkabināšana no datu atspoguļošanasun lietotāju mijiedarbības aspektiem➢ Piemēri• Java Swing, Struts, Spring MVC, Android, citi
  30. 30. 308.MVC. Projektēšanas šablonapiemērs (2/2)Citi klasiskie projektēšanas šabloni:Novērotājs (Observer), Vienpatis (Singleton), Dekorators(Decorator),Apmeklētājs (Visitor), Rupnīca (Factory), Starpnieks (Mediator),Atbildību ķēde (Chain of responsibility) ...

×