LDP lecture 1

  • 142 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
142
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 10Enterprise application● Lots of long living data, accessed concurently● Multiple systems, dissonance in integrationtechnologies and data interpretation● Business “illogic” (Martin Fowler)● Specific patterns
  • 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. 12http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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) ...