Gömülü Yazılım Mühendisliği: V-Model ile Yazılım Geliştirme

所在平台: Udemy

课程主页: https://www.udemy.com/course/vmodel-embedded/

课程评论:没有评论

第一个写评论        关注课程

课程简介

这是一个关于嵌入式软件工程的课程,重点在于使用 V 模型进行软件开发。 **核心内容:** * **V 模型:** 课程深入介绍了 V 模型在嵌入式软件生命周期中的应用,强调从需求工程到系统测试的结构化方法,保证了开发过程的可追溯性和质量。 * **高质量代码:** 教授如何编写可读、可维护、可测试且安全的 C 语言代码,包括人体工程学和编译器优化风格。 * **代码质量保障:** 涵盖同行评审 (peer review)、代码检查仪表盘 (inspection dashboard)、可追溯性 (traceability) 和缺陷管理 (defect handling) 等关键质量流程。 * **高级主题:** 探讨了安全关键系统中的软件熵管理、时序安全漏洞规避、面向对象 C (Object-Oriented C) 编程、模态系统和状态图 (Statecharts) 等。 * **模块化与组件化设计:** 强调了低耦合、高内聚的模块设计原则,以及组件接口、配置和契约的设计。 * **测试实践:** 详细介绍了单元测试 (Unit Testing)、集成测试 (Integration Testing),以及 CUnit 等测试框架的使用。 * **模拟与硬件在环测试:** 讲解了 MIL (Model-in-the-Loop)、SIL (Software-in-the-Loop) 和 HIL (Hardware-in-the-Loop) 等多种测试环境,并介绍了 STM32CubeIDE、Keil、GCC、VSCode 等开发工具。 * **缺陷管理:** 涵盖了缺陷的定义、分类、优先级划分、跟踪、修复以及根本原因分析 (RCA) 和纠正及预防措施 (CAPA)。 **课程目标:** * 掌握在实时嵌入式系统中进行系统化软件开发的能力。 * 熟练运用 V 模型进行规划、可追溯性和质量管理。 * 具备开发模块化、可测试、可维护的 C 语言嵌入式软件的能力。 * 提升安全编码、代码审查和缺陷管理等专业技能。

课程评论(0条)

课程详情

