Global Laboratory for Industry-Driven Software Development
Overview
Global Labs are online modules where teams of international students work on software development/other prototypes,
which are specified by industry or community partners, with the aim of 'turning real-world ideas into experience-appropriate prototypes'.
Student teams are mentored by both academic and non-academic staff.
This is not an industrial placement - the students continue to work in the academic environment.
The project will be developed over a time period of 8-16 weeks.
Each team is expected to plan/schedule the work on a weekly basis.
Every week the team must deliver a progress report, and an updated plan for the weeks ahead.
The team must hold a meeting between team members at least twice a week; and a meeting with the academic advisor and/or
industrial supervisor at least once a week.
You can download the module descriptor:
If you are a company/institute who wishes to propose a Global Lab. development project for our students then please complete the project proposal template:
Learning Objectives
The emphasis is on development of a prototype system in which software has a significant role.
The software must be developed following a continuous integration approach based on agile development methods.
The teams will be expected to deliver working software (to a real client)
in a sequence of weekly sprints.
Pre-requisites
Each team member must be able to program competently in a high-level programming language. They must also know the fundamentals
of software engineering, including all aspects of the software life-cycle.
Teaching delivery Method
Teaching is based on a mix of online group project work using the bigbluebutton virtual classroom, and face-to-face 'lectures' which
follow a hybrid learning model where students work on problems in their own time and the
lecturer uses the 'lecture' time to respond to the students' questions and needs.
Assessment/Evaluation
The following learning objectives will form the basis of the evaluation:
- Team work in a global context (using appropriate planning, communication and management tools)
- Use of an industrial-strength version control system
- Quality-assurance on delivered work
The final mark will be calculated from:
- Continual delivery of work (50%)
- Engineering log journal (20%)
- Participation in global learning lab.s (20%)
- Presentation/Soutenance (10%)
NOTE - If the assessment of an individual student demonstrates that they have not made
a reasonable and sufficient contribution to the project then the student will be awarded an overall mark of 0.
In such a case, this will be discussed with the student during their soutenance and they will be given
the opportunity to reverse the decision. If, after the soutenance, the decision is unchanged then
the student will be deemed to have failed the module.
Reading Material
Useful Links - Software Engineering and Agile Approach
Read in your own time
- Fundamentals of Software Engineering,
Ghezzi, Jazayeri and Mandrioli, Prentice Hall
- Agile Methodology,
Wikipedia
- Continuous Integration, martinfowler.com
- Continuous integration, thoughtworks.com
- DevOps, theagileadmin.com
-
What makes a Great Software Engineer?, www.nczonline.net
- Software Engineering Awards, cs.illinois.edu
- Software Engineering Institute (SEI), sei.cmu.edu
- Joel On Software, joelonsoftware.com
Useful Links - (Software) Engineering Logs
Update your logs regularly (evey time you work On the project/module)
with precise details of what you were doing/thinking.
(A typical log entry for 1-3 hours of work would be 2-3 paragraphs.)
Don't forget to update the relevant card(s) in the Trello board .
Global Lab.s
Most weeks, the students will be expected to complete some PBL
or an on-line lab. explaining a useful technique/tool specific to the module in question.
These can be completed individually and/or in teams.
Lab.s for other tools may be developed/provided as required by specific projects (eg bug tracking, performance analysis, etc...)
The following GL sessions have been planned (although the plan is flexible, depending on student needs):
- Project Management Tools (Trello) - Board - csc7437-global-labs-2023-24
- Version control Tools(Git)
- Integrated Development Environment (Eclipse)
- Life Cycle: Agile - Continuous Integration - Dev Ops
- Virtualisation- dockers containers
- Automated Build
- Automated Test (and coverage analysis)
- Automated Documentation
- Automated Static Analysis (code quality)
- Quality monitoring
- Code review
Scheduled Sessions
The scheduled sessions can be used for:
- An interactive 'lecture' to explain aspects of the Global Labs that have not been well understood
- Getting help with the software development in the project work
Following the global lab.s approach, the development sessions will be done remotely, using the
bigbluebutton virtual classroom as
default communication with Paul, and any other communication tool that the students wish. The
lectures will be done face-to-face.
Session 1: Thursday 14th September - 9h45 - 13h
- Introduction to the Module (online)
This session is used for the team to get to know each other, and to discuss the course
organisation and content. The objectives for today (or before next session):
Session 2: Thursday 21st September 9h30 - 12h45
- Meeting with Stephane and Paul about the project
Today's session will be face-to-face in 3A-209. It is IMPORTANT that you attend in person.
Session 3: Thursday 28th September 9h30 - 12h45
- Planning (and starting) the first sprint
Teaching Lab/Tutorial 1 - Version control (using git)
As part of your work on this module you are required to keep an engineering log.
As such, please track the time you spent on these tutorials.
For each of them: Was it too easy/difficult? Did you finish it? If not, why not and how much did you complete?
Did you find it useful? This type of self-evaluation is critical in the global lab.s module.
Additional reading material can be found at:
- Article -
The Source Code Control System,
Marc J Rochkind, 1975
- Article -
Design, implementation, and evaluation of a Revision Control System,
Walter F Tichy, 1982
- Article -
On Optimistic Methods for Concurrency Control,
H.T. Kung and John T. Robinson, 1981
-
git - the simple guide, Roger Dutler
-
A successful Git branching model, Vincent Driessen
-
Pro Git book, written by Scott Chacon and Ben Straub
-
6 Version Control Systems Reviewed, Smashing Magazine
-
Git version control system
-
Version Control with Subversion
-
Open Source Development with CVS (Concurrent Versions System)
Session 4: 29 September 9h30 - 12h45 - structuring work and starting first sprint
Session 5: 13 October 9h30 - 12h45 - reporting on first sprint progress and further development
Session 6: 20 October 9h30 - 12h45
We will prepare for a review/walkthrough your code, documentation and tests for the first sprint.
Two of the issues that you should consider are:
Reading Material
- Exception Handling: Issues and a Proposed Notation,
John B. Goodenough, 1975
- pdf
- Software reliability: The role of programmed exception handling,
Melliar-Smith, P. M. and Randell, B, 1977
- pdf
- Exception Handling in CLU,
Liskov, B.H.; Snyder, A., 1979
- pdf
- A modular verifiable exception handling mechanism,
Shaula Yemini and Daniel M. Berry. 1985
- pdf
- Literate Programming,
Donald E. Knuth, 1984
- pdf
- How To Comment Code,
Steve Drevik, 1996
- pdf
- Comments Are More Important Than Code,
Jef Raskin, 2005
- pdf
- Coding Guidelines: Finding the Art in the Science,
Robert Green and Henry Ledgard, 2011
- pdf
- Confusion in code reviews: Reasons, impacts, and coping strategies,
Ebert, Felipe and Castor, Fernando and Novielli, Nicole and Serebrenik, Alexander, 2019
- pdf
- Software inspections, reviews & walkthroughs,
Ciolkowski, M., Laitenberger, O., Rombach, D., Shull, F. and Perry, D., 2002,
- pdf
- A controlled experiment in program testing and code walkthroughs/inspections,
Myers, G.J., 1978.,
- pdf
- Reviews, Walkthroughs, and Inspections,
Weinberg, Gerald M., and Daniel P. Freedman, 1984,
- pdf
- An encompassing life cycle centric survey of software inspection,
Laitenberger, Oliver, and Jean-Marc DeBaud, 2000,
- pdf
Useful Links
Session 7: 27 October 9h30 - 12h45
We will perform a quick (example) review/walkthrough your code, documentation and tests for the first sprint.
We will try to adhere to common and coherent style guidelines.
Reading Material
Useful Links
Session 8: 24 November 9h30 - 12h45 - First client meeting
Today's session is online using the bigbluebutton virtual classroom. We will be meeting with the client. Each team member must prepare a short presentation of themselves. Each team must also give a demo of the current state of their development
Session 9: 1 December 9h30 - 12h45 - user interface design (accessibility and usability)
Today's session will be face-to-face at Palaiseau in room
1A312. It is IMPORTANT that you attend in person.
This session will be run by Helen Sheridan from TUD (Technological University of Dublin)
For the team working with Python, Paul will also be available to discuss the use of Kivy (and provide
pointers to useful online material)
Useful Links
Session 10: 26 January 13h30 - 16h30
Session 11: 2 February 13h30 - 16h30
Session 12: 9 February 13h30 - 16h30
Session 13: 16 February 13h30 - 16h30
Session 14: 23 February 13h30 - 16h30
Last Revision:27th November 2023
Contact: paul.gibson@telecom-sudparis.eu
|