# UOB INTERNSHIP DAY #2 [toc] ## Learning ### SDLC (Software Development Life Cycle) - Requirement - Analyse - Design - Implement - Test - Software Development requires time and cost and to lower this we use the SDLC. #### ==**Requirement**== Entails the User requirement which can be distilled by using test cases e.g: ![](https://i.imgur.com/PXtEcvK.png) So this indicates how the user may interact with the system. Further requirements can have a **Business** and **Domain** model The business is basically who the users of the software are wheras the domain is the requirements for the software. You can think of a map app, the domain would be the GPS, system location whereas the business could entail paid and unpaid users.![](https://i.imgur.com/nabI6Xp.png) Apart from this there are functional and Non-functional requirements which are the requirements of the system whereas non-functionality entails optimization. #### **==Analyse==** where we analyse how and where requirements interact and what it means for the system.![](https://i.imgur.com/Rhxjvjs.png) Analysis classes are basically things in the system that is segments of the sytems that have a responsiblity and a function. And analysis also involves removing any contradictions in the requirement and maooing an internal view of the system #### **==Design==** involves collaberation between different aspects of the system. An aspect/component has its own responsibility which is fulfilled with the help of code.A component exchanges information by calling methods of other components.![](https://i.imgur.com/S5mY6aP.png) It basically involves decomposing the system into functioning individual units which can be implemented #### **==Implement==** involes the actual coding and implementation and unit testing and devising the deployment method. ![](https://i.imgur.com/nkdygf4.png) #### **==Test==** Creating test cases and running tests and analysing the results ![](https://i.imgur.com/Qvum1kE.png) ### SDLC Methodologies #### **==Waterfall==** - Developed in 1956 - Waterfall involves a seqential series of steps with heavy documentation - It moves from one step to another like a waterfall - ![](https://i.imgur.com/6JMJGm3.png) - The problem with this is if I am consumer and I tell UOB sofware development team that i want a new feature them implementing my wish as a client becomes near impossible and they have to go through this process again. #### **==Rapid Prototyping==** - This involves developing rapid prototypes by taking inputs from the user. ~~**Not too important, so i just learn what it meant**~~ #### **==Iterarion and Incremental Development==** - This is very similar to agile: - ![](https://i.imgur.com/0CqL9dJ.png) - They go through sprints of RAIT and release the product at every incerement. ### - **QUESTION: WHAT IS THE DIFFERNCE BETWEEN THIS AND SCRUM IMPLEMENTATION OF AGILE?** #### **==Agile==** - Agile is the most popular SDLC methodology which is implemented,so I have created a separate hyperlink for agile - [AGILE](/ClBgQmkuS1uIKNZpK9vnLA)