Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 31

SOFTWARE

IMPLEMENTATION
OUTLINE

SOFTWARE
COMPONENTS

TECHNOLOGY
STACKS

SOFTWARE
FRAMEWORKS

CASE TOOLS
DEFINITION OF SOFTWARE COMPONENTS

• These are reusable units of software that form the building blocks of a
system, encapsulating certain functionality.
COMPONENT ENGINEERING OVERVIEW

• Software components are part of a system or application. Components are a


means of breaking the complexity of software into manageable parts. Each
component hides the complexity of its implementation behind an interface.
Components can be swapped in and out like the interchangeable parts of a
machine. This reduce the complexity and allows the same code to be reused
in many places.
VIEWS

• User interface components for different requests, views and scenarios


MODELS

• Components that handle requests or events including business rules and data
processing
CONTROLLERS

• A controller is a component that decides what components to call for a


particular request or event
DATA ACCESS OBJECTS

• A data access object provides an abstract interface for databases. In theory,


this allows you to switch to a different database without the application
needing to know.
SERVICES

• A service is a component that is deployed independently. For example, a


bank might deploy a market data service to cloud infrastructure.
PLUGINS

• Components designed to extend the functionality of an application or system.


For example, a plugin for a media player to visualize music.
APIs

• A component that can be reused across multiple systems and applications can
be packaged and distributed as an API. For example an open source API to
connect to a particular database.
BENEFITS OF COMPONENT-BASED
DEVELOPMENT

• Reusability: Components are designed to be reusable across different


projects and applications.
• Interoperability: This allows developers to integrate components from
different sources and vendors.
• Encapsulation: The internal workings of a component are hidden, allowing
changes to be made without affecting other parts of the system.
• Composability: Components can be combined to create larger and more
complex systems. This enables the construction of systems from pre-built
and well-tested components.
• Maintenance and Evolution: Since components are modular and
encapsulated, they can be easily replaced, upgraded, or maintained without
affecting the entire system.
• Versioning and Configuration: Components can have their own version
numbers and configurations, making it easier to manage different versions
and variations of a system.
EXAMPLES OF COMPONENT-BASED
DEVELOPMENT FRAMEWORKS AND
TECHNOLOGIES:

• JavaBeans and Enterprise JavaBeans (EJB) in Java development


• .NET Framework and .NET Core for Microsoft development
• Angular, React, and Vue.js for front-end web development
• Spring Framework for Java-based enterprise applications
TECHNOLOGY STACKS

• A tech stack refers to a set of tools, programming languages, and


technologies that work together to build digital products or solutions such as
websites, mobile, and web apps.

• A tech stack consists of two equally important elements:


the frontend (client-side) and backend (server-side). Both work together to
create a working tech stack. This is also referred to as an application stack.
FRONTEND TECH STACK

The frontend tech stack is the client’s side of the application. Client-side
refers to anything that a user can see or engage with on a screen.
There are three principal elements of a frontend stack. These are:
• HTML (Hypertext Markup Language) – it’s a markup language for creating and
displaying electronic documents (web pages). They are the backbone in the
organization and placement of content on a web page.
• CSS (Cascading Style Sheets) – It is responsible for the format and layout of the
web pages. It includes the font styles, sizes, layout, color, and other aspects of a web
page. Developers commonly use frameworks like SASS and LESS to make CSS
more manageable and more dynamic.
• JavaScript – Used to make web pages interactive. It’s a programming language
that allows you to implement dynamic features on web pages; with
common libraries and frameworks like jQuery, React, Angular, and Vue. Many
modern applications now also use TypeScript instead of basic JavaScript.
BACKEND TECH STACK

• The server-side of software development is the backend tech stack. It refers


to the inner workings of a website or app that users cannot see.
• Programming languages – This creates logic for apps and websites. The
code link the web to a database. Some examples are JavaScript, PHP,
and Python.
• Frameworks – it provides support of applications based on a single
programming language. Laravel, Django, and Ruby on Rails are few of
the popular frameworks. Most modern applications are built using an
MVC style framework.
• Web Servers – You need backend servers to manage client requests.
Apache, Nginx, and Microsoft’s Internet Information Server (IIS) are
the most common web servers.
• Databases – Most applications require a SQL or NoSQL database.
MongoDB, PostgreSQL, and MySQL are common databases.
TOP TECH STACK MODELS

• To save you time and money, you can use proven tech stack models.
LAMP

• LAMP is an industry-standard when it comes to tech stack models. In


web development, it delivers the best cost efficiency, flexibility, and
performance. It is an acronym that stands for:
• Linux (operating system)
• Apache (HTTP server)
• MySQL (relational database management)
• PHP (programming language, it can also be Perl or Python)
• All these stack layers are free and open source. Since this tech stack can
run on any operating system, you can interchange or modify other
components in the same stack. Use WAMP for Microsoft Windows or
MAMP for MacOS.
ASP.NET

• Applications built using .NET commonly use the following application


tech stack:
• ASP.NET MVC – Standard model-view-controller framework
• IIS – Microsoft’s web server
• Angular frontend framework with TypeScript
• SQL Server – Microsoft’s enterprise database
• Microsoft Azure – A favorite of most .NET developers
MEAN

• One of the well-known tech stacks, MEAN brings numerous benefits to


web developers. MEAN consists of:
• MongoDB (NoSQL database)
• Express.js backend web framework
• Angular.js frontend framework
• Node.js server-side JavaScript
• MEAN provides a practical approach to creating fast and highly efficient
apps. All the components speak JSON (JavaScript Object Notations) for
data transmission and free module library access. This tech stack helps
to build scalable software products. It’s great for all types of websites
and interactive applications.
MERN

• Essentially MERN is similar to MEAN. The difference is that you change


Angular.js with React.
• The key benefits of using MERN are the React integration, the ability to
use code on browsers and servers simultaneously, powerful library, and
full-stack development option (frontend and backend).
• Additionally, React is known for its flexibility and performance in
developing interactive user interfaces.
MEVN

• Another variation of MEAN, MEVN uses Vue.js as the frontend web


framework instead of Angular.js. Over the years, Vue.js has grown in
popularity. It incorporates the best features of Angular and React.
• Vue.js is easy to learn, delivers a clear programming style, and provides
superb performance for web applications.
RUBY ON RAILS

• Ruby on Rails is a programming environment that uses Ruby, a dynamic


programming language. With RoR, you can simplify the entire development
process.
• A server-side web app development written in the Ruby programming
language requires less knowledge to work on. It allows the use of default
structures for database management and web pages.
• Ruby on Rails works well with HTML, CSS, and JavaScript for creating UIs
and JSON or XML for transferring data.
PYTHON

• One of the fastest-growing languages is Python. It is easy to use and


commonly taught to college students as a beginner development language. It
has many modern and powerful features. Python has also become very
popular because of its heavy usage for machine learning and data science. It
can also be used for building web applications by using the popular Django
web framework.
JAVA

• Java is not as popular as it once was. It is popular for enterprise


applications, but new projects tend to gravitate to newer and lighter-
weight application stacks like Node.js and Python. Java is still heavily
used and there are lots of Java developers all over the world.
• Java
• Spring
• Wildfly
• Linux
• NGINX
COMPUTER-AIDED SOFTWARE
ENGINEERING (CASE) TOOLS

• Compare different tools used in the software development lifecycle (e.g.,


UML modeling tools, code generators) and their impact on productivity
Requiremen
t

Software
Product
Suitable
Technology
THANK YOU

You might also like