مهندس نرم افزار : تکنیک گرمترش کن (قسمت دوم)


“make it warmer” یکی از تکنیک های طراحی و ساخت نرم افزار  است که در آن به بررسی زبان طراحی سیستم

می پردازد.

به بیانی ساده تر، یعنی باید زبان یک سیستم اداری ( یا هر سیستمی که می خواهید کارهای آن را نرم افزاری کنید ) ، بلد باشید. این تکنیک هم یکی از تکنیک های فاز نیازسنجی نرم افزار یا Software Requirement  است.  

دوست داشتم که به شیوه خودم آن را بیان کنم. اما کمی که فکر کردم دیدم در یکی از کتاب هایم این تیکنیک به صورت یک داستان آمده است.



کتاب user story applied  نوشته   Mike Cohn  یکی از بهترین کتاب های موجود در بازار برای ساخت نرم افزار است. در این کتاب تکنیک ها و روش هایی بسط و شرح داده شده است که در آن  به چگونگی فهم بهتر زبان یک کاربر نابرنامه ساز  پرداخته شده است. 

اگر بخواهم که کتاب را در یک جمله توصیف کنم ، این عبارت را که برگرفته از خود کتاب است ، استفاده می کنم.


Software requirements is a communication problem

بگذارید داستانی را که گفته بودم برایتان بنویسم.

۳ نظر
سعید فعله گری

مهندس نرم افزار چی کاره اس ؟ قسمت اول


لزومی ندارد که برای چندمین بار بنویسم تمامی این مطالب شخصی هستند و از منظر یک نفر بیسواد( خودم رو میگم) بررسی و تحلیل می شود.


مهندس نرم افزار یعنی چی ؟ 

اصلاً مهندس نرم افزار چی کار باید بکنه و چه چیز هایی بلد باشه ؟ 

آیا همه کسانی که نرم افزار بلدند و برنامه نویسی می کنند ، مهندس نرم افزارند ؟ 

سوالات ادامه داره و خیلی خیلی زیاد هستند. اما دوست دارم طی چندین مطلب مرتبط به هم این ها رو بررسی کنم.

 خب بریم سر اصل مطلب.

۱ نظر
سعید فعله گری

چیزهای که برنامه نویس ها باید بدانند


نکته : از این گونه عبارت های باید فلان چیز و بهمان چیز را یک عده خاص بدانند ، خوشم نمی آید. اما دلم هم نیامد که این کتاب را معرفی نکنم.


کتاب 97Things Every Programmer Should Know  ، نوشته  Kevlin Henney ، یکی از کتاب های مختصر و مفید برای درک هرچه بهتر فلسفه برنامه نویسی است.


همانطور که از عنوان Collective Wisdom from the Experts مشخص است ، کتاب جمع آوری گفته های متخصص های دنیای نرم افزار است. 



هر یک از 97 بخش کتاب ، قسمت های مختلفی را از برنامه نویسی و توسعه و ساخت نرم افزار را در برمی گیرد ، که از بزرگان آن حوزه تخصصی توصیه های مفیدی گردآوری شده است.

۳ نظر
سعید فعله گری

لیست بزرگترین برنامه ها بر اساس معیار LOC


در عکس زیر می توانید لیستی از بزرگترین نرم افزار ها و سیستم های بزرگ دنیای نرم افزار را بر اساس معیار Line Of Code مشاهده کنید.

۰ نظر
سعید فعله گری

قطع کردن آپدیت خودکار ویندوز 10


نکته ها : چند تنی از دوستان برایم ایمیل و کامنت خصوصی گذاشته بودند که چگونه مشکل رفع آپدیت خودکار ویندوز 10 را درست کنیم؟

تمامی این مطالب برای کسانی است که می خواهند از شر حجم خوری های ویندوز 10 خلاص شوند. پس اگر کار و بارتان وابسته یه آپدیت ویندوز باشد -که من گمان نمی کنم کسی کار وبارش وابسته به آپدیت ویندوز باشد- این مطلب را نخوانید و اعمال نکنید.

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

۶ نظر
سعید فعله گری

تحویل مداوم یعنی چه ؟


پیش نوشت : این مطلب به عنوان یک مقدمه برای continuous delivery در نظر گرفته شده است. شما می توانید برای دسترسی به مطالب بیشتر در این خصوص به سایت تخصصی این موضوع در جعبه سایت های تخصصی این وبلاگ ، مراجعه نمایید.


What is Continuous Delivery?

Continuous Delivery is the ability to get changes of all types—including new features, configuration changes, bug fixes and experiments—into production, or into the hands of users, safely and quickly in a sustainable way.

Our goal is to make deployments—whether of a large-scale distributed system, a complex production environment, an embedded system, or an app—predictable, routine affairs that can be performed on demand.

We achieve all this by ensuring our code is always in a deployable state, even in the face of teams of thousands of developers making changes on a daily basis. We thus completely eliminate the integration, testing and hardening phases that traditionally followed “dev complete”, as well as code freezes.



Why continuous delivery?

۰ نظر
سعید فعله گری

تاریخ مهندسی نرم افزار


هیچگاه مایل نبودم که تاریخ را مطالعه کنم. مگر تاریخی که مربوط به نرم افزار یا شاخه های مربوطه آن باشد. 

هیچ وقت هم به یک منبع کامل و کافی و معتبر، دسترسی نداشتم. تا این که با یکی از بزرگان نرم افزار آشنا شدم . 

بله آقای Capers Jones

 

ابتدا کمی تاسف خوردم به خاطر اینکه چرا ایشان را دیر شناختم. اما وقتی بیشتر در وب سایت ها در مورد این فرد جستجو کردم ، متوجه شدم که کتاب ها و مقالات زیادی دارد.

کتاب های او را در لیست زیر می تواند مشاهده کنید. 

  1. Programming Productivity
  2. Software Assessments, Benchmarks and Best Practices
  3. Estimating Software Costs 2nd Edition
  4. Software Engineering Best Practices
  5. The Economics of Software Quality
  6. The Technical and Social History of Software Engineering



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



چه کرده است این مرد. واقعا نمی توان با هیچ زبانی،   شگرفی این کتاب را بیان کرد.

کتابی است جامع  و کامل. 

کتاب شامل 12 فصل است که از بدو تولد نرم افزار در سال های 1940 تا 1949 در زمان جنگ جهانی دوم ، شروع شده و در ادامه به بررسی نسل های مختلف نرم افزار در طی سال های مختلف می پردازد. 

درفصل 11 و 12 به بررسی نرم افزار های مدرن می پردازد. اسامی  و بعضی از اصطلاحات و واژگان این دو فصل را تا بحال مشاهده نکرده ام. 

وقتی هم سرچ می کنم ، متوجه میشوم که این دسته نرم افزار ها ، نوعی جدیدی از نرم افزارها هستند که مطالب کمی در اینترنت راجع به آن ها وجود دارد. چه برسد به مهندسی آنها.

در این دوفصل نرم افزار های مدرن را طوری مهندسی می کند که اگر بتوانید مطالب آن را دقیقا بفهمید، می توانید بزرگترین مهندسان نرم افزار را هم به چالش بکشید.

در این لینک هم می توانید قسمتی از متن کتاب را از  سایت انتشارات PEARSON  دانلود و مطالعه نمایید.

چقدر جالب است که سایت PEARSON قسمتی از متن کتاب را برای دانلود رایگان گذاشته است. اینطوری دیگر زحمت من در معرفی کتاب خیلی کمتر خواهد شد. 


۶ نظر
سعید فعله گری