Posted by: ahmedashfaque | February 13, 2017

Quiz on software engineering

I have created a quiz for my book “Foundations of software engineering“. There are some 450 questions in all. These questions are chapterwise.

These questions are available to people who have bought my software engineering book. Anybody want to have them should write me an email at

This quiz is also used by professors to test their students knowledge and for grading. So this quiz is not available to students who are enrolled in American universities.

Posted by: ahmedashfaque | January 31, 2017

Objects in programming part 2

In Part 1 of this series, we saw that all the information about life should be attributed to real life entities. If wrong information is attributed to an entity then there will be problems. Now we will discuss further as to how object oriented programming solves this problem.

In the old days of Database management Systems (DBMS), there used to be simple interface through which data can be entered and then will be saved in the database. Once the data used to get permanently saved then it was used to generate management reports.

These kinds of computer systems used to be simple in nature. They are even used today. Here the programming used to do 2 things. First, it would help in doing computation on the input data to store data permanently in the database. Second, Some programs used to be written which could generate management reports. Programming involved for these kinds of systems thus were simple. In those days, object oriented programming was not used much. Simple procedural programming languages could do all this stuff.

Now a days, computer programs are not that simple. Users not only provide input; they want to interact with the computer system more. For example, a virtual shopping cart on an online web store can do a lot of things. You can select some items from various web pages to keep them in your shopping cart. You can also remove them from the shopping cart. You can keep browsing the web store for prolonged periods of time. During this entire time, the information about the things which are inside a shopping cart is temporary in nature. So you can not store information about a shopping cart permanently until the a user wants to check out. Only after check out and payment, you can generate permanent data. At this point you can store the purchase data in a database permanently. But before that, all the information is stored temporarily. At the same time, there can be thousands of users visiting the same web store and each user will have its own shopping cart. What if information about a specific shopping cart gets wrong? It can happen if information about a shopping cart is attributed to some wrong shopping cart.

Programming involved in this kind of scenario needs different kind of handling compared to the situation we discussed about a typical DBMS system. Object oriented programming comes handy in these situations. In object oriented programming, each shopping cart becomes an object. All information about a shopping cart is always attributed correctly to the right shopping cart.

We will learn about wonders of object oriented programming further; in our next post.

Posted by: ahmedashfaque | January 28, 2017

Objects in programming part 1

We all very well know about object oriented programming. But most people have limited knowledge about objects. What are objects really? Let us understand it here.

In real world we understand about objects well. All of us are human beings. Each person is a human first. Then a person has a religion. The person can be a Christian, Hindu, Muslim Or Jew etc. Then a person can be a male or a female. Then a person is of certain age. Then a person has some specific education like a college degree etc. Then a person has some specific skills like plumbing, painting etc. Then a person can have a family. The person may have fallen sick many times in its life and so will have a medical history. Then a person may have been working and will have a job history.

In fact, there is going to be too much information about a person. If all this information can be stored by writing books then there can be thousands of books just for storing all the information related to just one person!

When it comes to programming, storage of data related to one entity (e.g. a person) becomes a challenge. What if information about one person is attributed to some other person by mistake? For example, if a crime is attributed to the wrong person due to mistake in data, then the other person will get punished for none of its fault.

So it is important to attribute information about an entity correctly so that no wrong can happen to the other entity by mistake. A software program is used by a large number of people. A software program can be used to store information about thousands of people. How to ensure that each piece of data about each entity is correctly computed and stored?

Here comes the concept of objects. In object oriented programming, all the data about each object is directly linked to the object itself. Even the activities which an entity is currently performing (e.g. doing exercise or traveling etc.) is also directly linked to the object. This ensures that data related to an object (entity) is linked correctly and so there are no mistakes.

We will learn more about objects in out next post.



Posted by: ahmedashfaque | January 17, 2017

Explanations for my book “Foundations of software engineering”

Most authors publish errata for their books. But i am not content only with errata. I have decided to publish explanations for parts of my book. I admit, at places, the explanations provided to explain a concept is not enough. Some explanations can be understood almost all people. But some explanations provided in the book are not enough for some people.

For this reason, I am inviting all readers of my book to send a note to me with either the explanation or need for an explanation for a part of my book which needs more explanation.

I have put a file with all the explanations on my site titled “explanation-se.doc”. Anybody looking for further explanations can download this file and find explanations. People who are interested to include some explanation can send me an email at and i will do the needful.

Reader’s have the option to get their names published. If they opt for it then their name with affiliations will appear below the explanation provided by them. If they wish their names not to appear then the explanation will be added as anonymous contribution.

I am completely open for all explanations and errata found in my book. I have also been maintaining the errata file on my site with file name “errata-se1.doc”.

Dear Mr. Ahmed

