Software engineering 2

Software engineering 2
Section 1
Welcome Baaaaaaaaack 
I really miss you all 

Sunday was a very boring day
‫شعارات المرحلة‬
‫‪ ‬هات اخرك وما بعد اخرك ‪ ...‬انها المرحلة الفاصلة ‪‬‬
‫‪‬‬
‫‪Be a role model‬‬
‫‪ ‬هنعوض فى البروجيكت والميدتيرم‬
‫‪ ‬سرش قبل ماتعيط ‪‬‬
‫‪ ‬نتعلم < الدرجات‬
‫‪No Super Samir, No Facebook office hours :D ‬‬
Our commitments

Grades sheet will be published each 2 weeks

Discussion times will be announced in acadox

Grading criteria will be announced before each phase discussion
What are we going to learn in SWE 2

Software design

Software testing

The usage of software engineering concepts + modern technologies
(frameworks)

The main objective is to understand the software engineering concepts and to
be a qualified software engineer for the market
Project ?

Teams will be swapped, Why ?

We will start with testing phase

More info about design and implementation phase will be announced very
soon
Agenda

The need of code review

Code review process

Code review checklist

Practice

Best teams in analysis phase
Say hello to our Geek 7amada  
But what if there’s a review on 7amada’s
code
‫*اعتبر ده حمادة يعنى*‬
‫لقد اصبح حمادة والكود على وضعهم‬
So now what’s exactly code review

A constructive review of a fellow developer’s code. A required sign-off from
another team member before a developer is permitted to check in changes or
new code.
The main components of code review

Who

What


Refactoring hints
When
Studies about code reviews

Average defect detection rates

Unit testing 25 %

Function testing 35 %

Integration testing 45 %

Design and code inspection 55 – 60 %

11 programs survey

ratio of time spent in review vs. later testing and error correction ranges from
1:20 to 1:100

Reviews cut errors by anywhere from 20% to 80%
In review we don’t test !!

Repeated code

Unclear error message
Review process

Code reading

Code inspection
Review checklists

Magic numbers

Indentation

Variable naming

Needless, obsolete and redundant comments

No method documentation

Array indexes within bounds

Conditions in ifs, loops
Review checklist (Cont.)

Error messages understandable

Edge cases

Code at right level of abstraction

Methods have appropriate number, types of parameters

Redundancy minimized

Enum not int constants

Objects referred to by their interfaces, mist generic supertype.

Make fields private
Practice
Best teams in analysis phase

Ahmed Hussein’s Team

Ahmed Emad’s Team

Amr Saeed’s Team

Randa Ayman’s Team

Seif El-Eslam’s Team
Best teams in analysis phase

Mohamed Ragab Mohamed’s Team

Ismail Ahmed’s Team

Mohamed Abdallah’s Team

Mohamed Raafat’s Team

Amr Atef’s Team
Best teams in analysis phase

Noura Mohamed’s Team

Youmna Ashraf’s Team

Ahmed Thrawt’s Team

Aya Mohamed Sayed’s Team

Saleh Selim’s Team
Best teams in analysis phase

Nagham Alaa’s Team

Zyad Mustafa’s Team

Mahmoud Samy’s Team
Thank you 