مهندسی نرم‌افزار
بازسازی و آشپزخانه

رابرت سي مارتين در يكي از كتاب‌هايش تكنيك بازسازي(Refactoring) را با تميزكردن آشپزخانه بعد از پخت و پز مقايسه كرده است:بازسازي شبيه شستن ظروف و تميز كردن آشپزخانه بعد از پخت غذا است. نخستين‌باري كه بعد از آشپزي، ظروف را نشوييد و آشپزخانه را تميز نكنيد، پختن و خوردن غذا كوتاه خواهد بود(نسبت به زماني […]

مهندسی نرم‌افزار
درگذشت واتس هامفری

واتس هامفری در 28 اكتبر 2010 چشم از جهان فرو بست. وي كه متولد 1927 بود، يكي از متفكران صاحب‌سبك در مهندسي نرم‌افزار است كه پدر كيفيت نرم‌افزار نيز خوانده مي‌شود. «واتس همري يكي از چهره‌هاي مهندسي نرم‌افزار در كنار بزرگاني چون بري بوهم، فرد بروكس و ويك باسيلي از معدود كساني است كه به […]

مهندسی نرم‌افزار
روندهای اصلی توسعه نرم افزار

روندهای اصلی توسعه نرم‌‌افزار از ديدگاه Somasegar: ۱-رایانش ابري (Cloud Computing‍)2-وب به عنوان پلتفرم (The Web as a Platform)3- رایانش موازي (Parallel Computing)4- تكثير تجهيزات (Proliferation of Devices)5- فرايند توسعه چابك (Agile Development Process)6-توسعه نرم‌افزار توزيع‌شده (Distributed Development) گزيده:باد مي‌وزد. مي‌تواني در مقابلش هم ديوار بسازي، هم آسياب بادي. تصميم با توست.

مهندسی نرم‌افزار
آموخته‌هاي تحليل

دكتر Schedlbauer استاد دانشگاه بوستون در از ارائه‌هايش با نام Workflow Modeling with UML ، آموخته‌هاي خود را نيز آورده است. مطالب جالبي در آن وجود داشت، هر چند بخش‌هايي از آن تكراري است، اما مطالعه آن خالي از لطف نيست. – تحلیل کسب و کار، يكي از فعاليت ضروری است– کاربران نمی‌دانند چه می‌خواهند– […]

مهندسی نرم‌افزار
Difference between defect, error, bug, failure and fault

يكي از عزيزانم فرموده بودند تا تفاوت خطا و ايراد را برايشان توضيح دهم. مناسب ديدم كه اين مطلب را در اين جا نيز ذكر كنم. Error : A discrepancy between a computed, observed, or measured value or condition and the true, specified, or theoretically correct value or condition. See: anomaly, bug, defect, exception, and […]

مهندسی نرم‌افزار
بیست و یک قانون برنامه نویسی (برای خندیدن)

As any experienced computer programmer knows, there are unwritten laws that govern software development. However there are no penalties for breaking these laws; rather, there is often a reward. Following are 21 Laws of Computer Programming: 1. Any given program, once deployed, is already obsolete. 2. It is easier to change the specification to fit […]

مهندسی نرم‌افزار
Seven Principles of Software Testing

While everyone knows the theoretical limitations of testing, in practice we devote considerable effort to this task, and would consider it foolish or downright dangerous to skip testing. Other verification techniques, such as static analysis, model checking and proofs, have great potential, but it is unlikely they will ever fully remove the need for testing. […]