SlideShare a Scribd company logo
CS251An Intro. to Software Engineering
SPRING2022
Helwan University
Faculty of
Computers &
Artificial Intelligence
Lecture 0
Course Introduction
& Plan
▪ Course Details & Course Instructor (Short Bio)
▪ Tentative Topics & Learning Objectives
▪ Course Logistics & Grading Policy
▪ Classroom Code of Conduct
▪ Be an Effective Learner ..?
▪ Tentative Weekly Plan
2
Course Code CS251
Course Name Software Engineering 1
(An Introduction to Software Engineering)
Coordinating Unit Computer Science Department,
Faculty of Computers & Artificial ..
.. Intelligence, Helwan University
Term Semester 2 (Spring)
Level Undergraduate – Levels 2
CourseDetails
CourseStaff:Instructor(ShortBio)
Dr. Amr S. Ghoneim
He received his B.Sc. and M.Sc. (by research) degrees in Computer Science from Helwan University
(the Faculty of Computers and Artificial Intelligence), Cairo - Egypt. His M.Sc. work was on employing
AI & Machine Learning techniques for detecting the effects of diabetes on human vision (from
images of the retina) won him the 1st Place Winning Postgraduate [Best MSc/PhD Thesis] in the MIE
“Made -In-Egypt” Competition (Organized by the IEEE-Egypt Gold Section) and the 1st Place Winning
Postgraduate [Best MSc/PhD Thesis] in the MIA “Made-In-the-Arab world” Competition (Organized
by the Arab League) competing against researchers from 13 MENA countries.
He completed his Ph.D. in 2012 from the School of Engineering and Information Technology (SEIT),
the University of New South Wales at the Australian Defence Force Academy (UNSW@ADFA),
Canberra - Australia, where he was a member of the Artificial Life and Adaptive Robotics Laboratory
(ALAR). His thesis was about developing a computational approach for competency awareness in
strategic decision making (for Go players).
He is currently an Assistant Professor at the Department of Computer Science at Helwan University,
Cairo - Egypt. Since 2015, he's also the Vice-Director of the International Students Office (for Study
Programs and Research Communication) at Helwan University, and an Adjunct Assistant Professor of
Computer Science at the Faculty of Informatics and Computer Science (ICS) - The British University in
Egypt. His research interests include the areas of artificial/computational intelligence, machine
learning, ensemble learning, image processing (mostly medical), pattern recognition, statistical
analysis, computational psychology, and evolutionary computation. 3
TentativeTopics
&LearningObjectives
..ofthiscourse
4
5
What you'll learn?
 Knowledge of basic SW engineering methods and practices,
and their appropriate application.
 A general understanding of software process models such as
the waterfall and iterative models.
 Understand the principles of large-scale software systems
(Projects), and the processes that are used to build them.
 Understand the principles of Generic software Products, and
the processes that are used to build them.
 Understanding of software requirements & the SRS
documents.
 Understanding of the role of project management including
planning, scheduling, risk management, etc.
 Understanding of different software architectural styles.
LearningObjectivesofthisCourse[1]
6
What you'll learn?
 Acquire skills to think about problems and their solutions using
appropriate methods of analysis and design [employing most
widely used approaches to software construction – e.g.,
object-orientation (OO); including OO requirement
specifications, OO analysis, OO design, Design Patterns, OO
Programming, OO testing & maintenance].
 Understanding of implementation issues such as modularity
and coding standards.
 Understanding of software testing approaches such as unit
testing and integration testing.
 Describe software measurement and software risks.
 Understanding of software evolution and related issues such
as version management.
LearningObjectivesofthisCourse[2]
7
What you'll learn?
 Develop an awareness of the role and responsibilities of the
professional software engineer.
 Be able to design and communicate ideas about software
system solutions at different levels of abstraction and across a
wide range of industrial/commercial domains.
 Have a basis for going on to further study in software
engineering, or for finding work in computing-related
industries.
 Have an ability to work with other people in a team,
