Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Seng 123 3-sdlc
1. SDLC
Software Development Life Cycle
SENG 123:
Introduction to Computer Software Engineering
By
Atilla Elçi
29.09.2020 Intro Comp SWE 1
2. WEEKLY SCHEDULE
Week Topics PPTs Text
1 Intro to the course;
An overview of software engineering concepts
Intro;
Concepts
Preface;
Ch.1
2 Engineering, software engineering, ethics Engin…
3 Software development life cycle SDLC Ch.2
4 Software development life cycle SDLC Ch.2
5 Practical
6 Requirements analysis and software
specification
7 Software development project management
8 Software project analysis and design
9 Midterm Examination Week
10 Object-oriented analysis and design
11 Interfaces, dialogs, and database
12 coding and debugging; software testing
13 Implementation and maintenance; reliability and
quality
14 Review; Q & A.
1.10.2020 Intro Comp SWE 2
3. Breaking into SDLC
• What is a software development life cycle?
– https://www.youtube.com/watch?v=4xCldpbDZ10
– A simplified and logical summary of SDLC
– 5 minutes
24.09.2020 Intro Comp SWE 3
4. SDLC
• Definition: SDLC is a methodology that defines the
steps of a software development project.
– «Steps», «stages», «phases», «processes» = all the same:
• Requirement gathering and analysis:
– Project planning, requirements, approach, deliverables, expected
outcome
• Software design
• Coding and implementation:
– Implement the design, develop the code
• Testing:
– Testing the code against the customer requirements and specifications
• Deployment:
– Delivery, installation, operation
• Maintenance / post-deployment:
– Maintaining the software at where it is operational.
24.09.2020 Intro Comp SWE 4
5. SDLC Methods
• Methods = Process Models
• There are several approaches to affecting the
SDLC depending on how the phases are executed:
– Waterfall model: each step fully executed in sequence,
w/o repetition, from beginning to the end.
– Iterative model: functionwise piece meal approach
– Spiral model: from a prototype to the next version
– …
24.09.2020 Intro Comp SWE 5
6. Terminology
• Software Development
Life Cycle (SDLC):
– Requirement gathering and
analysis
– Software design
– Coding and
implementation
– Testing
– Maintenance/post-
deployment
• Requirement document
• Planning
• Specification
• Design document
• Phase/stage
• Product
• SDLC project process
models:
– Waterfall model
– Iterative model
– Spiral model
• Project manager
24.09.2020 Intro Comp SWE 6
7. Türkçe Terimler
• Software Development Life Cycle
(SDLC): Yazılım Geliştirme Yaşam
Döngüsü (YGYD)
– Requirement gathering and
analysis: Gereksinim derlemesi ve
çözümlemesi
– Software design: Yazılım tasarımı
– Coding and implementation:
Kodlama ve uygulama
– Testing: Sınama
– Maintenance/post-deployment:
Bakım / dağıtım
• Requirement document:
gereksinim belgesi
• Planning: Planlama
• Specification: Belirtim
• Design document: Tasarım
belgesi
• Phase/stage: Evre/aşama
• Product: Ürün
• SDLC project process
model/methodology: YGYD
projesi süreç modeli/metodu
– Waterfall: Şelale modeli
– Iterative: Aşama modeli
– Spiral: Yay modeli
• Project manager: Proje yöneticisi
24.09.2020 Intro Comp SWE 7
8. SDLC – Roles and Outputs
• Software Development Life Cycle (SDLC)-
simplified:
– https://www.youtube.com/watch?v=DRDD7UWX2
y4
– 10 minutes.
24.09.2020 Intro Comp SWE 8
9. Roles & Outputs: Terminology
• Client, customer
• Project manager
• Software architect
• Business analyst
• Quality lead
• Requirement document:
– Business requirement: scope,
timeline.
– SRS: Software Requirement
Specification:
• Functional / non-functional
requirements
• System design
• Module lead
• Interface
• High level design (HLD)
24.09.2020 Intro Comp SWE 9
• Programming team
• Low level design (LLD) = detailed
design
• Flowchart
• Data flow diagram
• Class/sequence/ER diagrams
• Review
• Coding
• Source code
• Peer review
• Unit testing
• Testing team
• Bug, debugging
• Integration testing
• System testing
• User acceptance testing
10. Roller & Çıktılar: Terimler
• Client, customer: müşteri
• Project manager: proje yöneticisi
• Software architect: yazılım mimarı
• Business analyst: iş çözümleyicisi
• Quality lead: Nitelik önderi
• Requirement document: gereksinme
belgesi
– Business requirement: scope, timeline: iş
gereksinmesi: kapsam, zamanlama
– SRS: Software Requirement Specification:
yazılım gereksinim belirtimi
• Functional / non-functional requirements:
işlevsel/işlevsel olmayan gereksinimler
• System design: dizge/sistem tasarımı
• Module lead: birim/modül önderi
• Interface: arayüz
• High level design (HLD): üst düzey tasarım
• Programming team: programlama takımı
24.09.2020 Intro Comp SWE 10
• Low level design (LLD) = detailed design: alt
düzey tasarım = ayrıntılı tasarım
• Flowchart: akış biçimi
• Data flow diagram: veri akış çizeneği
• Class/sequence/ER diagrams:
sınıf/ardıllık/Nİ çizenekleri
• Review: gözden geçirme
• Coding: kodlama, programlama
• Source code: kaynak kodu, kaynak program
• Peer review: akran gözden geçirmesi
• Unit testing: birim sınaması
• Testing team: Sınama takımı
• Bug, debugging: hata, hata ayıklama
• Integration testing: tümleştirme sınaması
• System testing: Sistem sınaması
• User acceptance testing: kullanıcı kabul
sınaması
11. END of the first part
24.09.2020 Intro Comp SWE 11
12. Methodology
• What is the Best Software Development
Methodology for Your Project?
– https://www.youtube.com/watch?v=aM8rvSOukp
E
24.09.2020 Intro Comp SWE 12
13. Practice, practice, …
• CIS 121 - System Development Life Cycle:
– https://www.youtube.com/watch?v=mH-
Nc5kvyQQ
– Practitioner explains the pitfalls
24.09.2020 Intro Comp SWE 13
14. Leads
• Türkiye Yazılım Kalite Raporu | Test Trendleri |
TSQR:
– http://www.turkishtestingboard.org/turkiye-
yazilim-kalite-raporu/
• Python is on the rise:
– https://www.techrepublic.com/article/python-
overtakes-java-to-become-the-second-most-
popular-programming-language/
24.09.2020 Intro Comp SWE 14