inf2 w01

background image

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

background image

itm & MVLab (C) 2007-08

2

Wykład 1 – part a: Motywacja

Motywacja – po co inżynierowi mechanikowi

oprogramowanie?

Cele i zakres wykładu

Organizacja

Zespół

Dlaczego obiektowość?

Dlaczego C++

Inżynieria oprogramowania

Kompozycja wykładu

background image

itm & MVLab (C) 2007-08

3

Znaczenie oprogramowania
w przemyśle

Nowoczesne narzędzia inżynierskie – to

oprogramowanie

Narzędzia projektowania: CAx (CAD, CAM, CAQ, CAPP, ...)

Obliczenia i analizy: FEM, MES, ...

Narzędzia symulacyjne: logistyka, montaż

Testery

Wspomaganie produkcji: PPS, PDM, ...

Wizualizacja: digital mockup, VR

Przetwarzanie danych: Office, SQL

Sieci komputerowe: www

Środowiska rozwoju oprogramowania

background image

itm & MVLab (C) 2007-08

4

Automatyzacja, integracja,
rozszerzalność

Automatyzacja

Dla czynności powtarzających się

Dla wyliczeń (np. umieszczanie elementów po okręgu)

Integracja

Z użytkownikiem – GUI

Z innymi programami lub bazami danych

Rozszerzalność

Nowe funkcje, algorytmy

background image

itm & MVLab (C) 2007-08

5

SolidWorks

API Fundamentals 3days Training

background image

itm & MVLab (C) 2007-08

6

AutCAD

Interfejs użytkownika

background image

itm & MVLab (C) 2007-08

7

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)

[…]

background image

itm & MVLab (C) 2007-08

8

SIMUL8

symulacja procesów dyskretnych

background image

itm & MVLab (C) 2007-08

9

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

background image

itm & MVLab (C) 2007-08

10

Zemax

Inżynieria optyczna

Automatyzacja

Język sktyptów

Import modeli CAD

Integracja

VB, Excel, Matlab

Rozszerzalność

Nowa, specyficzna
refleksyjność powierzchni (dll)

background image

itm & MVLab (C) 2007-08

11

Vision Assistent vs. LabView

Klikanie czy programowanie?

background image

itm & MVLab (C) 2007-08

12

Zakres kursu Informatyka II

Rozwój SW dla PC

Kategorie oprogramowania

Zawężenie do OO

Procedury postępowania

Implementacja C++

Potrzeby inżynierów

budowy maszyn

Przykłady praktyczne

Umiejętność
wykorzystywania metod,
technik i narzędzi
informatycznych

background image

itm & MVLab (C) 2007-08

13

Cel kursu

Przekazanie wiedzy

Umiejętność dołączenia do
dyskusji

Znajomość pojęć fachowych

Uporządkowanie tematów i
pojęć

Rozszerzenie horyzontów

Przekazanie

umiejętności

Samodzielne rozwiązywanie
problemów
programistycznych

Podejście systemowe

UML

C++

background image

itm & MVLab (C) 2007-08

14

Organizacja kursu

7 wykładów dwugodzinnych

Zaliczenie pisemne

15 Laboratoriów

Informatyka I (dr. inż W.Myszka) – to już wiemy !!!

http://www.immt.pwr.wroc.pl/~myszka/InformatykaI/

Obecności (patrz Regulamin studiów)

Przygotowanie – kartkówki

Większy programik na zaliczenie:

weryfikacja umiejętności „proszę zmień ... coś ...”

background image

itm & MVLab (C) 2007-08

15

Zespół

Piotr Szeplik dr inż.
Piotr.Szeplik@pwr.wroc.pl

Mariusz Mrzygłód mgr inż.
Mariusz.Mrzyglod@pwr.wroc.pl

Jacek Reiner dr inż.
B4/3.12
Jacek.Reiner@pwr.wroc.pl

Maciej Stankiewicz mgr inż.
Maciej.Stankiewicz@pwr.wroc.pl

Dariusz Tryba mgr inż.
Dariusz.Tryba@pwr..wroc.pl

background image

itm & MVLab (C) 2007-08

16

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

background image

itm & MVLab (C) 2007-08

17

Zawartość tematyczna
wykładu

Podstawy

obszary zastosowań,

metody programowania,

języki programowania,

Metody i procedury

z naciskiem na obiektowość i UML,

Programowanie obiektowe w C++

background image

itm & MVLab (C) 2007-08

18

Paradygmaty programowania

Paradygmat

to nadrzędna zasada lub sposób myślenia.

Paradygmat programowania

