Architektury so.warových systémů Architecture of So.ware Systems Mar9n Rehák, David Šišlák Ján Jusko, Jan S9borek, Jan Kohout Agent Technology Center Department Of Computer Science and Engineering
Teachers Lectures Mar9n Rehak (rehak@agents.fel.cvut.cz) David Sislak (sislak@agents.fel.cvut.cz) Labs Mar9n Grill (Lead) Jan Jusko Jan S9borek
Topics Lectures 2013-02- 12-01. [MR] Uvod: Architektury so.warových systému, komponentové a distribuované architektury 2013-02- 19-02. [DS] koncepce jazyku na bázi virtualního stroje, srovnáni s jinými jazyky, poehled výhod a nevýhod; kompilace, decompilery, obfuscatory, classloaders, reflek9vní operace, 2013-02- 26-03. [DS] Selected design pacerns 2013-03- 05-04. [MR] Design pacerns for distributed systems 2013-03- 12-05. [DS] vlákna, synchronizace, atomické typy, non- blocking algoritmy 2013-03- 19-06. [MR] RMI - architektura, podpurné komponenty, vzdálená invokace, komunikace mezi procesy 2013-03- 26-07. [MR] Komponentové modely, Distribuované komponenty, CORBA 2013-04- 02-08. [MR] Vyhledávání služeb, dynamická kompozice, Redundance, design vysoce spolehlivých systému 2013-04- 09-09. [DS] streamy, vstupni/výstupní operace, sítová komunikace, serializace, externalizace 2013-04- 16-10. [DS] datové struktury - primi9va, pole; memory management s garbage collectorem 2013-04- 23-11. [MR] Webové služby, service- oriented architectures 2013-04- 30-12. [MR] Architektury pro service oriented architectures 2013-05- 07-13. zde je stredecni rozvrh lichy 2013-05- 14-14. [DS] Asynchronní architektury, producer- consumer model (messaging passing) + Agentní a mul9agentní systémy... Tento plán se bude dynamicky měnit...
Topics Labs 01. [MR] Uvod: Architektury so.warových systému, komponentové a distribuované architektury 02. [DS] koncepce jazyků na bázi virtualního stroje, srovnáni s jinými jazyky, přehled výhod a nevýhod; kompilace, decompilery, obfuscatory, classloaders, reflek9vní operace, 03. [DS] Selected design pacerns 04. [MR] Design pacerns for distributed systems 05. [DS] vlákna, synchronizace, atomické typy, non- blocking algoritmy 06. [MR] RMI - architektura, podpurné komponenty, vzdálená invokace, komunikace mezi procesy 07. [DS] streamy, vstupní/výstupní operace, síťová komunikace, serializace, externalizace 08. [MR] Komponentové modely, Distribuované komponenty, CORBA 09. [MR] Vyhledávání služeb, dynamická kompozice, Redundance, design vysoce spolehlivých systémů 10. [DS] datové struktury - primi9va, pole; memory management s garbage collectorem 11. [JJ] Webové služby, service- oriented architectures 12. [JJ] Architektury pro service oriented architectures 13. [DS] Asynchronní architektury, producer- consumer model 14. [DS] Agentní a mul9agentní systémy
Evalua9on Lab par9cipa9on mandatory...as required by CTU...checked when appropriate Lab teachers will not repeat the lecture content Lab results are 30% of the final grade Final Exam contributes another 70% Strict no chea9ng policy. Cheaters will be failed and reported.
From cra.smanship
to system engineering
Non- Func9onal Aspects of Systems ISO/IEC 9126 specifies the non- func9onal requirements on so.ware systems Refined/extended in the ISO 250nn series Jørgen Bøeg, A New Standard for Quality Requirements, IEEE So=ware 2008
ISO/IEC 9126 Categories Func9onality existence of a set of func-ons and their specified proper-es Reliability capability of so6ware to maintain its level of performance under stated condi-ons for a stated period of -me Usability effort needed for use Efficiency rela-onship between the level of performance of the so6ware and the amount of resources used, under stated condi-ons. Maintainability effort needed to make specified modifica-ons Portability transferred from one environment to another quoted from ISO/IEC 9126
ISO/IEC 9126 Categories Func9onality existence of a set of func-ons and their specified proper-es Reliability capability of so6ware to maintain its level of performance under stated condi-ons for a stated period of -me Usability effort needed for use Efficiency rela-onship between the level of performance of the so6ware and the amount of resources used, under stated condi-ons. Maintainability effort needed to make specified modifica4ons Portability transferred from one environment to another quoted from ISO/IEC 9126
Reliability Maturity frequency of failure of the so6ware. Fault Tolerance The ability of so6ware to withstand (and recover) from component, or environmental, failure. Recoverability Ability to bring back a failed system to full opera4on, including data and network connec-ons. Reliability Compliance adheres to standards, conven-ons, or regula-ons
Good so.wre takes 10 years Lotus Notes market penetra9on chart, from Joel Spolsky, joelonso6ware.com
More recent trends
Reliability Maturity frequency of failure of the so6ware. Fault Tolerance The ability of so6ware to withstand (and recover) from component, or environmental, failure. Recoverability Ability to bring back a failed system to full opera4on, including data and network connec-ons. Reliability Compliance adheres to standards, conven-ons, or regula-ons
Efficiency Time Behavior Characterizes response Jmes for a given thru put, i.e. transac9on rate. Resource UJlizaJon Characterizes resources used, i.e. memory, cpu, disk and network usage. Efficiency Compliance Scalability Rela-onship between Time Behavior and Resource U-liza-on
Maintainability Analyzability the ability to iden4fy the root cause of a failure within the so6ware. Changeability Characterizes the amount of effort to change a system. Stability Characterizes the sensi4vity to change of a given system that is the nega-ve impact that may be caused by system changes. Testability Characterizes the effort needed to verify (test) a system change. Maintainability Compliance
Portability Adaptability the ability of the system to change to new specifica4ons or opera-ng environments. Installability the effort required to install the so6ware Co- Existence ability to operate several instances of the system with different so6ware versions in parallel Replacability the plug and play aspect of so.ware components, that is how easy is it to exchange a given so.ware component within a specified environment. Portability Compliance
Component designs
Performance & Op9misa9on
Performance & Op9misa9on
Design Pacerns
Concurrency
Distribu9on & Collabora9on
Distribu9on & Collabora9on
PaPerns & Components Performance Concurrency DistribuJon& CollaboraJon Maturity Fault Tolerance Recoverability Time Behavior Resource U9liza9on Scalability Analyzability Changeability Stability Testability Adaptability Installability Co- Existence Replaceability