MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ......

33
Software Engineering Maurício Aniche [email protected] @mauricioaniche Delft University of Technology

Transcript of MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ......

Page 1: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Software EngineeringMaurício [email protected]@mauricioanicheDelft University of Technology

Page 2: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

TL;DR

• All information, activities, slides, grading, labwork, can be found in our website: https://serg-delft.github.io/ti3115tu-2018/

• Brightspace: forums, sharing activities, grades.

Page 3: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

What’s software engineering?Is it different from

programming?

Page 4: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

It is more than just programming

• Software engineering is more than just coding.• It is about designing, developing, testing, maintaining, and evolving a

software system.• Systematic approaches• Tools• The social side of SE.

Page 5: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

What do you want to learn?

• “How to develop software in a real life scenario.”• “I want to learn how to write code I would still understand if I read it

again after a year”• “The important side jobs of programming, bug fixing, documentation

etc. Things that are very important to learn by doing in practice.”• “To become a better Software Engineer, which is not difficult, since I

have no experience at all in that regard!”• “Develop software in a more structured and professional way”• “I intended to learn programming.” ß Felienne’s course

Page 6: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

In this course, you will:

• Create your own development process based on agile methodologies• Explore and write different requirements for your software• Plan, implement, and review your software• Reflect and improve your process• Test your software as if there was no tomorrow• Improve and refactor your code• Continuously integrate and store your code in modern tools like Git

and GitLab

Page 7: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

What’s your current knowledge?

http://bit.ly/intro-se-2018

Page 8: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

How we do it?

You read and perform small activities before the lecture.

1You watch (a fun) lecture.

2You read and perform small activities after the lecture.

3You use your knowledge to improve your final project.

4

Page 9: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Example: Sunday, September 2nd!

Oh, I have a lecture tomorrow. Let me see what the pre-activities

are!

Page 10: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Example: Sunday, September 2nd!

Page 11: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Example: Sunday, September 2nd!

Ok, this sounds cool. Let me read more

about “History of SE”!!

Page 12: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Example: Sunday, September 2nd!

Page 13: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Example: Sunday, September 2nd!

Let me now do the activity. They are so

cool!

Page 14: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Example: Monday, September 3rd!

I wouldn’t miss this lecture for nothing!!

Page 15: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Example: Monday, September 3rd!

Ok, now that I know more about the topic,

let me read more about it!

Page 16: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Example: Monday, September 3rd!

Page 17: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Example: The following labworks

Let’s get together and work on our project,

using our new knowledge!

Page 18: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

FAQ

• Are these pre-lecture readings compulsory? No. but strongly recommended. They are also ungraded.• How long do these activities take? The pre-lecture activities should

take you 20 minutes. The project, hopefully, the entire course.• Should I study them for the exam? Definitely. All lectures + slides +

reading material are (can be) part of the final exam.• Is this a flipped classroom? More or less.

Page 19: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

The project

• Your goal: develop a nice software system.• Theme: education.• More specifically? Anything you want. It can be an app to help kids learn

English, a serious game to people to learn how to cook, illiterate people to take their first steps. It’s up to you.

• You will use Python. After all, that’s the language you are learning.

Page 20: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

The teams

• Teams of 4 people.• Mixed levels of experience.• Same teams as for Introduction to Programming.• Felienne Hermans will create the groups with you tomorrow!

• If you are not taking that course for some reason, come see me after the lecture.

Page 21: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Project selection

• Deadline: This Friday (September 7th), 5pm!• TAs will read (and approve) them all.• Use your labwork time to discuss and refine your proposal.• We will try to minimize duplications. Make sure you post your idea

soon.

Page 22: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Activities

• Every week you will learn something about software engineering.• After the lecture, we expect you to apply your new knowledge.• To help you on that, we designed activities:• You will develop a software engineering process, right after you learn about

Agile.• You will write requirements, right after you learn about user stories and UML.• Etc.

• To help you keep the pace, activities due every week.

Page 23: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Final Report

• You will deliver two reports: • An initial draft (non graded): so that we can give you feedback and you can

improve.• The final report: where we will use it to grade you.

• What do we expect in the report?• Basically, the description of everything you did in terms of process,

requirements, testing, implementation, etc.• Details are in https://serg-delft.github.io/ti3115tu-

2018/activities/project.html.

Page 24: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

FAQ• Are you gonna give me feedback on every single deliverable? No.

Deadlines are there to help you keep the pace. We will give you feedback in your draft and then in your final report.• Can I get any feedback before that? Definitely. That’s why we have

labworks. Feel free to ask questions to our TAs.• Can I discuss/learn with other teams and their deliverables?

Definitely! However, acknowledge what you learned from them in your report! Careful with fraud.• We missed the deadline of the final report. What can we do?

Deadline is strict. Exceptions on a case per case basis. Email 2 days before. • We missed the deadline of the draft report. What can we do?

Nothing, this deadline is strict.

Page 25: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Final exam• The exam is compulsory for all students and it is a fundamental part

of your grade.• It is composed of 40 multiple choice questions with 4 alternatives

each. You can expect questions to cover both the theoretical and the practical aspects of the course.• You should study all reading material, videos, and slides of all the

weeks. Material marked as optional will not be part of the exam. Guest lectures are part of the exam.• The resit is optional, and might be used to increase your grade. It

follows the same structure and content of the exam.

Page 26: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Final grade

• Grade = 0.5 * MAX(E,R) + 0.5 * P

• Where:• E=exam• R=resit• P=project

• Important: Both E/R and P need to be higher than 5.75.

Page 27: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Submit your questions!

• You can submit us exam questions.• If your question is selected to the exam or resit, you:• get a free question (after all, you know the answer!)• we will give you a 0.2-0.3 bonus to your final grade.

• Questions must have a description, a correct answer, and three distractors.• That’s a good way to study! Students who do it are often successful.

Page 28: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Guest lectures

• We will have a few guest lectures from different companies. • This year:• Joop Aué: Adyen, our former MSc student.• Sander Knape: Coolblue• Steve Freeman: “GOOS” author• Ayushi Rastogi: postdoc researcher in our group

• Lecturers will share their experiences with you. Don’t miss it!

Page 29: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Teaching Team

• Maurício Aniche (Teacher)

• Georgios Andreadis (TA)• Max Lopes Cunha (TA)• Danny Plenge (TA)• Kanav Anand (TA)• Ege de Bruin (TA)

• Use the labwork slots for questions!

Page 30: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

A small note on the use of cellphones

• Educational research shows that this can harm your learning.• It can even harm your colleague’s learning.

• Try as much as possible not to use your cellphone during the lectures.

Page 31: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Action required: Brightspace

• If you are not on our Brightspace, please subscribe to it as soon as possible. Deadline: tomorrow 10AM.• Course name: TI3115TU Software Engineering Methods.

Page 32: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

License

• You can use and share any of my material (lecture slides, website).• You always have to give credits to the original author.• You agree not to sell it or make profit in any way with this.

• Material that I refer has its own license. Please check it out.

Page 33: MaurícioAniche Software Engineering · TL;DR •All information, activities, slides, grading, ... •Plan, implement, and review your software •Reflect and improve your process

Images in this presentation

• NESA by Makers: https://unsplash.com/photos/vII7qKAk-9A• Female engineer by GDJ:

https://openclipart.org/detail/230143/female-engineer-9