To nadrzędna zasada lub sposób opracowywania

oprogramowania dla osiągnięcia określonego

celu.

Problem

Paradygmat

Rozwiązanie

background image

itm & MVLab (C) 2007-08

19

Programowanie
proceduralne/imperatywne

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ż wskaźniki do nich)

jako parametry wywołania.

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.

Przykład programu: funkcja silnia – C

unsigned long int silnia(int x) {

if (x==0) return 1; else return x*silnia(x-1); }

Kod źródłowy: formułowany jako sekwencja poleceń

Przykłady: Pascal, C, Fortran

background image

itm & MVLab (C) 2007-08

20

Programowanie obiektowe

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ń.

Przykład programu: wyświetlanie modułu liczby zesp. – C++

double mod;
Zesp lz1(3,20);
mod=lz1.modul();
cout<<mod;

Kod źródłowy: definicje budowy obiektów i ich działania oraz

współpracy między sobą.

Przykłady: Java, C++, VB.net, C#, Smalltalk, Delphi

background image

itm & MVLab (C) 2007-08

21

Dlaczego obiektowość?

Najczęstszy paradygmat projektowania i programowania PC

Mechanizmy dla efektywnej obsługi i wyłapywania błędów

Wsparcie dla

pracy grupowej

Przejrzysta organizacja interfejsu

Łatwa rozbudowa i personalizacji rozwiązań

Możliwość wielokrotnego wykorzystania komponentów

Opanowanie złożoności

background image

itm & MVLab (C) 2007-08

22

Dlaczego C++?

