Programming Project (PPJ) Reiner Dumke & Robert Neumann Otto-von-Guericke Universität Magdeburg http://ivs.cs.uni-magdeburg.de/sw-eng/agruppe/ http://www.smlab.de
Programming Project Agenda 0. 0. Our Team 1. 1. Programming 2. 2. Software Development 3. 3. Project Management 4. 4. Programming Project
Our Team Members & Partners Team external PhD s Partners
Our Team - Teaching Programming Concepts (AspectJ, Prolog, Haskell) Formal Specification (LOTOS, Z) Web Engineering Software Engineering http://ivs.cs.uni-magdeburg.de/ sw-eng/agruppe/lehre/ Programming (C++/Java) V&V Compiler Constrcution Distribted System Development (CORBA) Performance Engineering Service Engineering Agent-oriented Software Engineering (JADE) Component-based Software Engineering (EJB) Software Infrastructures (Server Farms, P2P, Grids) Software Quality Management
Our Team - Education Teaching in Cuba PhD Seminars in Idaho Industrial courses Presentation Skills in Seminars Awards for Diploma Thesis
Our Team - Research Uni Partners Communities GI-Fachgruppe 2.1.10 Software-Messung und -Bewertung http://ivs.cs.uni-magdeburg.de/ sw-eng/agruppe/forschung/ Industrial Partners 6
Our Team - Communities Project areas: Measurement models and paradigms Measurement infrastructures and cockpits Risk analysis Quality assurance in automotiv software Efficiency in e-business systems etc. PhD ceremonies Conference discussions 7
Our Team - Publications 8
1. Programming - Principles Tasks, activity description Task, Activity in the context of: Ubiquitous Computing Pervasive Computing Wearable Computing
1. Programming - Risks
1. Programming - Description Syntactical diagram Program chart Flowgraph Structogram Pseudocode Modul read the number of values while (values existing?) do read value; sum of the positive values od write result Endmodul
1. Programming - Java
1. Programming - Experience Java Tutorial: FAQ Java:
1. Programming - Ecplise
1. Programming Class description
1. Programming - Javadoc
1. Programming - FindBugs
1. Programming - Debugger
1. Programming - JUnit
1. Programming - Overview Static Testing (FindBugs) Source code-example Course Script (Examples) Course Script (Test methods) Java Tutorials (Grammar, Class Overview) using Eclipse Testdata from the specification Usual executing OO Testing (JUnit) Course Script (Doc. principles) Javadoc Course Script (Analysis) Program efficiency Debuggen (eclipse)
2. Software Development Standards Measures Experience Requirements Process (Project) Software Product Resources: Personnel Software Hardware
2. Software Development - Product User manual Reference manual (Demo) Setup routines Tutorials Development documentation - Programs - Quality reports - Test reports - Charts & diagrams - Change documentation - Support programs
2. Software Development - Process Problem definition Requirement Analysis Specification Design Implementation Field test Operation
2. Software Development - Ressources Personal: Analyser Developer Programmer Tester Technical writer Software: CASE: Computer-Aided Software Engineering vs. Components (COTS, Libraries etc.) Hardware
2. Software Development - UML Use case diagram
2. Software Development UML: Behavior description Sequence diagram Activity diagram State diagram
2. Software Development UML: Architecture description Class diagram Component diagram Deployment diagram
2. Software Development UML: Tools
3. Project Management - Overview Staff CASE-Tools Development Management Project management Quality management Configuration management Maintenance Management Configuration management Compatibility management Triage management Operation Management Application management Migration management Damage management M E A S U R E M E N T
3. Project Management Development Teams Staff / Personnel: Customer User Analyst Developer Programmer Administrator (DB & Net) Technical staff Chief Programmer (CPT) Egoless programming team (ET) Extreme programming team (EP) Teleworker Virtual team (ST)
3. Project Management Planning methods PERT diagram Milestones Gannt diagram Vermittlung Produkt-Erstellungsart especially: Critical Path Method (CPM) Beschaffung Anpassung Realisierung Entwicklung Neukonzept P10 A10 T10 T30 T50 B70 B90 Analyse Spezifikation Realisierung Einsatz Zeit
3. Project Management - Evaluations Cost estimation Process levels
4. Programming Project - Overview
4. Programming Project - Overview
4. Programming Project - Overview Team forming Task definition Project initiation Project work Milestone i Result presentation/defense
4. Programming Project Team forming Team member roles ( 4 students) Scheduling Communication Documentation
4. Programming Project Task definition, project initiation Task could be chosen Task could be mid-size complex problem Task could be committed Kind of implementation could be chosen
4. Programming Project Project work, milestones Available computer: Sun Pools G29-333 & 336 Tools: Doc Tool, Programming Environment Very important: Team discipline Meeting: every Friday (except Nov. 20) in G22A-208
4. Programming Project Result presentation Every team has a defense date The documentation must be proposed one week before Evaluation: mark
Examination