Retrieved from https://studentshare.org/environmental-studies/1410985-report-for-advance-software-engineering-for-stage
https://studentshare.org/environmental-studies/1410985-report-for-advance-software-engineering-for-stage.
As discussed earlier in stage 1 reflection that all of us were working on pair level and it was not easy for us to conclude the best idea therefore we suffered a lot during project planning. Through mashwara, we felt better understanding because every one was only giving his opinion instead of dictating his strategy. Instead of working on the project in isolation we also experienced and enjoyed the pair programming strategy. It was really an amazing approach which reduced the development time errors quite significantly.
The incremental approach also helped quite significantly as it enabled us to abstract the future details of the project and allowed us to focus on the issues at hand. Specifically speaking during the thread management and usage of patterns it was very much effective to keep concentrating on the local issues rather than thinking upon the 'unseen challenges of the later aspects of the project'. To me, planning the whole project and then breaking it down into modules could be useful and beneficial approach for all experienced managers and for a team with a higher level of communication, support and trust within them.
However, for groups like ours, I found it better to set some short terms goals, complete them and then proceed towards the later parts of the project. Indeed, I feel integration may be a problematic issue for very large projects but not of course for this project. From technical aspects, the most interesting parts of the project are thread management and usage of patterns. Understanding threads as a tool for concurrent programming within the application is an exciting experience. It took some time for me to get comfortable with thread programming because of its different nature as compared to other programming techniques.
During the project it was not a big deal to apply threads; however, I think handling concurrency issues, race conditions and avoidance of deadlocks may wreak havoc in a heavily multithreaded application. To be honest, I still have to learn a true multi threaded environment and how to optimally use this powerful technique to improve the efficiency of the application. Improper usage of the threads may also cause unwanted delays and other vulnerabilities during the program. As compared to the agile programming approach I found 'Design Pattern' to be more complicated, interesting and powerful software design technique as a learner.
A design pattern introduced by the gang of four is an incredible way to structure the application design for extensions, flexibility and more towards a generic design. INDIVIDUAL REPORT Threads Threads can be used for concurrent execution of the unit parts of the programs within the application execution environment. A program may be fragmented if no dependencies are found within each block and can be executed through threads concurrently. This concurrent execution speeds up the application and is very helpful for (some how) parallel processing tasks over a single processor.
Fortunately, recent processors are significantly supporting the usage of threads and improving the program throughput quite noticeably. Furthermore the threads allow a programmer to accurately map the real world scenarios with the application as it was the case in our project too. There are several 'works' or 'processing’s' going on concurrently in the real world. Like, the
...Download file to see next pages Read More