(a nie Java, C#, Smaltalk, VB, ...)

Bazuje na C

Możliwość

ponownego

użycia

Potężny

Efektywny i

wydajny

czasowo

Szeroko

rozpowszechn.

w przemyśle

C++

Sterowniki i biblioteki do kart
I/O, Motion, Framegrabber, etc
tzw. programowanie przy sprzęcie

Bazy wiedzy
Listy dyskusyjne
Literatura przykłady

background image

itm & MVLab (C) 2007-08

23

Ograniczenia zakresu kursu

Czyli czym nie będziemy się zajmować

Informatyka:

Systemy bazodanowe

Efektywne/wydajne algorytmy

Grafika i wizualizacja (multimedia)

Informatyka teoretyczna

Języki formalne

Sieci komputerowe i web

Automatyzacja

Sterowniki PLC, OSN, roboty

Systemy czasu rzeczywistego

Systemy wbudowane i mikroprocesory

Sterowanie i regulacja, identyfikacja

background image

itm & MVLab (C) 2007-08

24

Rola inżynierów mechaników
w rozwoju oprogramowania

Zleceniodawca

Określanie wymagań

systemu

Systemy CA-x

Narzędzia

symulacyjne

Duże systemy
software’owe

Zwykle kierownik

projektu

Wiedza o procesie

technologicznym

Systemy

produkcyjne

Systemy

transportowe

Programy dla
systemów
technicznych

Zleceniodawca

Wykonawca

Przeprowadzanie

pomiarów,

Małe aplikacje do

obsługi urządzeń

Małe aplikacje

Rola inżyniera

Przykład

Kategoria

background image

itm & MVLab (C) 2007-08

25

Badania: Koszty rozwoju

Systemy wbudowane i oprogramowanie przemysłowe

Wynik ankiety w niemieckich
przedsiębiorstwach
przemysłowych, 2003

Q: Jak wysokie są Wasze
koszty rozwoju oprogramowania
w porównaniu z całkowitymi
kosztami rozwoju?

- dla około połowy to 30-60%

background image

itm & MVLab (C) 2007-08

26

Zapotrzebowanie na procedury
postępowania

(Standish Group 1995)

Tylko 9% dużych, 16%-28% małych i średnich

projektów jest realizowanych zgodnie z

czasem i kosztorysem

53% wszystkich projektów po zakończeniu

przekracza budżet o ok. 50%

31% wszystkich projektów jest przerywanych

Amerykańskie przedsiębiorstwa w roku 1995

zainwestowały ponad 81 miliardy dolarów w

niezakończone projekty

background image

itm & MVLab (C) 2007-08

27

Badania: Royal Academy of Engineering
i British Computer Society (2004)

Straty szacowane na poziomie 130 miliardów

EURO (USA) i 120 miliardów EURO (EU)

Przyczyny:

Brak profesjonalizmu w branży IT-Industrial

Niedostateczne umiejętności odpowiedzialnych

Niedostateczna wiedza i umiejętności programistów

Brak lub kiepska specyfikacja

Uczenie na własnych błędach

Konieczność prowadzenia projektów IT jak

innych projektów inżynierskich

Odpowiedzialność Uczelni Technicznych

background image

itm & MVLab (C) 2007-08

28

Podejście metodyczne

Systemowość

Powód:

Niejasne wymagania

Kiepska komunikacja

Zbyt późna integracja

Niepełny model procesu

Braki w zapewnieniu jakości

Wniosek:

Projektowanie oprogramowania nie jest zadaniem trywialnym

Inżynierskie, systematyczne podejście do problemu zwiększa

prawdopodobieństwo sukcesu (Inżynieria oprogramowania)

Metody ugruntowane w mechanice mogą okazać się przydatne w

rozwiązywaniu problemów typowo mechanicznych.

background image

itm & MVLab (C) 2007-08

29

Szacowanie nakładów

Umiar w nakładach metodycznego postępowania

znajdować dla każdego projektu!!!

Więcej nie znaczy lepiej -> Over engineering

Rozmia

r projekt

u

Prioryt

et

Złożoność

Zasob

y

Procedury

Metody

background image

itm & MVLab (C) 2007-08

30

Wydajność a jakość

Usuwanie błędów prowadzi do zwiększenia nakładów.

Spełnienie rozległych wymagań jakościowych również podnosi

pracochłonność i koszty

Nakłady

na lep

sze jako

ściowo

oprogramo

wanie

Oszczę

dności

osiągn

ięte

dzięki

lepszemu

oprog

ramow

aniu

(mniejsze

straty)

background image

itm & MVLab (C) 2007-08

31

Struktura wykładu

Motywacja

Podstawy

Metody i sposoby

postępowania

C++

background image

itm & MVLab (C) 2007-08

32

background image

itm & MVLab (C) 2007-08

33

Wykład 1 – part b

Obszary zastosowań

oprogramowania

Komunikacja zewnętrzna

Paradygmaty programowania

background image

itm & MVLab (C) 2007-08

34

Obszary zastosowań
oprogramowania

Systemy wbudowane
(embedded)

Bazy danych i servery

komputery PC

Automatyzacja

WEB

background image

itm & MVLab (C) 2007-08

35

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:

Office, Gry, Programy multimedialne, Programy inżynierskie

Cechy i wymagania:

Kompatybilność

Windows: VISTA, XP, 2000, NT, ME, ...;

LINUX: Ubuntu, Mandriva, OpenSUSE, Debian, Fedora,

Slackware, Gentoo, MEPIS, Aurox, PLD, Knoppix, ...;

BSD: DesktopBSD, FreeBSD, NetBSD, OpenBSD, ...

Szeroki zakres dostępnych funkcji: okna, multimedia, sterowniki.

background image

itm & MVLab (C) 2007-08

36

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:

zapisywania,

pozyskiwania,

ustalania relacji i połączeń między zasobami bazy,

wyodrębniania podzbiorów.

Przykłady:

katalog części samochodowych, katalog książek w

bibliotece

baza pacjentów, baza studentów

konto bankowe

Cechy i wymagania:

łatwe pozyskiwanie wymaganych podzbiorów danych.

Konsystencja, redundancja, wielodostęp,

Ochrona dostępu (security) i bezpieczeństwo (safety).

background image

itm & MVLab (C) 2007-08

37

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:

WWW,

Poczta elektroniczna (e-mail),

Transfer plików (FTP).

Cechy i wymagania:

ogromna ilość dostępnych technologii (i języków

programowania),

szybki rozwój i poszerzenie obszaru zastosowań,

kompatybilność dzięki standaryzacji usług

(W3C).

Web / Internet

background image

itm & MVLab (C) 2007-08

38

Systemy wbudowane
(embedded
)

Definicja:

System mikrokomputerowy zintegrowany z urządzeniem

Z zewnątrz nie widać że jest ono sterowane syst. komputerowym,

Komputer połączony z resztą urządzenia za pomocą sensorów i

układów wykonawczych

Komputer jest w urządzeniu jednostką sterującą i/lub nadzorującą

Przykłady:

Telefony komórkowe,

Pralki,

Samochody

Cechy:

Bezpieczeństwo i niezawodność (Fail-Safe),

Ograniczone wymagania na zasoby (pamięć, CPU, etc),

Zdolność do pracy w czasie rzeczywistym,

Brak typowego interfejsu człowiek-maszyna (klawiatura,

monitor, ...)

Rozbudowane moduł wejść/wyjść (I/O).

background image

itm & MVLab (C) 2007-08

39

Automatyzacja

Definicja:

Automatyzacja oznacza stosowanie urządzeń technicznych,

zapewniających:

samodzielny przebieg procesów technicznych (wytwórczych),

samodzielne działanie urządzeń, maszyn (oraz ich zespołów) i

innych układów technicznych.

Przykłady:

Procesy dyskretne (obróbkowe, montażowe)

Procesy ciągłe (chemiczne, spożywcze, )

Cechy i wymagania:

Bezpieczeństwo i niezawodność (Fail-Safe),

Zdolność do pracy w czasie rzeczywistym,

Brak typowego interfejsu człowiek-maszyna (klawiatura, monitor)

Rozbudowane moduły wejść/wyjść (I/O – cyfrowe, analogowe).

background image

itm & MVLab (C) 2007-08

40

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)

