بدافزار
بدافزار یا نرم‌افزار بدخواه برنامه‌های رایانه‌ای هستند؛ به علت آن‌که معمولاً کاربر را آزار می‌دهند یا خسارتی به‌وجود می‌آورند، به این نام مشهورند. هر نرم‌افزاری است که به‌طور عمدی طراحی شده‌است تا به یک کامپیوتر، سرور، مشتری یا شبکه رایانه ای آسیب برساند (در مقابل، نرم‌افزاری که به دلیل برخی نقصان باعث ایجاد صدمه غیرعمدی می‌شود، معمولاً به عنوان یک اشکال نرم‌افزاری یا باگ توصیف می‌شود). طیف گسترده‌ای از انواع نرم‌افزارهای مخرب وجود دارد، از جمله از انواع بدافزارها می‌توان به ویروس‌های رایانه ای، کرم‌ها، اسب‌های تروآ، باج افزار، جاسوس‌افزارها، آگهی‌افزارها، روت‌کیتها، هرزنامهها، نرم‌افزار سرکش و ترس‌افزار اشاره کرد.
برنامه‌نویسی رایانه‌ای
قدم اول در فرایند توسعه بیشتر نرم‌افزارها به شکل معمول شامل بررسی نیازمندی‌ها، سپس آزمایش برای تشخیص الگوی متغیرها، اجرا و سپس حذف خرابی‌ها (اشکال زدایی) است. راه‌های مختلفی برای رسیدن به هر کدام از این وظایف وجود دارند. یک راه پرطرفدار برای تحلیل نیازمندی‌ها تحلیل مورد کاربردی است. بسیاری از برنامه نویسان از شکل توسعه چابک نرم‌افزاری استفاده می‌کنند؛ در این روش مراحل مختلف توسعه نرم‌افزار به شکل چرخه‌های کوتاه با هم ترکیب می‌شوند به‌طوری‌که هر کدام از این چرخه‌ها فقط چند هفته طول بکشند. این در مقابل روش معمول است که ممکن است چند سال زمان ببرد. روش‌های خیلی زیادی برای روند توسعه برنامه‌ها وجود دارند.