DESIGN PATTERNS, PRESENTATION
|
|
- Simona Nováková
- před 7 lety
- Počet zobrazení:
Transkript
1 DESIGN PATTERNS, PRESENTATION DESIGN PATTERNS, PRESENTATION LAYER OF EAA, 1
2 DESIGN PATTERNS Gang of Four (GOF) Java EE Core EAA 2
3 DESIGN PATTERNS Design and implementation without flaws! We specifically look into Façade, Observer & Model-View-Controller More in optional course A7B36ASS Summer 3
4 FAÇADE CZECH 4
5 FACADE Známý jako Facade, Fasáda Účel sjednocené high-level rozhraní pro subsystém zjednodušuje použití subsystému zapouzdření skrytí návrhu před uživateli Motivace zjednodušit komunikaci mezi subsystémy zredukovat závislosti mezi subsystémy neznemožnit používání low-level interfaců pro použití na míru 5
6 FACADE - MOTIVACE 6
7 FACADE MOTIVACE DVD přehrávač projektor Puštění filmu: zatáhnutí žaluzií zapnutí projektoru zapnutí DVD přehrávače zapnutí ozvučení žaluzie Ukončení přehrávání: vypnout DVD přehrávač vypnout ozvučení vypnout projektor vytáhnout žaluzie HI-FI soustava 7
8 FACADE MOTIVACE Řešení: Univerzální ovladač s funkcemi: Přehrát film Ukončit film Přehrát hudbu Vypnout hudbu zatáhnout žaluzie zapnout projektor zapnout DVD přehrávač zapnout ozvučení vypnout DVD přehrávač vypnout ozvučení vypnout projektor vytáhnout žaluzie 8
9 FACADE - MOTIVACE Příklad Compiler třídy Scanner, Parser, ProgramNodeBuilder,.. Facade poskytuje rozhraní pro práci s kompilátorem na high-level úrovni 9
10 FACADE MOTIVACE Příklad transparentnost třídy subsystému o Facade nevědí svoboda volby- neskrývá třídy subsystému (Parser, Scanner) 10
11 FACADE - POUŽITÍ Použití když je subsystém složitý na běžné použití když existuje mnoho závislostí vně subsystému při vytváření vstupních bodů vrstveného systému Struktura 11
12 FACADE POUŽITÍ Účastníci Facade (kompilátor) zná třídy uvnitř subsystému deleguje požadavky třídy subsystému (Scanner, Parser,...) nevědí o existenci Facade implementují funkčnost Souvislosti klient se subsystémem komunikuje přes Facade Facade předává požadavky dál může obsahovat vlastní logiku překlad požadavků na třídy subsystému klienti nemusí používat subsystém přímo 12
13 FACADE - DŮSLEDKY Výhody použití redukuje počet objektů, se kterými klienti komunikují snadnější použití subsystému zmenšuje počet závislostí mezi klienty a subsystémem odstraňuje komplexní a kruhové závislosti méně kompilačních závislostí neskrývá třídy subsytému klient si může vybrat jednoduchost nebo použití na míru umožňuje rozšířit stávající funkcionalitu kombinací subsystémů a jejich metod monitorování systému přístupy, využívání jednotlivých metod Kdy se vyplatí facade do systému implementovat cena za vytvoření fasády menší než je nastudování podsystému uživateli 13
14 FACADE PŘÍKLAD class Scanner { public: virtual Token& Scan(); }; Třída subsystému Třída subsystému class Parser { public: virtual void Parse(Scanner&,ProgramNodeBuilder&); }; Třída subsystému class ProgramNodeBuilder { public: ProgramNodeBuilder(); virtual ProgramNode* NewVariable( ); virtual ProgramNode* NewAssignment( ); virtual ProgramNode* NewReturnStatement( ); virtual ProgramNode* NewCondition( ) const; ProgramNode* GetRootNode(); }; 14
15 FACADE PŘÍKLAD class ProgramNode { public: FACADE // program node - PŘÍKLAD manipulation virtual void GetSourcePosition(int& line, int& index); // child manipulation virtual void Add(ProgramNode*); virtual void Remove(ProgramNode*); Třída subsystému virtual void Traverse(CodeGenerator&); protected: ProgramNode(); }; class CodeGenerator { public: virtual void Visit(StatementNode*); virtual void Visit(ExpressionNode*); protected: CodeGenerator(BytecodeStream&); protected: BytecodeStream& _output; }; Třída subsystému 15
16 void ExpressionNode::Traverse (CodeGenerator& cg) { cg.visit(this); FACADE - PŘÍKLAD } ListIterator i(_children); for (i.first();!i.isdone(); i.next()) { } FACADE PŘÍKLAD i.currentitem()->traverse(cg); Facade class Compiler { public: Compiler(); virtual void Compile(istream&,BytecodeStream&); }; void Compiler::Compile ( istream& input, BytecodeStream& output ) { Scanner scanner(input); ProgramNodeBuilder builder; // Návrhový vzor Builder Parser parser; parser.parse(scanner, builder); RISCCodeGenerator generator(output); // potomek CodeGenerator ProgramNode* parsetree = builder.getrootnode(); parsetree->traverse(generator); } 16
17 FACADE IMPLEMENTACE Konfigurace fasády Facade jako abstraktní třída konkrétní implementace subsystému je jejím potomkem klienti komunikují se subsystémem přes rozhraní abstraktní třídy Ideálně propojit s Dependency Injection Facade jako jedna konfigurovatelná třída výměna komponent subsystému Viditelnost komponent subsystému Zakomponování kontroly přístupu 17
18 FACADE REÁLNÉ POUŽITÍ 18
19 FACADE PŘÍKLAD Services public class HotelBookerImpl implements HotelBooker { public FACADE List<Hotel> - PŘÍKLAD gethotelnamesfor(date from, Date to) { //returns hotels available in the particular date range } } public class FlightBookerImpl implements FlightBooker { public List<Flight> getflightsfor(date from, Date to) { //returns flights available in the particular date range } } Facade public class ServiceFacade { private HotelBooker hotelbooker; private FlightBooker flightbooker; // Dependency Injection } public void getflightsandhotels(date from, Data to) { List<Flight> flights = flightbooker.getflightsfor(from, to); List<Hotel> hotels = hotelbooker.gethotelsfor(from, to); //process and return } 19
20 FACADE PŘÍKLAD Client public class Client { public static void main(string[] args) { ServiceFacade facade = new ServiceFacade (); facade.getflightsandhotels(from, to); } } Facade 20
21 FACADE REÁLNÉ POUŽITÍ V mobilních aplikacích Session Facade v Java EE Fasáda pro webové služby 21
22 FACADE REÁLNÉ POUŽITÍ JOptionPane ve Swingu vytváří různé typy základních dialogových oken a zobrazuje je zjednodušuje používání této rozsáhlé knihovny 22
23 FACADE REÁLNÉ POUŽITÍ V byznys světě 23
24 OBSERVER 24
25 OBSERVER Smysl Zavádí možnost sledování změn u objektu tak, že když objekt změní stav, ostatní objekty na tuto změnu zareagují, přičemž nedojde k přímé vazbě (coupling) od sledovaného objektu k těmto objektům. Potřeba sledování změn objektu a notifikace Událostní řízení řeší observer Obdoba systému událostí (Java) vlastními prostředky 25
26 OBSERVER - MOTIVACE Při změně dat očekávají oznámení od subjektu, že se mají aktualizovat Udržuje svůj stav a informuje všechny zájemce o jeho změnách 26
27 OBSERVER - STRUKTURA Účastníci Subject Observer Interface pro udržování seznamu zájemců o upozornění a posílání oznámení Jednoduchý interface pro přijímání upozornění ConcreteSubject Má vlastní funkčnost a stav, rozesílá oznámení o jeho změnách ConcreteObserver Implementuje Observer interface a tak udržuje svůj stav konzistentní se stavem ConcreteSubject
28 OBSERVER - INTERAKCE 28
29 29
30 OBSERVER - PŘÍKLAD class Class Model Subject + Attach(Observer) + Detach(Observer) : Observer + Notify() : Observer for all o in observers { o->update(this) } -observers 1..* Observer + Update(Subject*) ClockTimer DigitalClock AnalogClock + GetHour() + GetMinute() + GetSecond() + Tick() Notify() -subject - _subject: ClockTimer* + Update(Subject*) if (thechangedsubject == _subject) { Draw() } - _subject: ClockTimer* + Update(Subject*) if (thechangedsubject == _subject) { Draw() } +subject 30
31 PŘÍKLAD - ABSTRAKTNÍ TŘÍDY public abstract class Observer { public update(); }; public abstract class Subject { private List<Observer> observers; public void attach(observer o) { observers.add(o); } public void detach(observer o) { observers.remove(o); } public void notify(); for (Observer o : observers) { o.update() } }; abstraktní třídy, definují rozhraní 31
32 PŘÍKLAD konkrétní třída, uchovává čas, upozorňuje každou sekundu public class ClockTimer extends Subject { public ClockTimer() {..}; public int gethour(); public int getminute(); public int getsecond(); public void tick() { // aktualizovat vnitřní stav udržující čas //... super.notify(); } }; Public class DigitalClock extends Observer { }; private ClockTimer subject; public DigitalClock(ClockTimer t); public void update(); // překrývá operaci třídy Observer public void draw(); // překrývá operaci třídy Widget // definuje, jak vykreslit digitální hodiny public void close(); konkrétní třída, zobrazuje čas jako digitální hodiny 32
33 PŘÍKLAD DigitalClock(ClockTimer s) { this.subject = s; this.subject.attach(this); } Public class DigitalClock extends Observer { }; private ClockTimer subject; public DigitalClock(ClockTimer t); public void update(); public void draw(); public void close(); public void close() { subject.detach(this); } public void update () { draw(); } public void draw() { // načíst hodnoty ze subjektu int hour = subject.gethour(); int minute = subject.getminute(); // etc. } // nakreslit digitální hodiny 33
34 PŘÍKLAD Public class AnalogClock extends Observer { public AnalogClock(ClockTimer); public void update(); // překrývá operaci třídy Observer public void draw(); // překrývá operaci třídy Widget // definuje, jak vykreslit digitální hodiny public void close(); }; jako DigitalClock, ale zobrazuje analogové hodiny public void draw() { // načíst hodnoty ze subjektu } int hour = subject.gethour(); int minute = subject.getminute(); int seconds = subject.getseconds() // etc. // nakreslit digitální hodiny 34
35 KDY POUŽÍT Správné rozdělení systému do vrstev Odstínění přímého volání sledujícího objektu od sledovaného Více možných pohledů na jeden model chceme je udržovat konzistentní Objekt, který má informovat nezávislé objekty publish-subscribe 35
36 NEZÁVISLOST MEZI SUBJECT A OBSERVERS UMOŽŇUJE Volně zaměňovat jednotlivé observery nebo subjecty Přidávat observers bez změny subject nebo ostatních observers Subject a observers můžou patřit do různých vrstev abstrakce Komunikaci low-level subject s high-level observers Broadcast komunikaci Přidávání a odebírání observers za běhu 36
37 JAVA EE 7 public class MemberRegistration private Logger log; Event private EntityManager private Event<Member> membereventsrc; public void register(member member) throws Exception { log.info("registering " + member.getname()); em.persist(member); membereventsrc.fire(member); } Fire Notify 37
38 JAVA EE 7 public class MemberListProducer private MemberRepository memberrepository; private List<Member> members; provides access the return value via the EL variable name // "members" in the UI (e.g. Facelets or public List<Member> getmembers() { return members; } User Interface binding } public void onmemberlistchanged(@observes(notifyobserver = Reception.IF_EXISTS) final Member member) { retrieveallmembersorderedbyname(); public void retrieveallmembersorderedbyname() { members = memberrepository.findallorderedbyname(); } Observe 38
39 JAVA EE 7 public class MemberListProducer private MemberRepository memberrepository; private List<Member> members; provides access the return value via the EL variable name // "members" in the UI (e.g. Facelets or public List<Member> getmembers() { return members; } User Interface binding } public void onmemberlistchanged(@observes(notifyobserver = Reception.IF_EXISTS) final Member member) { members.add(member); public void retrieveallmembersorderedbyname() { members = memberrepository.findallorderedbyname(); } Observe 39
40 PRESENTATION LAYER 40
41 PRESENTATION LAYER Presents knowledge captured by below layers Definition: User interface (UI) provides the visual part of a computer application or a system, which can be seen by human user, it provides mechanisms to control the system through commands, to submit data to the system or receive them and influences how information is displayed on the screen. The UI graphical design aims to make user interaction simple and efficient regards a particular task. 41
42 PRESENTATION LAYER Usability is the ease of use and learnability of a software application 42
43 PRESENTATION LAYER Examples: JavaServer Faces (JSF) web-based Swing standalone apps Component tree Composite Design Pattern Component Button Container Checkbox Choice Panel Window List TextComponent Dialog Frame TextArea TextField 43
44 PRESENTATION LAYER Examples: JavaServer Faces (JSF) web-based Domain specific language to describe UI (DSL) Transformation to HTML Interpretation by Web Browser Component-based Weak type safety Swing standalone apps General Purpose Language (GPL) Interpretation by JVM Component-based 44
45 PRESENTATION LAYER Examples: JavaServer Faces web-based Response <ht ml >.. <body>.. <input type= text../>.. <select..> <option../> <option../> </select..>.. </ body> </ ht ml > Static text JSF Tree Generated Static text JSF Page <ht ml >.. <body>.. <h:inputtext../>.. <h:selectmanycheckbox..> <f:selectitem../> <f:selectitem../> </h:selectmanycheckbox..>.. </ body> </ ht ml > 45
46 PRESENTATION LAYER Examples: Swing public static void main(string[] args) { String firstname = JOptionPane.showInputDialog("First Name"); String lastname = JOptionPane.showInputDialog("Family Name"); fullmame = "You are " + first_name + " " + family_name; JOptionPane.showMessageDialog( null, fullmame); 46
47 JAVASERVER FACES JavaServer Faces (JSF) is a MVC web framework that simplifies the construction of user interfaces (UI) for server-based applications by using reusable UI components in a page. JSF provides facility to connect UI widgets with data sources and to server-side event handlers. The JSF specification defines a set of standard UI components and provides an Application Programming Interface (API) for developing components. JSF enables the reuse and extension of the existing standard UI components. 47
48 JAVASERVER FACES 2 core elements Managed Bean Controller JSF = "helloworld", eager = true) public class HelloWorld { public HelloWorld() { System.out.println("HelloWorld started!"); } public String getmessage() { return "Hello World!"; } } <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " transitional.dtd"> <html xmlns=" <head> <title>jsf Tutorial!</title> </head> <body> #{helloworld.message} </body> </html> 48
49 CONTROLLER - //same public class MemberController private FacesContext private private Member public class public List<Member> getmembers() { return members; } public void register() throws Exception { try { memberregistration.register(newmember); FacesMessage m = new FacesMessage(FacesMessage.SEVERITY_INFO, "Registered", "Registration successful"); facescontext.addmessage(null, m); initnewmember(); } catch (Exception e) { String errormessage = getrooterrormessage(e); FacesMessage m = new FacesMessage(FacesMessage.SEVERITY_ERROR, errormessage, "Registration unsuccessful"); facescontext.addmessage(null, m); } } 49
50 JSF PAGE Header Body <ui:composition xmlns=" xmlns:ui=" xmlns:f=" xmlns:h=" template="/web-inf/templates/default.xhtml"> <ui:define name="content">.. </ui:define> </ui:composition> <h:datatable var="_member" value="#{members} rendered="#{not empty members} > <h:column> <f:facet name="header">id</f:facet> #{_member.id} </h:column>... <ui:define name="content"> <h:column> <h:form id="reg"> <a href="#{request.contextpath} <h:outputlabel for="name" value="name: /> /rest/members/#{_member.id}"> <h:inputtext id="name /rest/members/#{_member.id}</a> value="#{newmember.name}" /> </h:column> <h:message for="name /> </h:datatable>... </ui:define> <h:commandbutton id="register action="#{membercontroller.register} value="register" styleclass="register" /> <h:messages globalonly="true" /> </h:form> 50
51 JSF PAGE Header Body <ui:composition xmlns=" xmlns:ui=" xmlns:f=" xmlns:h=" template="/web-inf/templates/default.xhtml"> <ui:define name="content">.. </ui:define> </ui:composition> <h:datatable var="_member" value="#{members} rendered="#{not empty members} > <h:column> <f:facet name="header">id</f:facet> #{_member.id} </h:column>... <ui:define name="content"> <h:column> <h:form id="reg"> <a href="#{request.contextpath} <h:outputlabel for="name" value="name: /> /rest/members/#{_member.id}"> <h:inputtext id="name /rest/members/#{_member.id}</a> value="#{newmember.name}" /> </h:column> <h:message for="name /> </h:datatable>... </ui:define> <h:commandbutton id="register action="#{membercontroller.register} value="register" styleclass="register" /> <h:messages globalonly="true" /> </h:form> 51
52 JSF PAGE Header Body - components <ui:composition xmlns=" xmlns:ui=" xmlns:f=" xmlns:h=" template="/web-inf/templates/default.xhtml"> <ui:define name="content">.. </ui:define> </ui:composition> <h:datatable var="_member" value="#{members} rendered="#{not empty members} > <h:column> <f:facet name="header">id</f:facet> #{_member.id} </h:column>... <ui:define name="content"> <h:column> <h:form id="reg"> <a href="#{request.contextpath} <h:outputlabel for="name" value="name: /> /rest/members/#{_member.id}"> <h:inputtext id="name /rest/members/#{_member.id}</a> value="#{newmember.name}" /> </h:column> <h:message for="name /> </h:datatable>... </ui:define> <h:commandbutton id="register action="#{membercontroller.register} value="register" styleclass="register" /> <h:messages globalonly="true" /> </h:form> 52
53 JSF PAGE Header Body - components <ui:composition xmlns=" xmlns:ui=" xmlns:f=" xmlns:h=" template="/web-inf/templates/default.xhtml"> <ui:define name="content">.. </ui:define> </ui:composition> TagReference/core/index.jsf TagReference/html/index.jsf <ui:define name="content"> <h:form id="reg"> <h:outputlabel for="name" value="name: /> <h:inputtext id="name value="#{newmember.name}" /> <h:message for="name />... <h:commandbutton id="register action="#{membercontroller.register} value="register" styleclass="register" /> <h:messages globalonly="true" /> </h:form> 53
54 JSF PAGE Header Body - binding <ui:composition xmlns=" xmlns:ui=" xmlns:f=" xmlns:h=" template="/web-inf/templates/default.xhtml"> <ui:define name="content">.. </ui:define> </ui:composition> <h:datatable var="_member" value="#{members} rendered="#{not empty members} > <h:column> <f:facet name="header">id</f:facet> #{_member.id} </h:column>... <ui:define name="content"> <h:column> <h:form id="reg"> <a href="#{request.contextpath} <h:outputlabel for="name" value="name: /> /rest/members/#{_member.id}"> <h:inputtext id="name /rest/members/#{_member.id}</a> value="#{newmember.name}" /> </h:column> <h:message for="name /> </h:datatable>... </ui:define> <h:commandbutton id="register action="#{membercontroller.register} value="register" styleclass="register" /> <h:messages globalonly="true" /> </h:form> 54
55 CONTROLLER - // same public class MemberController private FacesContext private private Member public class public List<Member> getmembers() { return members; } public void register() throws Exception { try { memberregistration.register(newmember); FacesMessage m = new FacesMessage(FacesMessage.SEVERITY_INFO, "Registered", "Registration successful"); facescontext.addmessage(null, m); initnewmember(); } catch (Exception e) { String errormessage = getrooterrormessage(e); FacesMessage m = new FacesMessage(FacesMessage.SEVERITY_ERROR, errormessage, "Registration unsuccessful"); facescontext.addmessage(null, m); } } 55
56 MODEL-VIEW CONTROLLER (MVC) 56
57 INTENT Separate out User Interfaces its logic and from data 3 main components Model View Controller 57
58 INTENT Separates out User Interfaces its logic and from data/knowledge 3 main components Model Represents knowledge View Visual representation of model Controller Link between User and the system Provides User with input relevant views, menu, commands Takes input from user Extended version hierarchical MVC 58
59 COMPONENTS Model Captures system data Knowledge Passive / Active model Input Output Model 59
60 COMPONENTS Model Captures system data Knowledge Where are business rules? Input Output Model Where are services? 60
61 COMPONENTS Model Captures system data Knowledge Where are business rules? Input Output Model Multiple views can exist on the same model 61
62 COMPONENTS Model Captures system data Knowledge Where are business rules? Observer Pattern Model 62
63 COMPONENTS View Visualization of model View1 Input Output View2 Model (Active) 63
64 COMPONENTS View Visualization of model Input Output View1 RacerCarService <<uses>> View2 PersonDAO <<uses>> Person 64
65 COMPONENTS View Visualization of model View1 Input Output View2 Model (Active) 65
66 COMPONENTS View Visualization of model View1 Input Output View2 Model (Active) 66
67 COMPONENTS View Visualization of model View1 Input Output Add View2 Model (Active) 67
68 COMPONENTS View Visualization of model???? View1 Input Output Add View2 Model (Active) 68
69 COMPONENTS View Visualization of model GRASP?? View1 Input Output Add View2 Model (Active) 69
70 COMPONENTS View Visualization of model Controller View1 Input Output Add View2 Model (Active) 70
71 COMPONENTS Controller Interaction / mediation Controller View1 Input Output Add View2 Model (Active) 71
72 COMPONENTS Controller Interaction / mediation Controller View1 Not valid Input Output Add View2 Model (Active) 72
73 COMPONENTS Controller Interaction / mediation Controller View1 Valid Input Output Add View2 Model (Active) 73
74 COMPONENTS Model Notification mechanism Observer Design Pattern Controller Add View1 Input Change notification Output View2 Model (Active) 74
75 COMPONENTS Model Notification mechanism Notify of changes Controller View1 Observable Input Notification Output Add View2 Model (Active) Observable 75
76 COMPONENTS Model Notification mechanism Observe and redraw Controller Add View1 Observable Input Notification Output View2 Model (Active) Observable 76
77 77
78 COMPONENTS Active model vs Passive model 78
79 LARGE SYSTEM 79
80 ALTERNATIVES FOR VIEW Many other design patterns for view handling Hierarchical MVC Presentation Abstraction Control (PAC) Model View Presenter Model View ViewModel Small variants Page Controller Front Controller Template View 80
81 STATIC ANALYSIS OF THE CODE 81
82 STATIC CODE ANALYSIS Java, C++, C#, etc. are GPL with strong type safety! Finding errors by the type safety Easy to refactor PHP, Ruby, Python, etc. Weak type safety Error-prone Tests needed for refactoring! int x = 5; x = x + 1; String b = Java rocks! ; println(x + b); $x = 5; $x = $x + 1; $b = PHP rocks! ; echo $x + $b; 82
83 STATIC CODE ANALYSIS Java, C++, C#, etc. are GPL with strong type safety! Finding errors by the type safety Easy to refactor PHP, Ruby, Python, etc. Weak type safety Error-prone Tests needed for refactoring! int x = Five ; x = x + 1; String b = Java rocks! ; println(x + b); $x = Five ; $x = $x + 1; $b = PHP rocks! ; echo $x + $b; Compile Error Runtime Error 83
84 STATIC CODE ANALYSIS Analysis of computer software Performed without actually executing programs Highlighting possible coding errors Formal methods to mathematically prove properties of a program Software metrics and reverse engineering can be described as forms of static analysis. Verification of properties of software used in safety-critical computer systems and locating potentially vulnerable code Nuclear power plant, Aviation, Medical software Code audit 84
85 STATIC CODE ANALYSIS PMD PMD is a source code analyzer. It finds common programming flaws like unused variables, empty catch blocks, unnecessary object creation, and so forth. It supports Java, JavaScript, XML, XSL. Additionally it includes the copy-paste-detector. Finds duplicated code in Java, C, C++, C#, PHP, Ruby, Fortran, JavaScript. 85
86 STATIC CODE ANALYSIS FindBugs Uses static analysis to look for bugs in Java code. Based on the concept of bug patterns. A bug pattern is a code idiom that is often an error. Difficult language features Misunderstood API methods Misunderstood invariants when code is modified during maintenance Garden variety mistakes: typos, use of the wrong boolean operator 86
87 SOFTWARE TESTING investigation conducted to provide investor with information about the quality of the product Classification: Static vs Dynamic Code audit vs Program Execution White vs Black box We know vs We do not know what is inside Alpha vs Beta SW Constructions vs Transition to deployment Functionality vs Perfomance vs Security vs Reliability Validation vs Verification 87
88 SOFTWARE TESTING Rule 40/20/40 Planning/Implementation/Testing Scale Unit Testing independent Component testing Integration tests System test 88
89 SOFTWARE TESTING Other categories Regressive testing Alpha Development testing Beta It scales and provides all advertised functionality Acceptance Verifies it meets customers expectations 89
90 SOFTWARE TESTING Other categories Stress test JMeter, Selenium User Interface testing Selenuim, TestComplete Performance, Usability, Compatibility, Error handling, load, volume, security, installation, maintenance, accessibility.. 90
91 JUNIT - JUnit is a simple framework to write repeatable tests. For graphical feedback, most IDE's support JUnit 4. Implementace Annotate a method To check a value, import org.junit.assert.* statically call asserttrue() and pass true if the test public void simpleadd() { Money m12chf= new Money(12, "CHF"); Money m14chf= new Money(14, "CHF"); Money expected= new Money(26, "CHF"); Money result= m12chf.add(m14chf); asserttrue(expected.equals(result)); } Tomas Cerny, Software Engineering, FEE, CTU in Prague, 91
92 JUNIT What if you have two or more tests that operate on the same or similar sets of objects? Test Fixture Before or After public class MoneyTest { private Money f12chf; private Money f14chf; private Money public void setup() { f12chf= new Money(12, "CHF"); f14chf= new Money(14, "CHF"); f28usd= new Money(28, "USD"); } } Tomas Cerny, Software Engineering, FEE, CTU in Prague, 92
93 JUNIT Run test Console org.junit.runner.junitcore.runclasses(testclass1.class,...); Command line java org.junit.runner.junitcore TestClass1 [...other test classes...] TestRunner public static junit.framework.test suite() { return new JUnit4TestAdapter(Example.class); } Expected IndexOutOfBoundsException.class) public void empty() { new ArrayList<Object>().get(0); } Tomas Cerny, Software Engineering, FEE, CTU in Prague, 93
94 JUNIT Run test Do not expect test order execution If you must then Tomas Cerny, Software Engineering, FEE, CTU in Prague, 94
95 JUNIT Feed with public class FibonacciTest { Many loops Different = "{index}: fib({0})={1}") public static Iterable<Object[]> data() { return Arrays.asList(new Object[][] { { 0, 0 }, { 1, 1 }, { 2, 1 }, { 3, 2 }, { 4, 3 }, { 5, 5 }, { 6, 8 } }); } private int input; private int expected; } public FibonacciTest(int input, int expected) { this.input = input; this.expected = expected; public void test() { assertequals(expected, Fibonacci.compute(input)); } Tomas Cerny, Software Engineering, FEE, CTU in Prague, 95
96 DEPLOYMENT, MAINTENANCE AND REPORTS The games just begin Get ready to be available next 48 hours in the row! 96
97 DEPLOYMENT, MAINTENANCE AND REPORTS The games just begin Get ready to be available next 48 hours in the row! 97
98 DEPLOYMENT, MAINTENANCE AND REPORTS At any time you must know what is happening Program Log Logger Access log Who is there doing what System monitoring CPU load, Memory, Harddrive use, Backups Error reporting Where? JIRA? ? 98
99 DEPLOYMENT, MAINTENANCE AND REPORTS Automated monitoring systems Verify CPU/Load/Mem/Disk and issues Notify by or SMS Zabbix Nagios many others. 99
100 DEPLOYMENT, MAINTENANCE AND REPORTS Get user experience Register your app at Google Analytics to see how it performs HTML5 allows you to see the statistics 100
101 DEPLOYMENT, MAINTENANCE AND REPORTS Get user experience Register your app at Google Analytics to see how it performs HTML5 allows you to see the statistics 101
102 EVIL THINGS TO HAPPEN System crash! Memory leak Resource leak New closing loop Cannot survive the load Heap analysis Profiler Reports from web server 102
103 MAINTENANCE The king is dead, long live the king! Success of the long live depends on the design, scalability, ability to fix bugs and many many other factors!! Prevent bugs, leaks, flaw design Use Design Patterns! A7B36ASS STM Architektura SW systémů 103
Facade. Známý jako. Účel. Motivace. Facade, Fasáda
Facade Facade Známý jako Facade, Fasáda Účel sjednocené high-level rozhraní pro subsystém zjednodušuje použití subsystému zapouzdření skrytí návrhu před uživateli Motivace zjednodušit komunikaci mezi subsystémy
Observer. Klasifikace. Alias. Smysl. Potřeba sledování změn objektu a notifikace. Obdoba systému událostí (C#, Java) vlastními prostředky
Observer Observer Klasifikace Object Behavioral Alias Dependents Publish-subscribe Smysl Zavádí možnost sledování změn u objektu tak, že když objekt změní stav, ostatní objekty na tuto změnu zareagují,
Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika
Vývoj informačních systémů Architektura, návrh Vzory: Doménová logika Zachman Framework Zdroje Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented
KIV/PIA 2013 Jan Tichava
KIV/PIA 2013 Jan Tichava Java EE JSF, PrimeFaces Spring JPA, EclipseLink Java Platform, Enterprise Edition Persistence Zobrazovací vrstva Interakce aplikací Deployment Java Persistence API Enterprise
GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA
GUIDELINES FOR CONNECTION TO FTP SERVER TO TRANSFER PRINTING DATA What is an FTP client and how to use it? FTP (File transport protocol) - A protocol used to transfer your printing data files to the MAFRAPRINT
Čipové karty Lekařská informatika
Čipové karty Lekařská informatika Následující kód je jednoduchou aplikací pro čipové karty, která po překladu vytváří prostor na kartě, nad kterým jsou prováděny jednotlivé operace a do kterého jsou ukládány
Vývoj informačních systémů. Architektura, návrh Vzory: Doménová logika
Vývoj informačních systémů Architektura, návrh Vzory: Doménová logika Zachman Framework Zdroje Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. Design Patterns: Elements of Reusable Object-Oriented
Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML
Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k
Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)
Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java
User manual SŘHV Online WEB interface for CUSTOMERS June 2017 version 14 VÍTKOVICE STEEL, a.s. vitkovicesteel.com
1/ 11 User manual SŘHV Online WEB interface for CUSTOMERS June 2017 version 14 2/ 11 Contents 1. MINIMUM SYSTEM REQUIREMENTS... 3 2. SŘHV ON-LINE WEB INTERFACE... 4 3. LOGGING INTO SŘHV... 4 4. CONTRACT
SenseLab. z / from CeMaS. Otevřené sledování senzorů, ovládání zařízení, nahrávání a přehrávání ve Vaší laboratoři
CeMaS, Marek Ištvánek, 22.2.2015 SenseLab z / from CeMaS Otevřené sledování senzorů, ovládání zařízení, nahrávání a přehrávání ve Vaší laboratoři Open Sensor Monitoring, Device Control, Recording and Playback
2 Axiomatic Definition of Object 2. 3 UML Unified Modelling Language Classes in UML Tools for System Design in UML 5
Contents Contents 1 Semestrální práce 1 2 Axiomatic Definition of Object 2 3 UML Unified Modelling Language 2 3.1 Classes in UML............................ 3 4 Tools for System Design in UML 5 5 Student
Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control)
Hiearchical MVC (Model-view-controller) vs. PAC (Presentation-abstraction-control) Problém HMVC úvod MVC v určitých aplikacích nedostačující Příklad: webová stránka s widgety Např. kalendář, hodnocení,
USING VIDEO IN PRE-SET AND IN-SET TEACHER TRAINING
USING VIDEO IN PRE-SET AND IN-SET TEACHER TRAINING Eva Minaříková Institute for Research in School Education, Faculty of Education, Masaryk University Structure of the presentation What can we as teachers
Distribuované systémy a výpočty
Distribuované systémy a výpočty X36DSV Jan Janeček XML-RPC jednoduchá definice www.xmlrpc.com implementace obvykle opřené o XML parser X36DSV - Distribuované systémy a výpočty (3) 2 XML-RPC jednoduché
George J. Klir. State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu
A Tutorial Advances in query languages for similarity-based databases George J. Klir Petr Krajča State University of New York (SUNY) Binghamton, New York 13902, USA gklir@binghamton.edu Palacky University,
Postup objednávky Microsoft Action Pack Subscription
Postup objednávky Microsoft Action Pack Subscription DŮLEŽITÉ: Pro objednání MAPS musíte být členem Microsoft Partner Programu na úrovni Registered Member. Postup registrace do Partnerského programu naleznete
JavaServer Faces Zdeněk Troníček
JavaServer Faces Zdeněk k Troníček JSF aplikace Faces servlet web.xml faces-config.xml JSF (*.jsp) Backing Beans (*.java) model (*.java) libraries
Project Life-Cycle Data Management
Project Life-Cycle Data Management 1 Contend UJV Introduction Problem definition Input condition Proposed solution Reference Conclusion 2 UJV introduction Research, design and engineering company 1000
Czech Republic. EDUCAnet. Střední odborná škola Pardubice, s.r.o.
Czech Republic EDUCAnet Střední odborná škola Pardubice, s.r.o. ACCESS TO MODERN TECHNOLOGIES Do modern technologies influence our behavior? Of course in positive and negative way as well Modern technologies
Návrhové vzory OMO, LS 2014/2015
Návrhové vzory OMO, LS 2014/2015 Motivace Cílem objektového návrhu je strukturu aplikace navrhnout tak, aby splňovala následující kritéria: snadná rozšiřitelnost účelnost testovatelnost dokumentovatelnost
Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/
Nástroje a frameworky pro automatizovaný vývoj Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Proces vývoje webové aplikace Předepsaná adresářová struktura. Kompilace zdrojových kódů.
VYUŽITÍ DATA DRIVEN PAGES
VYUŽITÍ DATA DRIVEN PAGES Oldřich MAŠÍN oddělení krizového řízení, krajský úřad Pardubického kraje, Komenského nám. 125, 53211 Pardubice, Česká republika oldrich.masin@pardubickykraj.cz Abstrakt Uživatelé
Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)
Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java
NOVINKY V JEE EJB 3.1. Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze
NOVINKY V JEE EJB 3.1 Zdeněk Troníček Fakulta informačních technologií ČVUT v Praze PROGRAM Seznámení s Java Enterprise Edition (JEE) Enterprise Java Beans (EJB) Novinky v EJB 3.1 2 JAVA EDITIONS Java
Jak importovat profily do Cura (Windows a
Jak importovat profily do Cura (Windows a macos) Written By: Jakub Dolezal 2019 manual.prusa3d.com/ Page 1 of 10 Step 1 Stažení Cura profilů V tomto návodu se dozvíte, jak importovat a aktivovat nastavení
Statické proměnné a metody. Tomáš Pitner, upravil Marek Šabo
Statické proměnné a metody Tomáš Pitner, upravil Marek Šabo Úvod Se statickou metodou jsme se setkali už u úplně prvního programu - Hello, world! public class Demo { public static void main(string[] args)
2011 Jan Janoušek BI-PJP. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
PROGRAMOVACÍ JAZYKY A PŘEKLADAČE TRANSFORMACE GRAMATIK NA LL(1) GRAMATIKU. TABULKA SYMBOLŮ. VNITŘNÍ REPREZENTACE: AST. JAZYK ZÁSOBNÍKOVÉHO POČÍTAČE. RUNTIME PROSTŘEDÍ. 2011 Jan Janoušek BI-PJP Evropský
Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost.
Tento materiál byl vytvořen v rámci projektu Operačního programu Vzdělávání pro konkurenceschopnost. Projekt MŠMT ČR Číslo projektu Název projektu školy Klíčová aktivita III/2 EU PENÍZE ŠKOLÁM CZ.1.07/1.4.00/21.2146
Úvod do CORBY. Svetlozara Arabadzhieva 6.12.2006
Úvod do CORBY Svetlozara Arabadzhieva 6.12.2006 6.12.2006 Co je to CORBA? Common Object Request Broker Architecture Definice: Jazykov ě nezávislý objektový model a specifikace vývojového prostředí pro
Potřebujete mít vaše IS ve shodě s legislativou? Bc. Stanislava Birnerová
Potřebujete mít vaše IS ve shodě s legislativou? Bc. Stanislava Birnerová Direct Account Manager sbirnerova@novell.com Komplexnost, Nátlak, Nulová tolerance Nařízení Business Continuity Interní hrozby
OMO. 4 - Creational design patterns A. Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC
OMO 4 - Creational design patterns A Singleton Simple Factory Factory Method Abstract Factory Prototype Builder IoC Ing. David Kadleček, PhD. kadlecd@fel.cvut.cz, david.kadlecek@cz.ibm.com 1 Creational
Industry 4.0 @ Robert BOSCH
Inovační think-tank TA ČR - Robert Bosch spol.s r.o. Industry 4.0 @ Robert BOSCH Internet der Dingen Virtual Prototyping Cyber- physical things Services Robert Bosch České Budějovice v roce 202x??? Finding
Compression of a Dictionary
Compression of a Dictionary Jan Lánský, Michal Žemlička zizelevak@matfyz.cz michal.zemlicka@mff.cuni.cz Dept. of Software Engineering Faculty of Mathematics and Physics Charles University Synopsis Introduction
Introduction to MS Dynamics NAV
Introduction to MS Dynamics NAV (Item Charges) Ing.J.Skorkovský,CSc. MASARYK UNIVERSITY BRNO, Czech Republic Faculty of economics and business administration Department of corporate economy Item Charges
Introduction to Navision 4.00 Jaromír Skorkovský, MS., PhD.
Introduction to Navision 4.00 Jaromír Skorkovský, MS., PhD. ESF MU, Czech Republic 1 1 Distribution channels Microsoft Development, new versions, technology, languages.. Country HQ 1 legislation, sales
Web Frameworks Java Server Faces. Petr Aubrecht CA
Web Frameworks Java Server Faces Petr Aubrecht CA XKCD o SQL Injection http://www.abclinuxu.cz/clanky/komiks-xkcd-327-maminciny-exploity Její dcera se jmenuje Pomoc, jsem zavřená v továrně na řidičáky.
Škola: Střední škola obchodní, České Budějovice, Husova 9. Inovace a zkvalitnění výuky prostřednictvím ICT
Škola: Střední škola obchodní, České Budějovice, Husova 9 Projekt MŠMT ČR: EU PENÍZE ŠKOLÁM Číslo projektu: CZ.1.07/1.5.00/34.0536 Název projektu školy: Výuka s ICT na SŠ obchodní České Budějovice Šablona
RMI Remote Method Invocation
2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient
Name: Class: Date: RELATIONSHIPS and FAMILY PART A
Name: Class: Date: RELATIONSHIPS and FAMILY PART A 1. Read the text A and complete it. Lidé jsou už ze své podstaty společenští, což znamená, že patří vždy do nějaké sociální společenské skupiny (1. )
JAVA Unit testing Java, zimní semestr
JAVA Unit testing Úvod unit testing testování malý jednotek funkčnosti jednotka nezávislá na ostatních testování zcela oddělené vytvářejí se pomocné objekty pro testování kontext typicky v OO jazycích
Aplikace s grafickým uživatelským rozhraním
Aplikace s grafickým uživatelským rozhraním doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz 1 Typy aplikací Konzolová
WL-5480USB. Quick Setup Guide
Quick Setup Guide 1 Czech 7 Install Utility Software Note1: Before installing the utility software, DO NOT inserts the into your computer. If the adapter is inserted already, Windows will detect the adapter
TechoLED H A N D B O O K
TechoLED HANDBOOK Světelné panely TechoLED Úvod TechoLED LED světelné zdroje jsou moderním a perspektivním zdrojem světla se širokými možnostmi použití. Umožňují plnohodnotnou náhradu žárovek, zářivkových
2. Entity, Architecture, Process
Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Praktika návrhu číslicových obvodů Dr.-Ing. Martin Novotný Katedra číslicového návrhu Fakulta informačních technologií ČVUT v Praze Miloš
WORKSHEET 1: LINEAR EQUATION 1
WORKSHEET 1: LINEAR EQUATION 1 1. Write down the arithmetical problem according the dictation: 2. Translate the English words, you can use a dictionary: equations to solve solve inverse operation variable
Microsoft Lync WEB meeting
User - documentation ENU and CZ version Microsoft Lync WEB meeting - Připojení k WEB meetingu prostřednictvím Microsoft Lync Date: 10. 5. 2013 Version: 0.2 ENU, CZ www.axiomprovis.cz Version description:
ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha
ANT Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
Petr Vlk KPCS CZ. WUG Days října 2016
Petr Vlk KPCS CZ WUG Days 2016 8. října 2016 Jednoduchá správa Zařízení Jednotné přihlašování Windows Server Active Directory Další systémy a aplikace Uživatelské jméno Azure Veřejný Cloud SaaS Office
System Center Operations Manager
System Center Operations Manager Jan Vávra Solution Sales Professional Microsoft System Center Operations Manager End-to-End Service Management Proaktivní správa IT služeb Integrované monitorování distribuovaných
NetBeans platforma. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti
NetBeans platforma Aplikační programování v Javě (BI-APJ) - 7 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme
MVC (Model-View-Controller)
MVC vs PAC MVC (Model-View-Controller) Architektonický vzor zabývající se uživatelským rozhraním Odděluje doménovou (bussiness) logiku a uživatelské rozhraní do tří nezávislých komponent: Model View Controller
Návrhové vzory pro J2EE. Miroslav Beneš
Návrhové vzory pro J2EE Miroslav Beneš Obsah přednášky Význam návrhových vzorů Klasické návrhové vzory GoF Návrh prezentační vrstvy Business vrstva Vzory pro práci s daty Příklady dalších vzorů Záporné
Abstraktní datové typy: zásobník
Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní
X33EJA. JSF aplikace
JSF aplikace Součástí webové aplikace samostatné nebo jako modul Enterprise app. Projekt musí obsahovat JSF knihovny Nastavení se provádí v konfiguračních souborech 'web.xml', 'sun-web.xml' nebo 'glassfish-web.xml'
Správa a sledování SOA systémů v Oracle SOA Suite
Správa a sledování SOA systémů v Oracle SOA Suite Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů Přednáška pro IOA 7. října 2014 Marek Rychlý Správa
DC circuits with a single source
Název projektu: utomatizace výrobních procesů ve strojírenství a řemeslech egistrační číslo: Z..07/..0/0.008 Příjemce: SPŠ strojnická a SOŠ profesora Švejcara Plzeň, Klatovská 09 Tento projekt je spolufinancován
CzechPOINT@office a konverze na úřadech Martin Řehořek
CzechPOINT@office a konverze na úřadech Martin Řehořek Novell Professional Services ČR, s.r.o. mrehorek@novell.com Agenda CzechPOINT@office Lokální administrátor Autorizovaná konverze na žádost Autorizovaná
Michal Podzimek 6. 11. 2013
Testování Test NG Michal Podzimek 6. 11. 2013 1 Úvod public class SimpleTest { @BeforeClass public void setup() { // code that will be invoked // when this test is instantiated @Test public void afasttest()
Mobilní malware na platformě Android Přednáška 2. Ing. Milan Oulehla
Mobilní malware na platformě Android Přednáška 2 Ing. Milan Oulehla Úvod Informace o technikách, které používají tvůrci mobilního malware: Bezpečnostní chyby se mění v čase Vytvoření vlastních zdrojových
Technologie, vlastnosti, uplatnění. Martin Suchan
Technologie, vlastnosti, uplatnění Martin Suchan Silverlight je nová webová technologie z dílen Microsoftu Určena pro zobrazování bohatého multimediálního obsahu grafiky, videa Je navržená pro podporu:
Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky
Google Web Toolkit Martin Šurkovský, SUR096 Vysoká škola Báňská - Technická univerzita Ostrava Katedra informatiky 29. března 2010 Martin Šurkovský, SUR096 (VŠB - TUO) Google Web Toolkit 29. března 2010
OMO Patterny pro UI. Základy UI - HTML, DOM, JavaScript, CSS. Single Page Application
OMO 13 - Patterny pro UI Základy UI - HTML, DOM, JavaScript, CSS Single Page Application Model View Controller, Model View Presenter, Model View View Model Moderní webové frameworky React/Redux Angular
POPIS TUN TAP. Vysvetlivky: Modre - překlad Cervene - nejasnosti Zelene -poznamky. (Chci si ujasnit o kterem bloku z toho schematu se mluvi.
Vysvetlivky: Modre - překlad Cervene - nejasnosti Zelene -poznamky POPIS TUN TAP (Chci si ujasnit o kterem bloku z toho schematu se mluvi.) VAS MODEL OpenVPN MUJ MODEL funkce virtuálního sítového rozhrani
Návrhové vzory. Jakub Klemsa, Jan Legerský. 30. října Objektově orientované programování.
Jakub Klemsa Jan Legerský Objektově orientované programování klemsjak@fjfi.cvut.cz jan.legersky@gmail.com 30. října 2012 návrhový vzor (design pattern) obecné řešení problému, které se využívá při návrhu
VY_32_INOVACE_06_Předpřítomný čas_03. Škola: Základní škola Slušovice, okres Zlín, příspěvková organizace
VY_32_INOVACE_06_Předpřítomný čas_03 Autor: Růžena Krupičková Škola: Základní škola Slušovice, okres Zlín, příspěvková organizace Název projektu: Zkvalitnění ICT ve slušovské škole Číslo projektu: CZ.1.07/1.4.00/21.2400
Anglický text: Lesson 8: Class Inheritance
Ukázka odborného technického překladu. Zdroj původního textu: http://www.csharpstation.com/tutorials/lesson08.aspx Poznámka k překladům příkladů: Za normálních okolností by samozřejmně bylo lepší v úryvcích
Innovated Solution: Questions and Answers after the Webinar
Innovated Solution: Questions and Answers after the Webinar Budou podkladové materiály webináře také v českém jazyce? Prezentace pro webinář je pouze v anglické verzi. Před začátkem testů s účastníky však
Úvod do datového a procesního modelování pomocí CASE Erwin a BPwin
Úvod do datového a procesního modelování pomocí CASE Erwin a BPwin (nově AllFusion Data Modeller a Process Modeller ) Doc. Ing. B. Miniberger,CSc. BIVŠ Praha 2009 Tvorba datového modelu Identifikace entit
Zabezpečení infrastruktury
Zabezpečení infrastruktury Hybridní management Michal Horáček michal.horacek@microsoft.com 1 Any cloud Hybridní správa infrastruktury Any platform Hybridní IT management Zjednodušený management, který
Obsah&/&Content& Všeobecné)podmínky)(v)češtině)) Terms)and)Conditions)(in)english)) )
Obsah/Content Všeobecnépodmínky(včeštině TermsandConditions(inenglish Všeobecnépodmínky používáníwebovýchstránekneighboursuniverseasouvisejícíchslužebazásadyochrany osobníchdat A.! PodmínkyužíváníwebovýchstránekNeighboursUniverseasouvisejícíchslužeb
Invitation to ON-ARRIVAL TRAINING COURSE for EVS volunteers
Invitation to ON-ARRIVAL TRAINING COURSE for EVS volunteers (český text pro hostitelské organizace následuje na str. 3) 6.11. 11.11. 2015 Hotel Kaskáda, Ledeč nad Sázavou Husovo nám. 17, 584 01 Ledeč nad
Vánoční sety Christmas sets
Energy news 7 Inovace Innovations 1 Vánoční sety Christmas sets Na jaře tohoto roku jste byli informováni o připravované akci pro předvánoční období sety Pentagramu koncentrátů a Pentagramu krémů ve speciálních
Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links
Technology Entry form Entry up-to-date? Internal links Faulty internal Possible internal links links Apache Struts Article with examples JSTL a EL (into JSP) MVC, webové aplikace, JSP Bezpečnost ve webových
Lukáš Brodský www.gisat.cz. Praha 2008. Osnova. Objektový přístup Verze 4, 5, 6 / 7 Developer7 -funkčnost, nové vlastnosti HW
Nové možnosti objektověorientované klasifikace v Definiens Lukáš Brodský www.gisat.cz GISAT Praha 2008 Osnova Objektový přístup Verze 4, 5, 6 / 7 Developer7 -funkčnost, nové vlastnosti HW Objektový přístup
Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU 8.6.2011
Technologie Java Enterprise Edition Přemek Brada, KIV ZČU 8.6.2011 Přehled tématu Motivace a úvod Infrastruktura pro velké Java aplikace (Java základní přehled) Části třívrstvé struktury servlety, JSP
Proč Angular JS framework?
Angular JS Proč Angular JS framework? Open Source vytvořený a spravovaný Googlem Vhodný pro tvorbu formulářových aplikací Dodá aplikaci základní architekturu a udržovatelnost Deklarativní způsob práce
Od Czech POINTu k vnitřní integraci
Od Czech POINTu k vnitřní integraci Radek Novák Direct Account Manager Co mají společné??? - Czech POINT - Datové schránky (ISDS) - Vnitřní integrace úřadu 2 Projekt Czech POINT - 28.3.2007 zahájen pilotní
Tvorba informačních systémů
Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2005/2006 c 2006-2007 Michal Krátký, Miroslav Beneš Tvorba informačních
IBM Connections pro firmy s Lotus Notes/Domino. Petr Kunc
IBM Connections pro firmy s Lotus Notes/Domino Petr Kunc 42 % MANAŽERŮ SE ROZHODNE ŠPATNĚ ALESPOŇ JEDNOU TÝDNĚ 19 HODIN TÝDNĚ STRÁVÍME HLEDÁNÍM SPRÁVNÝCH INFORMACÍ 59 % ZAMĚSTNANCŮ NEMÁ VŠECHNA POTŘEBNÁ
Radiova meteoricka detekc nı stanice RMDS01A
Radiova meteoricka detekc nı stanice RMDS01A Jakub Ka kona, kaklik@mlab.cz 15. u nora 2014 Abstrakt Konstrukce za kladnı ho softwarove definovane ho pr ijı macı ho syste mu pro detekci meteoru. 1 Obsah
III/ 2- Inovace a zkvalitnění výuky prostřednictvím ICT
Název školy: Číslo a název projektu: Číslo a název šablony klíčové aktivity: Označení materiálu: Typ materiálu: Předmět, ročník, obor: STŘEDNÍ ODBORNÁ ŠKOLA a STŘEDNÍ ODBORNÉ UČILIŠTĚ, Česká Lípa, 28.
Tabulka 1 Stav členské základny SK Praga Vysočany k roku 2015 Tabulka 2 Výše členských příspěvků v SK Praga Vysočany Tabulka 3 Přehled finanční
Příloha I Seznam tabulek Tabulka 1 Stav členské základny SK Praga Vysočany k roku 2015 Tabulka 2 Výše členských příspěvků v SK Praga Vysočany Tabulka 3 Přehled finanční odměny pro rozhodčí platný od roku
PROČ UŽ SE NEOBEJDETE BEZ ANALÝZY DAT
PROČ UŽ SE NEOBEJDETE BEZ ANALÝZY DAT JAKUB CHOVANEC - IDG KONFERENCE 3.6.2015 KDO JSME #1 v poskytování datové analytiky a služeb v oblasti Business Analytics a Business Intelligence 39 let na trhu 16
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Výukový materiál zpracovaný v rámci projektu Výuka moderně Registrační číslo projektu: CZ.1.07/1.5.00/34.0205 Šablona: III/2 Anglický jazyk
2N Voice Alarm Station
2N Voice Alarm Station 2N Lift1 Installation Manual Version 1.0.0 www.2n.cz EN Voice Alarm Station Description The 2N Voice Alarm Station extends the 2N Lift1/ 2N SingleTalk with an audio unit installed
EU peníze středním školám digitální učební materiál
EU peníze středním školám digitální učební materiál Číslo projektu: Číslo a název šablony klíčové aktivity: Tematická oblast, název DUMu: Autor: CZ.1.07/1.5.00/34.0515 III/2 Inovace a zkvalitnění výuky
Návrhové vzory pro J2EE
Návrhové vzory pro J2EE Miroslav Beneš Obsah přednášky Význam návrhových vzorů Klasické návrhové vzory GoF Návrh prezentační vrstvy Business vrstva Vzory pro práci s daty Příklady dalších vzorů Záporné
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Výukový materiál zpracovaný v rámci projektu Výuka moderně Registrační číslo projektu: CZ.1.07/1.5.00/34.0205 Šablona: III/2 Anglický jazyk
Litosil - application
Litosil - application The series of Litosil is primarily determined for cut polished floors. The cut polished floors are supplied by some specialized firms which are fitted with the appropriate technical
AIC ČESKÁ REPUBLIKA CZECH REPUBLIC
ČESKÁ REPUBLIKA CZECH REPUBLIC ŘÍZENÍ LETOVÉHO PROVOZU ČR, s.p. Letecká informační služba AIR NAVIGATION SERVICES OF THE C.R. Aeronautical Information Service Navigační 787 252 61 Jeneč A 1/14 20 FEB +420
UPM3 Hybrid Návod na ovládání Čerpadlo UPM3 Hybrid 2-5 Instruction Manual UPM3 Hybrid Circulation Pump 6-9
www.regulus.cz UPM3 Hybrid Návod na ovládání Čerpadlo UPM3 Hybrid 2-5 Instruction Manual UPM3 Hybrid Circulation Pump 6-9 CZ EN UPM3 Hybrid 1. Úvod V továrním nastavení čerpadla UPM3 Hybrid je profil PWM
Komponentově orientované webové frameworky. Jiří Stránský twitter.com/jistr
Komponentově orientované webové frameworky Jiří Stránský jistr@jistr.net twitter.com/jistr O čem to bude Three-Tier aplikace MVC frameworky Komponentově orientované frameworky Apache Wicket Three-Tier
Programování v Javě I. Leden 2008
Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory
FIRE INVESTIGATION. Střední průmyslová škola Hranice. Mgr. Radka Vorlová. 19_Fire investigation CZ.1.07/1.5.00/
FIRE INVESTIGATION Střední průmyslová škola Hranice Mgr. Radka Vorlová 19_Fire investigation CZ.1.07/1.5.00/34.0608 Výukový materiál Číslo projektu: CZ.1.07/1.5.00/21.34.0608 Šablona: III/2 Inovace a zkvalitnění
Vláknové programování část V
Vláknové programování část V Lukáš Hejmánek, Petr Holub {xhejtman,hopet@ics.muni.cz Laboratoř pokročilých síťových technologií PV192 2014 03 25 1/25 Přehled přednášky Paměťový model Javy GUI v Javě Vlákna
WYSIWYG EDITOR PRO XML FORM
WYSIWYG EDITOR PRO XML FORM Ing. Tran Thanh Huan, Ing. Nguyen Ba Nghien, Doc. Ing. Josef Kokeš, CSc Abstract: In this paper, we introduce the WYSIWYG editor pro XML Form. We also show how to create a form
Karta předmětu prezenční studium
Karta předmětu prezenční studium Název předmětu: Objektově orientovaná analýza a návrh (OOAN) Číslo předmětu: 548-0040 Garantující institut: Garant předmětu: Institut geoinformatiky RNDr. Daniela Szturcová,
Enterprise Java (BI-EJA) Technologie programování v jazyku Java (X36TJV)
Příprava studijního programu Informatika je podporována projektem financovaným z Evropského sociálního fondu a rozpočtu hlavního města Prahy. Praha & EU: Investujeme do vaší budoucnosti Enterprise Java
Nástroje pro průběžnou integraci a testování
Nástroje pro průběžnou integraci a testování Osnova: Úvod do problematiky Životní cyklus softwaru Iterativní a inkrementální vývoj Průběžná integrace Nástroje nutné k tomu, aby průběžná integrace fungovala