communicating computing ideas effectively in speech and in
writing.
LearningObjectivesofthisCourse[3]
8
The main contents of the course are:
▪ Selected topics in Software Processes.
▪ Selected topics in Agile Software Development.
▪ Selected topics in Requirements Engineering.
▪ Selected topics in Design & Implementation (OOP, Modularity, Coding
Standards, etc.).
▪ Selected topics in System / Software Modelling (using UML).
▪ Selected topics in Software Reuse (Design Patterns, Idioms, etc.),
Service-Oriented SE, & Component-based SE.
▪ Selected topics in Architectural Design (including Architectural Styles /
Patterns).
▪ Selected topics in Software Testing & Software Evolution.
TopicsCovered[Tentative]
CourseLogistics
• Announcements & Course Materials
• Additional Resources (per section)
• Assessment Summary (Grading Policy)
• Exercises .. What have we learned?
• Be an Effective Learner ..?
• Classroom Code of Conduct
• Academic Integrity & Plagiarism
9
Video Lessons:
Some recorded lectures are on the following:
Amr S. Ghoneim YouTube Channel : https://www.youtube.com/AmrSGhoneim/
CS251 Software Engineering 1 YouTube Playlist :
https://www.youtube.com/playlist?list=PLsnvpvHuTUbC-yJkvcf-
Stp_kLwfesnn-
10
Announcements&CourseMaterials[1]
Downloads, Homework, & Announcements:
All course material (lecture notes “slides", assignments, any supplemental notes
or documentation), will be made available “posted” online on weekly basis, on:
CS251 Software Engineering 1 Google Drive Folder:
https://drive.google.com/drive/folders/1IGxF6hlX_kx6PxLO7Y3FdzO5-
HnT2Uxb?usp=sharing
All announcements will be made available “posted” online, on:
Amr S. Ghoneim Facebook Page : https://www.facebook.com/amr.s.ghoneim/
11
Announcements&CourseMaterials[2]
The main prescribed textbooks for the course are:
- Ian Sommerville, (2020). Engineering Software Products – An Introduction
to Modern Software Engineering. Pearson.
- Ian Sommerville, (2016). Software Engineering 10th Edition. International
Computer Science.
- Gerard O'Regan, (2017). Concise Guide to Software Engineering. Springer,
Cham.
12
Announcements&CourseMaterials[3]
ReadingList:
For OO Design Principles, Analysis & Design, UML Modelling:
- Bernd Bruegge, and Allen H. Dutoit , (2009). Object-Oriented Software
Engineering: Using UML, Patterns and Java, 3rd Edition, Prentice Hall.
- Hassan Gomaa , (2011). Software Modeling and Design: UML, Use Cases,
Patterns, and Software Architectures. Cambridge University Press.
- Martina Seidl, et al., (2015). UML@ Classroom. Springer.
- Martin Fowler , (2004). UML Distilled: a Brief Guide to the Standard Object
Modeling Language. Addison-Wesley Professional.
- B. Unhelkar , (2017). Software Engineering with UML. Auerbach Publications.
- Matt Weisfeld , (2019). The Object-Oriented Thought Process. 5th Edition.
For the Design Patterns:
• J. Vlissides, R. Helm, R. Johnson, and E. Gamma , (1995). Design patterns:
Elements of reusable object-oriented software. Reading: Addison-Wesley.
• E. Freeman, E. Robson, B. Bates, K. Sierra, (2004). Head first design patterns.
O'Reilly Media Inc. 13
Announcements&CourseMaterials[4]
ReadingList:
The Assessment for this subject consists of three components with the following
weightings (grading breakdown):
❑ Group Practical Project (2 phases): 25%
– The grades include an Individual Assessment.
– The final submission includes 10,000 words (approx.) report + the
detailed diagrams for software modelling + code (implementation)
❑ Midterm Written Test: 15%
❑ Final Written Exam: 60%
14
AssessmentSchemeSummary(GradingPolicy)
[GeneralProgramme]
The Assessment for this subject consists of three components with the following
weightings (grading breakdown):
❑ Group Practical Project (2 phases): 30%
– The grades include an Individual Assessment.
– The final submission includes 10,000 words (approx.) report + the
detailed diagrams for software modelling + code (implementation)
❑ Midterm Written Test: 20%
❑ Final Written Exam: 50%
15
AssessmentSchemeSummary(GradingPolicy)
[MedicalInformaticsProgramme]
16
o A major component of the class: Goal is to take a real-world domain
that you are interested in and apply the taught methodologies to gain
insight into the domain.
o Work to be done in groups of (5 or 6) students, more details will be
announced later.
o Final report will include the presentation & analysis of your problem,
the approaches applied, the design, and the code.
o The students will be required to perform a ~15 mins demo of their project.
o Project Ideas: The students will have to choose from a list of ideas that
will be announced soon, but they have the freedom to augment / select /
modify / adjust the requirements of their selected project.
ClassGroup–Project [1]
Week 4: (Part of registering the project – ungraded)
A report of 200-500 word indicating the following:
• Project idea
• Main functionalities
• Similar applications in the market
• Development platform
17
ClassGroup–Project [2]
Tentative/IndicativeProjectdeliverables:
Week 8: (Phase I Submission)
UML design document indicating the following:
• Functional Requirements
• Non-Functional Requirements
• System Architecture
• Activity Diagram(s)
• Use-Case Diagram(s) – including general use-cases for the system, and
the detailed use-cases description
• Database Specification
• Class Diagram (Interfaces, Classes, Relations)
• Snap shots of User Interface
18
ClassGroup–Project [3]
Tentative/IndicativeProjectdeliverables:
19
Week 12: (Phase II Submission)
UML Final design document/report indicating the following:
• Sequence Diagram(s) including System Sequence Diagrams (SSDs)
• Collaboration/Communication Diagram(s)
• Class Diagram (3 versions): 1) An initial version based on the requirements
and Use-Case/Activity diagrams. 2) An intermediate version based on the
interaction diagrams. 3) A final version, after applying the design pattern(s)
and any other modifications.
• Package Diagram(s)
• Test plan and Test cases performed
• 2~3 Mandatory Design Patterns Applied (including a typed description)
• Additional Design Patterns (for bonus marks).
• .. + (continued in the following slide)
ClassGroup–Project [4]
Tentative/IndicativeProjectdeliverables:
20
Week 12: (Phase II Submission) – Continued
Implementation (code) based on the submitted Requirements & Design.
Should include at least 4 of the following modules (in addition of course
to modules specific to your individual projects):
1) User Role Management Module.
2) User manipulation Module (Login, Add / Delete / Update / Search, List).
3) Controlling Resources Module (Rooms, Orders, Products, ... etc.).
4) Reservation and Rescheduling Module.
5) Generating Reports Module (PDFs, … etc.).
6) Sending Emails or Notifications Module.
N.B. You must update and resubmit the initial part of the documentation
submitted in phase 1 (including the Functional / Non-Functional requirements,
Use-case Diagrams & Descriptions, Activity Diagrams, .. etc.).
ClassGroup–Project [5]
Tentative/IndicativeProjectdeliverables:
21
o You can discuss ideas and methodology for the homework or the
project with other students in the course, but you must write your
solutions completely independently.
o We will be code-checking to assess similar submissions or
submissions that use code from other sources.
o You may use snippets of code from other sources, as long as you cite
these properly (put a comment above and below whatever portion of
code is copied); but be reasonable.
AcademicIntegrity& Plagiarism
22
TentativeWeeklyPlan
Week 1: Lecture 0: Module Outline, Introduction to Software Engineering
Week 2: Lecture 1: Software Processes & Development Life-Cycles
Week 3: Lecture 2: Requirements Engineering
Week 4: Lecture 3: From Domain to Requirements; Use-Case & Activity Diagrams
Week 5: Lecture 4: Introduction to UML, OO Modelling, & Class Diagrams
Week 6: Lecture 5: OO Modelling, UML Static Diagrams (Class, Object, & Package
Diagrams)
Week 7: Midterm Written Exams
Week 8: Lecture 6: OO Modelling, UML Interaction Diagrams (Sequence,
Collaboration, & System Sequence Diagrams)
Week 9: Lecture 7: Reuse in SWE - An Introduction to Design Patterns
Week 10: Lecture 8: Reuse in SWE - An Introduction to Architectural Patterns
Week 11: Lecture 9: A Brief Introduction to Testing
Week 12: Lecture 10: Additional Selected Topics in SE and/or Revision
23
o Attend the class regularly.
o Study and learn the material presented in the class (and refer to your
reading list).
o Do the group project.
o Perform well in the exams & quizzes.
o Don’t cheat (Plagiarism).
Whatisexpectedfromyou?
24
Be punctual & prepared to study:
- Attend all classes including online and face-to-face classes.
- Arrive to all classes on time.
- Keep all handouts & work in a folder and make sure they are well organised.
- Prepare yourself for your classes.
Participate in the classroom:
- Participate in class.
- Respect yourself, your teachers, and your classmates.
- Turn mobile phones off or put them on silent mode before entering the classroom.
- Adopt a professional attitude - no eating, side-talk, etc.
Study independently:
- Study outside the classroom as part of your student effort (about 6 to 8 hours per week).
- Complete all homework assignments and hand them in on time.
- Use the University/Faculty facilities (e.g., the library) and online resources.
Respect University regulations:
- Follow (University, Faculty, Department, and Programme) regulations.
- Know the due date of all assessments, submit them by that date & in the required format.
- Understand what you need to successfully progress.
- Maintain academic honesty (academic integrity & plagiarism).
ClassroomCodeofConduct
25
o Have the desire to seek knowledge and acquire new skills (be
inquisitive / curious).
o Ask questions.
o Be an avid (keen & passionate) reader.
o Be an attentive / focused listener.
o Find your preferred learning style .. & .. Learn in multiple ways.
o Do NOT memorize.
o Embrace Discomfort.
o Practice, practice, practice (you must gain practical experience).
o Teach what you’ve learned to another person.
o Use testing to boost / improve learning.
o Avoid multitasking.
o Make use of Memory Improvement Basics.
o Draw up a schedule.
o Examine your lifestyle.
o Create a study station.
BeanEffectiveLearner..
Additional
Resources
▪ At the end of some sections, there will be a
short list of additional resources.
▪ The list will include articles, YouTube videos,
online courses, books, .. etc. (in both Arabic
and English).
▪ These resources will provide more details on
some of the topics discussed during the
lectures.
At the end of some sections, there will be a set
review activities (exercises), that would help you
see the progress you've made in this lesson.
The exercises would help you:
▪ Highlight what you have learned today &
emphasize key information.
▪ Correct misunderstandings.
▪ Summarize, review, & demonstrate your
understanding of major points.
▪ Transfer ideas to new situations.
Exercises
Whathavewelearned?
Welcome to
CS251
Thank you!
Up Next ..
Lecture 1
an Introduction to
Software Engineering