Thank you very much.

The review of your book as follows :

The book published by you Foundation of Software Engineering gives visibility for the Software Engineering Method and Theory initiative to a larger audience. I liked this book. This book was very well written. People who are interested in Software Design and SPM  as well as Software Testing and release will most probably be interested in reading this book. Readers can gain details knowledge about real development of software and its release.


The chapters 5, 6, 7 and 8 described in this book are something that is useful in software development organizations/researcher to understand and improve their way of working/thinking.

This book gives much attention to the testing principles and ways of software test case design, test preparation, test life cycle etc. You have included the case study for all the major phases of software development that help to bridge the gap between the research on software engineering and application with industry practices. You also mentioned one of the new things in the book – the software release. This gives us a better idea about the all aspects of software development in industrial.

with kind regards.

Dr. Prabhat Ranjan
Assistant Professor & Head Incharge
Department of Computer Science, Central University of Bihar,
Camp Office: BIT Campus, P.O. – B.V. College, Patna – 800014
Mobile Number: 08809448862, Phone/Fax: 0612-2226538

Dear Professor,


I’m extremely happy for getting an opportunity to review your book. The book has covered the major areas of software Engineering, that may aid the students in understanding the subject in a better and easier way. I’m glad that I can refer this book my UG and PG students.

Thanks and regards.
R Mohan

Professor, Dept. of Computer Science

National Institute of Technology, Trichirapalli, India



From my scan of the book, which I just got from my mailroom today (although it was delivered 11/9), I love it.  It is a great fit for the Information Systems Development Practices course I teach each fall semester. 


I really think this book fills a need.  I’ve been using very dated Systems Analysis & Design texts coupled with a trade book on agile approaches to fill the gap.  This book contains the info I want students to know all in one source!  Bravo!!!


Janet Helwig

Professor, Dept. of computer science

Dominican University, Illinois

Posted by: ahmedashfaque | November 13, 2016

Foundations of software engineering

My book “Foundations of software engineering” is getting rave reviews by professors at Universities in the USA. It has already become a textbook at following universities:

  • Fitchburg State University
  • Nova Southern University
  • North Carolina A&T State University
  • Florida A&M State University

In one year time, I can expect some 500 universities adopting my book worldwide.

Most professors who have reviewed my book classify my book as having simple terminology which is easy to understand by people who have no prior background in software engineering. One more important aspect about my book is that it has a live project component. People learn the best when they have to work on designing and building any product. That is why, most universities today have a capstone project as part of their software engineering curriculum.

There is no such book on software engineering which fulfills this need to have a live project to build a software product. My book fulfills this requirement extremely well.

Here are some of the reviews i have received so far:


Dear Ashfaque,
I had a brief look at the book.  I really like it.  It has just what I would like in a course and looks very well organized.  And thanks for including the bank example.  I will be using it as textbook next semester.  -Mahadev

Dr. Nadimpalli Mahadev

Department of Computer Science
Fitchburg State University



Thank you for contacting me.  I would appreciate if we could communicate more.
I received an e copy of your book in VitalSource.  I like the writing.  It is refreshingly clear and, for the students, nicely concise (without being like the list approach in early editions of Sommerville).  Being very unhappy with later editions of Sommerville, I was considering the saasinfo book.  But I have now adopted your book for the semester starting in January.
Half of my students are online.  I plan to run the project with mixed teams to give a more realistic experience.  (I have been using WebRatio for projects because it stresses the teams without creating a lot of coding work.)
What I want to do with the textbook is to have a weekly online quiz to make sure they are reading the book and have become familiar with the terminology.  Then I can use my lectures for more in depth discussions. Any help with creating good quizzes that require them to actually understand the terms would be great.  We use Blackboard, but I can copy and paste questions in our LMS format.
I should say another thing about my approach to building this course.  I have 20 years of industry experience including 10 on projects with NASA (in the 80’s using the original PERT practices from Apollo) and 5 years in the Software Technology Lab at HP Labs in Palo Alto under Martin Griss and Mary Loomis (where I introduced Agile practices back in 2000, after attending Kent Beck’s first workshop).  More recently I consulted with Motorola for 5 years on process improvement using Lean and Six Sigma and am a frequent contributor to the Patterns community.  So I know this stuff pretty well and have a lot of stories to illustrate the issues.
My new concerns going forward are for the students to be comfortable using Git and maybe Slack, and understand the DevOps flow and cloud deployment strategies.  (The model of building applications by writing code from scratch is long dead.)

Dr. Michael Van Hilst


Department of Engineering and Information Technology

Nova Southern University



Thanks, Mr. Ahmed. I will buy this one and use some of your slides for my soft engg course.

Thank You.

Best Regards,


