One day Tun Dr Mahathir Mohammad and his wife visited MMU for a dinner function for some student's event. As usual, the ex-PM Dr Mahathir being "different and naughty", chose to sit at the round dinner table among the MMU students.
Being casual and polite, Dr Mahathir asked one student who sat beside him, "What do you learn at MMU?". The student replied, "Software Engineering, Sir". Dr. Mahathir responded, "Ha ha, my nephew also studied Software Engineering, but not at MMU. My nephew kept telling me something about the Waterfall Model.
I find it strange that waterfall is studied in software engineering. It is about some process of developing software, my nephew said.". The student responded, "Yes Sir, we learn the waterfall model among many other process models in software engineering". Then Dr Mahathir asked further, with his question:
"Then, how do you choose the right software process model for your project?".
The MMU student (who studied SEF5, and scored an A) answered, "Sir, it depends on many issues and some very important issues (not comprehensive though) for us to consider are:
(1) THE PRODUCT
The most important consideration in choosing the right process model for a software engineering project is to exactly understand the final product or software system that we are going to develop. We have to understand the technicalities of the products, its functions and its usage, the inter-related systems, for example, to determine what kinds of software design methods to consider, software tools to be used, etc. Prototyping and RAD process models should be considered if you are not very clear of the full specifications at the start of the project. It can be the Agile process model if you customer agrees to follow along this model.
(2) THE PROJECT
We must consider the project requirements of the clients, the scope of the project and its coverage, the implementation locations, the implementation schedule, the implementation costs and the resources required. If the clients wants early completed deliverables of certain modules to be implemented as they get completed, you may consider the Incremental or Spiral process model. If it is a long term project, where requirements are fixed and should not be changed during development, you may consider the Waterfall model.
(3) THE PEOPLE
We must consider knowledge and skills of the people on both the client and developer sides for the project implementation. You should not implement your own development on some modules if your team does not have the skills to do that. You may use existing libraries or outsource that part of the development. This is the outsourcing model. If the clients do not know the requirements and want to be flexible to include and change requirements into the end of the project, then the Agile process model may be suitable.
(4) THE DOMINANT PRODUCT CHARACTERISTICS
If the software product have characteristics of a control system (with event listening, event handling, safety-critical, etc) rather than a database information system, then the Prototype and Incremental process models will be very suitable. This is because the safety-critical applications need to go through very rigorous and repeated testings before approval for release. We should not compromise the safety of lives and loss of properties in the development of software for these kinds of systems.
(5) THE MANAGEMENT
There is no correct formula for the right process model for any specific software project. The management must consider some or more of the factors above to select the most suitable model for the project. Normally, there is no fixed process model that is implemented singly. It is usually a mixture of process models taking into considerations the various diverse project and product requirements, customizing them rationally and making the final process suitable for the project. That is why the rational and unified process model is very popular. The Rational Unified Model (RUP) by IBM is one such popular model. It is just common sense in RUP, that is why it uses the word "rational". It is also "unified" because it picks up the best practices from other models and unify them under one model. In RUP, we can also modify and adapt the model to fit our needs. For that reason, there are so many variations of the Unified Process Model in software engineering. I can make one and even call it TMM Unified Model, for Tun Mahathir Mohammed Unified Process Model, ha ha ha, with a small polite laugh at Dr Mahathir.
CONCLUSION:
After listening carefully to the answers mentioned by the student, Dr Mahathir said, "From what you have said, as far as I am concerned, you deserve an A. He he he. My nephew cannot explain to me like what you have just told me. Ha ha ha."
(p.s. Dr Mahathir is also a funny man and likes jokes. I know some SEF5 students find jokes boring, and some do not even understand the jokes in SEF5. Well that is life in reality. People are not the same. Ha ha ha).
--
WASSALAM
wruslan.hahaha
Microsoft Word Version
Return to Software Engineering Fundamentals (SEF9MMUWRY)
Previous Topic: 24 Software Design Concepts (Principles)
Next Topic: Tutorial on Software Design (Part 1)
Subscribe to:
Post Comments (Atom)
0 comments:
Post a Comment