1 / 21

Softwareová architektura

Miroslav Šimek miroslav.simek@gmail.com ( miroslav.simek@vscht.cz ) ‏. Softwareová architektura. Náplň. Úvod do sfw architektury modely vývoje software návrhové vzory Implementace projektu v jazyce Java. Formální. Formálně 2 přednáška + 3 cvičení, ve skutečnosti 5 (hands-on) seminář

Download Presentation

Softwareová architektura

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Miroslav Šimek miroslav.simek@gmail.com (miroslav.simek@vscht.cz)‏ Softwareová architektura

  2. Náplň • Úvod do sfw architektury • modely vývoje software • návrhové vzory • Implementace projektu v jazyce Java

  3. Formální ... • Formálně 2 přednáška + 3 cvičení, ve skutečnosti 5 (hands-on) seminář • V průběhu budeme vyvíjet Java aplikaci – každý člověk sám za sebe • Aplikace je jedinou podmínkou pro získání kreditů • Cvičení na sebe navazují, každá absence snižuje pravděpodobnost dokončení aplikace !

  4. Aplikace • Web Shop • requirements • mockup • analýza • design • implementace v jazyce Java • UI vrstva • Objektový model (business logic)‏ • Databázová vrstva

  5. Doporučená literatura • Bruce Eckel: Thinking in Java • http://www.codeguru.com/java/tij • en.wikipedia.org • design patterns • uml • ... • Javadoc • http://java.sun.com/javase/6/docs/api/ • slides, software atp. jsou k dispozici na http://ich.vscht.cz/dokuwiki/softwareova_architektura_zima_2008

  6. Proč Java • Oblíbenost • Java • .net • Rails • Django • PHP • Akceptovanost • Java • .net • PHP

  7. Umístění v hierarchii jazyků mikroinstrukce strojový kód assembler C C++ PHP Java .net Perl Python Ruby/Rails

  8. Java v praxi • 70% připadá na webové aplikace • 10% mobilní aplikace • 20% ostatní (konektory systémů, ...)‏

  9. Náplň Java části • Jazyk Java • Typový systém Javy • Kolekce • Rozšiřování typů • Java pro web • JSP, JSF • Java pro databáze • Hibernate • Pokročilé věci • Další knihovny, vlákna, ...

  10. Rozdíly Java vs. Python • Statická vs. dynamická typová kontrola • Kompaktnost • Knihovny • Rychlost vykonávání programu

  11. Java int a = 10; float b = 1.23; String s = ”hello world”; boolean c = true; a = b; ?? Statická typová kontrola • Python • a = 10 • b = 1.23 • s = ”hello world” • c = True • a = b proměnná proměnná objekt objekt typ typ typ

  12. Java +-*/% Operace nad čísly • Python • +-*/%

  13. Java if (podminka) { neco} else { neco} Větvení • Python • if podminka: necoelse: neco

  14. Java for (int i = 0; i < 10; i++) { do_something;} Cykly • Python • for i in range(0, 10): do_something • while (i<10) { do_something;} • break; continue; • while i<10: do_something • break continue

  15. Java System.out.println (”blah”); System.out.print (”blah”); Tisk na stdout • Python • print ”blah” • print ”blah”,

  16. Příklady v BeanShellu • Faktoriál čísel 1...10 • f(n)=1 . 2 . ... . n • prvních 20 Fibonacciho čísel • f(n) = f(n) + f(n-1), f(0) = f(1) = 1 • pro a=1..5 (power tower)‏ a ( )‏ a a

  17. Typy II • Numerické typy: • byte, short, int, long, float, double • Automatické přetypování • byte → short → int → long → float → double • Ruční přetypování • int a = (int) 2.5;

  18. Java int function(int a, int b) { return a+b;} jmenná konvence: camelCase Deklarace funkcí • Python • def function(a, b): return a+b

  19. Příklady v BeanShellu • Pro předchozí příklady zaveďte funkce, které vrátí: • factorial(n)‏ • fibonacci(n)‏ • powerTower(n)‏ • pascalův trojúhelník • funkce pascalNumber(n, k)‏ • program, který vytiskne prvních 20 řádek • program, která vytiskne prvních 20 řádek modulo 2

  20. Java int[] a = { 1, 2, 3 }; a[1] = 4; int[] b = new int[10]; b.length for (int i : a) { System.out.println (i);} Pole • Python • a = [1, 2, 3] • a[1] = 4 • b = [0 for i in range(0, 10)] • len(b) • for i in a: print i

  21. Příklady v BeanShellu • Vytvořte funkci dice1(), která vrací náhodné číslo od 1-6 s uniformním rozdělením. Pro vygenerování náhodného čísla použijte funkci Math.random(), která vrací náhodné číslo v intervalu [0, 1)‏ • Napište funkci diceN(n), která vrátí pole n hodů • Napište následující statistické funkce: • minItem(arr), maxItem(arr)‏ • mean(arr) – vrací aritmetický průměr prvků pole • distribution(arr) – vrací pole 6-ti prvků obsahující procentuální zastoupení čísel 1..6

More Related