More Related Content

PDF
SE18_Lec 00_Course Outline
PDF
Oose lab notes
DOCX
software engineering notes pdf jntuh R18
PPTX
1-Nature of Software Software Engineering Software process project product Pr...
DOC
Student copybca sem3-se
PPTX
Unit 1 OOSE
PDF
SE_Lec 00_ Software Engineering 1
PPT
CSE320 SOFTWARE ENGINEERING Lecture01 (1).ppt
SE18_Lec 00_Course Outline
Oose lab notes
software engineering notes pdf jntuh R18
1-Nature of Software Software Engineering Software process project product Pr...
Student copybca sem3-se
Unit 1 OOSE
SE_Lec 00_ Software Engineering 1
CSE320 SOFTWARE ENGINEERING Lecture01 (1).ppt

Similar to CS251 Intro. to SE [Lec. 0 - Course Introduction & Plan] Spring 2022.pdf (20)

PPTX
Software Engineering CST357 Lecture 1.pptx
PPT
Software Engineering (Introduction)
PPTX
1 se-introduction
PPT
01.intro
PPT
Oose unit 1 ppt
PPTX
Networking chapter jkl; dfghyubLec 1.pptx
PPTX
Lecture 1 uml with java implementation
PPT
OOSE Unit 1 PPT.ppt
PDF
SE18_Lec 01_Introduction to Software Engineering
PDF
Introduction to Software Engineering Notes
PPT
department os computer science and engineering
PPT
Oose unit 4 ppt
PPT
OOSE Unit 4 PPT.ppt
PPT
Software engineering
PDF
M256 Unit 1 - Software Development with Java
PPT
Introduction to principles of software engineeringWhy1and2
PDF
Introduction to Software Engineering Course
DOCX
Introduction to software engineering and Evalution
PPTX
20CB304 - SE - UNIT V - Digital Notes.pptx
Software Engineering CST357 Lecture 1.pptx
Software Engineering (Introduction)
1 se-introduction
01.intro
Oose unit 1 ppt
Networking chapter jkl; dfghyubLec 1.pptx
Lecture 1 uml with java implementation
OOSE Unit 1 PPT.ppt
SE18_Lec 01_Introduction to Software Engineering
Introduction to Software Engineering Notes
department os computer science and engineering
Oose unit 4 ppt
OOSE Unit 4 PPT.ppt
Software engineering
M256 Unit 1 - Software Development with Java
Introduction to principles of software engineeringWhy1and2
Introduction to Software Engineering Course
Introduction to software engineering and Evalution
20CB304 - SE - UNIT V - Digital Notes.pptx
Ad