Bu kurs, gömülü yazılım geliştirme süreçlerine yapısal ve disiplinli bir yaklaşım sunmak isteyen mühendisler, öğrenciler ve profesyoneller için kapsamlı bir rehber niteliğindedir. Yazılım yaşam döngüsünü V-Model odağında ele alarak; gereksinim mühendisliğinden sistem testine, kod kalitesinden güvenlik ve emniyete, mimari tasarımdan birim testlerine kadar uçtan uca gömülü yazılım geliştirme süreçlerini işler.Kurs boyunca katılımcılar; yazılım mimarisinin temellerini, modül ve komponent bazlı tasarımı, Object-Oriented C (OOC) yaklaşımını, kodda bozulmaya yol açan anti-pattern'leri (örneğin spagetti kod veya kontrolsüz global değişken kullanımı) ve bu risklerle nasıl baş edileceğini öğrenir. Ayrıca birim testleri, entegrasyon testleri, HIL/SIL/MIL uygulamaları ve CUnit gibi test çatılarının kullanımı detaylıca anlatılır.Kod kalitesi, sadece temiz kod yazmak değil; sürdürülebilir, test edilebilir ve güvenli sistemler inşa etmek demektir. Bu kursta, yazılım kalitesini artırmak için peer review, inspection dashboard, traceability ve defect handling gibi kalite süreçleri de derinlemesine incelenir.Geliştirilen her yazılım satırının, bir sistem bütünü içinde anlamlı olması gerektiğini savunan bu kursta; safety-critical (emniyet kritik) sistemlerde yazılım entropisinin nasıl yönetileceği ve zamanlama tabanlı güvenlik açıklarından nasıl kaçınılacağı gibi ileri seviye konulara da yer verilir.Bu kurs size şunları kazandırır:Gerçek zamanlı gömülü sistemlerde sistematik yazılım geliştirme becerisiV-Model mantığıyla planlama, izlenebilirlik ve kalite süreçlerine hâkimiyetModüler, test edilebilir ve sürdürülebilir C tabanlı yazılım geliştirme yetkinliğiGüvenli kodlama, kod inceleme ve hata yönetimi gibi profesyonel becerilerKURS İÇERİĞİ VE ALT BAŞLIKLAR1. Giriş ve Kursa Genel BakışKursun amacı, kapsamı ve yaklaşımıV-Model'in neden seçildiğiGömülü yazılım nedir, nerelerde karşımıza çıkar?2. Yazılım Geliştirme SüreçleriYazılım yaşam döngüsü modelleriV-Model'in yapısı, avantajları ve kullanım alanlarıGereksinimden teste giden yol3. Kodlama Stili I: İnsan Odaklı KodlamaOkunabilirlik, sürdürülebilirlik ve ekip içi uyumİyi kodun anatomisi: isimlendirme, yorum satırları, formatlama4. Kodlama Stili II: Derleyici Odaklı KodlamaDerleyici dostu yazım: tanımlayıcılar, sabitler, yapılarBellek, tanımsız davranışlar ve C'de güvenli kod5. Peer Review: Ekip İçi Kod İncelemeİnceleme türleri: ad-hoc, checklist tabanlıFagan-style review ve kalite metrikleriKod incelemede bilişsel önyargılar6. Gereksinim MühendisliğiFonksiyonel ve fonksiyonel olmayan gereksinimlerGereksinimlerin izlenebilirliğiGereksinim bazlı test stratejisi7. Global Değişkenler ve RisklerGlobal değişken nedir ve neden tehlikelidir?Güvenli alternatifler: static, encapsulationRadyoaktif veri metaforu8. Spagetti Kod ve Kod BozulmasıSpagetti kodun belirtileri ve sonuçlarıKod entropisi ve mimari çöküşYapısal kurtarma teknikleri9. Stack Overflow ve Hafıza YönetimiStack vs Heap kavramıStack taşmaları neden olur, nasıl önlenir?Derleyici ayarları ve koruma mekanizmaları10. Yazılım Mimarisi ve HLD (High-Level Design)Katmanlı mimari (Layered Architecture)Komponentleşme ve arayüz kavramlarıSistem bütünü içinde tasarım11. Modal Sistemler ve StatechartsState machine mantığı ve faydalarıStatechart ile davranış modellemeGömülü yazılımda durum yönetimi12. Modül TasarımıSorumluluk odaklı yapılandırmaDüşük bağlılık, yüksek içsel tutarlılıkModül sınırları ve etkileşimleri13. Komponent ve Detaylı Komponent TasarımıArayüz, konfigürasyon ve kontratlarKomponent içi ve dışı ilişki tasarımıBlack-box yaklaşım ve PIM kavramı14. C'de Nesne Yönelimli Programlama (OOC)OOC kavramı, singleton, inheritance ve encapsulationC ile struct tabanlı sınıf oluşturmaYöntem yönlendirme ve reusable mimari15. Uygulama (Implementation)Tasarımdan koda geçişKodlama öncesi kontrol listeleriGüvenli kodlama teknikleri16. Yazılım KalitesiKalite nedir, nasıl ölçülür?Sürdürülebilirlik, test edilebilirlik, okunabilirlikClean code, secure code, defensive coding17. Traceability (İzlenebilirlik)Gereksinim → Tasarım → Kod → Test zinciriİzlenebilirlik tabloları ve araçlarıDoğrulama ve geçerleme ilişkisi18. Test Süreçlerine Genel BakışTest piramidi ve test seviyeleriWhite-box ve black-box test yöntemleriTest kapsamı ve metrikler19. Unit Testing (Birim Testi)Fonksiyon seviyesinde testTest senaryosu yazımıAssertion kullanımı20. CUnit ile Test GeliştirmeCUnit kurulumu ve yapılandırmasıSuite, test ve assert yapısıOtomatik test çalıştırma ve raporlama21. Entegrasyon TestiModüller arası etkileşim testiHata senaryoları ve test coverageİnterfacing ve mock kavramı22. Geliştirme OrtamlarıSTM32CubeIDE, Keil, GCC ve VSCodeDebugger, simulator ve build sistemiMakefile, linker ve konfigürasyon dosyaları23. Sistem Seviyesi Test (System-Level Testing)Tüm bileşenlerin birlikte çalışmasıKararlılık, senaryo testleri, yük testleriGerçek sistem davranışı24. HIL, SIL ve MIL TestleriModel-in-the-loop (MIL)Software-in-the-loop (SIL)Hardware-in-the-loop (HIL)25. Kabul Testi (Acceptance Testing)Son kullanıcı senaryolarıGereksinim bazlı test kurgusuOnay ve teslim aşaması26. Hata Yönetimi (Defect Handling)Hata tanımlama, sınıflandırma ve önceliklendirmeHata takibi ve düzeltme süreciRCA ve CAPA kavramları27. İnceleme Süreçleri ve Gösterge PanolarıKod inceleme dashboard'larıKalite metrikleri ve görünürlükSürekli iyileştirme kültürü28. Final: Yazılım Mühendisliğinde Ustalık YolculuğuSüreçlerin bütünsel tekrarıGerçek proje örnekleriyle kapanışGömülü sistem profesyonelliğine adım

课程标签

0人关注该课程

主题相关的课程