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.

Posted by: ahmedashfaque | September 29, 2016

What is a project? – Project Planning for resources (part 3)

In the last post in this series, we saw how a project charter and project objectives should be made. The next step is to do project planning. In our case, the project planning may involve estimating the effort required, resources and the skills needed, time frame for the medical treatment, costs involved and budgeting. Progress Reports from time to time as well as major reports including whether the patient is cancer free.

Here are the major project planning components:


  • A good neuro-surgeon with experience in operating on brain tumors.
  • A good neuro-medicine doctor who will prescribe appropriate medicine
  • A good radiologist who will assess how much radiation & medicine needs to be given to the patient during radiation therapy
  • A good chemologist who will assess how much chemo therapy & medicine needs to be given to the patient during chemo therapy
  • A good medicine doctor who will determine as to what kind of medicine will be needed from time to time for temporary or long term common diseases (viral flue, blood sugar, blood pressure etc.)
  • Caregivers who will take care of all needs of the patient while the patient is incapacitated due to brain surgery and later
  • Hospital with good facilities for brain surgery including a well equipped ICU (Intensive Care Unit) for brain surgery
  • Hospital with good Radio & Chemo therapy facilities
  • A good Ayurveda doctor who will prescribe ayurvedic medicine
  • A good Homeopathic doctor who will prescribe Homeopathic medicine
  • A dietician with good research capabilities to find out foods which fight cancer so that appropriate diet can be given to the patient

All these resources may not be needed for the full duration of the project. For example, caregivers may be needed for the entire duration of the project; a neuro-surgeon will be needed only when brain surgery is done. Similarly a hospital will be needed only when surgery is done or any therapy is needed or when the patient is needed to be admitted for any minor ailments.

Contingency planning for resources is also included here. For example, the medicine doctor is required both during brain surgery as well whenever the patient has any minor or major ailments during the entire medical treatment.

Posted by: ahmedashfaque | September 28, 2016

What is a project? – Project Objectives (part 2)

In the first part of this series, we learned about this project about medical treatment of my father for brain tumor. This project was needed to first remove the existing tumor from my father’s brain through surgery and then take the course of action to ensure that tumors do not get resurfaced in my father’s brain again. The project charter and project objectives could be as following:

Project title:

Brain tumor treatment of my father

Project charter:

To remove existing brain tumor and ensure no further occurrence of tumors in my father’s brain.

Project objective:

My father was 73 years old when he had suddenly developed speech problem. After diagnosis, it was found that it occurred because of a tumor in my father’s brain. The MRI scan showed a tumor of size 3.6 cm X 3.5 cm X 3.2 cm in the parietal region of my father’s brain. The biopsy report showed that this tumor is Glio Blastoma Multiforme (GBM) stage IV: the deadliest and fast growing tumor which can kill a patient within 3 to 8 months if it is not removed. Even after removal, most brain tumors grow again. So further medical treatment is needed to ensure that tumors do not get resurfaced after brain surgery.

Initial assessment:

Life expectancy for patients with GBM type brain tumors is not more than 2 years. The typical course of medical treatment traditionally is to remove the tumor through brain surgery and then apply chemo and radiation therapy to burn whatever traces of tumor left after surgery. After this, there is no further treatment generally available if the tumor resurfaces in the brain. Alternative medical treatments have some potential but it is not sure if they work 100%. Indian Homeopathic & ayurvedic doctors claim to fully treat GBM patients.

Increasing the life expectancy of GBM patients is a real challenge. Thus this project is a real challenge. If my father becomes cancer free (brain tumors are a type of cancer) after medical treatment then it will be nothing short of a miracle.

Posted by: ahmedashfaque | September 27, 2016

What is a project? Introduction (part 1)

People define a project as a series of activities which are planned and carried out within a certain period of time. Projects also consume resources apart from time. These resources could be time spent by people or machines and material.

A project can be taken to accomplish anything. The guiding principle is that the project has a definite start date when the project commences and there is a definite end date when the project finishes.

Let me give one example from my own personal life. Recently my father was diagnosed with Glio Blastoma Multiforme (GBM) stage 4 brain tumor. It is the deadliest kind of brain tumor and one of the deadliest diseases. The doctor advised for immediate surgery to remove the tumor as this type of tumor grows fast and within 1 month, it would infect many parts of the brain and it would be impossible to remove it then. So we decided to have the brain surgery and my father’s tumor was removed. Generally it is impossible to remove a brain tumor completely through surgery and the remaining traces of the tumor is generally burned though a combination of chemo and radiation therapy. My father’s mental and physical health after brain surgery was weak. Both radiation and chemo therapy have deep adverse side effects on the human body. If a person is physically weak then these therapies are difficult to perform. Finally we decided to go only for radiation therapy for my father.

