107-11-07 These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.

Slides:



Advertisements
Similar presentations
NOTICE! These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
Advertisements

These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
110/29/12 These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
1 These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer Science.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
NOTICE! 10/1/20151 These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
1/10/2010 These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
11/15/2010 These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
SaveUML System design. System overview Possible...
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
1 These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer Science.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer Science.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
9/23/2009 NOTICE! These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
10/5/2009 These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
NOTICE! These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
10/9/2011 These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
NOTICE! These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
111/07/07 SaveUML Project Mälardalen University (MDH), Västerås, Sweden Faculty of Electrical Engineering (FER), Zagreb, Croatia.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
NOTICE! These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
10/9/2011 These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
NOTICE! These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
NOTICE! These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
NOTICE! These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
NOTICE! These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
NOTICE! These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
Presentation transcript:

These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer Science and Engineering, University of Mälardalen, Västerås, Sweden and at the Faculty of Electrical Engineering and Computing, University of Zagreb, Croatia (year 2003/2004). For all other purposes, authors’ written permission is needed! The purpose of these materials is to help students in better understanding of lectures in DSD and not their replacement! NOTICE!

Selected Topics in Software Engineering - Distributed Software Development

The SaveUML Project Mälardalen University (MDH), Västerås, Sweden Faculty of Electrical Engineering (FER), Zagreb, Croatia

What will we talk about? Our project Requirements Deliverables and timeliness Time schedule and Activity plan Working hours statistics Communication Experiences Our product Demonstration

What was our task? Create a UML profile for SAVE components –Stereotypes –Tagged values –Constraints Transform SaveCCM models between the SAVE- IDE and some UML modelling tool –Extract models to an XML format for the transformation –Transform from UML XML to SAVE XML –Transform from SAVE XML to UML XML

What were our requirements? UML Modelling Tool –UML 2.0 Component diagrams This was a major limitation with most free tools –UML profile support Omondo support profiles though not for component diagrams –XMI import/export IBM RSM only export model data Diagram and model stored in XMI-based EMX file –Open source or freeware This requirement was later dropped

Which did we fulfill? “Rational Software Modeller” was chosen –The Good Supports UML 2.0 properly Allows user created profiles Stores models in an XMI-based format –The Bad Commercial software Application of custom images on stereotyped elements does not work as expected for us –14 other tools were investigated for compliance with all requirements (The Ugly)‏

What were our requirements? UML Profile –Save Component Save Composite Component Clock Delay –Save Ports Input and Output Data, Trigger and Combined ports –Save Assembly Contains internal structure model –Save Switch Uses setports to condition internal switch connections

Which did we fulfill? Stereotypes for basic SAVE components –Component, Clock, Delay, Ports, Connection, Complex connection, Delegation, Switch, Assembly, Composite, Attribute, Model, BindPort No constraints implemented –It took too long to find proper instructions and when we did it was too late –Most constraint have been documented

What were our requirements? SAVE Diagram types –SaveCCM, Assembly, Composite and Switch Transformation XSL –Primary focus UML XML model to SAVE XML model –Secondary focus UML diagram to SAVE diagram –Tertiary focus SAVE XML model to UML XML model Save diagram to UML diagram

Which did we fulfill? Transformation XSL –UML to SAVE Most stereotyped components –Not Attribute, Model, BindPort or Complex Connection Model and Diagram files for SaveCCM and Assembly diagrams –Not Composite or Switch diagrams with associated components –SAVE to UML Model files for SaveCCM –The same components as in the UML to SAVE direction Assembly model files almost complete

What were our requirements? Transformation tools –Encapsulate transformation library XSL and profile files –Graphical user interface –Select input file –Define output path –Initiate transformation –Integration with Eclipse –Warnings and errors

Which did we fulfill? Transformation tools –All fundamental requirements were fulfilled!

Deliverables

Timeliness Delivered on time –Project description –Requirements definition Delivered late –Design description, +1 week Expected on time –Final project report –Final product Expected late –Testing protocol, +1 week

Time schedule

Activity plan Yellow cells were added Green text is completed Blue text is not yet completed Red text is late

Working hours Project Description & Requirements Definition Design description & Revised Design Project state presentation M. Rafique Danish left Final presentation

The main activities

Cost of time invested At the end of week 2 –1279 working hours It actually is more but working hours for w44 were not recorded 18,8 hours per person and week with w44 included 20,4 hours per person and week with w44 excluded –Cost so far is € 50 €/hour

Common free time and meetings Visualized through Google Calendar –Difficult to schedule meetings for so many people –Not all events can be planned for and entered into a calendar in advance –Organized through s

How did we communicate? Skype –At least one official meeting each week 1-2 hours each Text based History put on SVN –Good for writing minutes of meeting –Lots of internal communication Voice and text chat

How did we communicate? Video conference meetings –4 video conference meetings –Replaced Skype meetings some weeks Easier to have discussions –Not as much waiting for replies –Risk of more misunderstandings? Harder to write precise minutes of meeting –No history available –Requires lots of notes during discussions

How did we communicate? s –Used mainly for organizing meetings and passing information to everyone –About 80 sent by PM –More than 180 received by PM Week reports Forum notifications

How did we communicate? Forums –Sticky threads for main application areas XSL, Profile, Transformation tool –Describing problems –Discussing solutions –Describing status Thank you, GeoLog Team!

How did we communicate?

