Fachspezifisches Modul I AE
Indice degli argomenti
-
-
Fachspezifisches Modul I,
berufsprofilgebende Fertigkeiten, Kenntnisse und Fähigkeiten in der Fachrichtung Anwendungsentwicklung (§ 4 Absatz 3 Nummer 1)
1. Konzipieren und Umsetzen von kundenspezifischen Softwareanwendungen
a. Vorgehensmodelle und -methoden sowie Entwicklungsumgebungen und -
bibliotheken auswählen und einsetzen.
In diesem Modul werden Qt, C++ GUI als Entwicklungsumgebung und -bibliothek eingesetzt. Das Vorgehensmodell ist Extreme Programming (XP), eine agile Methode, die stark mit Pair Programming und TDD arbeitet.
b. Analyse- und Designverfahren anwenden
Auf Basis eines vorhandenen Lastenheftes wird eine detailierte Anforderungsanalyse erstellt aus der eine Objektorientierte Analyse und ein Design mit UML-Diagrammen entwickelt wird.
c. Benutzerschnittstellen ergonomisch gestalten und an Kundenanforderungen anpassen
Softwareergonomie,Sketching, Wireframes, Prototyping, Mockups werden genutzt um eine Interaktive Applikation mit Dialogen und Menügesteuerte grafische Anwendungen durch Widgets zu erstellen.
5. Sicherstellen der Qualität von Softwareanwendungen
6. Sicherheitsaspekte bei der Entwicklung von Softwareanwendungen berücksichtigen
- Prüfung von Parameterübergaben
- Benutzereingaben filtern
- Typsysteme, Typsicherheit, Wertebereiche
7. Entwurfsmuster anwenden
- Model View Controller QTableView
8. Datenintegrität mithilfe von Werkzeugen sicherstellen
- CRUD-Methoden (z.B. mit QSqlDatabase)
- Commit und Rollback
9. Modultests erstellen und durchführen
- Testarten
- Testmethoden
- Modultests (z.B mit QtTest)Vorgehensmodelle und -methoden sowie Entwicklungsumgebungen und -bibliotheken auswählen und einsetzen Analyse- und Designverfahren anwenden Benutzerschnittstellen ergonomisch gestalten und an Kundenanforderungen anpassen Sicherheitsaspekte bei der Entwicklung von Softwareanwendungen berücksichtigen Datenintegrität mithilfe von Werkzeugen sicherstellen Modultests erstellen und durchführen
-
-
Ziel des Moduls ist es, eine zusammenhängende Projektaufgabe zu lösen.
-
Konzipieren und Umsetzen von kundenspezifischen Softwareanwendungen
Der angenommene Kunde hat dazu einige seiner Vorstellungen frei formuliert.
Kundeanforderung
Projektziel:
Es soll eine flexible Datenbankanwendung entwickelt werden, die
- Recherchen nach Firmen erlaubt, die Fachinformatiker beschäftigen.
-- Primäres Selektionskriterium ist eine Umkreissuche in einer vom User festgelegten Entfernung um einen Standort, PLZ
--- ideal wäre es, den Standort des Aufrufers als ersten Vorschlag zu verwenden.
--- danach soll ein beliebiger Ort/PLZ als Ursprung der Suche verwendet werden können.
-- weitere Kriterien sollen hinzugefügt werden können
--- ??? Kriterien festlegen
- Ausgabe der Treffer und Informationen
-- Bildschirm
--- Datensätze auswählbar für weitere Verarbeitung
-- csv-Format
--- geeignet als Serienbriefvorlage Word
-- Datei / Datenbank zur Verfolgung des StatusBisher wurden die Daten in Excel Tabellen gespeichert.
Die Excel Tabellen wurden als csv in eine mySQL Datenbank überführt.Als Anwender kann der angenommene Kunde keine genaueren Angaben machen.
-
Bitte tragen Sie alle Fragen zusammen, die Sie für eine Planung des Projektes noch brauchen. Formulieren Sie Ihre Fragen präzise und vollständig für einen Fragebogen an den Kunden.
-
Was wollen wir vom möglichen Kunden noch wissen, bevor ein Pflichtenheft erstellt werden kann?
-
-
-
Vorgehensmodelle der Softwareentwicklung strukturieren die Planung, Durchführung und Steuerung der Softwareentwicklung. Sie bieten eine systematische Methode zur Erstellung und Wartung von Software
-
Agile Vorgehensmodelle in der Softwareentwicklung zeichnen sich durch ihre Flexibilität, iterative Entwicklungszyklen und eine starke Betonung auf Zusammenarbeit und Kundeneinbindung aus.
1. Scrum:
- Ein iteratives und inkrementelles Framework, das in festen Zeitabschnitten (Sprints) arbeitet.
- Rollen: Product Owner, Scrum Master, Entwicklungsteam.
- Artefakte: Product Backlog, Sprint Backlog, Increment.
- Zeremonien: Sprint Planning, Daily Scrum, Sprint Review, Sprint Retrospective.
2. Kanban:
- Visualisierung des Workflows zur Verbesserung der Effizienz und Erkennung von Engpässen.
- Prinzipien: Visualisiere die Arbeit, Begrenze die laufende Arbeit (WIP), Manage den Fluss, Mache Prozessregeln explizit, Implementiere Feedbackschleifen.
- Nutzung von Kanban-Boards zur Verfolgung des Arbeitsfortschritts.
3. Extreme Programming (XP):
- Stark auf technische Exzellenz und Kundenzufriedenheit fokussiert.
- Praktiken: Paarprogrammierung, kontinuierliche Integration, Testgetriebene Entwicklung (TDD), Refactoring, einfache Designs, fortlaufende Feedbackschleifen.
- Werte: Kommunikation, Einfachheit, Feedback, Mut, Respekt.
4. Lean Software Development:
- Adaptiert Prinzipien der Lean Manufacturing.
- Prinzipien: Wert definieren, Wertstrom identifizieren, Flow erzeugen, Pull-Prinzip etablieren, Perfektion anstreben.
- Fokus auf die Minimierung von Verschwendung (Muda) und kontinuierliche Verbesserung.
5. Crystal:
- Eine Familie von agilen Methoden, die auf die spezifischen Bedürfnisse und Projekte zugeschnitten werden können.
- Varianten: Crystal Clear, Crystal Yellow, Crystal Orange, etc.
- Werte: Menschen, Interaktionen, Gemeinschaft, Fähigkeiten, Talente, Kommunikationsfluss.
6. Feature-Driven Development (FDD):
- Ein modellgetriebener, inkrementeller Ansatz, der sich auf die Bereitstellung von Funktionen konzentriert.
- Schritte: Gesamtmodell entwickeln, Feature-Liste erstellen, Feature-Plan nach einzelnen Features, Design nach Feature, Build nach Feature.
- Fokus auf die Entwicklung kleiner, funktionsfähiger Einheiten.Über Details des Projektmanagments erhalten Sie noch weiteren Unterricht:
Agiles Projektmanagement
Projektmanagement und Projektarbeit -
Bibliotheken und Frameworks spielen eine entscheidende Rolle in der Softwareentwicklung, da sie Entwicklern helfen, effizienter und effektiver zu arbeiten.
-
Entwicklungsumgebungen, oft als Integrated Development Environments (IDEs) bezeichnet, bieten gegenüber der traditionellen Kombination aus Editor, Compiler und Linker mehrere Vorteile, die den Entwicklungsprozess erheblich vereinfachen und beschleunigen können.
-
-
In der Softwareentwicklung gibt es eine Vielzahl von Analyse- und Designverfahren, die eingesetzt werden können, um die Anforderungen zu verstehen, die Architektur zu entwerfen und die Implementierung zu planen.
-
1. Anforderungsanalyse
2. Analyse von Geschäftsprozessen
3. Objektorientierte Analyse (OOA)
-
Die User Journey hilft, die Bedürfnisse und Interaktionen der Benutzer mit dem System zu verstehen und in die Struktur der Datenbank zu integrieren.
-
1. Softwarearchitektur
2. Entwurfsmuster (Design Patterns)
3. Domain-Driven Design (DDD)
4. Prototyping
-
Bitte ermitteln Sie die notwendigen, eindeutigen Objekte Ihres Projektes und legen deren Eigenschaften, Fähigkeiten und gegenseitigen Beziehungen fest.
Entscheiden Sie, welche Vorgänge auch in weiteren Projekten verwendet werden können und daher als generelle Elemente eine Codebase impleentiert werden sollten.
Untersuchen Sie, ob das Projekt von einem Entwurfsmuster (Design Patterns) profitieren würde.
-
-