If you want to be versed java developer then it is very necessary to understand the OOPs concept. You should never ignore this topic, after all it is root of software development built on basis of Object-Oriented Programming language like java, php, C#, ruby and many more....
Here I will explain OOPs concept in context of java. To learn and keep the concepts in mind try to relate these concepts with your day to-day activity (really it will help you) because as the concepts will grow your mind will get mess up with lots of concepts and it become very difficult to combine all those small concepts together at software development level.
In the OOPs series post i will start from very beginning.
What is software development?
Software development is a development process which happens step-by-step,which follows some cycle, involves the process of writing the codes and maintaining the already written code and end result of all these steps is a software product which establish an interface between the user, system(computer) and underlying environment.
What are different phases involved in Software-development life cycle?
It involves following phases :
- Planning Phase : when you decide to do something, you plan your activities to achieve what you have decided. Same way when you come to know which software you have to built you have to plan every process involve in building the software. In technical term it is called as Software Project Management Plan(SPMP).
- Requirement And Analysis Phase : In this phase concept is explored,refined and client's requirement is understood ,analyzed and presented in the form of specification(document). And at the end of this phase SPMP is finalized.
- Design Phase : This phase involves two design procedure.first called as architectural design in which product as a whole is broken down in component called Module. Second phase is detailed phase in while each module is designed.
- Implementation Phase : This phase involves coding and testing phase separately. In this phase different components are integrated after different phase of testing finally it is released after acceptance of prototype by client.
- Maintenance Phase : This phase includes all the changes to the product once the product has been delivered and installed on client's computer. It involves software repair , enhancement and version released.
Depending upon these all phase different methodologies have been named and used like Waterfall mode, Spiral model . Apart from these methodologies these days Agile methodologies are being adopted which involves Extreme programming(xp), Scrum, TDD(test driven development),Kanban.
What is Software Architecture ?
Software Architecture means architect of a software governed by some rules , previous patters and heuristics. it involves following steps :
- Divide the problems into the discrete pieces.
- Use technologies or techniques to link these different pieces.
- After linking those pieces try to construct a flow and overall structure
- Think about the integration of built system with the environment where it will deployed
- Appropriate use of development, technology , tools and delivery approach.
Why Architecture is important?
- It enforces the developer to adopt best practices.
- It increases re-usability.
- It controls the complexity
- It provides uniformity and consistency in all phase of software development.
- Somehow it helps in predictability and easier solution.
Think it simple way , suppose you have been assign a simple task and you have to complete that, now what you will do at first step?
simple you will think over problem domain and will try to analyses the problem and after that you will extract something from that and move a step ahead.
same way in software development it is informal analysis of the client requirements but it follows object oriented paradigm. it involves extraction of entity(object) means what can be important object or thing for solving the given problem, what functionality that entity will perform, how that entity will interact with other entity.
What is Object Oriented design(OODs) ?
The aim of Object Oriented Design is to design the product in terms of objects or entities that has been extracted during object-oriented analysis. As a end result of this we get Use-case diagram or an UML diagram.
No comments:
Post a Comment