Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Softwareová architektura Miroslav Šimek

Podobné prezentace


Prezentace na téma: "Softwareová architektura Miroslav Šimek"— Transkript prezentace:

1 Softwareová architektura Miroslav Šimek

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 en.wikipedia.org design patterns uml... Javadoc slides, software atp. jsou k dispozici na

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++ Java.net PythonRuby/Rails PHP Perl

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 Statická typová kontrola Python a = 10 b = 1.23 s = ”hello world” c = True a = b Java int a = 10; float b = 1.23; String s = ”hello world”; boolean c = true; a = b; ?? proměnná objekt typ proměnná objekt typ

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

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

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

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

16 Příklady v BeanShellu Faktoriál čísel f(n)= 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 Deklarace funkcí Python def function(a, b): return a+b Java int function(int a, int b) { return a+b; } jmenná konvence: camelCase

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 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 Java int[] a = { 1, 2, 3 }; a[1] = 4; int[] b = new int[10]; b.length for (int i : a) { System.out.println (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


Stáhnout ppt "Softwareová architektura Miroslav Šimek"

Podobné prezentace


Reklamy Google