Recently uploaded (20)

PDF
Automation-in-Manufacturing-Chapter-Introduction.pdf
PPTX
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
PDF
Embodied AI: Ushering in the Next Era of Intelligent Systems
PPTX
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
PDF
Well-logging-methods_new................
PPT
Mechanical Engineering MATERIALS Selection
PDF
PPT on Performance Review to get promotions
PDF
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
PPTX
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
DOCX
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
PDF
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
PDF
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
PPTX
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
PPTX
UNIT 4 Total Quality Management .pptx
PPTX
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
PDF
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
PPTX
Lecture Notes Electrical Wiring System Components
PPTX
OOP with Java - Java Introduction (Basics)
PPTX
Geodesy 1.pptx...............................................
PPT
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
Automation-in-Manufacturing-Chapter-Introduction.pdf
Engineering Ethics, Safety and Environment [Autosaved] (1).pptx
Embodied AI: Ushering in the Next Era of Intelligent Systems
CARTOGRAPHY AND GEOINFORMATION VISUALIZATION chapter1 NPTE (2).pptx
Well-logging-methods_new................
Mechanical Engineering MATERIALS Selection
PPT on Performance Review to get promotions
Mitigating Risks through Effective Management for Enhancing Organizational Pe...
Recipes for Real Time Voice AI WebRTC, SLMs and Open Source Software.pptx
ASol_English-Language-Literature-Set-1-27-02-2023-converted.docx
Mohammad Mahdi Farshadian CV - Prospective PhD Student 2026
July 2025 - Top 10 Read Articles in International Journal of Software Enginee...
M Tech Sem 1 Civil Engineering Environmental Sciences.pptx
UNIT 4 Total Quality Management .pptx
MET 305 2019 SCHEME MODULE 2 COMPLETE.pptx
Evaluating the Democratization of the Turkish Armed Forces from a Normative P...
Lecture Notes Electrical Wiring System Components
OOP with Java - Java Introduction (Basics)
Geodesy 1.pptx...............................................
CRASH COURSE IN ALTERNATIVE PLUMBING CLASS
Ad

