Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Softwareová architektura
Miroslav Šimek
2
Náplň Úvod do sfw architektury Implementace projektu v jazyce Java
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
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 Java pro web Java pro databáze
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á proměnná objekt objekt typ typ typ
12
Operace nad čísly Python +-*/% Java +-*/%
13
Větvení Python Java if podminka: neco else: neco
14
Cykly Python Java for i in range(0, 10): do_something
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 Java print ”blah” print ”blah”,
System.out.println (”blah”); System.out.print (”blah”);
16
Příklady v BeanShellu Faktoriál čísel 1...10
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: Automatické přetypování Ruční přetypování
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 Java jmenná konvence: camelCase
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 Java 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
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.