What are our experiences? Working in a distributed project –Positive Valuable experience with teamwork The team had good discussions without major conflicts Interesting to experience working with other cultures –Negative The leaders should have been tougher Distributed communication is complicated due to delays

What are our experiences? Management –Inexperience has been the greatest obstacle PM had no previous experience with project managing –Stronger leadership would have been good More decisive decision making –PM should focus on core responsibilities and not take up stray tasks More time for planning may make up for delays in deferring such tasks to team workers

What were our experiences? Planning –Difficult in the beginning when knowledge was limited PM did not receive access to course website the first week –Causes of deviations No appropriate UML tool found until w47 –Originally Omondo was chosen but found incomplete in regard to stated features M. Rafique Danish left unexpectedly w50 –Reorganization of duties Mikael Engbom became a parent w2 –No reorganization possible this close to deadlines

What are our experiences? Work division and synchronization –Has functioned quite well –Separate people working on the three main areas UML profile XSL transformation Transformation application –Integration throughout the implementation phase in the development of the transformation application

What would we change? Testing –Focus on the Acceptance test plan from the start –More focus on unit testing More specialized roles –Dedicated system designer –Possibly one team working on system documentation and the other team working on implementation based on the documentation –Still difficult to synchronize when working with unknown technologies

What about our product? Mario Mucalo will provide you with an overview and demonstration

High level design UML Design tool (IBM Rational Software Modeler)‏.emx RSM output file SaveCCM Design tool (Save-IDE plug-in For Eclipse)‏.saveccm Save-IDE output file SaveUML! Transformation tool UML profile

UML Profile The idea of the SaveProfile is to adapt existing UML2.0 elements to SaveCCM elements. Each stereotype in SaveProfile extends an already existing element in UML giving it necessarry features and attributes.

UML Profile Stereotypes added in SaveProfile: –Extending UML Component: SaveComponent, SaveClock, SaveDelay, SaveSwitch, SaveComposite, SaveAssembly, SaveComplexConnection –Extending UML Port: SaveDataInPort, SaveDataOutPort, SaveTriggerInPort, SaveTriggerOutPort, SaveCombinedInPort, SaveCombinedOutPort –Extending UML Usage: SaveConnection, SaveDelegation, SaveFormComplex, SaveToComplex –Extending UML Class: SaveAttribute –Extending UML Artifact SaveBindPort

UML profile SaveUML profile is implemented and released as an.epx file. For users the recommended usage is by referencing the profile through the file system. This way it can be used as a black box and users cannot change the profile. More models can use the same profile – it is advisable to have the profile file located in a unique file system location.

XSL transformation XSL files are used to transform the XML based model files XSL files are used by the transformation library which is based on the Saxon XSL processor. RSM's UML models are stored in EMX files XSL and EMX model files must use the same profile version –Compatibility can be achieved by manually editing the generated xmlns:SaveProfile namespace attribute in the model and XSL files so that they are the same

XSL transformation Specifics for the UML to Save direction: –SAVE-IDE uses different kinds of diagram types.saveccm_diagram,.assembly_diagram,.composite_diagram,.switch_diagram –A separate XSL file is used for each Save diagram type.saveccm_diagram and.assembly_diagram are supported –Model and diagram information is transformed using separate XSL files

Transformation tool The transformation tool is the frontend part of the SaveUML project The transformation tool is written in Java It uses a JAR file with XSL transformation files and the final version of the profile.epx file

Transformation tool Standalone application –Standalone Java application –Can be used without RSM and Save-IDE installed –Impractical, because it is a standalone application and as such not very friendly to a RSM user or a Save-IDE user Eclipse plug-in –Plug-in has been made for RSM Eclipse environment –Right-clicking the model file allows you to start the transformation in UML to SaveCCM direction –Right-clicking the project allows you to transform a SaveCCM file into a UML model and import it in the project –Practical for RSM or Save-IDE users

Transformation tool

Transformation tool The base of the transformation –XSL files –XSLT processor – Saxon Transformation library –UML profile –Classes that use XSL to preform the transformation GUI classes –Define both transformations –Define extracting the profile –Allow choice of parameters Standalone application and Eclipse plug-in

The Demonstration And now for something completely different…

Problem description Design an Adaptive Cruise Controller –Mainaining constant speed –Keeping distance to a preceeding vehicle Functional extensions –Adjusting maximum permissible speed to accord with speed limit regulations –Emergency brake assistance

Problem solution Three sources of input to the ACC system –Human Machine Interface (HMI)‏ desired speed, status of the ACC system –Internal vehicular sensors current speed –External vehicular sensors distance to the vehicle in front Two sources of output from the ACC system –Human Machine Interface (HMI)‏ Providing the driver with information about the system state –Vehicular actuators Controlling the speed of the vehicle

Problem solution Necessary elements –Speed Limit component Calculates the desired vehicle speed based on input from the driver and speed-limit regulation –Object Recognition component Decides whether there is something in front of the vehicle and if so, calculates the new speed accordingly –Mode switch Forwards the trigger signal to either the ACC Controller assembly, the Brake Controller component or netither

Problem solution Necessary elements –Brake Control component Controls the brake output signal –Logger HMI Outputs component Communicates the ACC status to the driver via the HMI and logs the internal ACC settings –ACC Controler assembly Manages the throttle control of the vehicle, on the basis of current speed, desired speed and forward distance

Project Solution

The SaveUML Project Thank you for listening! Do you have any questions?