Informatyka II
Inżynieria oprogramowania
Inżynieria oprogramowania
dr inż Jacek Reiner
dr inż Jacek Reiner
na podstawie
Industrielle Software Entwicklung fur Ingenieure
itm - Lehrstuhl für Informationstechnik im Maschinenwesen
prof. Klaus Bender; prof. Frank Schiller
Wykład 1 part a: Motywacja
lð
Motywacja po co inżynierowi mechanikowi
oprogramowanie?
lð
Cele i zakres wykładu
lð
Organizacja
lð
Zespół
lð
Dlaczego obiektowość?
lð
Dlaczego C++
lð
Inżynieria oprogramowania
lð
Kompozycja wykładu
2
itm & MVLab (C) 2007-08
Znaczenie oprogramowania
w przemyśle
lð
Nowoczesne narzędzia inżynierskie to
oprogramowanie
lð
Narzędzia projektowania: CAx (CAD, CAM, CAQ, CAPP, ...)
lð
Obliczenia i analizy: FEM, MES, ...
lð
Narzędzia symulacyjne: logistyka, montaż
lð
Testery
lð
Wspomaganie produkcji: PPS, PDM, ...
lð
Wizualizacja: digital mockup, VR
lð
Przetwarzanie danych: Office, SQL
lð
Sieci komputerowe: www
lð
Åšrodowiska rozwoju oprogramowania
3
itm & MVLab (C) 2007-08
Automatyzacja, integracja,
rozszerzalność
lð
Automatyzacja
lð
Dla czynności powtarzających się
lð
Dla wyliczeń (np. umieszczanie elementów po okręgu)
lð
Integracja
lð
Z użytkownikiem GUI
lð
Z innymi programami lub bazami danych
lð
Rozszerzalność
lð
Nowe funkcje, algorytmy
4
itm & MVLab (C) 2007-08
SolidWorks
API Fundamentals 3days Training
5
itm & MVLab (C) 2007-08
AutCAD
Interfejs użytkownika
6
itm & MVLab (C) 2007-08
ANSYS
Programowe zadawanie warunków symulacji w AnSYS
!AnSYS -model
[& ]
VDELE,all
NUMMRG,all
ASBA,11,8,,delete,delete
ASBA,24,7,,delete,delete
ASBA,23,32,,delete,delete
ADELE,29,31,2
ADELE,3,4,1
ADELE,15,25,10
AL,10,11,110
AL,4,109,5
LCOMB,103,104,1 AL,94,5,11,96
AL,95,109,110,26
AADD,16,20
LSTR,31,39 !(L17)
LSTR,27,39 !(L80)
LSTR,35,39 !(111)
LSTR,43,39 !(112)
[& ]
7
itm & MVLab (C) 2007-08
SIMUL8
symulacja procesów dyskretnych
8
itm & MVLab (C) 2007-08
AnyLogic
multi-paradigm simulation software
Java Basics for AnyLogic Modelers presentation
" What you do and do not need to learn about Java to be
successful with AnyLogic
" Java syntax basics
" Primitive data types
" Arithmetic and Boolean operations
" Classes, methods and fields
" Writing algorithms, Java statements
" Most frequently used functions built into AnyLogic
" Java collections
" Using standard and specific Java packages
9
itm & MVLab (C) 2007-08
Zemax
Inżynieria optyczna
lð
Automatyzacja
lð
Język sktyptów
lð
Import modeli CAD
lð
Integracja
lð
VB, Excel, Matlab
lð
Rozszerzalność
lð
Nowa, specyficzna
refleksyjność powierzchni (dll)
10
itm & MVLab (C) 2007-08
Vision Assistent vs. LabView
Klikanie czy programowanie?
11
itm & MVLab (C) 2007-08
Zakres kursu Informatyka II
lð lð
Rozwój SW dla PC Potrzeby inżynierów
lð
Kategorie oprogramowania
budowy maszyn
lð
Zawężenie do OO
lð
Przykłady praktyczne
lð
Procedury postępowania
lð
Umiejętność
lð wykorzystywania metod,
Implementacja C++
technik i narzędzi
informatycznych
12
itm & MVLab (C) 2007-08
Cel kursu
lð lð
Przekazanie wiedzy Przekazanie
lð
Umiejętność dołączenia do
umiejętności
dyskusji
lð
Samodzielne rozwiÄ…zywanie
lð
Znajomość pojęć fachowych
problemów
lð programistycznych
Uporządkowanie tematów i
pojęć
lð
Podejście systemowe
lð
Rozszerzenie horyzontów
lð
UML
lð
C++
13
itm & MVLab (C) 2007-08
Organizacja kursu
lð
7 wykładów dwugodzinnych
lð
Zaliczenie pisemne
lð
15 Laboratoriów
lð
Informatyka I (dr. inż W.Myszka) to już wiemy !!!
lð
http://www.immt.pwr.wroc.pl/~myszka/InformatykaI/
lð
Obecności (patrz Regulamin studiów)
lð
Przygotowanie kartkówki
lð
Większy programik na zaliczenie:
lð
weryfikacja umiejętności proszę zmień ... coś ...
14
itm & MVLab (C) 2007-08
Zespół
Jacek Reiner dr inż.
B4/3.12
Jacek.Reiner@pwr.wroc.pl
Mariusz Mrzygłód mgr inż.
Mariusz.Mrzyglod@pwr.wroc.pl
Piotr Szeplik dr inż.
Piotr.Szeplik@pwr.wroc.pl
Maciej Stankiewicz mgr inż.
Maciej.Stankiewicz@pwr.wroc.pl
Dariusz Tryba mgr inż.
Dariusz.Tryba@pwr..wroc.pl
15
itm & MVLab (C) 2007-08
Strona Internetowa
http://student.mvlab.pl
Pracownia Mechatroniki
i Systemów Wizyjnych
Oprogramowanie do inspekcji
wałeczków łożysk: ok. 10KLC C++
Laserowy pomiar płaskości i bicia
dysków pił: LabView
Wybrane narzędzia:
- VC++ 6.0/2005 + OpenCV
- Halcon
- LabView
- Matlab+16 Toolboxów
- MathCAD
16
itm & MVLab (C) 2007-08
Zawartość tematyczna
wykładu
lð
Podstawy
lð
obszary zastosowań,
lð
metody programowania,
lð
języki programowania,
lð
Metody i procedury
lð
z naciskiem na obiektowość i UML,
lð
Programowanie obiektowe w C++
17
itm & MVLab (C) 2007-08
Paradygmaty programowania
lð
Paradygmat
lð
to nadrzędna zasada lub sposób myślenia.
lð
Paradygmat programowania
lð
To nadrzędna zasada lub sposób opracowywania
oprogramowania dla osiągnięcia określonego
celu.
Problem RozwiÄ…zanie
Paradygmat
18
itm & MVLab (C) 2007-08
Programowanie
proceduralne/imperatywne
lð
Programowanie proceduralne to paradygmat programowania
zalecajÄ…cy dzielenie kodu na procedury, czyli fragmenty
wykonujące ściśle określone operacje. Procedury nie powinny
korzystać ze zmiennych globalnych (w miarę możliwości), lecz
pobierać i przekazywać wszystkie dane (czy też wskazniki do nich)
jako parametry wywołania.
lð
Programowanie imperatywne to paradygmat programowania, który
opisuje proces wykonywania jako sekwencjÄ™ instrukcji
zmieniających stan programu. Programy imperatywne składają się
z ciÄ…gu komend do wykonania przez komputer. Powszechnie
programowanie imperatywne uważane jest za synonim
programowania proceduralnego.
lð
Przykład programu: funkcja silnia C
unsigned long int silnia(int x) {
if (x==0) return 1; else return x*silnia(x-1); }
lð
Kod zródłowy: formułowany jako sekwencja poleceń
lð
Przykłady: Pascal, C, Fortran
19
itm & MVLab (C) 2007-08
Programowanie obiektowe
lð
Programowanie obiektowe (ang. object-oriented programming) -
paradygmat tworzenia programów komputerowych, który
definiuje programy za pomocą "obiektów" - elementów
Å‚Ä…czÄ…cych stan (czyli dane) i zachowanie (czyli procedury, tu:
metody). Obiektowy program komputerowy wyrażony jest jako
zbiór takich obiektów, komunikujących się pomiędzy sobą w
celu wykonywania zadań.
lð
Przykład programu: wyświetlanie modułu liczby zesp. C++
double mod;
Zesp lz1(3,20);
mod=lz1.modul();
cout<
lð
Kod zródłowy: definicje budowy obiektów i ich działania oraz
współpracy między sobą.
lð
Przykłady: Java, C++, VB.net, C#, Smalltalk, Delphi
20
itm & MVLab (C) 2007-08
Dlaczego obiektowość?
Najczęstszy paradygmat projektowania i programowania PC
Mechanizmy dla efektywnej obsługi i wyłapywania błędów
Wsparcie dla
pracy grupowej
Opanowanie złożoności
Przejrzysta organizacja interfejsu
Możliwość wielokrotnego wykorzystania komponentów
Aatwa rozbudowa i personalizacji rozwiązań
21
itm & MVLab (C) 2007-08
Dlaczego C++?
(a nie Java, C#, Smaltalk, VB, ...)
Sterowniki i biblioteki do kart
I/O, Motion, Framegrabber, etc
Szeroko
tzw. programowanie przy sprzęcie
rozpowszechn.
w przemyśle
Efektywny i
Bazuje na C wydajny
czasowo
C++
Możliwość
Bazy wiedzy
ponownego Potężny
Listy dyskusyjne
użycia
Literatura przykłady
22
itm & MVLab (C) 2007-08
Ograniczenia zakresu kursu
Czyli czym nie będziemy się zajmować
lð
Informatyka:
lð
Systemy bazodanowe
lð
Efektywne/wydajne algorytmy
lð
Grafika i wizualizacja (multimedia)
lð
Informatyka teoretyczna
lð
Języki formalne
lð
Sieci komputerowe i web
lð
Automatyzacja
lð
Sterowniki PLC, OSN, roboty
lð
Systemy czasu rzeczywistego
lð
Systemy wbudowane i mikroprocesory
lð
Sterowanie i regulacja, identyfikacja
23
itm & MVLab (C) 2007-08
Rola inżynierów mechaników
w rozwoju oprogramowania
Kategoria Przykład Rola inżyniera
lð lð
Małe aplikacje Przeprowadzanie Zleceniodawca
pomiarów,
lð
Wykonawca
lð
Małe aplikacje do
obsługi urządzeń
lð lð
Programy dla Systemy Zwykle kierownik
systemów produkcyjne projektu
technicznych
lð lð
Systemy Wiedza o procesie
transportowe technologicznym
lð lð
Duże systemy Systemy CA-x Zleceniodawca
software owe
lð lð
Narzędzia Określanie wymagań
symulacyjne systemu
24
itm & MVLab (C) 2007-08
Badania: Koszty rozwoju
Systemy wbudowane i oprogramowanie przemysłowe
lð
Wynik ankiety w niemieckich
przedsiębiorstwach
przemysłowych, 2003
lð
Q: Jak wysokie sÄ… Wasze
koszty rozwoju oprogramowania
w porównaniu z całkowitymi
kosztami rozwoju?
- dla około połowy to 30-60%
25
itm & MVLab (C) 2007-08
Zapotrzebowanie na procedury
postępowania (Standish Group 1995)
lð
Tylko 9% dużych, 16%-28% małych i średnich
projektów jest realizowanych zgodnie z
czasem i kosztorysem
lð
53% wszystkich projektów po zakończeniu
przekracza budżet o ok. 50%
lð
31% wszystkich projektów jest przerywanych
lð
Amerykańskie przedsiębiorstwa w roku 1995
zainwestowały ponad 81 miliardy dolarów w
niezakończone projekty
26
itm & MVLab (C) 2007-08
Badania: Royal Academy of Engineering
i British Computer Society (2004)
lð
Straty szacowane na poziomie 130 miliardów
EURO (USA) i 120 miliardów EURO (EU)
lð
Przyczyny:
lð
Brak profesjonalizmu w branży IT-Industrial
lð
Niedostateczne umiejętności odpowiedzialnych
lð
Niedostateczna wiedza i umiejętności programistów
lð
Brak lub kiepska specyfikacja
lð
Uczenie na własnych błędach
lð
Konieczność prowadzenia projektów IT jak
innych projektów inżynierskich
lð
Odpowiedzialność Uczelni Technicznych
27
itm & MVLab (C) 2007-08
Podejście metodyczne
Systemowość
Powód:
lð
Niejasne wymagania
lð
Kiepska komunikacja
lð
Zbyt pózna integracja
lð
Niepełny model procesu
lð
Braki w zapewnieniu jakości
Wniosek:
lð
Projektowanie oprogramowania nie jest zadaniem trywialnym
lð
Inżynierskie, systematyczne podejście do problemu zwiększa
prawdopodobieństwo sukcesu (Inżynieria oprogramowania)
lð
Metody ugruntowane w mechanice mogą okazać się przydatne w
rozwiązywaniu problemów typowo mechanicznych.
28
itm & MVLab (C) 2007-08
Szacowanie nakładów
Umiar w nakładach metodycznego postępowania
znajdować dla każdego projektu!!!
Więcej nie znaczy lepiej -> Over engineering
29
itm & MVLab (C) 2007-08
y
asob
Z
dy
o
t
Me
dury
roce
P
u
ekt
roj
p
r
ozmia
ność
R
ożo
Å‚
Z
t
e
t
y
r
rio
P
Wydajność a jakość
lð
Usuwanie błędów prowadzi do zwiększenia nakładów.
lð
Spełnienie rozległych wymagań jakościowych również podnosi
pracochłonność i koszty
30
itm & MVLab (C) 2007-08
e
t
iÄ™
Ä…gn
u
osi
ani
w
ości
dn
ramo
prog
szczÄ™
o
O
)
y
szemu
rat
st
lep
ki
jsze
ziÄ™
ie
d
(mn
o
w
ścio
jako
sze
ep
l
ie
na
an
dy
w
akła
ramo
N
prog
o
Struktura wykładu
Motywacja
Podstawy
Metody i sposoby
postępowania
C++
31
itm & MVLab (C) 2007-08
32
itm & MVLab (C) 2007-08
Wykład 1 part b
Obszary zastosowań
oprogramowania
Komunikacja zewnętrzna
Paradygmaty programowania
itm & MVLab (C) 2007-08 33
Obszary zastosowań
oprogramowania
Systemy wbudowane
Automatyzacja
(embedded)
WEB
komputery PC
34
itm & MVLab (C) 2007-08
Bazy danych i servery
Oprogramowanie bazujÄ…ce na
PC
Do tej grupy zaliczmy aplikacje dla zwykłych komputerów (PC,
Mac) i systemów operacyjnych (Windows, Linux, & ). Chodzi tu
także o pojedyncze zastosowania, korzystające z dużej ilości
dostępnych w OS funkcji i interfejsów
Przykłady:
lð
Office, Gry, Programy multimedialne, Programy inżynierskie
Cechy i wymagania:
lð
Kompatybilność
lð
Windows: VISTA, XP, 2000, NT, ME, ...;
lð
LINUX: Ubuntu, Mandriva, OpenSUSE, Debian, Fedora,
Slackware, Gentoo, MEPIS, Aurox, PLD, Knoppix, ...;
lð
BSD: DesktopBSD, FreeBSD, NetBSD, OpenBSD, ...
lð
Szeroki zakres dostępnych funkcji: okna, multimedia, sterowniki.
35
itm & MVLab (C) 2007-08
Bazy danych
Baza danych to trwały, systematycznie ustrukturyzowany
zbiór informacji, powiązanych zależnościami.
System zarządzania BD służy do:
lð
zapisywania,
lð
pozyskiwania,
lð
ustalania relacji i połączeń między zasobami bazy,
lð
wyodrębniania podzbiorów.
Przykłady:
lð
katalog części samochodowych, katalog książek w
bibliotece
lð
baza pacjentów, baza studentów
lð
konto bankowe
Cechy i wymagania:
lð
łatwe pozyskiwanie wymaganych podzbiorów danych.
lð
Konsystencja, redundancja, wielodostęp,
lð
Ochrona dostępu (security) i bezpieczeństwo (safety).
36
itm & MVLab (C) 2007-08
Web / Internet
Ogólnoświatowa sieć komputerowa największy zbiór
połączonych ze sobą komputerów umożliwiający swobodną
wymianę danych i ich prezentację, między nimi, za pomocą
następujących usług:
lð
WWW,
lð
Poczta elektroniczna (e-mail),
lð
Transfer plików (FTP).
Cechy i wymagania:
lð
ogromna ilość dostępnych technologii (i języków
programowania),
lð
szybki rozwój i poszerzenie obszaru zastosowań,
lð
kompatybilność dzięki standaryzacji usług
(W3C).
37
itm & MVLab (C) 2007-08
Systemy wbudowane
(embedded)
Definicja:
lð
System mikrokomputerowy zintegrowany z urzÄ…dzeniem
lð
Z zewnątrz nie widać że jest ono sterowane syst. komputerowym,
lð
Komputer połączony z resztą urządzenia za pomocą sensorów i
układów wykonawczych
lð
Komputer jest w urzÄ…dzeniu jednostkÄ… sterujÄ…cÄ… i/lub nadzorujÄ…cÄ…
Przykłady:
lð
Telefony komórkowe,
lð
Pralki,
lð
Samochody
Cechy:
lð
Bezpieczeństwo i niezawodność (Fail-Safe),
lð
Ograniczone wymagania na zasoby (pamięć, CPU, etc),
lð
Zdolność do pracy w czasie rzeczywistym,
lð
Brak typowego interfejsu człowiek-maszyna (klawiatura,
monitor, ...)
lð 38
Rozbudowane moduł wejść/wyjść (I/O).
itm & MVLab (C) 2007-08
Automatyzacja
Definicja:
Automatyzacja oznacza stosowanie urządzeń technicznych,
zapewniajÄ…cych:
lð
samodzielny przebieg procesów technicznych (wytwórczych),
lð
samodzielne działanie urządzeń, maszyn (oraz ich zespołów) i
innych układów technicznych.
Przykłady:
lð
Procesy dyskretne (obróbkowe, montażowe)
lð
Procesy ciągłe (chemiczne, spożywcze, )
Cechy i wymagania:
lð
Bezpieczeństwo i niezawodność (Fail-Safe),
lð
Zdolność do pracy w czasie rzeczywistym,
lð
Brak typowego interfejsu człowiek-maszyna (klawiatura, monitor)
lð
Rozbudowane moduły wejść/wyjść (I/O cyfrowe, analogowe).
39
itm & MVLab (C) 2007-08
Komunikacja -
Systemy wbudowane (ES)
Połączenie w sieć ES i urządzeń sterujących dla systemów
mechatronicznych.
Przykład:
W nowoczesnych samochodach jest ok. 50-100 systemów sterowania
spiętych w sieć za pomocą różnych interfejsów (CAN, LIN, MOST).
CAN (Controler Area Network)
lð
Stosunkowo tani Fieldbus dla zastosowań o wysokich wymaganiach
czasowych,
lð
Aączenie w sieć sterowników, sensorów i urządzeń wykonawczych
lð
CAN został opracowany przez BOSCH m. in. dla zastosowań w
branży samochodowej.
lð
Komunikacja rozgłoszeniowa
lð
Otwarta struktura magistrali
(odłączenie jednego urządzenia od sieci
nie powoduje przerwania komunikacji
40
pomiędzy pozostałymi)
itm & MVLab (C) 2007-08
Komunikacja - Automatyzacja
lð
AS Interface
Najprostszy z przemysłowych protokołów
komunikacyjnych sprawdzający się w maszynach o dużej
ilości czujników i elementów wykonawczych.4 Byte
danych/ 32(64) węzły i zasilanie
lð
PROFIBUS
Szybki i najbardziej popularny typ sieci przemysłowych
który umożliwia łączenie sterowników z elementami
wykonawczymi w architekturze master-slave. Umożliwia
przesyłanie telegramów o długości do 235Byte.
lð
Przemysłowy Ethernet (np. ProfiNet)
Zastosowanie standardu Ethernet w przemyśle, dzięki
czemu można korzystać z tanich i szeroko dostępnych
urządzeń i zwiększyć przepustowość sieci, korzystając
jednocześnie z architektury peer-to-peer.
41
itm & MVLab (C) 2007-08
PrzeglÄ…d komunikacji
heterogenicznej
Automatyzacja
Wbudowane
WEB
42
Bazy danych itm & MVLab (C) 2007-08
komputery PC
Embedded i automatyzacja
lð
Systemy embedded są bardzo często wykorzystywane w
układach automatyki przemysłowej, tj. układ automatyki składa
się z urządzeń z sterownikami wbudowanymi.
lð
Komponent układu automatyki może być programowany jeśli
urzÄ…dzenie i software embedded dysponuje odpowiednimi
Å‚Ä…czami.
Program sterujÄ…cy
System oper.
Programowalny system embedded zabudowany w serwonapędzie.
Sterowanie napędu
(komponent układu automatyki)
43
itm & MVLab (C) 2007-08
Automatyzacja i PC z bazami
danych
lð
Klasyczne rozwiązanie stanowisk kontrolnych i centrów sterowania
lð
Interfejs człowiek-maszyna do obsługi linii produkcyjnych z
przyjaznym i wygodnym w obsłudze środowiskiem realizowanym
przez komputer PC
lð
Dodatkowo rozwiązanie umożliwia zapisywanie w bazach danych
stanu maszyn, archiwizację przebiegu procesów itd.
Stanowisko kontrolne
Widok wizualizacji procesu
44
itm & MVLab (C) 2007-08
Baza Danych PC / WEB
lð
Dla komfortowego odpytywania informacji
przechowywanych w bazach danych
lð
Przykłady
lð
Bazy adresowe, systemy produkcyjne SAP
lð
Dla zdalnego dostępu do informacji
bazodanowych
lð
Przykłady
lð
Konto eBankowe,
lð
zapisy na kursy, artykuły elektroniczne
45
itm & MVLab (C) 2007-08
WEB i Automatyzacja/ES
lð
W coraz większej liczbie układów automatyki przemysłowej i
systemów embedded stosowane są web serwery. Popularne
zastosowania obejmują także automatykę użytkową, np. w tzw.
inteligentnych budynkach mieszkalnych.
lð
Możliwości:
Zdalne (przez Internet lub intranet WWW)
lð
nadzorowanie procesów,
lð
sterowanie urządzeń i procesów,
lð
diagnozowanie problemów,
lð
usuwanie błędów oprogramowania,
lð
wizualizację pracy urządzeń.
lð
Problemy:
lð
Bezpieczeństwo procesu
(dostęp do sterowania),
lð
Bezpieczeństwo danych produkcyjnych
(wglÄ…d w liniÄ™ produkc.)
46
itm & MVLab (C) 2007-08
Podsumowanie
lð
Informatyka (technologie informacyjne IT) sÄ…
nieodłącznym elementem dzisiejszego codziennego
życia
lð
Ilość zastosowań IT ciągle wzrasta
lð
Oprogramowanie i jego rozwój mają istotne
znaczenie w dzisiejszym świecie
lð
Wzrastająca ilość zadań dla inżynierów
lð
Mnogość różnych zadań do zaimplementowania
powoduje zapotrzebowanie na różne, optymalne dla
nich paradygmaty i języki programowania.
47
itm & MVLab (C) 2007-08
Wyszukiwarka
Podobne podstrony:
BD 2st 1 2 w01 tresc 1 1
W01 NIDUC Zamojski
w01
inf2 w06
W01 Matlab1
w01 demo problemy spoleczne i wspolpraca
W01 Fizyka Haran
LP mgr W01 Podst pojecia
Aire W01
MB W01 PWr
MES JCh MM WW OKnO w01 podstawowe pojecia
Instrukcja GECO Z 502 P01 S v01 w01 POL
0708z sieciTM w01
podst inf2 dzialana na liczbach dwojkowych
W01
więcej podobnych podstron