CS251 Intro. to SE [Lec. 0 - Course Introduction & Plan] Spring 2022.pdf

  • 1. CS251An Intro. to Software Engineering SPRING2022 Helwan University Faculty of Computers & Artificial Intelligence Lecture 0 Course Introduction & Plan ▪ Course Details & Course Instructor (Short Bio) ▪ Tentative Topics & Learning Objectives ▪ Course Logistics & Grading Policy ▪ Classroom Code of Conduct ▪ Be an Effective Learner ..? ▪ Tentative Weekly Plan
  • 2. 2 Course Code CS251 Course Name Software Engineering 1 (An Introduction to Software Engineering) Coordinating Unit Computer Science Department, Faculty of Computers & Artificial .. .. Intelligence, Helwan University Term Semester 2 (Spring) Level Undergraduate – Levels 2 CourseDetails
  • 3. CourseStaff:Instructor(ShortBio) Dr. Amr S. Ghoneim He received his B.Sc. and M.Sc. (by research) degrees in Computer Science from Helwan University (the Faculty of Computers and Artificial Intelligence), Cairo - Egypt. His M.Sc. work was on employing AI & Machine Learning techniques for detecting the effects of diabetes on human vision (from images of the retina) won him the 1st Place Winning Postgraduate [Best MSc/PhD Thesis] in the MIE “Made -In-Egypt” Competition (Organized by the IEEE-Egypt Gold Section) and the 1st Place Winning Postgraduate [Best MSc/PhD Thesis] in the MIA “Made-In-the-Arab world” Competition (Organized by the Arab League) competing against researchers from 13 MENA countries. He completed his Ph.D. in 2012 from the School of Engineering and Information Technology (SEIT), the University of New South Wales at the Australian Defence Force Academy (UNSW@ADFA), Canberra - Australia, where he was a member of the Artificial Life and Adaptive Robotics Laboratory (ALAR). His thesis was about developing a computational approach for competency awareness in strategic decision making (for Go players). He is currently an Assistant Professor at the Department of Computer Science at Helwan University, Cairo - Egypt. Since 2015, he's also the Vice-Director of the International Students Office (for Study Programs and Research Communication) at Helwan University, and an Adjunct Assistant Professor of Computer Science at the Faculty of Informatics and Computer Science (ICS) - The British University in Egypt. His research interests include the areas of artificial/computational intelligence, machine learning, ensemble learning, image processing (mostly medical), pattern recognition, statistical analysis, computational psychology, and evolutionary computation. 3
  • 5. 5 What you'll learn?  Knowledge of basic SW engineering methods and practices, and their appropriate application.  A general understanding of software process models such as the waterfall and iterative models.  Understand the principles of large-scale software systems (Projects), and the processes that are used to build them.  Understand the principles of Generic software Products, and the processes that are used to build them.  Understanding of software requirements & the SRS documents.  Understanding of the role of project management including planning, scheduling, risk management, etc.  Understanding of different software architectural styles. LearningObjectivesofthisCourse[1]
  • 6. 6 What you'll learn?  Acquire skills to think about problems and their solutions using appropriate methods of analysis and design [employing most widely used approaches to software construction – e.g., object-orientation (OO); including OO requirement specifications, OO analysis, OO design, Design Patterns, OO Programming, OO testing & maintenance].  Understanding of implementation issues such as modularity and coding standards.  Understanding of software testing approaches such as unit testing and integration testing.  Describe software measurement and software risks.  Understanding of software evolution and related issues such as version management. LearningObjectivesofthisCourse[2]
  • 7. 7 What you'll learn?  Develop an awareness of the role and responsibilities of the professional software engineer.  Be able to design and communicate ideas about software system solutions at different levels of abstraction and across a wide range of industrial/commercial domains.  Have a basis for going on to further study in software engineering, or for finding work in computing-related industries.  Have an ability to work with other people in a team, communicating computing ideas effectively in speech and in writing. LearningObjectivesofthisCourse[3]
  • 8. 8 The main contents of the course are: ▪ Selected topics in Software Processes. ▪ Selected topics in Agile Software Development. ▪ Selected topics in Requirements Engineering. ▪ Selected topics in Design & Implementation (OOP, Modularity, Coding Standards, etc.). ▪ Selected topics in System / Software Modelling (using UML). ▪ Selected topics in Software Reuse (Design Patterns, Idioms, etc.), Service-Oriented SE, & Component-based SE. ▪ Selected topics in Architectural Design (including Architectural Styles / Patterns). ▪ Selected topics in Software Testing & Software Evolution. TopicsCovered[Tentative]
  • 9. CourseLogistics • Announcements & Course Materials • Additional Resources (per section) • Assessment Summary (Grading Policy) • Exercises .. What have we learned? • Be an Effective Learner ..? • Classroom Code of Conduct • Academic Integrity & Plagiarism 9
  • 10. Video Lessons: Some recorded lectures are on the following: Amr S. Ghoneim YouTube Channel : https://www.youtube.com/AmrSGhoneim/ CS251 Software Engineering 1 YouTube Playlist : https://www.youtube.com/playlist?list=PLsnvpvHuTUbC-yJkvcf- Stp_kLwfesnn- 10 Announcements&CourseMaterials[1]
  • 11. Downloads, Homework, & Announcements: All course material (lecture notes “slides", assignments, any supplemental notes or documentation), will be made available “posted” online on weekly basis, on: CS251 Software Engineering 1 Google Drive Folder: https://drive.google.com/drive/folders/1IGxF6hlX_kx6PxLO7Y3FdzO5- HnT2Uxb?usp=sharing All announcements will be made available “posted” online, on: Amr S. Ghoneim Facebook Page : https://www.facebook.com/amr.s.ghoneim/ 11 Announcements&CourseMaterials[2]
  • 12. The main prescribed textbooks for the course are: - Ian Sommerville, (2020). Engineering Software Products – An Introduction to Modern Software Engineering. Pearson. - Ian Sommerville, (2016). Software Engineering 10th Edition. International Computer Science. - Gerard O'Regan, (2017). Concise Guide to Software Engineering. Springer, Cham. 12 Announcements&CourseMaterials[3] ReadingList:
  • 13. For OO Design Principles, Analysis & Design, UML Modelling: - Bernd Bruegge, and Allen H. Dutoit , (2009). Object-Oriented Software Engineering: Using UML, Patterns and Java, 3rd Edition, Prentice Hall. - Hassan Gomaa , (2011). Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures. Cambridge University Press. - Martina Seidl, et al., (2015). UML@ Classroom. Springer. - Martin Fowler , (2004). UML Distilled: a Brief Guide to the Standard Object Modeling Language. Addison-Wesley Professional. - B. Unhelkar , (2017). Software Engineering with UML. Auerbach Publications. - Matt Weisfeld , (2019). The Object-Oriented Thought Process. 5th Edition. For the Design Patterns: • J. Vlissides, R. Helm, R. Johnson, and E. Gamma , (1995). Design patterns: Elements of reusable object-oriented software. Reading: Addison-Wesley. • E. Freeman, E. Robson, B. Bates, K. Sierra, (2004). Head first design patterns. O'Reilly Media Inc. 13 Announcements&CourseMaterials[4] ReadingList:
  • 14. The Assessment for this subject consists of three components with the following weightings (grading breakdown): ❑ Group Practical Project (2 phases): 25% – The grades include an Individual Assessment. – The final submission includes 10,000 words (approx.) report + the detailed diagrams for software modelling + code (implementation) ❑ Midterm Written Test: 15% ❑ Final Written Exam: 60% 14 AssessmentSchemeSummary(GradingPolicy) [GeneralProgramme]
  • 15. The Assessment for this subject consists of three components with the following weightings (grading breakdown): ❑ Group Practical Project (2 phases): 30% – The grades include an Individual Assessment. – The final submission includes 10,000 words (approx.) report + the detailed diagrams for software modelling + code (implementation) ❑ Midterm Written Test: 20% ❑ Final Written Exam: 50% 15 AssessmentSchemeSummary(GradingPolicy) [MedicalInformaticsProgramme]
  • 16. 16 o A major component of the class: Goal is to take a real-world domain that you are interested in and apply the taught methodologies to gain insight into the domain. o Work to be done in groups of (5 or 6) students, more details will be announced later. o Final report will include the presentation & analysis of your problem, the approaches applied, the design, and the code. o The students will be required to perform a ~15 mins demo of their project. o Project Ideas: The students will have to choose from a list of ideas that will be announced soon, but they have the freedom to augment / select / modify / adjust the requirements of their selected project. ClassGroup–Project [1]
  • 17. Week 4: (Part of registering the project – ungraded) A report of 200-500 word indicating the following: • Project idea • Main functionalities • Similar applications in the market • Development platform 17 ClassGroup–Project [2] Tentative/IndicativeProjectdeliverables:
  • 18. Week 8: (Phase I Submission) UML design document indicating the following: • Functional Requirements • Non-Functional Requirements • System Architecture • Activity Diagram(s) • Use-Case Diagram(s) – including general use-cases for the system, and the detailed use-cases description • Database Specification • Class Diagram (Interfaces, Classes, Relations) • Snap shots of User Interface 18 ClassGroup–Project [3] Tentative/IndicativeProjectdeliverables:
  • 19. 19 Week 12: (Phase II Submission) UML Final design document/report indicating the following: • Sequence Diagram(s) including System Sequence Diagrams (SSDs) • Collaboration/Communication Diagram(s) • Class Diagram (3 versions): 1) An initial version based on the requirements and Use-Case/Activity diagrams. 2) An intermediate version based on the interaction diagrams. 3) A final version, after applying the design pattern(s) and any other modifications. • Package Diagram(s) • Test plan and Test cases performed • 2~3 Mandatory Design Patterns Applied (including a typed description) • Additional Design Patterns (for bonus marks). • .. + (continued in the following slide) ClassGroup–Project [4] Tentative/IndicativeProjectdeliverables:
  • 20. 20 Week 12: (Phase II Submission) – Continued Implementation (code) based on the submitted Requirements & Design. Should include at least 4 of the following modules (in addition of course to modules specific to your individual projects): 1) User Role Management Module. 2) User manipulation Module (Login, Add / Delete / Update / Search, List). 3) Controlling Resources Module (Rooms, Orders, Products, ... etc.). 4) Reservation and Rescheduling Module. 5) Generating Reports Module (PDFs, … etc.). 6) Sending Emails or Notifications Module. N.B. You must update and resubmit the initial part of the documentation submitted in phase 1 (including the Functional / Non-Functional requirements, Use-case Diagrams & Descriptions, Activity Diagrams, .. etc.). ClassGroup–Project [5] Tentative/IndicativeProjectdeliverables:
  • 21. 21 o You can discuss ideas and methodology for the homework or the project with other students in the course, but you must write your solutions completely independently. o We will be code-checking to assess similar submissions or submissions that use code from other sources. o You may use snippets of code from other sources, as long as you cite these properly (put a comment above and below whatever portion of code is copied); but be reasonable. AcademicIntegrity& Plagiarism
  • 22. 22 TentativeWeeklyPlan Week 1: Lecture 0: Module Outline, Introduction to Software Engineering Week 2: Lecture 1: Software Processes & Development Life-Cycles Week 3: Lecture 2: Requirements Engineering Week 4: Lecture 3: From Domain to Requirements; Use-Case & Activity Diagrams Week 5: Lecture 4: Introduction to UML, OO Modelling, & Class Diagrams Week 6: Lecture 5: OO Modelling, UML Static Diagrams (Class, Object, & Package Diagrams) Week 7: Midterm Written Exams Week 8: Lecture 6: OO Modelling, UML Interaction Diagrams (Sequence, Collaboration, & System Sequence Diagrams) Week 9: Lecture 7: Reuse in SWE - An Introduction to Design Patterns Week 10: Lecture 8: Reuse in SWE - An Introduction to Architectural Patterns Week 11: Lecture 9: A Brief Introduction to Testing Week 12: Lecture 10: Additional Selected Topics in SE and/or Revision
  • 23. 23 o Attend the class regularly. o Study and learn the material presented in the class (and refer to your reading list). o Do the group project. o Perform well in the exams & quizzes. o Don’t cheat (Plagiarism). Whatisexpectedfromyou?
  • 24. 24 Be punctual & prepared to study: - Attend all classes including online and face-to-face classes. - Arrive to all classes on time. - Keep all handouts & work in a folder and make sure they are well organised. - Prepare yourself for your classes. Participate in the classroom: - Participate in class. - Respect yourself, your teachers, and your classmates. - Turn mobile phones off or put them on silent mode before entering the classroom. - Adopt a professional attitude - no eating, side-talk, etc. Study independently: - Study outside the classroom as part of your student effort (about 6 to 8 hours per week). - Complete all homework assignments and hand them in on time. - Use the University/Faculty facilities (e.g., the library) and online resources. Respect University regulations: - Follow (University, Faculty, Department, and Programme) regulations. - Know the due date of all assessments, submit them by that date & in the required format. - Understand what you need to successfully progress. - Maintain academic honesty (academic integrity & plagiarism). ClassroomCodeofConduct
  • 25. 25 o Have the desire to seek knowledge and acquire new skills (be inquisitive / curious). o Ask questions. o Be an avid (keen & passionate) reader. o Be an attentive / focused listener. o Find your preferred learning style .. & .. Learn in multiple ways. o Do NOT memorize. o Embrace Discomfort. o Practice, practice, practice (you must gain practical experience). o Teach what you’ve learned to another person. o Use testing to boost / improve learning. o Avoid multitasking. o Make use of Memory Improvement Basics. o Draw up a schedule. o Examine your lifestyle. o Create a study station. BeanEffectiveLearner..
  • 26. Additional Resources ▪ At the end of some sections, there will be a short list of additional resources. ▪ The list will include articles, YouTube videos, online courses, books, .. etc. (in both Arabic and English). ▪ These resources will provide more details on some of the topics discussed during the lectures.
  • 27. At the end of some sections, there will be a set review activities (exercises), that would help you see the progress you've made in this lesson. The exercises would help you: ▪ Highlight what you have learned today & emphasize key information. ▪ Correct misunderstandings. ▪ Summarize, review, & demonstrate your understanding of major points. ▪ Transfer ideas to new situations. Exercises Whathavewelearned?
  • 28. Welcome to CS251 Thank you! Up Next .. Lecture 1 an Introduction to Software Engineering