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 
 
 |