نرم افزار تعریف کلی از دستورات برنامه ریزی شده ای است که سخت افزار را مدیریت و به اجراء در می آورد. شامل دو نوع اصلی ذیل است .

  1. نرم افزار های سیستم .
  2. نرم افزارهای کاربردی .

نرم افزار های سیستمی :

به نرم افزارهای گفته میشود که با سخت افزار ارتباط مستقیم داشته و در راستای به اجراء در آوردن اجزاء آن برنامه نویسی شده. و کاربرد اصلی آنها مدیریت بخش های سخت افزاری می باشد . می توان انواع سیستم های عامل را از این گونه نامبرد .

نرم افزار های کاربری :

به گونه ای از برنامه ها گفته میشود که در رابطه با انجام فعالیت خاصی با بکارگیری توانایی های سیستم عامل برنامه نویسی گردیده . که بطور معمول دارای رابط کاربری بوده ( نه الزاماً ) و از طریق آن با کاربر در ارتباط است . که می توان گروه نرم افزار های آفیس را به عنوان مثال مورد اشاره قرار داد .

در این میان گونه ای از نرم افزار وجود دارد که در گروه نرم افزار های سیستمی بوده ولی به شکل سیستم عامل ها عمل نمیکند . که ما به این گونه ( میان افزار ) می گوییم که جهت برنامه نویسی میکرو کنترلر ها کاربرد دارد .

زبان های برنامه نویسی :

به طور کل زبان اصلی سخت افزار زبان ماشین می باشد که بر مبنای کد های باینری برای سیستم قابل درک می باشد. ولی امروزه با پیشرفت تکنولوژی صنعت برنامه نویسی به حدی توسعه یافته که زبان های برنامه نویسی بسیار زیادی برای برنامه ریزی سخت افزار ها توسعه داده شده . که با استفاده از کامپایلر ها و مبدل ها با زبانهای بسیار نزدیک به زبان انسان میتوان سخت افزار ها را برنامه ریزی نمود .

معماری نرم افزار :

 ساختار و سازمان یک سیستم نرم‌افزاری که به منظور پشتیبانی از عملیات مشخص، بر روی سازماندهی اجزاء متمرکز می‌باشد. در واقع اجزاء را در حوزه‌های مرتبط به هم گروه بندی می‌کند. دیگر حوزه‌های مرتبط به هم، بر روی تبادل و تعامل با این حوزه متمرکز می‌شوند.

معماری نرم‌افزار از کلیدی‌ترین بخشهای تولید نرم‌افزار مخصوصا نوع تجاری آن است که البته در سالهای اخیر با ایجاد مدلهای کلاسیک تولید نرم‌افزار به نرم‌افزارهای عظیم تر محدود شده است.

معماری نرم‌افزار در واقع انتخاب یک ساختار کلی برای پیاده‌سازی یک پروژه نرم‌افزاری بر مبنای مجموعه‌ای از نیازهای کاربری و تجاری یک سیستم نرم‌افزاری است تا هم بتوان کاربردهای مورد نظر را پیاده‌سازی کرد و هم بتوان کیفیت نرم‌افزار، تولید آن و نگهداری آن را نیز بهینه کرد و سرعت بخشید. به عبارتی دیگر: معماری نرم‌افزار یک برنامه یا سیستم محاسباتی، ساختار یا ساختارهای آن سیستم محاسباتی است که خصوصیات قابل رویت از بیرون، عناصر و ارتباطات بین آنها را نشان می‌دهد.

 

چرخه فرایند توسعه نرم افزار :

 

پلت فرم های سخت افزاری قابل برنامه نویسی توسط استار صنعت :

  • برنامه نویسی تحت میکرو کنترلر های 8 بیتی
  • برنامه نویسی تحت میکرو کنترلر های 16 بیتی
  • برنامه نویسی تحت میکرو کنترلر های 32 بیتی
  • برنامه نویسی تحت پردازنده های ARM
  • برنامه نویسی تحت پردازنده های Intel

 

برخی از نوع نرم افزار های اجراء شده .

  • نرم افزار های میکروکنترلر خودرویی.
  • کنترل ربات .
  • دیتا لاگر .
  • مکان یابی و موقعیت یابی .
  • رابط های کاربری پیشرفته وابسته به سیستم عامل و بلادرنگ.

 

محیطهای برنامه نویسی :

 

  • ویژوال استودیو 
  • اکلیپس                
  • کیل                      
  • یار سیستم                
  • میکرو سی