Stosunkowo tani Fieldbus dla zastosowań o wysokich wymaganiach

czasowych,

Łączenie w sieć sterowników, sensorów i urządzeń wykonawczych

CAN został opracowany przez BOSCH m. in. dla zastosowań w

branży samochodowej.

Komunikacja rozgłoszeniowa

Otwarta struktura magistrali

(odłączenie jednego urządzenia od sieci

nie powoduje przerwania komunikacji

pomiędzy pozostałymi)

background image

itm & MVLab (C) 2007-08

41

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

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.

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.

Komunikacja - Automatyzacja

background image

itm & MVLab (C) 2007-08

42

Przegląd komunikacji
heterogenicznej

Wbudowane

Bazy danych

Automatyzacja

WEB

komputery PC

background image

itm & MVLab (C) 2007-08

43

Embedded i automatyzacja

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.

Komponent układu automatyki może być programowany jeśli

urządzenie i software embedded dysponuje odpowiednimi

łączami.

Sterowanie napędu
(komponent układu automatyki)

Program sterujący

System oper.

Programowalny system embedded zabudowany w serwonapędzie.

background image

itm & MVLab (C) 2007-08

44

Automatyzacja i PC

z bazami

danych

Klasyczne rozwiązanie stanowisk kontrolnych i centrów sterowania

Interfejs człowiek-maszyna do obsługi linii produkcyjnych z

przyjaznym i wygodnym w obsłudze środowiskiem realizowanym

przez komputer PC

Dodatkowo rozwiązanie umożliwia zapisywanie w bazach danych

stanu maszyn, archiwizację przebiegu procesów itd.

Stanowisko kontrolne

Widok wizualizacji procesu

background image

itm & MVLab (C) 2007-08

45

Baza Danych – PC / WEB

Dla komfortowego odpytywania informacji

przechowywanych w bazach danych

Przykłady

Bazy adresowe, systemy produkcyjne SAP

Dla zdalnego dostępu do informacji

bazodanowych

Przykłady

Konto eBankowe,

zapisy na kursy, artykuły elektroniczne

background image

itm & MVLab (C) 2007-08

46

WEB i Automatyzacja/ES

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.

Możliwości:

Zdalne (przez Internet lub intranet – WWW)

nadzorowanie procesów,

sterowanie urządzeń i procesów,

diagnozowanie problemów,

usuwanie błędów oprogramowania,

wizualizację pracy urządzeń.

Problemy:

Bezpieczeństwo procesu

(dostęp do sterowania),

Bezpieczeństwo danych produkcyjnych

(wgląd w linię produkc.)

background image

itm & MVLab (C) 2007-08

47

Podsumowanie

Informatyka (technologie informacyjne – IT) są
nieodłącznym elementem dzisiejszego codziennego

życia

Ilość zastosowań IT ciągle wzrasta

Oprogramowanie i jego rozwój mają istotne
znaczenie w dzisiejszym świecie

Wzrastająca ilość zadań dla inżynierów

Mnogość różnych zadań do zaimplementowania

powoduje zapotrzebowanie na różne, optymalne dla
nich paradygmaty i języki programowania.


Document Outline


Wyszukiwarka

Podobne podstrony:
W01(Patomorfologia) II Lek
w01
inf2 w06
IMW W01 Wstepny System produkc Nieznany
inf2 w03
FPA W01 v1 0
bal w01
inf2 w02
BD 2st 1 2 w01 tresc 1 1 (2)
INF2 2009 Wykl 04 Zaoczne 4na1 Nieznany
MB W01 PWr
AM23 w01 Całki niewłaściwe pierwszego rodzaju
PA W01 Wprowadzenie
Gazownictwo w01
Elektronika W01
inf2, Studia, UTP Ochrona środowiska, I rok, Semestr II, Informatyka

więcej podobnych podstron