Salmon Migration Model
Mr. Xiaohui from the Software Institute complained to a Chao that the software engineering course seemed easy and difficult to teach.
Xiao Hui said: I used to give lectures based on the classic waterfall model. I thought it would be a great building, but the actual situation is as follows:
- Demand Analysis: students do not know what the enterprise needs. They go to school and go to bed.
- Design phase: the students drew a lot of UML diagrams and used design tools to draw a lot of rectangular boxes.
- Implementation phase: the students started to discuss that the UML diagram had already been put aside.
- Stable stage: One of the students starts to write code, and others do not know what to do. The code is not working in most cases, and all the well-designed black box and white box tests cannot begin.
- Release Phase: This is only one day, the day of the last check, and someone else is debugging the program.
- Maintenance phase: the course is over, and students have no maintenance for their products. They have a holiday!
In the end, most of the students said they did not learn anything. next semester, a new group of students will come in and repeat this process...
In fact, a software engineer's career development in the real world seems to be the opposite of a waterfall:
- Graduated from the company and began to maintain some existing software (maintenance phase)
- Ability to change bugs in the project and release small-scale updates (stable/release phase)
- Responsible for rewriting a small module with no documentation and writing a lot of code (implementation phase)
- Have the opportunity to design relatively large modules and write some documents by yourself (design phase)
- Have the opportunity to talk to users about new projects (Demand Analysis)
Can software engineering courses be arranged like this? You can try this process:
- Start to maintain the programs developed by previous students and understand the programs.
- Find bugs, change bugs, and refactor a small part of code to meet your needs.
- Some developers can develop test cases.
- Incremental development based on existing versions
- Understanding requirements (What are customer requirements at this time)
- Design
- Development
- Regression testing (use the test cases developed above)
Xiao hui asked: What is this model?
A Chao said: Well, it looks like it is going from the bottom of the waterfall to the source step by step. It may be called the "salmon migration model"
Xiaohui knocked a few times on the computer and said: According to Zookeeper's translation, it should be called
Malaysia admires fish back to swim model?
A Chao fainted for a while and woke up and said: in the future, he would need to spend less time using failover. This model can be called
Salmon upstream model, or "salmon model" for short"