This week, I understood the meaning of software engineering, learned Software Development Life Cycle (SDLC), studied software development models and reviewed the concept of object-oriented programming. Details are as follows:
First, software engineering develops, tests, and deploys computer applications to solve real-world problems (Yasar, 2023). The development process usually follows the software development life cycle and uses some software development life cycle models, including plan-driven and agile methods.
Second, SDLC is the process used to design, develop and test software (TutorialsPoint, 2017). Specifically, as shown in Figure 1, SDLC contains six stages: planning and requirement analysis, defining requirements, designing the product architecture, building or developing the product, testing the product, and deployment in the market and maintenance (TutorialsPoint, 2017)..png?raw=true)
Third, software development methods generally include two categories: traditional plan-driven methods and agile methods. Specifically, plan-driven methods have detailed specifications and design before implementation, including the Waterfall Model, V-Model, and Spiral Model (Halvorsen, 2013). On the contrary, agile methods are incremental and iterative. In other words, it needs to get feedback from users quickly to adjust the development process. Such methodologies include eXtreme Programming, Scrum, Kanban, Feature Driven Development (FDD), Test Driven Development (TDD), and Lean Software Development (Halvorsen, 2013)..png?raw=true)
Fourth, the method of program development is divided into procedural approaches and object-oriented approaches. Specifically, the procedural approach means writing programs in the order in which tasks are performed (Marsic, 2012). On the other hand, the object-oriented approach decomposes the entire task into different objects, each object has specific capabilities, and information exchange can be performed between them (Marsic, 2012).
Furthermore, in a discussion forum, I elaborate on the difference between building an aircraft, a bridge, and a word processor. After reading the sharing of my classmates, I realized the most significant difference between software development and industrial engineering development is: before industrial engineering development, the team usually has a detailed specification and design and then realizes the construction goals step by step according to them. This approach is similar to the plan-driven development method in software development. However, in software development, the agile development method is also widely used in addition to this plan-driven development method. The agile approach emphasizes user interaction during development, and engineers iterate and update the product based on user feedback (Marsic, 2012). The outstanding feature of this method is that there is no detailed design at the beginning. Instead, it is continuously improved and perfected during the development process, which is very different from the development of industrial engineering.
Finally, one important thing I want to do is to study various software development methods in depth. Specifically, I want to compare their advantages and disadvantages, and grasp their usage scenarios, because choosing the suitable model according to the actual situation is essential. For example, agile methods are ideal for small teams that can communicate informally, while a plan-driven approach is more suitable for large groups developing large systems (UoPeople, 2011).
.png?raw=true)
Word count: 517
References
1.Yasar, K. (2023). software engineering. TechTarget.
https://www.techtarget.com/whatis/definition/software-engineering
2.Software Development Life Cycle (SDLC). (2017). TutorialsPoint.
http://www.tutorialspoint.com/sdlc/sdlc_tutorial.pdf
3.Halvorsen, H.P. (2013). The Software development process (SDLC). University College of Southeast.
https://my.uopeople.edu/pluginfile.php/1688730/mod_book/chapter/426044/SDLC%20Overview.pdf
4.Marsic, I. (2012). Software engineering. Rutgers Unversity.
http://www.ece.rutgers.edu/~marsic/books/SE/book-SE_marsic.pdf
5.Agile software development. (2011, February 14). UoPeople.
https://my.uopeople.edu/pluginfile.php/1688730/mod_book/chapter/426044/Agile%20Development%20ch3.pdf
6.Mishra, A., & Dubey, D. (2013). A comparative study of different software development life cycle models in different scenarios. International Journal of Advance Research in Computer Science and Management Studies, 1(5), 64-69.
https://my.uopeople.edu/pluginfile.php/1688730/mod_book/chapter/426044/IJARCSMS.pdf