Post on 21-Jul-2020
transcript
IT- und Medientechnik
Vorlesung 2: 21.10.2019
Wintersemester 2019/2020 h_da
Heiko Weber, Lehrbeauftragter
IT- und Medientechnik 21.10.20192-2 Heiko Weber
Teil 1: IT- und MedientechnikThemenübersicht der Vorlesung
Hard- und Software Hardware: CPU, Speicher, Bus, I/O, ... Software: System-, Unterstützungs-, Anwendungssoftware
Quellcode und Entwicklerdokumentation Programmiersprachen, Dokumentation Phasen der Softwareentwicklung, Software-Entwicklungsmethoden
Netzwerke und Internet Geschichte, Netzwerk-Strukturen Protokolle und Technologien, Standards, Cloud
Techniken der Datenübertragung Sockets, LAN vs. WAN, VPN
Digitalisierung von Inhalten und elektronische Übertragung Dateiformate, Kompression, Backups
IT- und Medientechnik 21.10.20192-3 Heiko Weber
Klassisches Wasserfallmodell
Entwurf
Implementierung
Überprüfung
Anforderungsanalyse
Betrieb + Wartung
Installation + Abnahme
IT- und Medientechnik 21.10.20192-4 Heiko Weber
Klassisches Wasserfallmodell
Entwurf
Implementierung
Überprüfung
Anforderungsanalyse
Betrieb + Wartung
Installation + Abnahme
Softwareentwicklung ist in sequentielle Phasen unterteilt; wenn eine Phase vollständig abgeschlossen wurde, wird mit der nächsten begonnen
sinnvoll, wenn Anforderungen, Leistungen und Abläufe in der Planungsphase präzise beschrieben werden können
IT- und Medientechnik 21.10.20192-5 Heiko Weber
Erweitertes Wasserfallmodell
Entwurf
Implementierung
Überprüfung
Anforderungsanalyse
Betrieb + Wartung
Installation + Abnahme
IT- und Medientechnik 21.10.20192-6 Heiko Weber
Erweitertes Wasserfallmodell
Entwurf
Implementierung
Überprüfung
Anforderungsanalyse
Betrieb + Wartung
Installation + Abnahme
erlaubt ein schrittweises „Aufwärtslaufen“ der Kaskade, falls in der aktuellen Phase etwas fehlschlägt, um den Fehler auf der nächsthöheren Stufe zu beheben
IT- und Medientechnik 21.10.20192-7 Heiko Weber
V-Modell
Implemen-tierung
Akzeptanztests gegen Kundenanforderungen
Integrationstests gegen Produktanforderungen
Systemtests gegen Systemanforderungen
Applikationstests gegen technische Spezifikation
Modultests gegeneinzelne Codebereiche
Anforderungs-analyse: Kunden
Anforderungs-analyse: Produkt
Anforderungs-analyse: System
Entwurf
Überprüfung
Überprüfung
Überprüfung
Überprüfung
Installation + Abnahme
IT- und Medientechnik 21.10.20192-8 Heiko Weber
Beispiel-Softwareprojekt mit dem Wasserfallmodell
Entwurf
Implementierung
Überprüfung
Anforderungsanalyse
Betrieb + Wartung
Installation + Abnahme
IT- und Medientechnik 21.10.20192-9 Heiko Weber
Klassische Softwareentwicklungsmethoden
Entwurf
Implementierung
Überprüfung
Anforderungsanalyse
Betrieb + Wartung
Installation + Abnahme
Wasserfallmodell V-Modell
Entwurf
Implemen-tierung
Überprüfung
Anforderungs-analyse: Kunden
Installation + Abnahme
Akzeptanztests gegen Kundenanforderungen
Anforderungs-analyse: Produkt
Integrationstests gegen Produktanforderungen
Anforderungs-analyse: System Überprüfung Systemtests gegen
Systemanforderungen
Überprüfung Applikationstests gegen technische Spezifikation
Überprüfung Modultests gegen einzelne Codebereiche
IT- und Medientechnik 21.10.20192-10 Heiko Weber
Probleme bei der Softwareentwicklung
einige Grundprobleme treten bei Softwareentwicklungs-Projekten immer wieder auf: der Fertigstellungstermin wird nicht eingehalten die geplanten Kosten werden nicht eingehalten die Qualitätsziele werden nicht erreicht
einige Ursachen dieser Probleme sind: unklare Kundenanforderungen unerwartete Änderungen der Anforderungen
Änderungen am Funktionsumfang Änderungen an Prioritäten veränderte gesetzliche Vorgaben ...
IT- und Medientechnik 21.10.20192-11 Heiko Weber
Änderungskosten während der Softwareentwicklung
die meisten Änderungskosten steigen exponentiell mit der Zeit
Anforderungsanalyse Entwurf Implementierung Überprüfung Betrieb
Kosten
Zeit
IT- und Medientechnik 21.10.20192-12 Heiko Weber
Änderungskosten während der Softwareentwicklung
die meisten Änderungskosten steigen exponentiell mit der Zeit
Anforderungsanalyse Entwurf Implementierung Überprüfung Betrieb
Kosten
Zeit
Anforderungsanalyse und Entwurf sehr genau durchführen
IT- und Medientechnik 21.10.20192-13 Heiko Weber
Wie viel Aufwand ist sinnvoll?
um Änderungskosten zu reduzieren, sollten die Anforderungsanalyse und der Entwurf sehr genau durchgeführt werden
IT- und Medientechnik 21.10.20192-14 Heiko Weber
Wie viel Aufwand ist sinnvoll?
um Änderungskosten zu reduzieren, sollten die Anforderungsanalyse und der Entwurf sehr genau durchgeführt werden
ABER: einige Anforderungen können erst beim eigentlichen Einsatz in Systemen (z.B. durch
Prototypen) geklärt werden
wenn zu viel Zeit für Anforderungsanalyse und Entwurf verwendet wird, ist die Wahrscheinlichkeit hoch, dass sich die Anforderungen in der Zwischenzeit ändern
in einigen Bereichen muss Software schnell zur Verfügung stehen, so dass nicht viel Zeit für Anforderungsanalyse und Entwurf zur Verfügung steht
IT- und Medientechnik 21.10.20192-15 Heiko Weber
Agile Softwareentwicklung
Abkehr von festgelegten Vorgehensweisen und schwergewichtigen Prozessen
Abbau von Bürokratie
stellt nicht die Planung, sondern die lauffähige Software in den Mittelpunkt
Programmierung wird nicht als minderqualifizierte Konstruktionsarbeit betrachtet, sondern als integriert mit der Planung und Überprüfung
ständige Einbeziehung der Kunden/Auftraggeber, um Probleme frühzeitig zu erkennen und entsprechend reagieren zu können
IT- und Medientechnik 21.10.20192-16 Heiko Weber
Manifest für Agile Softwareentwicklung
Quelle: http://agilemanifesto.org/
„Wir erschließen bessere Wege, Software zu entwickeln,indem wir es selbst tun und anderen dabei helfen. Durch diese Tätigkeit haben wir diese Werte zu schätzen gelernt:
Individuen und Interaktionen mehr als Prozesse und Werkzeuge
Funktionierende Software mehr als umfassende Dokumentation
Zusammenarbeit mit dem Kunden mehr als Vertragsverhandlung
Reagieren auf Veränderung mehr als das Befolgen eines Plans
Das heißt, obwohl wir die Werte auf der rechten Seite wichtig finden, schätzen wir die Werte auf der linken Seite höher ein.“
IT- und Medientechnik 21.10.20192-17 Heiko Weber
Abschaffung von „entbehrlichem Müll“
alles, was nicht Teil des eigentlichen Softwareproduktes ist, welches der Kunde/Auftraggeber benötigt, ist „Müll“
ein Kunde/Auftraggeber hat kein Interesse an „Müll“
einiger „Müll“ ist notwendig für die Softwareentwicklung – das ist „notwendiger Müll“ („necessary waste“)
z.B. gewisse Entwicklungsdokumentation, Tests, …
„notwendiger Müll“ soll auf ein Miminum reduziert werden
einiger „Müll“ ist evtl. entbehrlich für die Softwareentwicklung – das ist „entbehrlicher Müll“ („unnecessary waste“)
z.B. umfangreiche Architekturdokumentation, langfristige Pläne, …
„entbehrlicher Müll“ soll vermieden werden
IT- und Medientechnik 21.10.20192-18 Heiko Weber
User-Stories und Tasks
User-Story eine in Alltagssprache formulierte Software-Anforderung
„Als <Rolle> möchte ich <Wunsch>.“ z.B. „Als Benutzer des Terminkalenderprogramms möchte ich zwischen den
Ansichten eines Tages, einer Woche und eines Monats wechseln können.“ zur Überprüfung, ob die Anforderung erfüllt wurde, werden auch Akzeptanzkriterien
(„Definition of Done“) in Alltagssprache beschrieben z.B. „wenn auf den 'Tag'-Button geklickt wird, werden nur die Termine für den
ausgewählten Tag angezeigt“
Tasks aus einer User-Story werden einzelne Tasks (Aufgaben) abgeleitet, die so klein sind,
dass sie auf technische Aufgaben der Implementierung abgebildet werden können
IT- und Medientechnik 21.10.20192-19 Heiko Weber
User-Stories und Tasks
User-Story
Anforderung
Akzeptanzkriterien
Tasks
technische Aufgaben
Kunde Auftraggeber
Entwicklung
IT- und Medientechnik 21.10.20192-20 Heiko Weber
Beispiel-Software: Buchhaltungsprogramm
Betriebssystem: Linux
Laufzeitumgebung: Java-Runtime
Web-Plattform: Tomcat
Buchhaltungsprogramm Browser:Firefox
Datenbanksystem:MySQL
IT- und Medientechnik 21.10.20192-21 Heiko Weber
Agile Softwareenticklungsmethoden
Extreme Programming (XP) Paarprogrammierung, Refactoring, ...
Scrum Arbeiten in Sprints, eigenständige Scrum Teams, ...
Kanban kontinuierlicher Fluss der Arbeit, Begrenzung der Menge angefangener Arbeit, ...
viele weitere Methoden existieren
in großen Softwareprojekten wird auch häufig eine Mischung aus verschiedenen agilen Softwareentwicklungsmethoden für unterschiedliche Bereiche des Projekts angewandt
IT- und Medientechnik 21.10.20192-22 Heiko Weber
Scrum
einfaches Modell, mit wenig festen Strukturen
Teams organisieren sich weitgehend selbst
Methoden werden bei Bedarf angepasst
Entwicklungsprozess unterteilt in Iterationen (Sprints) meist 2-4 Wochen pro Sprint
am Anfang eines jeden Sprints werden die zu entwickelnden Funktionalitäten für den Zeitraum festgelegt
während eines Sprints keine Einmischung vom Management in die Teams
tägliche kurze Teammeetings (Daily Standups)
IT- und Medientechnik 21.10.20192-23 Heiko Weber
Sprint
aus der priorisierten Liste der Kundenanforderungen wählt das Team am Anfang eines Sprints die Funktionalitäten aus, die implementiert werden können in dem Zeitrahmen
während des Sprints wird im Daily Standup geklärt, wie der Fortschritt ist und ob ein Teammitglied Unterstützung benötigt
die Funktionalität muss so „klein“ sein, dass sie innerhalb eines Sprints implementiert, getestet und dokumentiert werden kann
am Ende des Sprints wird in einer Demo gezeigt, was erreicht wurde und der Kunde (oder eine stellvertretende Person) entscheidet, ob die Funktionalität erreicht wurde
am Ende eines Sprints soll immer eine lauffähige Software stehen
das Team führt am Ende eines Sprints auch eine Retrospektive durch und überlegt, ob im nächsten Sprint Änderungen an der Arbeitsweise vorgenommen werden sollen
IT- und Medientechnik 21.10.20192-24 Heiko Weber
Sprint
Scrum-Kreislauf
Anforderungs-analyse + Entwurf(wenige Stunden)
ImplementierenÜberprüfen
Dokumentieren(mehrere Tage)
Anforderungs-analyse: Kunden
Abnahme(1 Stunde)
priorisierteAnforderungs-
liste
Retrospektive(1 Stunde)
lauffähigeSoftware
Daily Standup(10 Minuten)
IT- und Medientechnik 21.10.20192-25 Heiko Weber
Sprint
Scrum-Kreislauf
Anforderungs-analyse + Entwurf(wenige Stunden)
ImplementierenÜberprüfen
Dokumentieren(mehrere Tage)
Anforderungs-analyse: Kunden
Abnahme(1 Stunde)
priorisierteAnforderungs-
liste
Retrospektive(1 Stunde)
lauffähigeSoftware
Daily Standup(10 Minuten)
Ent- wicklung
IT- und Medientechnik 21.10.20192-26 Heiko Weber
Sprint
Scrum-Kreislauf
Anforderungs-analyse + Entwurf(wenige Stunden)
ImplementierenÜberprüfen
Dokumentieren(mehrere Tage)
Anforderungs-analyse: Kunden
Abnahme(1 Stunde)
priorisierteAnforderungs-
liste
Retrospektive(1 Stunde)
lauffähigeSoftware
Daily Standup(10 Minuten)
Ent- wicklung
KundeAuftraggeber
IT- und Medientechnik 21.10.20192-27 Heiko Weber
Sprint
Scrum-Kreislauf
Anforderungs-analyse + Entwurf(wenige Stunden)
ImplementierenÜberprüfen
Dokumentieren(mehrere Tage)
Anforderungs-analyse: Kunden
Abnahme(1 Stunde)
priorisierteAnforderungs-
liste
Retrospektive(1 Stunde)
lauffähigeSoftware
Daily Standup(10 Minuten)
Ent- wicklung
KundeAuftraggeber
User-Stories
IT- und Medientechnik 21.10.20192-28 Heiko Weber
Wiederverwendung von existierender Software
früher Software war klein und überschaubar und lief meist isoliert lange Planungs- und Entwicklungsphasen Wasserfallmodell war für die Softwareentwicklung passend Software wurde oft komplett neu geschrieben
heute die meiste Software ist hochkomplex und ist vernetzt Software muss schnell verfügbar sein agile Softwareentwicklungsmethoden werden meistens eingesetzt Software baut meistens auf mehreren vorhandenen Softwarebibliotheken
(Softwarebausteinen) auf – nur kleine Teile der eigentlichen Software werden speziell für ein Projekt entwickelt
Wiederverwendung existierender Softwarebibliotheken >> Third-Party-Libraries
IT- und Medientechnik 21.10.20192-29 Heiko Weber
Beispiel: einige Third-Party-Libraries im OpenOffice/LibreOffice
OpenOffice/LibreOffice
zlibKompression
von Daten
OpenSSLVerschlüsselung
von Daten
icuZeichensätzeSprachregeln
...
spezielle Funktionalität von OpenOffice/LibreOffice
...
IT- und Medientechnik 21.10.20192-30 Heiko Weber
Verfügbarkeit von Software und Softwarelizenzen
kommerzielle Software
nichtkommerzielle Software
Open-Source-Software
Freie Software
Software as a Service (SaaS)
IT- und Medientechnik 21.10.20192-31 Heiko Weber
Open-Source-Software
Quellcode ist öffentlich verfügbar
meist wird Open-Source-Software in öffentlichen Projekten entwickelt und beliebige Entwickler können ihre Änderungen einarbeiten oder zumindest vorschlagen
Open-Source heißt nicht unbedingt kostenlos z.B. kann in der Lizenz für spezielle Nutzung eine Lizenzgebühr gefordert oder
evtl. sogar eine kommerzielle Nutzung ausgeschlossen werden
Einsicht in den Quellcode >> mehr Vertrauen und Sicherheit keine Geheimnisse und unwahrscheinlicher, dass Hintertüren im Programm
enthalten sind
Beispiele: OpenOffice/LibreOffice, Firefox-Browser, Thunderbird E-Mail-Programm,
Linux-Betriebssystem (Ubuntu, Mint, Fedora, SuSE, ...), ...
IT- und Medientechnik 21.10.20192-32 Heiko Weber
Softwarelizenzen
regeln die Nutzung der Software bzw. der Softwarebibliotheken
geregelt wird meistens wie und von wem darf die Software genutzt werden (zu welchem Zweck, auf welcher Hardware, ...)
darf die Software modifiziert werden wie darf die Software verteilt werden (kommerziell, inkl. Quellcode, inkl. Lizenztext, ...)
gängige Softwarelizenzen GNU General Public License (GPL)
erlaubt kostenlose Nutzung und Modifizierung des Codes – offener Quellcode wenn GPL-Softwarebibliotheken eingesetzt werden, muss die resultierende Software auch als
GPL angeboten werden Apache License & BSD License
erlaubt kostenlose Nutzung und Modifizierung des Codes erlaubt zudem Nutzung in kommerzieller und Closed-Source-Software
IT- und Medientechnik 21.10.20192-33 Heiko Weber
Beispiel: einige Third-Party-Libraries im Audiograbber
Audiograbber
WMA8ConnectAudiokompression
LAMEMP3-Encoder
...
spezielle Funktionalität von Audiograbber
...
IT- und Medientechnik 21.10.20192-34 Heiko Weber
Beispiel: einige Third-Party-Libraries im Audiograbber
Audiograbber
WMA8ConnectAudiokompression
LAMEMP3-Encoder
...
spezielle Funktionalität von Audiograbber
...
extern, weil Patentfragen unklar
IT- und Medientechnik 21.10.20192-35 Heiko Weber
Freie Software
„Frei“ in „Freie Software“ bezieht sich auf Freiheit, nicht auf den Preis
die Freiheit, das Programm für jeden Zweck auszuführen die Funktionsweise eines Programms zu untersuchen, und es an seine Bedürfnisse
anzupassen Kopien weiterzugeben und damit seinen Mitmenschen zu helfen ein Programm zu verbessern und die Verbesserungen an die Öffentlichkeit
weiterzugeben, sodass die gesamte Gesellschaft profitiert
Free Software Foundation Europe: http://fsfe.org/
IT- und Medientechnik 21.10.20192-36 Heiko Weber
Freie Software
Ktouch
Tri squelOpenBSD
Apache,
(OASIS
Stiftungen wie di e FSFE,
EVENTS: BLOGOSPHERE:
FOREN:
E-MAIL-VERTEILER:
97% der TOP500 Supercomputer
Li nuxTag,
GHM
planet gnu,blog. ofset.o rg
Linuxforen.de,LinuxQuestions
debian-users- de ,bl ag- us ers
GNU Herds
PostgreSQ L,
Scri bus,Inkscape,K3b
Fi refox,
B lender,
Icec at
Audaci ty,
GIMP,
10 0%fr ei
Ubuntu
OpenSo la ris
Debian gNewSense
Ututo
FrO SCon, CLT461(D E),
Emac sWik i,wi ki .debi an.orgOFTC,freenode
X.org,M ySQL
PHP,Apac he ,
G nome,Wi ndow Maker,Linux -Kernel,
KDE,Enli ghtenment,
G NU,
GPLBSD,
C reative Commons (SA)
(Copy lef t ) ,
und Pro jekte w ie :
Berke ley
Ex tremaduraDeutsc hl and, Frankrei ch, B rasil ien, Chi na
MIT,
IBMGoogle ,NASA
W iki pedi a, Greenpeac eUNESCO,
und ISO)ODF(W3C)HTML,XML
UTF- 8
A ut or : R en é M ér ou ( 201 2-0 6-0 4
ORGANISATIONEN:
faqs.org li st >1800, davon 166 in D -A- CHBERATER:
TREFFEN:LUGS:
WIKIS:IRC (Chats):(IETF) aKademy,
) did akt is c he s M at er i al
Anle itungen
m it
braucht
BEN UTZENVERTEILEN
WE ITER
DISTRIBUTIONE N
Frei hei t für j eden Zwec k
dami t das Programm macht was Du wil lst
(Frei he it 1)
Kopien für Jedermann (Frei he it 2)
OFFEN E STANDA RDS
LE RN E A NZUPASSE N
FREIE LIZEN ZEN
QUELLC ODE
BIN ÄRPROGRAMMEFREIE
INH ALT E
zusa mm e ng ef asst in
FREIE SOFTWARE
ist
f ür
UN TERSTÜTZ UNG
kooperieren(Netiquette)
wählen aus
so dass die ganze Communi ty profiti ert
(Freihei t 3)
EIN E THISC HER WE G SOFTWARE Z U VERSTE HENin i hrer Entwi ck lung, Kommerzi ali sie rung,
Ve rtei lung und Benutzung
Lokal isie rungen, Vorlagen, Geräus che , Handbücher und Informati onen,
Sc hrif tarten, Überse tzungen, Bi ldern, FAQs, Anle itungen
E NTWIC KLER
erstellen und debuggen
VE RBE SSERUNGEN WE RTE
BENUT ZER
geben und bekom m en
Ethik , Kreativ ität, kei ne Di skri minierung, Effi zienz, Wi ssenschaft, Wettbewerb, Priv atsphäre, Kooperation, Trans parenz, Sic herhei t, Sol idarität und
am wi chti gsten Frei he it
NGOs:INSTITUTIONEN:
FIRMEN:LÄNDER/REGIONEN:
UNIVERSITÄTEN:
Ne us t e Ver s i on di eser Ko nze pt -K ar t e der Fr e ien S of tw ar e (G F D L) u n te r :e s .gn u .or g /~ r e ne me /fsm ap /de) Ü ber se tzu n g: Ax el B eck er t (ab e@ de ux ch eva ux .or gh @ es .g nu .o r g
Übe r set zun ge n un d Ko mm en t ar e
(Fre ihei t 0 )
und 17(AT)14(CH)
si ehe auc h Li nux-Verband. de
erlauben
LibreOffice ,
IT- und Medientechnik 21.10.20192-38 Heiko Weber
Software as a Service (SaaS)
nur so lange und so viel bezahlen, wie die Software genutzt wird
meist in die Breite skalierbar
reduzierter Administrationsaufwand