Software and Data Engineering
The material will be uploaded dynamically: the teaching approach is based on Problem-based learning
(PBL) and much of the
learning will be through interaction/group work during the assigned lecturing time. (Please check the website
for updates before every session - the problems are noted in bold red font.)
Learning Objectives: Capacity to identify and describe the software life cycle,
data management, roles, artifacts, and activities.
Understand the concepts of software "best practices" and when they
apply. Be able to adapt a software development process to ones needs and select an appropriate set of best practices
that will guide you in completing a software development project.
Questionnaire
Please complete the following quick questionnaire in order to help the lecturer understand your
background, interests and motivation:
Assessment
I do not expect you to complete all of the problems that I have set, but
you should read all the lecture material that I have provided.
I do, however, expect you all to complete at least 5 of the problems.
Your continual assessment mark will be based on your 5 best problem solutions -
if you complete more than 5 then only the top 5 marks will be used to calculate your
final continuous assessment (CA) mark.
The deadline for the final problem submissions is Friday 21st April.
No work submitted after this date will be
graded for the final evaluation.
I will also require you to submit a written essay once you have finished the
problem solutions. You will have a number of topics to choose from, but they will
all be focused on what you have learned from working on the problems.
This will be organised as an open book, open time, exam.
I will soon after organise a short interview (10-15 minutes) with each student
in order to discuss your essay submission and to finalise your essay mark.
The deadline for your interview is to be completed before 28th April.
Your final mark will be calculated as follows:
If your continuous assessment (work on problems) is better than your essay then:
- 2/3 CA mark + 1/3 Essay mark , otherwise
- 2/3 Essay mark + 1/3 CA mark.
Books
There are no course texts but the following books have inspired some of the material included in the
course and provide additional information that you may find useful.
Sessions
Sessions are a mix of problem-based learning, group project work,
directed practicals, interactive lectures and traditional lectures.
There is no preset format - the lecturer
organises the style and content of each session depending on the needs of the class.
Session 1: Monday 6th February (14h00, E308) - Introduction
Lecture Slides
- Introduction To Software and Data Engineering
- pdf,
- Problem 1 : A ternary balance
- pdf,
Additional reading material
- Software Reuse and Plagiarism: A Code of Practice, J Paul Gibson, 2009:
- pdf
Useful Links
Sessions 2-3: Monday 13th February (10h00 et 14h30, E209) -
Requirements Creep and Design for the Future
In today's class we will analysis the ternary balance problem, and start a new problem
on requirements creep
Lecture Slides
- Problem 2 : Requirements Creep - robot partitions
- Iteration1,
Additional reading material
- Strategies for managing requirements creep., Jones, Capers, Computer 29.6 (1996): 92-94.
- pdf
Session4: Monday 20th February (10h00 et 14h30, E308) -
Requirements
- Problem 3 : Lift Requirements
- pdf,
Additional reading material
- Requirements engineering in the year 00: A research perspective, A van Lamsweerde, 2000
- pdf
- Requirements Engineering: A Roadmap, Bashar Nuseibeh and Steve Easterbrook, 2000
- pdf
- On Non-Functional Requirements in Software Engineering,
Lawrence Chung and Julio Cesar Sampaio do Prado Leite, 2009
- pdf
- Requirements Engineering,
Elizabeth Hull, Ken Jackson and Jeremy Dick, 2005
- html
- Use cases - yesterday, today, and tomorrow,
Ivar Jacobson, 2004
- pdf
- Structuring Use Cases with Goals,
Alistair Cockburn, 1997
- pdf
- Writing effective use cases. Vol. 1,
Alistair Cockburn, 2000
- pdf
Session 5: Friday 24th February (10h00, E304) -
From Requirements to Design
Problem 4 - lift design evaluation (part II), after you have submitted the first draft of you lift design you should do the following:
- Think about what it means for a design to be 'good'
- List a set of criteria that you would use to evaluate the 'goodness' of a design. You may weight them, if you think that some criteria are more important than others
- Evaluate your own lift design against your own criteria (and weights)
- Email your lift design evaluation as a.pdf (no more than 1 page) to the lecturer.
Additional reading material
- On the Criteria To Be Used in Decomposing
Systems into Modules,
Parnas, 1972
- pdf
- A Rational Design Process: How and Why to Fake It,
Parnas and Clements, 1986
- pdf
- A field study of the software design process for large systems,
Curtis, B. and Krasner, H. and Iscoe, N.,1988
- pdf
- What is Software Design?,
Jack W. Reeves, 1992
- pdf
- Bad smells in code,
Beck and Fowler, 1999
- pdf
- The risks of stopping too soon,
Parnas, 2011
- pdf
Useful external links
Session 6: Tuesday 7th March (10h00, E203) -
Formal Modelling
Lecture Slides
Problem 5 - TRS for composite and prime, and ADT for Stacks and Queues
Additional reading material
- Godel, Escher, Bach,
Wikipedia
- html
- Programming with ADTs,
Liskov and Zilles, 1974
- pdf
Session 7: Friday 10th March (10h00, E012) -
Testing - an interactive session
Lecture Slides
Today will be a 'live coding' interactive session (with Java and Eclipse).
It would be great of you could have these installed on your machine during the session.
We will be looking at testing and test driven development (test first development):
Problem 6
- Unit function test - average of 2 integers
- TDD - matches game
- Unit/property based testing a function - line partitions
- Safety invariants - Connect-4
Additional reading material
- Software testing: a craftsman's approach,
Jorgensen, 2018
- pdf
Useful Links
Session 8: Tuesday 21st March (14h30, E209) -
Review of elevator requirements and design - moving to code and tests
We will review the elevator requirements and designs that you have previously worked on. We will then look at how we could 'best' implement and test the elevator control system.
Problem 7 - For your lift requirements and design, develop/specify:
- a set of unit tests for a non-trivial component, including invariant tests
- an integration test to check the correct non-trivial interaction between 2 components
- a validation test for a single use case story/scenario that can be validated
by a potential user
Session 9: Tuesday 28th March (14h30, E209) -
Some (traditional) AI
We will look at how one can implement intelligent systems (without needing deep learning NNs or LLMs)
Problem 8 - You are to implement 2 of the problems given for each of these approaches.
Session 10: Friday 31st March (14h30, online) -
Some Data Forensics
This session will be online at https://webconf.imt.fr/frontend/pau-uam-yae-n7d. The problem is explained in the zipped folder to download "README.txt"
Problem 9: Forensic CS
2 of the images in the Images folder have been signed by the Java program
"SignAndVerifyImageSignature.java"
- Can you analyse the image data and/or code to identify which 2?
- Can you discover the encryption key used to sign them?
Session 11: Tuesday 4th April (14h30, E304) -
Digital Ethics Discussion and Topic Choices
The class will discuss what they understand by the term digital ethics.
They will then choose 10 different topics, and these will be assigned randomly
to each student.
The students will then prepare a presentation on the topic, which
must refer to at last 1 research publication and at least 1 other type of resource (news article, blog, tweet, ...).
The presentation must reflect different opinions/views of the scientific community and/or general public.
It must also present the student's own personal views and recommendations.
Problem 10 - 10 minute presentation (or video)
Session 12: Tuesday 11th April (10h00, ONLINE) -
Work on Continuous Assessment Problems and Presentations
This class will be open for the students to work on their problems.
It will also provide them with an opportunity to give their presentations (if they choose to do problems that included
presenting material).
NOTE:
Session 13: Friday 14th April (14h00, OFFLINE) -
Practice Exam
This practice exam is optional . I will provide feedback and mark (ASAP) to any student who chooses to
participate. This should help you prepare for the real exam.
As with the real exam, it is open book and open time. You are to answer 1 question from the choices provided to you.
The practice exam can be found here:
Session 14: Tuesday 18th April (9h45, E203) -
Exam
The exam is open book and open time. You are to answer 1 question from the options provided to you.
A sample exam can be found here:
The actual exam can be downloaded here: