# 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:

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.
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.
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.
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.

#### **==Test==**
Creating test cases and running tests and analysing the results

### 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
- 
- 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:
- 
- 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)