The allopathic treatment has this much of treatment for brain tumor patients. Generally after brain tumor removal, tumors are bound to grow. Next time when the tumor grows, it is impossible to remove it. So there is a limitation to allopathic treatment. This is especially true for GBM brain tumors as they grow within 8 to 12 months to the same size which was removed and that is why they are so dangerous.

There is no guaranteed treatment for this phenomenon. But in alternative medicine, there is some hope. After much research, I found that Homeopathy medicine has some cancer (brain tumors are a type of cancer) treatment available. Ayurveda has also some promise for cancer treatment though they claim it can help with varying degree of success. There are also some foods which fight cancer like turmeric, Guabano fruit & leaves, cumin seed, Barley/Wheat grass etc. Again how much benefit they provide is still not very clear. How and how much to consume them is also not clear.

After getting all the information from various sources, i decided to take my father’s illness as a project and plan the treatment accordingly. Even though many things were not clear about the treatment at the beginning but still I was able to decide about some major milestones. I was also able to find out about the length of time, the treatment will last.

We will discuss about this project in detail in next posts.

Posted by: ahmedashfaque | September 16, 2016

How much effort involved in building a software product?

When a project starts to design and build a software product, then one obvious question arises as to how many people will be involved for how long in designing and building the software product. It is because, a software project is essentially a labor intensive work where skilled people work on creating various kinds artifacts which are required in designing and building a software product.

The requirement gathering and requirement specification creation itself is a labor intensive work. One or more business analysts will be needed for months in doing this work. Once requirement specifications are created then software designers use these specifications to design user interfaces, databases and business logic routines. Once designs are ready then software developers build user interfaces, business logic and database schemas. By this time, the software product is ready in the form of machine code. This machine code is tested by software testers to ensure that there are no software defects.

There could be many versions of the same software product to cater to the needs of different customers. Which version of the software product needs to be released so that particular type of customers can use them is done by software release experts.

Once a software product is in use then this software product may need to be modified to suit needs of the users better. Sometimes the software product may contain defects which were discovered during usage. In other cases, the product features of the software product may need to be enhanced. For all of these tasks, a software maintenance project can be instituted. A project team may be formed consisting of business analysts, software designers, software developers, software testers etc.

Effort estimation for any software project thus depends on quantity of work which need to be done in creating various artifacts. For example, if a business analyst is needed for one month to gather software requirements and create requirement specifications then it is known as one man month of effort required. Now if 2 software designers are needed in creating all software designs for one month then it will be 2 man months of effort required. You keep figuring out effort required for each project task and then add them to find out the total effort required for the project.

There are many tools and techniques which are used in estimating effort required for various project tasks. Some of them included COCOMO, function point analysis etc.

Posted by: ahmedashfaque | September 15, 2016

What is an evolutionary prototype (a kind of feasibility study)?

Prototypes are extremely important in building software products. The throwaway prototype was discussed in the last post. Now let us discuss evolutionary prototype in this post.

On some projects, it is required to show only rudimentary functionality to users (navigation, user interfaces, basic business logic etc.). In such cases, a throwaway prototype is good fit. However, on projects where a lot of business logic needs to be tested by the users then the project team has no option but to write business logic in the prototype so that users can check if the business logic works as per their requirements.

This kind of prototype is known as evolutionary prototype.

Writing business logic requires a lot of effort by the project team. So when a project team creates an elaborate prototype during feasibility study for a software product then they ensure that the business logic written for the prototype can be reused during actual software development. this is why, this type of prototype is known as evolutionary prototype.



Posted by: ahmedashfaque | September 12, 2016

What is a throwaway prototype (a type of feasibility study)?

When a software is required to be built; it should stick to the requirements of the users. Sadly, most often the built software does not match the requirements of the user. It happens because understanding between the project team and the users often is not good enough. This results in wrong software product made and delivered.

The best way to mitigate this risk is to develop a software product prototype first and show it to the users. Users see and interact with this prototype. Then they give their feedback as to what changes they need in the prototype. The prototype is then modified based on this feedback and shown to users again. This process continues until users are fully satisfied. Based on this prototype, the software product is built.

Creating a prototype is thus a way to minimize risks involved in software development. Building prototypes are actually a kind of feasibility study. If during prototype building if the project team finds that it is technically or economically not feasible to build a software product then the project can be shelved.

There are 2 types of prototypes: throwaway prototype & evolutionary prototype. When a project team creates a prototype which does not involve extensive source code writing and thus this prototype can be thrown away and not used in actual software development is known as throwaway prototype. Generally this type of prototype suits well for waterfall based software projects.

« Newer Posts - Older Posts »