Od wymagań do Javy w mgnieniu oka: modelowanie oprogramowania w praktyce
|
|
- Małgorzata Górecka
- 8 lat temu
- Przeglądów:
Transkrypt
1 Od wymagań do Javy w mgnieniu oka: modelowanie oprogramowania w praktyce Michał Śmiałek Politechnika Warszawska Wyzwania Modelowania Inżynierskiego i Biznesowego Warszawa, 5 kwietnia 206 Prelegent Czym się zajmowałem (od ok. 99 r.) Profesor nzw. (informatyka) Politechnika Warszawska; UML, Inżynieria Wymagań, Projektowanie, MDD/MDA, Kierownik grupy SMoG (modelowanie oprogramowania) Kierownik zespołu PW w projekcie REMICS (7PR) Koordynator naukowy konsorcjum projektu ReDSeeDS (6PR): główny współautor języka RSL Trener w wielu szkoleniach dla profesjonalistów (> 200 edycji szkoleń) z zakresu inżynierii oprogramowania Konsultant w firmie Infovide-Matrix Kierownik projektów z zakresu budowy oprogramowania Inżynier procesu (pierwszy w Polsce certyfikat trenera RUP) Analityk wymagań oprogramowania i biznesu Projektant oprogramowania i programista WMIiB 206 2
2 Treść seminarium Wprowadzenie wymagania i MDD/MDA Modelowanie wymagań i transformacje w mgnieniu oka Programowanie na poziomie wymagań Wyjaśnienie semantyki przypadków użycia Logika aplikacji i logika dziedziny/biznesu Programowanie dla zwykłych ludzi? Od wymagań do kodu Automatyczna transformacja wymagań (scenariuszy przypadków użycia) w kod logiki aplikacji i logiki dziedziny/biznesu Szczegóły transformacji Metamodel języka (Requirements Specification Language) Reguły transformacji z RSL do kodu Podsumowanie WMIiB :: WPROWADZENIE WYMAGANIA I MDD/MDA :: 2
3 Marzenie kierownika projektu IT Deweloper Użytkownik Wymagania TEXT Kod Czego potrzebujemy Język specyfikowania wymagań Dobra komunikacja Automatyczna translacja WMIiB Od biznesu do kodu - tradycyjnie Specyfikacja wymagań w języku naturalnym specyfikacja projektowa wywiedziona z wymagań kod wywiedziony z modeli projektowych Ręczne przekształcenie Biznes Specyfikacja Wymagań TEXT Dokumentacja Projektowa Kod Zamawiający Analityk Projektant Programista WMIiB
4 Od biznesu do kodu sterowane modelami Specyfikacja wymagań z półformalnymi modelami modele projektowe ze śladem od wymagań kod częściowo generowany z modeli projektowych Śledzenie wymagań wsparte narzędziami Projektant transformacji Biznes Specyfikacja Wymagań Dokumentacja Projektowa Kod Zamawiający Analityk Projektant Programista Częściowo automatyczna transformacja WMIiB Od biznesu do kodu języki dziedzinowe Specyfikacja systemu używając języków spec. dla dziedziny (DSL) wygenerowany kod W pełni automatyczna transformacja Znaczące przyrosty produktywności! Biznes Projektant języka Specyfikacja Wymagań DSL Projektant transformacji Kod Domain Specific Language Zamawiający Analityk Ograniczony zakres dziedzin, potrzebne wysokie kwalifikacje w tworzeniu języków, wymagania? WMIiB
5 Programowanie na poziomie wymagań? Specyfikacja wymagań przy użyciu formalnych modeli kod wygenerowany z wymagań W pełni automatyczna transformacja Pstryk! Pomysł: częściowa generacja kodu Biznes Specyfikacja Wymagań RPL Kod Ujednolicony język Zamawiający Analityk Brak technologii! WMIiB Proponowane rozwiązanie Wymagania z częściowo formalnymi modelami kod częściowo generowany z wymagań W pełni automatyczna transformacja Formalne Wymagani Kod Autom. RSL Biznes Półformalne Wymagania Analityk Zamawiający Programista Kod Półautom. RSL Częściowo automatyczna transformacja WMIiB
6 @svo : SVOSentence : SVOSentence {SVOSentences} dobject : NounLink {Phrases} : SVOSentence {SVOSentences} source predicate source cverb : PhraseVerbLink {Phrases} noun {ELSE} predicate source pred : Predicate {SVOSentences} object : NounLink {Phrases} cpred : Predicate {SVOSentences} verb cnph : NounPhrase : Class {Kernel} predicate target noun predicate object source target 2 vph : SimpleVerbPhrase {Phrases} : Operation {Kernel} verbphrase nph : NounPhrase {Phrases} cvph : ComplexVerbPhrase {Phrases} complexverbphrase simpleverbphrase svph : SimpleVerbPhrase source {Phrases} : Operation 4 {Kernel} verb : PhraseVerbLink {Phrases} @ui_op) verbphrase source cnph2 : NounPhrase {Phrases} iobject : NounLink {Phrases} @ui_op) verb verbphrase object noun source Od biznesu do kodu - ReDSeeDS Specyfikacja wymagań przy użyciu precyzyjnych wymagań kod wygenerowany z wymagań Automatyczna generacja Biznes Specyfikacja Wymagań Model Projektowy Kod RSL Zamawiający Analityk Agile Programista WMIiB 206 ReDSeeDS: jak to działa? Model przypadków użycia Reguły transformacji Wykonywalny kod public void SelectsOK(XStudent pstudent){ int res; astudent = pstudent; mstudent.validates(astudent); res = mstudent.getresult(); if (res == 0) { vacknowledgement = new VAcknowledgement(); vacknowledgement.caddstudent = this; vacknowledgement.presents(); } else if (res == ) { verrormessage = new VErrorMessage(); verrormessage.caddstudent = this; verrormessage.shows(); } } Model scenariuszy: RSL Model projektowy: UML + metody w Javie WMIiB
7 :: PROGRAMOWANIE NA POZIOMIE WYMAGAŃ :: Jeszcze wyższy poziom programowania? Tradycyjnie Specyfikacja wymagań Ogólne stwierdzenie problemu Szczegółowe wymagania na oprogramowanie Propozycja Specyfikacja wymagań Ogólne stwierdzenie problemu Program zorientow. na użytkownika Historie (logika aplikacji) Słownik dziedziny (logika biznesu) WMIiB
8 Precyzyjny język naturalny? RSL? Użytkownicy Analitycy Programiści Mniej formalny Bardziej formalny WMIiB Historia i środowisko 4. Tom rides to the old hut. 2. Lord Mark goes to the old hut. 3. Aunt Martha goes to Tom the wise..a. Lord Mark runs to aunt Marta s house. b. He talks with aunt Martha. WMIiB
9 Pisanie dobrych opowiadań a pisanie dobrych wymagań Połączenie opowiadania (sekwencji zdarzeń) i opisów środowiska (ludzie, wnętrza, krajobraz ). WMIiB Rozdzielenie opowiadania od środowiska Zdarzenia a sceny WMIiB
10 Styl pisania opowiadań Najprostsze możliwe zdania Student enters the semester. Teacher accepts the current marks. Subject Verb Objects ( or 2) System assigns the student to the new semester. WMIiB Rozszerzenie opowiadania o środowisko Uwaga: opowiadania nie zawierają definicji pojęć Student enters the semester where the semester is a number between and 0 denoting the level of studies ale gdzieś w innym odległym opowiadaniu: Dean accepts the semester for the new student where the semester is a number denoting the current student s status? WMIiB
11 Oddzielenie pojęć od opowiadań Osobny słownik pojęć, ale spójny z opowiadaniami Student enters the semester where the semester is a number between and 0 denoting the level of studies Semester Dean accepts number the between semester and 0 denoting for the the new level student of studies and where the semester is a number the current student s status. denoting the current student s status WMIiB Pisanie scenariuszy Scenariusz jest sekwencją zdań Dean adds new lecture to a course. Dean selects to add new lecture to course 2. System asks for semester 3. Dean enters the semester 4. System asks for data of the lecture 5. Dean enters the data of the lecture 6. System adds the lecture to the list of lectures WMIiB
12 Budowanie słownika Słownik jest mapą terenu dla użytkownika. Warto, aby mapa miała formę graficzną.. Deanwants to add new lecture to course 2. System asks for semester 3. Dean enters the semester. 4. DeanSystem asks for data of the lecture Dean Dean enters the semester 3. System asks. enters for Dean the data data of enters of the lecture the the semester lecture 6. System 4. Dean enters 2. adds the System the lecture data of the asks to lecture for the datalist of of the lectures lecture 5. System assigns 3. the Dean teacher enters to the the data lecture of the lecture 4. System prints the data of the student Lecture Student Course Teacher List of lectures Semester WMIiB Odgrywanie opowiadań Spójność opowiadań można sprawdzić uzupełniając słownik. Deanwants to add new lecture to course 2. System asks for semester 3. Dean enters the semester 4. System asks for data of the lecture 5. Dean enters the data of the lecture 6. System adds the lecture to the list of lectures add new lecture enter ask for Lecture Student Course Teacher List of lectures Semester WMIiB
13 Mapowanie wymagań na strukturę systemu Opowiadania Warstwa interfejsu GUI presentation view (MVC*) Logika aplikacji workflow logic (Fowler 2002) controller (MVC*) Logika dziedziny data processing algorithms model (MVC*) *Reenskaug 977 Słownik dziedziny WMIiB Koncepcja: program na poziomie wymagań Requirements Specification Language (RSL) Przypadek użycia Logika aplikacji Logika dziedziny Step Step Step Step Step Step Krok Action on a domain element Action on a domain element Action on a domain element Action on a domain element Action on a domain element Action on a domain element Action on a domain element Action on a domain element Akcja na elemencie dziedziny Element dziedziny Akcja(reguła biznesowa) WMIiB
14 Dygresja: wzorce logiki aplikacji enter book data validate book data register book data Library domain Step Step Step Step Book data validate enter sales item validate sales item register sales item E-shop domain Step Step Sales item Step Step Step Step validate WMIiB :: OD WYMAGAŃ DO KODU :: 4
15 Całościowe rozwiązanie Requirements Specification Language: język formalny (DSL) dla specyfikowania typowej logiki aplikacji biznesowych + przetwarzane dane + elementy UI (brak logiki dziedzinowej) Składnia abstrakcyjna oparta na precyzyjnym metamodelu Składnia konkretna: graficzne diagramy + ograniczony język naturalny Elastyczna semantyka czasu wykonania W pełni automatyczna transformacja z języka RSL do kodu dla wybranych technologii Całościowe wsparcie narzędziowe (edytor języka RSL, automatyczna, parametryzowalna transformacja) Bardzo szybkie prototypowanie Całościowa realizacja idei MDD/MDA WMIiB Zasada działania narzędzia? Wymagania Kompilator MOLA Transformati Program on on program MOLA Java formułowanie Edytor RSL kompilacja Maszyna Transformująca MOLA ReDSeeDS wyjście generacja Edytor UML zapis Model RSL wejście Model UML + kod metod eksport Repozytorium modeli WMIiB
16 AuthorDAO + AuthorDAO(Connection) + delete(int) :int + delete(object) :int + deletelist(list<?>) :int[] + insert(object) :int + insertlist(list<?>) :int[] + read(list<?>) :List<XAuthor> + read(object) :List<XAuthor> + read(int) :XAuthor + update(object, int) :int + updatelist(list<?>) :int[] «interface» IObjectDAO + delete(object) :int + delete(int) :int + deletelist(list<?>) :int[] + insert(object) :int + insertlist(list<?>) :int[] + read(int) :Object + read(list<?>) :List<?> + read(object) :List<?> + update(object, int) :int + updatelist(list<?>) :int[] BookDAO + BookDAO(Connection) + delete(object) :int + delete(int) :int + deletelist(list<?>) :int[] + insert(object) :int + insertlist(list<?>) :int[] + read(list<?>) :List<XBook> + read(int) :XBook + read(object) :List<XBook> + update(object, int) :int + updatelist(list<?>) :int[] util::connectionfactory + getconnection() :Connection + getinstance() :ConnectionFactory util::daomanager # connection :Connection = null {bag} # daoobject :IObjectDAO = null {bag} + executeandclose(daocommand) :Object + getdaoobject(object) :IObjectDAO + getinstance() :DAOManager + transaction(daocommand) :Object + transactionandclose(daocommand) :Object # getconnection() :Connection # gettxconnection() :Connection Wnętrze transformacji RSL metamodel MOLA program UML metamodel meta-level M2 «use» «use» «instanceof» «instanceof» Show course list meta-level M Course manager indexnumber name. Course manager selects courselist button 2. System fetches courselist 3. System showscourselist page => invoke: Add newcourse student savestudent deletstudent MOLA transformation engine Model in RSL Model in UML + methods WMIiB Możliwości transformacji RSL to UML Component architecture model in UML Design model based on Abstracat Factory pattern Code skeleton in an objectoriented language RSL model RSL to code Platformspecific design model in UML Runnable application code RSL to SOA SOA model in SoaML Specific cloud platform model RSL to? * WMIiB
17 ContentPane VAddNewPublisherPage + actionperformed(actionevent) :void + init(ipresenter) :void WindowPane VIncorrectBookMessage + actionperformed(actionevent) :void + init(ipresenter) :void PAddReview + callingpclass :IInvoke {bag} + res :int {bag} + sentence_no :int {bag} + view :IView {bag} + _first(iinvoke) :void + returnfrominvoke(int) :void + SelectsAddReviewButton() :void + SelectsSaveReviewButton() :void ReviewDAO + deletelist(list<?>) :int[] «interface» IModel + DeletesAuthor() :void + DeletesBook() :void + FetchesAuthorList() :void + FetchesBook() :void + FetchesBookList() :void + SavesAuthor() :void + SavesBook() :void + SavesPublisher() :void + SavesReview() :void + ValidatesAuthor() :void + ValidatesBook() :void + ValidatesPublisher() :void ApplicationInstance EchoApp + closecurrentpage() :void + init() :Window + setpresenter(ipresenter) :void + showaddnewauthorpage() :void + showaddnewbookpage() :void + showaddnewpublisherpage() :void + showaddreviewpage() :void + showauthorlistpage() :void + showauthorsbooklistpage() :void + showbookdetailspage() :void + showbooklistpage() :void + showeditbookpage() :void + showhomepage() :void + showincorrectbookmessage() :void + showinvalidauthormessage() :void + showinvalidpublishermessage() :void PEditBook + callingpclass :IInvoke {bag} + res :int {bag} + sentence_no :int {bag} + view :IView {bag} + _first(iinvoke) :void + returnfrominvoke(int) :void + SelectsEditBookButton() :void + SelectsSaveBookButton() :void «interface» IObjectDAO + read(int) :Object + updatelist(list<?>) :int[] PublisherDAO + deletelist(list<?>) :int[] WindowPane VInvalidPublisherMessage + actionperformed(actionevent) :void + init(ipresenter) :void PAddNewPublisher + callingpclass :IInvoke {bag} + res :int {bag} + sentence_no :int {bag} + view :IView{bag} + _first(iinvoke) :void + returnfrominvoke(int) :void + SelectsAddNewPublisherButton() :void + SelectsAddPublisherButton() :void ModelImpl + DeletesAuthor() :void + DeletesBook() :void + FetchesAuthorList() :void + FetchesBook() :void + FetchesBookList() :void + SavesAuthor() :void + SavesBook() :void + SavesPublisher() :void + SavesReview() :void + ValidatesAuthor() :void + ValidatesBook() :void + ValidatesPublisher() :void ContentPane VEditBookPage + actionperformed(actionevent) :void + init(ipresenter) :void BookDAO + delete(int) :int Reguły transformacji i sterowanie Arch = MVP View = Echo JavaFX DL = DAO Transformation Transformation program RSL program to Code UML + method bodies V Course manag er Nonfunctional reqs. Show course list. Course manager selects course list button 2. System fetches courselist 3. System showscourselist page => invoke: Add newcourse input input MOLA transformati on engine output P M indexnumber student savestudent + delete(int) :int + delete(object) :int name deletstudent + deletelist(list<?>) :int[] + insert(object) :int + insertlist(list<?>) :int[] + read(list<?>) :List<?> + read(object) :List<?> + update(object, int) :int Model in RSL + delete(int) :int + delete(object) :int + delete(object) :int + delete(int) :int + BookDAO(Connection) + delete(object) :int + insert(object) :int + insertlist(list<?>) :int[] + insert(object) :int + insertlist(list<?>) :int[] + deletelist(list<?>) :int[] + insert(object) :int + read(int) :XReview + read(object) :List<XReview> + PublisherDAO(Connection) + read(list<?>) :List<XPublisher> + insertlist(list<?>) :int[] + read(int) :XBook + read(list<?>) :List<XReview> + ReviewDAO(Connection) + read(object) :List<XPublisher> + read(int) :XPublisher + read(list<?>) :List<XBook> + read(object) :List<XBook> + update(object, int) :int + updatelist(list<?>) :int[] + update(object, int) :int + updatelist(list<?>) :int[] + update(object, int) :int + updatelist(list<?>) :int[] WMIiB Najpierw: piszemy wymagania add student to course User course add student to course remove student from course save course Developer Zrozumiałe, ale precyzyjne WMIiB
18 Potem: naciskamy guzik public void SelectsOK(XStudent pstudent){ int res; astudent = pstudent; mstudent.validates(astudent); res = mstudent.getresult(); if (res == 0) { vacknowledgement = new VAcknowledgement(); vacknowledgement.caddstudent = this; vacknowledgement.presents(); } else if (res == ) { verrormessage = new VErrorMessage(); verrormessage.caddstudent = this; verrormessage.shows(); } } WMIiB Wygenerowana struktura systemu show() buttonclicked() Interfejs użytkownika Logika aplikacji Przejrzysta struktura logiczna Wybrana technologia save() verify() Logika dziedziny WMIiB
19 Wygenerowany działający kod aplikacji Interfejs użytkownika show() buttonclicked() Logika aplikacji res = mstudent.getresult(); if (res == 0) { vacknowledgement = new VAcknowledgement(); vacknowledgement.caddstudent = this; vacknowledgement.presents(); } else if (res == ) { verrormessage = new VErrorMessage(); verrormessage.caddstudent = this; verrormessage.shows(); } save() verify() Logika dziedziny W pełni działający kod Tylko dodaj logikę dziedziny WMIiB Wymagania + technologia = działający system show() Add new course Show extended course list buttonclicked() res = mstudent.getresult(); if (res == 0) { vacknowledgement = new VAcknowledgement(); vacknowledgement.caddstudent = this; vacknowledgement.presents(); } else if (res == ) { verrormessage = new VErrorMessage(); verrormessage.caddstudent = this; verrormessage.shows(); } Course manager save() verify() Złożoność właściwa Złożoność poboczna WMIiB
20 :: SZCZEGÓŁY TRANSFORMACJI :: RSL metamodel: frazy (Phrase) Phrase NounPhrase object verbphrase VerbPhrase 0.. * * SimpleVerbPhrase ComplexVerbPhrase modifier 0.. Term Modifier noun Term Noun * verb Term Verb * Term Preposition preposition name :String name :String name :String name :String add selected student student to course WMIiB
21 RSL metamodel: pojęcia (Notion) source DomainElement Relationship * target DomainElement Actor * * name source Multiplicity 0.. target Multiplicity 0.. Notion * name NounPhrase DomainElement Multiplicity statement * DomainStatement statement name Phrase 0.. Course Manager course entry form show course entry form course addstudent to course remove student from course save course * 2..2 student modify class class check availability of class WMIiB RSL metamodel: zdania SVO (SVOSentence) ConstrainedLanguageSentence source SVOSentence source subject PhraseHyperlink Subject subject * predicate PhraseHyperlink Predicate predicate * target target NounPhrase object verbphrase 0.. VerbPhrase Course manager System fills course entry form adds student to course WMIiB
22 RSL metamodel: scenariusze +scenariostep * {ordered} ConstrainedLanguageSentence +scenario 0.. ContrainedLanguageScenario SVOSentence ControlSentence +scenarios..* RSLUseCase ConditionSentence InvocationSentence +source +target InvocationRelationship Course manager Browse course details Add new course «invoke». Course manager selects add course option 2. System shows course entry form 3. Course manager fills course entry form 4. Courses manager selects save course option 5. System validates course cond: course valid 6. System saves course invoke: Browse course details WMIiB * Przykład RSL do kodu User Add new book «invoke» Add new author «trigger» save book button «trigger» add new book button. Userselects add new book button 2. System shows add new book page. Userselects add new book button invoke Add new author 2. Systemshowsadd newbook page 3. User enters book invoke 4. User selects save book button invoke 5. System validates book 3. User enters book cond: book valid 6a. 4. System User selects saves book save book button 5. System validates book cond: book invalid 6b. System shows invalid book message «list» book list «frame» addnewbookpage * book «message» invalid book message * * author «attr» title: Text «attr» hardcover: Boolean «attr» issuedate: Date WMIiB
23 Generowanie interfejsów «interface» IView User Addnew book. Userselectsadd newbook button. Userselectsadd newbook button 2. System shows add new book page 2. invoke Systemshowsaddnewbook Add author page 3. User invoke enters book 4. User invoke selects save book button 5. System 3. Uservalidates enters book book 4. cond: User selects book valid save book button 6a. System saves book 5. System validates book cond: book invalid user-totrigger sys-toconcept sys-to-frame sys-tomessage + setpresenter(ipresenter) :void + showaddnewauthorpage() :void + showaddnewbookpage() :void + showaddnewpublisherpage() :void + showbooklistpage() :void + showinvalidauthormessage() :void + showinvalidbookmessage() :void + showinvalidpublishermessage() :void «interface» IPresenter + SelectsAddNewAuthorButton() :void + SelectsAddNewBookButton() :void + SelectsAddNewPublisherButton() :void + SelectsAddPublisherButton() :void + SelectsDeleteBookButton() :void + SelectsSaveAuthorButton() :void + SelectsShowBookListButton() :void + SelectsSaveBookButton() :void + setmodel(imodel) :void + setview(iview) :void V P 6b. System shows invalid book message «interface» IModel + DeletesBook() :void + FetchesBookList() :void + SavesAuthor() :void + SavesBook() :void + SavesPublisher() :void + ValidatesAuthor() :void + ValidatesBook() :void + ValidatesPublisher() :void M WMIiB Semantyka scenariuszy User IView User Addnew book. Userselectsadd newbookbutton. Userselectsadd newbookbutton 2. Systemshows add new book page 2. invoke Systemshows Addnewadd author new book page 3. User invoke enters book 4. User invoke selects save book button System User enters validatesbook 4. User cond: selects booksave validbook button 6a. 5. System savesbook validatesbook cond: book invalid 6b. System showsinvalid book message invoke 4 public class PresenterImpl implements IPresenter { private IModel model; private IView view; public void SelectsAddNewBookButton() { view.showaddnewbookpage(); } public void SelectsSaveBookButton(){ int res = model.validatesbook(); if ( res == /*book valid*/) { model.savesbook(); } else if ( res == 2 /*book invalid*/) { view.showinvalidbookmessage(); } } public void SelectsAddNewAuthorButton(){ // code for Add new author use case... } 6a IModel WMIiB
24 Generowanie UI User Addnew book. Userselectsadd newbookbutton 2. System showsadd new bookpage. invoke Userselectsadd Addnewauthor newbookbutton User System entershowsadd book new bookpage 4. User invoke selects save book button 5. System invoke validatesbook 3. User enters book cond: bookvalid 4. User selects save book button 6a. 5. System System saves validatesbook book cond: bookinvalid 6b. System showsinvalidbook message «frame» booklist page «list» booklist «trigger» savebookbutton «frame» addnewbookpage * book «message» invalidbookmessage * * author Book BookList list Page «attr» title: Text «attr» hardcover: Boolean «attr» issuedate : Date Book List Title Issue date Hard cover Author Addnewbook AddNew BookPage Book Book Title Author Issue date Text Field Select author(s) Title Author Issue date Hard cover Text Field Select author(s) Invalid book message The entered book data is invalid OK Hard cover < Back Save book Add new author < Back WMIiB Generowanie DTO book * * author «attr» title: Text «attr» hardcover: Boolean «attr» issuedate: Date «attr» name: Text «attr» birthyear: Number XBook - xbookid :int - title :String - issuedate :Date - hashardcover :boolean XAuthor - xauthorid :int - authorsname :String - birthyear :int Auto-generated getters and setters + getauthorlist() :List<XAuthor> + gethashardcover() :boolean + getid() :int + getissuedate() :Date + gettitle() :String + setauthorlist(list<xauthor>) :void + sethashardcover(boolean) :void + setid(int) :void + setissuedate(date) :void + settitle(string) :void -booklist * -authorlist + getauthorsname() :String + getbirthyear() :int * + getbooklist() :List<XBook> + getid() :int + setauthorsname(string) :void + setbirthyear(int) :void + setbooklist(list<xbook>) :void + setid(int) :void Auto-generated getters and setters WMIiB
25 Generowanie DAO author * * book «interface» IObjectDAO CRUD operations + delete(object) :int + delete(int) :int + deletelist(list<?>) :int[] + insert(object) :int + insertlist(list<?>) :int[] + read(int) :Object + read(list<?>) :List<?> + read(object) :List<?> + update(object, int) :int + updatelist(list<?>) :int[] util::connectionfactory + getconnection() :Connection + getinstance() :ConnectionFactory AuthorDAO BookDAO + AuthorDAO(Connection) + delete(int) :int + delete(object) :int + deletelist(list<?>) :int[] + insert(object) :int + insertlist(list<?>) :int[] + read(list<?>) :List<XAuthor> + read(object) :List<XAuthor> + read(int) :XAuthor + update(object, int) :int + updatelist(list<?>) :int[] + BookDAO(Connection) + delete(object) :int + delete(int) :int + deletelist(list<?>) :int[] + insert(object) :int + insertlist(list<?>) :int[] + read(list<?>) :List<XBook> + read(int) :XBook + read(object) :List<XBook> + update(object, int) :int + updatelist(list<?>) :int[] util::daomanager # connection :Connection = null {bag} # daoobject :IObjectDAO = null {bag} + executeandclose(daocommand) :Object + getdaoobject(object) :IObjectDAO + getinstance() :DAOManager + transaction(daocommand) :Object + transactionandclose(daocommand) :Object # getconnection() :Connection # gettxconnection() :Connection WMIiB :: PODSUMOWANIE :: 25
26 Dla kogo jest ReDSeeDS? Sformułowanie wymagań Sprecyzowanie wymagań Zaprojektowanie systemu Zamawiający Oszacowanie pracochłonności Przetestowanie systemu Zamawiający Wykonawcy Zaimplementowanie systemu Organizacje zamawiające oprogramowanie Firmy produkujące oprogramowanie Osoby amatorsko tworzące oprogramowanie WMIiB Aktualny status Dostepna pełna specyfikacja języka RSL ReDSeeDS Engine ver dostępna on-line Edytor RSL: przypadki użycia, scenariusze, pojęcia dziedzinowe Edytory graficzne Edytory tekstowe Automatyczne tworzenie modelu dziedziny Zintegrowana maszyna transformacji Integracja z Enterprise Architect i Modelio Generacja UML i kodu Java + MVP + Swing Java + MVP + Echo web framework WMIiB
27 Przyszłość Rozszerzenie możliwości generacji kodu Rozszerzenie docelowych technologii UI (JavaFX, Flex, Android SDK, ) Rozszerzenie docelowych modeli architektury i języków Nowe zastosowania: odzyskiwanie i migracja wyeksploatowanych systemów Projekt REMICS ( Odzyskiwanie na podstawie obserwowalnego zachowania (zapisywanie skryptów UI) do RSLa i generacja w nowej technologii Niezależna od pokręconego wnętrza wyeksploatowanego systemu WMIiB Dziękuję za uwagę! 27
Od wymagań do Javy w mgnieniu oka
Od wymagań do Javy w mgnieniu oka Michał Śmiałek Politechnika Warszawska RE-Challenge, Warszawa, 15.05.2015 Prelegent Czym się zajmowałem (od ok. 1991 r.) Profesor (informatyka) Politechnika Warszawska;
WZORCE LOGIKI APLIKACJI Reużywalne składniki wymagań
WZORCE LOGIKI APLIKACJI Reużywalne składniki wymagań Albert Ambroziewicz, Michał Śmiałek Politechnika Warszawska KKIO 0, SCR 0 27-29.09.200 Treść prezentacji Wprowadzenie powtarzalność rozwiązań w IO Koncepcja
Programowanie obiektowe
Programowanie obiektowe Laboratorium 11 - przegląd wybranych wzorców mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 24 maja 2017 1 / 38 mgr inż. Krzysztof Szwarc Programowanie obiektowe Wzorce
Zwinna współpraca programistów i testerów z wykorzystaniem BDD i. by Example (JBehave/Spock/SpecFlow)
Program szkolenia: Zwinna współpraca programistów i testerów z wykorzystaniem BDD i Spec Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Zwinna współpraca programistów i testerów
Wzorce logiki dziedziny
Wzorce logiki dziedziny 1. Wzorce logiki dziedziny skrypt transakcji (Transaction Script), brama tabeli (Table Data Gateway), model dziedziny (Domain model), strategia (Strategy), moduł tabeli (Table Module),
Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1
Diagramy maszyn stanowych, wzorce projektowe Wykład 5 część 1 Zofia Kruczkiewicz Zofia Kruczkiewicz Inżynieria oprogramowania INEK011 1 Składnia elementów na diagramach UML 1. W prezentacji składni diagramów
Kontrola spójności modeli UML za pomocą modelu. Stanisław Jerzy Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska
Kontrola spójności modeli UML za pomocą modelu przestrzennego DOD Stanisław Jerzy Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska Wprowadzenie Obecne metody kontroli spójności modeli
Narzędzia CASE dla.net. Łukasz Popiel
Narzędzia CASE dla.net Autor: Łukasz Popiel 2 Czym jest CASE? - definicja CASE (ang. Computer-Aided Software/Systems Engineering) g) oprogramowanie używane do komputerowego wspomagania projektowania oprogramowania
MVC w praktyce tworzymy system artykułów. cz. 1
MVC w praktyce tworzymy system artykułów. cz. 1 Tworząc różnego rodzaju aplikacje natrafiamy na poważny problem utrzymania dobrej organizacji kodu przejrzystej oraz łatwej w rozbudowie. Z pomocą przychodzą
Programowanie obiektowe
Programowanie obiektowe Wykład 7 Marcin Młotkowski 8 kwietnia 2015 Plan wykładu Z życia programisty, część 1 1 Z życia programisty, część 1 2 3 Z życia programisty, część 2 Model View Controller MVC w
ZARZĄDZANIE WYMAGANIAMI ARCHITEKTONICZNYMI
ZARZĄDZANIE WYMAGANIAMI ARCHITEKTONICZNYMI XVIII Forum Teleinformatyki mgr inż. Michał BIJATA, doktorant, Wydział Cybernetyki WAT Michal.Bijata@WAT.edu.pl, Michal@Bijata.com 28 września 2012 AGENDA Architektura
Laboratorium 8 Diagramy aktywności
Laboratorium 8 Diagramy aktywności Zofia Kruczkiewicz Zofia Kruczkiewicz Lab_INP002017_8 1 Modelowanie zachowania obiektów za pomocą diagramów aktywności. Modelowanie zachowania obiektów za pomocą diagramów
Programowanie obiektowe
Programowanie obiektowe Wykład 2: Wstęp do języka Java 3/4/2013 S.Deniziak: Programowanie obiektowe - Java 1 Cechy języka Java Wszystko jest obiektem Nie ma zmiennych globalnych Nie ma funkcji globalnych
Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 7 Modelowanie klas i stanów, generacja kodu. Materiały dla studentów
Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Ćwiczenie 7 Modelowanie klas i stanów, generacja kodu Materiały dla studentów Projekt współfinansowany
Cel wykładu. Literatura. Wyższa Szkoła Menedżerska w Legnicy. Modelowanie wymagań Wykład 2
Wyższa Szkoła Menedżerska w Legnicy Systemy informatyczne w przedsiębiorstwach Zarządzanie, ZIP, sem. 6 (JG) Modelowanie wymagań Wykład 2 Grzegorz Bazydło Cel wykładu Celem wykładu jest przekazanie wiedzy
Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/
Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Aplikacja internetowa tworzona na podstawie bazy danych. Programowanie komponentowe 2, Zofia
Wykład 1 Inżynieria Oprogramowania
Wykład 1 Inżynieria Oprogramowania Wstęp do inżynierii oprogramowania. Cykle rozwoju oprogramowaniaiteracyjno-rozwojowy cykl oprogramowania Autor: Zofia Kruczkiewicz System Informacyjny =Techniczny SI
Konfiguracja modelowania w procesie wytwarzania oprogramowania
Konfiguracja modelowania w procesie wytwarzania oprogramowania Anna Bobkowska Materiały pomocnicze do wykładu z Modelowania i Analizy Systemów na Wydziale ETI PG. Ich lektura nie zastępuje obecności na
Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 7
Instrukcja 7 Laboratoria 9, 10 Opracowanie diagramów sekwencji dla wybranych przypadków użycia reprezentujących usługi oprogramowania wynikających również z wykonanych diagramów czynności; definicja operacji
Systemy Rozproszone. Spis treści. Temat projektu: Regułowy system analizujacy logi. autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki
Systemy Rozproszone Temat projektu: Regułowy system analizujacy logi Spis treści autorzy: Rafał Sadłowski, Sebastian Falkus, Michał Różycki Cel Projektu...2 Dane aplikacji...2 Technologia...2 Zarządzanie
Laboratorium z przedmiotu: Inżynieria Oprogramowania INP
Laboratoria 5-7- część 1 Identyfikacja klas reprezentujących logikę biznesową projektowanego oprogramowania, definicja atrybutów i operacji klas oraz związków między klasami - na podstawie analizy scenariuszy
1. WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI
KARTA PRZEDMIOTU przedmiotu Stopień studiów i forma Rodzaj przedmiotu Grupa kursów Zaawansowane techniki analizy systemowej oparte na modelowaniu warsztaty Studia podyplomowe Obowiązkowy NIE Wykład Ćwiczenia
Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/
Wprowadzenie do technologii JavaServer Faces 2.1 na podstawie http://docs.oracle.com/javaee/6/tutorial/doc/ Aplikacja internetowa tworzona na podstawie bazy danych. Programowanie komponentowe 2, Zofia
Programowanie obiektowe
Programowanie obiektowe Podstawowe cechy i możliwości języka Scala mgr inż. Krzysztof Szwarc krzysztof@szwarc.net.pl Sosnowiec, 2017 1 / 32 mgr inż. Krzysztof Szwarc Programowanie obiektowe Informacje
Analiza biznesowa a metody agile owe
Analiza biznesowa a metody agile owe P6S_WG01 ma wiedzę w zakresie metodyk zwinnych P6S_WG02 ma wiedzę w zakresie zwinnego gromadzenia i zarządzania wymaganiami P6S_WG03 zna i rozumie proces wytwarzania
Poznaj ASP.NET MVC. Kamil Cieślak Microsoft Student Partner 2013-03-11
Poznaj ASP.NET MVC Kamil Cieślak Microsoft Student Partner 2013-03-11 Agenda Czym jest ASP.NET MVC? Wzorzec MVC ASP.NET MVC vs inne frameworki Bazy danych w ASP.NET MVC Jak zacząć? 2 Czym jest ASP.NET
Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty
Karta opisu przedmiotu Zaawansowane techniki analizy systemowej oparte o modelowanie warsztaty przedmiotu Stopień studiów i forma: Rodzaj przedmiotu Kod przedmiotu Grupa kursów Zaawansowane techniki analizy
Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania
Instrukcja 2 Laboratorium z Podstaw Inżynierii Oprogramowania Opis biznesowy świata rzeczywistego Wymagania funkcjonalne i niefunkcjonalne aplikacji Diagram przypadków życia Diagramy klas i sekwencji:
Programowanie obiektowe zastosowanie języka Java SE
Programowanie obiektowe zastosowanie języka Java SE Wstęp do programowania obiektowego w Javie Autor: dr inŝ. 1 Java? Java język programowania obiektowo zorientowany wysokiego poziomu platforma Javy z
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Problem: Jak zaimplementować stos? Co się stanie gdy dodamy do stosu obiekt typu Czlowiek? Co się stanie, gdy spróbujemy ten obiekt odczytać
Laboratorium Programowania Kart Elektronicznych
Laboratorium Programowania Kart Elektronicznych Programowanie JavaCard Marek Gosławski Przygotowanie do zajęć dokumentacja JavaCard i GlobalPlatform środowisko programistyczne karta JavaCard Potrzebne
Gdzie jest moja tabela?
Gdzie jest moja tabela? Czyli jak sobie radzić w Javie i SQL gdy zmienia się schemat bazy danych. Tomasz Skutnik 21 Listopada 2011 r UWIELBIAM piratów programować. Dziś koduję sklep internetowy. Jak rozmawiać
I.Wojnicki, Tech.Inter.
Igor Wojnicki (AGH, KA) Frameworks 28 maja 2012 1 / 31 Frameworks oraz Serwery Aplikacji Igor Wojnicki Katedra Automatyki Akademia Górniczo-Hutnicza w Krakowie 28 maja 2012 Igor Wojnicki (AGH, KA) Frameworks
Automatyczne generowanie testów z modeli. Bogdan Bereza Automatyczne generowanie testów z modeli
Automatyczne generowanie testów z modeli Numer: 1 (33) Rozkmina: Projektowanie testów na podstawie modeli (potem można je wykonywać ręcznie, lub automatycznie zwykle chce się automatycznie) A ja mówię
Zofia Kruczkiewicz - Modelowanie i analiza systemów informatycznych 2
Modelowanie i analiza systemów informatycznych 1. Warstwowa budowa systemów informatycznych 2. Model procesu wytwarzania oprogramowania - model cyklu życia oprogramowania 3. Wstęp do modelowania systemów
MeetingHelper. Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania. Instrukcja obsługi dla programisty
MeetingHelper Aplikacja Android ułatwiająca przekazywanie materiałów pomiędzy uczestnikami spotkania Instrukcja obsługi dla programisty W tej części został zawarty opis uruchamiania projektu programistycznego,
Diagram stanów Laboratorium 9
Diagram stanów Laboratorium 9 Zofia Kruczkiewicz Zofia Kruczkiewicz lab_inp002017_9 1 Modelowanie zachowania obiektu za pomocą diagramu stanów. Opracowanie diagramu stanów dla obiektu wybranej klasy, reprezentującego
Dzisiejszy wykład. Wzorce projektowe. Visitor Client-Server Factory Singleton
Dzisiejszy wykład Wzorce projektowe Visitor Client-Server Factory Singleton 1 Wzorzec projektowy Wzorzec nazwana generalizacja opisująca elementy i relacje rozwiązania powszechnie występującego problemu
Receptury - niezbędnik projektanta i architekta
Program szkolenia: Receptury - niezbędnik projektanta i architekta Informacje ogólne Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Receptury - niezbędnik projektanta i architekta Craft-Receptury
Automatyczne generowanie kodu. Marek.Berkan@e-point.pl. 4Developers, 26 marca 2010
4Developers, 26 marca 2010 Zakres wykładu O czym zamierzam opowiedzieć: Przyspieszenie tworzenia aplikacji Ułatwienie utrzymania aplikacji Budowanie kontraktów pomiędzy developerami a innymi uczestnikami
DSL w środowisku Eclipse. Grzegorz Białek Architekt techniczny, Sygnity S.A.
DSL w środowisku Eclipse Grzegorz Białek Architekt techniczny, Sygnity S.A. Agenda Wstęp do tematu (10 min) Sens tworzenia języków biznesowych UML jako język biznesu? Zintegrowane środowisko deweloperskie
Laboratorium z przedmiotu: Inżynieria Oprogramowania INEK Instrukcja 6
Instrukcja 6 Laboratorium 8 Opracowanie diagramów sekwencji dla wybranych przypadków użycia reprezentujących usługi oprogramowania wynikających również z wykonanych diagramów czynności; definicja operacji
STANOWISKA JĘZYKOWE DO BUDOWY SERWISÓW INFORMACYJNYCH
OPROGRAMOWANIA - KRAKÓW 2012 Włodzimierz DĄBROWSKI Agata KOSIOR Andrzej STASIAK STANOWISKA JĘZYKOWE DO BUDOWY SERWISÓW INFORMACYJNYCH AGENDA Problem projektowy (geneza metody KSM) Stanowisko językowe (SJ)?
Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i
Program szkolenia: Produktywne tworzenie aplikacji webowych z wykorzystaniem Groovy i Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Produktywne tworzenie aplikacji webowych z
INŻYNIERIA OPROGRAMOWANIA
INSTYTUT INFORMATYKI STOSOWANEJ 2013 INŻYNIERIA OPROGRAMOWANIA Inżynieria Oprogramowania Proces ukierunkowany na wytworzenie oprogramowania Jak? Kto? Kiedy? Co? W jaki sposób? Metodyka Zespół Narzędzia
Jarosław Żeliński analityk biznesowy, projektant systemów
Trendy w architekturze oprogramowania zarządzającego procesami biznesowymi i przepływem pracy - dedykowane czy standardowe? Jarosław Żeliński analityk biznesowy, projektant systemów O mnie Od 1991 roku
Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu.
Sposoby tworzenia projektu zawierającego aplet w środowisku NetBeans. Metody zabezpieczenia komputera użytkownika przed działaniem apletu. Dr inż. Zofia Kruczkiewicz Dwa sposoby tworzenia apletów Dwa sposoby
PRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: PROJEKTOWANIE SYSTEMÓW INFORMATYCZNYCH I KARTA PRZEDMIOTU CEL PRZEDMIOTU PRZEWODNIK PO PRZEDMIOCIE C1. Podniesienie poziomu wiedzy studentów z inżynierii oprogramowania w zakresie C.
Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram klas. Materiały dla nauczyciela
Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Laboratorium modelowania oprogramowania w języku UML Ćwiczenie 2 Ćwiczenia w narzędziu CASE diagram
Android, wprowadzenie do SDK
Android, wprowadzenie do SDK Wprowadzenie, konfguracja środowiska, narzędzia, pierwsze aplikacje. prowadzący: Piotr Szymański, student 3 roku informatyki Paweł Rejkowicz, student 1 roku Informatyki 1 Android
Całościowe podejście do testowania automatycznego dla programistów. (TDD, BDD, Spec. by Example, wzorce, narzędzia)
Program szkolenia: Całościowe podejście do testowania automatycznego dla programistów Ruby (TDD, BDD, Spec. by Example, wzorce, narzędzia) Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania:
Analiza i projektowanie aplikacji Java
Analiza i projektowanie aplikacji Java Modele analityczne a projektowe Modele analityczne (konceptualne) pokazują dziedzinę problemu. Modele projektowe (fizyczne) pokazują system informatyczny. Utrzymanie
Ewolucyjna architektura
Ewolucyjna architektura www.sxc.hu/photo/850368 Na początek Michał Bartyzel konsultant, trener BNS IT procesy zwinne i nie tylko architektura czysty kod software crafstmanship strategie skutecznych programistów
Diagramy czynności Na podstawie UML 2.0 Tutorial
Diagramy czynności Na podstawie UML 2.0 Tutorial http://sparxsystems.com.au/resources/uml2_tutorial/ Zofia Kruczkiewicz 1 Diagramy czynności 1. Diagramy czyności UML http://sparxsystems.com.au/resources/uml2_tutorial/
Projekt architektury systemów informatycznych Uniwersytetu Warszawskiego w oparciu o metodykę TOGAF. Tomasz Turski 26.05.2011
Projekt architektury systemów informatycznych Uniwersytetu Warszawskiego w oparciu o metodykę TOGAF Tomasz Turski 26.05.2011 Plan prezentacji Architektura korporacyjna Frameworki Pryncypia Metodyka TOGAF
Programowanie Obiektowe GUI
Programowanie Obiektowe GUI Swing Celem ćwiczenia jest ilustracja wizualnego tworzenia graficznego interfejsu użytkownika opartego o bibliotekę Swing w środowisku NetBeans. Ponadto, ćwiczenie ma na celu
Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom.
Instrukcja tworzenia aplikacji EE na bazie aplikacji prezentowanej na zajęciach lab.4 z PIO umożliwiająca przez sieć dostęp wielu użytkownikom. Projektowanie i wdrażanie systemów informatycznych Przekształcenie
Programowanie w języku Java WYKŁAD
Programowanie w języku Java WYKŁAD dr inż. Piotr Zabawa Certyfikowany Konsultant IBM/Rational e-mail: pzabawa@pk.edu.pl www: http://www.pk.edu.pl/~pzabawa 26.05.2014 WYKŁAD 13 Refleksja Data Access Object
Metryki oprogramowania. Marian Jureczko
Metryki oprogramowania Marian Jureczko Plan wykładu Metryki wyliczane z kodu źródłowego CK Metrics (1994) Złożoność cyklomatyczna McCabe'a (1976) Metryki wyliczane z diagramów (2002) Narzędzia do wyliczania
Praktyczne aspekty stosowania metody punktów funkcyjnych COSMIC. Jarosław Świerczek
Praktyczne aspekty stosowania metody punktów funkcyjnych COSMIC Jarosław Świerczek Punkty funkcyjne Punkt funkcyjny to metryka złożoności oprogramowania wyznaczana w oparciu o określające to oprogramowanie
WICKET VS. DJANGO. Leszek Gawron vs. Michał Leszczyński
WICKET VS. DJANGO Leszek Gawron vs. Michał Leszczyński 0. Główne ficze 1. Środowisko developerskie AGENDA 2. Uruchomienie projektów 3. Warstwa DAO/serwisów 4. Tworzenie UI 5. Templating 7. i18n 8. Reusability
MODELOWANIE OBIEKTOWE
(Wykład na podstawie literatury: M.Śmiałek Zrozumieć UML 2.0, Helion 2005) UML Unified Modeling Language (język do specyfikowania, wizualizowania, konstruowania i dokumentacji tzw. artefactów oraz czynności
Java - wprowadzenie. Programowanie Obiektowe Mateusz Cicheński
Java - wprowadzenie Programowanie Obiektowe Mateusz Cicheński O języku Czym jest Java Cechy charakterystyczne języka Przykładowe zastosowania Składnia języka Podstawowe typy Wybrane słowa kluczowe Plan
Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -
Nazwa modułu: Programowanie obiektowe Rok akademicki: 2012/2013 Kod: ZIE-1-306-s Punkty ECTS: 3 Wydział: Zarządzania Kierunek: Informatyka i Ekonometria Specjalność: - Poziom studiów: Studia I stopnia
Scala - programowanie obiektowo-funkcyjne
Program szkolenia: Scala - programowanie obiektowofunkcyjne Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania: Forma: Scala - programowanie obiektowo-funkcyjne Scala-Scala Scala developerzy
Wymiana opisu procesów biznesowych pomiędzy środowiskiem Eclipse i EMC Documentum
Wymiana opisu procesów biznesowych pomiędzy środowiskiem Eclipse i EMC Documentum Stanisław Jerzy Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska Wprowadzenie Systemy CMS (Content
Metody dostępu do danych
Metody dostępu do danych dr inż. Grzegorz Michalski Na podstawie materiałów dra inż. Juliusza Mikody Jak działa JDO Podstawowym zadaniem JDO jest umożliwienie aplikacjom Javy transparentnego umieszczenia
Laboratorium modelowania oprogramowania w języku UML. Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia. Materiały dla nauczyciela
Zakład Elektrotechniki Teoretycznej i Informatyki Stosowanej Wydział Elektryczny, Politechnika Warszawska Ćwiczenie 5 Ćwiczenia w narzędziu CASE diagram przypadków uŝycia Materiały dla nauczyciela Projekt
Aplikacje WWW - laboratorium
Aplikacje WWW - laboratorium JavaServer Faces Celem ćwiczenia jest przygotowanie aplikacji internetowej z wykorzystaniem technologii JSF. Prezentowane ćwiczenia zostały wykonane w środowisku Oracle JDeveloper
Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz
Programowanie obiektowe Literatura: Autor: dr inŝ. Zofia Kruczkiewicz Java P. L. Lemay, Naughton R. Cadenhead Java Podręcznik 2 dla kaŝdego Języka Programowania Java Linki Krzysztof Boone oprogramowania
Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl
Narzędzia i aplikacje Java EE Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl Niniejsze opracowanie wprowadza w technologię usług sieciowych i implementację usługi na platformie Java EE (JAX-WS) z
REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN
REQB POZIOM PODSTAWOWY PRZYKŁADOWY EGZAMIN Podziękowania REQB Poziom Podstawowy Przykładowy Egzamin Dokument ten został stworzony przez główny zespół Grupy Roboczej REQB dla Poziomu Podstawowego. Tłumaczenie
Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.
GRZEGORZ FURDYNA Krótka Historia Co to jest NetBeans? Historia Wersje NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły NetBeans Profiler Narzędzie do projektowania GUI Edytor NetBeans
Systemy operacyjne na platformach mobilnych
Systemy operacyjne na platformach mobilnych Wykład 3 Grzegorz Jabłoński, Piotr Perek Katedra Mikroelektroniki i Technik Informatycznych Zagadnienia wykładu Menu opcji ListActivity własny widok własny adapter
Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło
Projektowanie Graficznych Interfejsów Użytkownika Robert Szmurło LATO 2007 Projektowanie Graficznych Interfejsów Użytkownika 1 Wzorce Projektowe Nie ma złotego środka spełniającego wszystkie wymagania.
PRZEWODNIK PO PRZEDMIOCIE
Nazwa przedmiotu: Kierunek: Informatyka Rodzaj przedmiotu: obowiązkowy w ramach specjalności: Programowanie aplikacji internetowych Rodzaj zajęć: laboratorium PRZEWODNIK PO PRZEDMIOCIE I KARTA PRZEDMIOTU
Część I - Załącznik nr 7 do SIWZ. Warszawa. 2011r. (dane Wykonawcy) WYKAZ OSÓB, KTÓRYMI BĘDZIE DYSPONOWAŁ WYKONAWCA DO REALIZACJI ZAMÓWIENIA
CSIOZ-WZP.65.48.20 Część I - Załącznik nr 7 do SIWZ Warszawa. 20r. (dane Wykonawcy) WYKAZ OSÓB, KTÓRYMI BĘDZIE DYSPONOWAŁ WYKONAWCA DO REALIZACJI ZAMÓWIENIA Wykonawca oświadcza, że do realizacji zamówienia
Testowanie według modelu (MBT) Stowarzyszenie Inżynierii Wymagań wymagania.org.pl
Testowanie według modelu (MBT) Bogdan Bereza, Victo MBT testowanie z modelu wersja 2.1 A 1 (48) Pozdrawiam Best regards Med vänliga hälsningar Bogdan Bereza bogdan.bereza@victo.eu +48 519 152 106 Skype:
Model przestrzenny Diagramu Obiegu Dokumentów. Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska
Model przestrzenny Diagramu Obiegu Dokumentów Stanisław Niepostyn, Ilona Bluemke Instytut Informatyki, Politechnika Warszawska Wprowadzenie Sposoby weryfikacji architektury oprogramowania: - badanie prototypu
Rysunkowy tutorial Możesz swobodnie dystrybuować ten plik jeśli pozostawisz go w nietkniętym stanie. Możesz także cytować jego fragmenty umieszczając w tekście odnośnik http://mbartyzel.blogspot.com Jak
Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)
Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia) WERSJA WSTĘPNA, BRAK PRZYKŁADOWYCH PYTAŃ DLA NIEKTÓRYCH PRZEDMIOTÓW Należy wybrać trzy dowolne
JAVA Materiały do laboratorium III wersja niezaawansowana Marcin Borkowski WSEiZ czerwiec 2006
1 Najprostszy program okienkowy 1.1 Kod: JAVA Materiały do laboratorium III wersja niezaawansowana Marcin Borkowski WSEiZ czerwiec 2006 public class okno1 extends Frame public okno1() ); okno1 o = new
Wstęp - Prosta aplikacja internetowa w technologii Java EE 5. Programowanie komponentowe 1
Wstęp - Prosta aplikacja internetowa w technologii Java EE 5 Programowanie komponentowe 1 Przykład 1- Wykonanie prostej aplikacji internetowej w technologii JavaEE w środowisku Netbeans 5.5 z wykorzystaniem
BEAN VALIDATION. Waldemar Korłub. Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska
BEAN VALIDATION Waldemar Korłub Narzędzia i aplikacje Java EE KASK ETI Politechnika Gdańska Bean Validation Uniwersalny mechanizm walidacji danych we wszystkich warstwach aplikacji Warstwa interfejsu,
Budowanie aplikacji biznesowych przy użyciu. Presentation Foundation i wzorca MVVM
Budowanie aplikacji biznesowych przy użyciu Windows Presentation Foundation i wzorca MVVM Raffaele Garofalo Przekład: Jakub Niedźwiedź APN Promise Warszawa 2011 Spis treści Wstęp................................................................
Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.
Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej Wstęp Programowanie w Javie 2 mgr inż. Michał Misiak Agenda Założenia do wykładu Zasady zaliczeń Ramowy program wykładu
Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Na przykładzie języków Java, C# i odrobiny C++ Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Refleksja Typy anonimowe Wyrażenia lambda Extension methods *LINQ Java jest językiem dynamicznym
Projektowanie oprogramowania
Wrocław, 27.09.2010 1. Warunki wstępne Projektowanie oprogramowania Warunkiem uczestnictwa w zajęciach jest zaliczenie przedmiotu: Podstawy inżynierii oprogramowania (ćwiczenia) Zajęcia składają się z
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Object-oriented programming Najpopularniejszy obecnie styl (paradygmat) programowania Rozwinięcie koncepcji programowania strukturalnego
Języki i paradygmaty programowania - 1
doc. dr inż. Tadeusz Jeleniewski e-mail: t.jeleniewski@neostrada.pl tadeusz.jeleniewski@pwr.edu.pl http://www.tjeleniewski.wstt.edu.pl Cele przedmiotu Umiejętność zastosowania i oceny przydatności paradygmatów
UML w Visual Studio. Michał Ciećwierz
UML w Visual Studio Michał Ciećwierz UNIFIED MODELING LANGUAGE (Zunifikowany język modelowania) Pozwala tworzyć wiele systemów (np. informatycznych) Pozwala obrazować, specyfikować, tworzyć i dokumentować
Tutorial prowadzi przez kolejne etapy tworzenia projektu począwszy od zdefiniowania przypadków użycia, a skończywszy na konfiguracji i uruchomieniu.
AGH, EAIE, Informatyka Winda - tutorial Systemy czasu rzeczywistego Mirosław Jedynak, Adam Łączyński Spis treści 1 Wstęp... 2 2 Przypadki użycia (Use Case)... 2 3 Diagramy modelu (Object Model Diagram)...
Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)
Program szkolenia: Przygotowanie do nowoczesnego programowania po stronie przeglądarki (HTML5, CSS3, JS, wzorce, architektura, narzędzia) Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas trwania:
XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery
http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod
Nowocześnie zaprojektowana e-usługa - studium przypadku
2012 Nowocześnie zaprojektowana e-usługa - studium przypadku Piotr Kocjan Wyzwania w projektowaniu i programowaniu e-usługi Poznań, 11 października 2012 Problem Wyzwania w projektowaniu i programowaniu
Całościowe podejście do testowania automatycznego dla programistów. /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia)
Program szkolenia: Całościowe podejście do testowania automatycznego dla programistów Java /C#/PHP (TDD, BDD, Spec. by Example, wzorce, narzędzia) Informacje: Nazwa: Kod: Kategoria: Grupa docelowa: Czas
Laboratorium z przedmiotu: Inżynieria Oprogramowania INP002017_ Laboratorium 11 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse
Laboratorium 11 Testy akceptacyjne z wykorzystaniem narzędzia FitNesse 1 Cel laboratorium: Nabycie umiejętności przygotowywania testów akceptacyjnych za pomocą narzędzia FitNesse 1. Wg wskazówek podanych
STUDIA STACJONARNE I STOPNIA Przedmioty kierunkowe
STUDIA STACJONARNE I STOPNIA Przedmioty kierunkowe Technologie informacyjne Prof. dr hab. Zdzisław Szyjewski 1. Rola i zadania systemu operacyjnego 2. Zarządzanie pamięcią komputera 3. Zarządzanie danymi
Przykład zastosowania notacji UML dla realizacji zastosowania wzorca Mediator (materiały dla studentów na prawach rękopisu)
Dr inż. Wojciech Koziński maj 2007 ZS ISEP WE PW Przykład zastosowania notacji UML dla realizacji zastosowania wzorca Mediator (materiały dla studentów na prawach rękopisu) Opis systemu (wzorca Mediator):