Ninestack has been keeping busy with their Share-It sessions. At the recently held session, which turned out to be Ninestack’s 11th Share-It session, one of Ninestack’s Android Developers’, shared his knowledge on software architecture with the rest of the team.
Simply defined, software architecture is the process of converting software characteristics such as flexibility, scalability, feasibility, reusability, and security into a structured solution that meets technical and business expectations.
The instructor took the team through a PowerPoint presentation on software architecture outlining how it works and how it is best used depending on the kind of projects being done. Software architecture uses a set of principles known as SOLID principles, upon which computer applications are built. It is these five design principles that are intended to make software designs more understandable, flexible and maintainable. These principles read as follows:
1) Single responsibility principle
A class should have only a single responsibility (i.e. changes to only one part of the software’s specification should be able to affect the specification of the class).
2) Open/closed principle
Software entities should be open for extension but closed for modification.
3) Liskov substitution principle
Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program.
4) Interface segregation principle
Many client-specific interfaces are better than one general-purpose interface.
5) Dependency inversion principle
One should depend upon abstractions, not concretions.
The three patterns used in software architecture – MVC, MVP, and MVVM were also spoken about. These are the models that are most used in building user interfaces. The use of any of these models in the creation of a user interface depends on the client’s requirements. The session also covered the differences in each of these models along with when and where they are applicable in application development.
Some of the less utilized models in software architecture were also brought up during the course of the session.
The interactive session ended with a sing-a-long in which a couple of Ninestack’s team members played the guitar and the rest of the team showed off their singing voices.
Some of Ninestack’s team members were eager to share their opinions about the session and this is what they had to say:
“Software architecture is a complex and an important topic which was well presented by the instructor, making it very simple to understand and choose the best architecture for any given project. The music jam at the end of the session also added a fun element to it.”
-Back End Developer, Ninestack
“The presentation on software architecture patterns was very well explained. The points that were covered in the session can be used across different technologies and not restricted to one particular platform. This session was different because of the music jam that we ended with, which a whole lot of fun and gave us a short break from work.”
– .Net Developer, Ninestack