Kaushik Roy, PhD
Assistant Professor
Dept. of Computer Science
North Carolina A&T State
University, Greensboro, NC 27411 USA
Posted by: ahmedashfaque | October 1, 2016

What is a project? – Project Schedule Planning (part 5)

In last post in this series, we had seen how costing for the project should be done. Now let us see, how the project schedule should be drawn.

The project has major tasks of brain tumor diagnosis, brain surgery planning & preparation, brain surgery, hospitalization for care after surgery and chemo + radiation therapy. The Homeopathic & Ayurvedic treatment should be run in parallel to the Allopathic treatment. Cancer fighting food should be given to the patient in parallel as well.

Here are time durations for each of these tasks:

  • Diagnosis – 3 days
  • Brain surgery planning & preparation – 3 days
  • Brain surgery – 1 day
  • Hospitalization after surgery – 10 days
  • Chemo + Radio therapy – 6 weeks
  • Homeopathic treatment – 5 months
  • Ayurvedic treatment – 5 months
  • Cancer fighting food intake by patient – 6 months

The Homeopathic, Ayurvedic treatments as well as cancer fighting food intake by patient can be done after the patient is discharged after recovery from brain surgery from hospital . This means, the total duration for the brain surgery treatment is 3 days + 3 days + 1 day + 10 days + 6 months. That means roughly 6 and a half month.

Major milestones for the project are as follows:

  • CT Scan report during diagnosis
  • MRI Scan report after CT Scan during diagnosis
  • Brain surgery successful completion
  • Discharge from hospital after recovery from brain surgery
  • Chemo + Radio therapy completion
  • Homeopathic treatment report after treatment completion
  • Ayurvedi treatment report after treatment completion
  • Final report whether patient is tumor (cancer) free


Posted by: ahmedashfaque | September 30, 2016

What is a project? – Project Planning for costs (part 4)

In this series on brain tumor treatment for my father; there will be a big deal of costs involved as brain surgery & treatment is a costly affair.

Hospitalization costs

  1. Estimated number of days the patient needs to spend in the hospital for diagnosis & tests (CT Scan + MRI Scan) – 3 days,
  2. Estimated number of days the patient needs to spend in the hospital for preparation for brain surgery (the patient had blood pressure & blood sugar problems for a long time) – 3 days,
  3. Estimated number of days the patient needs to spend in the hospital for brain surgery – 1 days,
  4. Estimated number of days the patient needs to spend in the hospital for recovery after surgery – 10 days,

Total number of days, the patient needs to spend in the hospital = 17 days

Per day hospitalization costs (including medicines) = USD 500

Total hospitalization costs = USD 8500

Cost of brain surgery = USD 10000

Total surgery + hospitalization costs = USD 18500

Radio & Chemo therapy costs

  1. Total number of radio therapy sessions = 30
  2. Total number of oral chemo therapy doses = 42

Cost of Radio therapy per session = USD 150

Total cost of radio therapy = USD 4500

Cost of each Oral chemo capsule = USD 80

Total cost of chemo therapy = USD 3360

Total radio + chemo therapy costs = USD 7860

Homeopathy treatment costs

  1. Number of Consultations with the Homeopathic doctor (2 consultations per month for 5 months) = 10

Consultation fee per session = USD 100

Total consultation fees (including medicine) = USD 1000

Homeopathic treatment costs = USD 1000

Ayurvedic treatment costs

  1. Number of Consultations with the Ayurvedic doctor (2 consultations per month for 5 months) = 10

Consultation fee per session = USD 100

Total consultation fees (excluding medicine) = USD 1000

Medicine costs = USD 5000

Ayurvedic treatment costs = USD 6000

Cancer fighting food costs:

  1. Cost of Guyabano fruit per kilogram (including shipping) = USD 50
  2. Cost of Guyabano leaves per Kilogram (including shipping) = USD 50

Guyabano fruit costs for 6 months (2 kilogram per month) = USD 600

Guyabano leaves costs for 6 months (1 kilogram per month) = USD 300

Total cancer fighting foods costs = USD 900

Caregiver costs:

  1. 2 caregivers required to take care of the patient for 24 hours a day for 4 months

Cost of one caregiver = USD 20 per hour

Total caregiver costs for 4 months = USD 57600

Total cost for the entire brain tumor treatment = USD 91860


Luckily my father had a mediclaim policy and most of the costs of indoor medical treatment will be covered by this policy. The outdoor medical bills (doctor’s consultancy fee & costs of medicine) will be covered by ex-employee policy of my father’s erstwhile employers (Steel Authority of India Limited).

But there will be cost involved for Homeopathy & Ayurvedic treatment which are neither covered by Mediclaim policy or ex-employee policy. These costs will be met by own expenses.

Older Posts »