Download as pdf or txt
Download as pdf or txt
You are on page 1of 30

Workshop on trends in

Object Oriented Analysis & Design (OOAD)

For
MS (Software Engg) Students, VIT

by
ChandraMouli K S
18th Mar 2017
Trends
A trend is driven by a basic human need, one
that is catalysed by new technology.
A trend is timely, but it persists.
A trend evolves as it emerges.
A trend can materialize as a series of
unconnectable dots which begin out on the
fringe and move to the mainstream.
BOTs
The bots are taking over!
Bot is an application that performs
an automated task
Developers no longer need to
create from scratch, but plug into
an existing API
Apple Siri, Microsoft Cortana, AOL
Instant Messenger's SmartChild, Hi
Poncho Facebook weather chatbot
Interoperability between BOTS
IoT and Big Data
Internet of Things and Big
Data are big names
More and more devices are
getting connected through
the Internet
Bulk of data, extracting the
best of information - at the
right time in the right place
- Police, Army, Business,
Research, Education,
Internet of Everything
The IoT Accelerating into reality
Cloud Computing
Cloud is inseparable from
Computing
With Big Data and IoT, Cloud
computing is an integral
element
Amazon, Openstack, Microsoft
big names using it
Nearly a third of all enterprise
resource planning (ERP)
systems in the world will
attempt the migration to the
cloud in the next two years
years
Mobile Apps - Integrated and Specialized

Apple Watch, Samsung Smart


Watches and so many more are busy
flaunting their smart watches,
wearables and accessories around.
The base: a robust and flexible
mobile app technology that is
showing its wonders to the world.
Transfer business activities to
mobile apps (events).
DevOps Continuous Delivery

Waterfall, Agile and now


DevOps new S/w
development methodologies.
A project management culture,
by itself, has started imbibing
within software development
teams.
Next five years will be
transformative for IT
automation
Trends
Augmented Reality:
Apps like Poke-man GO and Snap-chat
Caught the attention in the development world
Open source continues to shape our world
Virtual Reality gets Real
Artificial Intelligence and Expert Systems
Data scientists become the new corporate heroes
The power of data and what to do with it
Advanced predictive analytics skills
Pervasive computing across multiple devices
Putting the customer first leads to success every time
Iteration, Innovation, Disruption

There is no 1 way to succeed in the future. Success is


dependent on a balance of iteration, innovation and
disruption. If you do not disrupt yourself, it will be a
gift given to you by someone else.

Inspired by Matt Ballantine


OOAD
OOAD
- A Software Engineering approach that models a system as a group of interacting Objects

- Analysis Understanding, finding and describing concepts in the problem domain

- Design Defining Software Solution / Objects that represent the Analysis concepts

- OOP Object Oriented Programming


- Based on objects
- Which are data structures that contain data
- In the form of fields, known as attributes
- And code in form of procedures (functions) known as method
OOAD
- A Software Engineering approach that models a system as a group of interacting Objects

- Analysis Understanding, finding and describing concepts in the problem domain

- Design Defining Software Solution / Objects that represent the Analysis concepts

- OOP Object Oriented Programming


- Based on objects
- Which are data structures that contain data
- In the form of fields, known as attributes
- And code in form of procedures (functions) known as method

- Concepts of Traditional SSAD & OO Approach


Analysis

Analysis focusses on What is to be done


OBJECT
This is a Car. It has
Colour, Model,
Manufacturer, Cost,
Owner

Attributes

Methods

Car can be driven,


parked.

Design focusses on How it is to be done


CLASSES
Define the Attributes & methods of an Object

Class is defined as a group of similar objects

Class instantiates an Object

An instance of a Class will have the attributes bound with data (eg: Red Car)
Object Oriented Methodology
OO Methodology includes:
Notation
Process
Tools

UML Unified Modelling Language


Use Case Diagram
Class Diagram
Package Diagram
Interaction Diagram
Sequence
Collaboration
Activity Diagram
State Transition Diagram
Deployment Diagram
Finding Use Cases

. Decomposition Techniques
Class Diagram
Sequence Diagram
State Diagram

Defines Different State


of an Object during its
lifetime, changed by
events.
Activity Diagram
Package

Packages enable
Modelers to Organize
Classes like Folders in
a File System
Deployment Diagram

The Deployment
Diagram helps to
model the physical
aspect of a system.
OOAD - Synopsis
OOAD SynopsisContd.
Recent Trends.
Java Script ES6 version new sites use this (enhancement to Arrows,
Classes, template strings..)
BaaS (Backend as a Service) Increased usage
Docker / Packer Services (Images / Binaries store)
Increased reliance on Server side languages (Scala, Clojure, Haskell)
Used in apps for Tablets, SmartPhones, IoT gadgets etc
Run in parallel (Stateless Mode)
Increasing usage of Material Design Elements
A visual language giving a unified experience across platforms / devices
Java 9, expected to be released in July 2017
GO (Googles)
Top Programming Languages
Java
C#
Python
PHP
Java Script
GO
PERL
RUBY
Node.js, AngularJs, React
Kotlin (for Android)
SWIFT
OOAD Challenges & Constraints
Functional Model is designed as Object Oriented
Data is stored & retrieved from a Relational DB
Every fetch reconstructs the data into an Object Model
Research is ongoing for an Object DB
Extension of OOAD for recent domain Mobile based Apps, Big Data,
IoT, BOTs
OO DB
Research Projects: ORION, IRIS, Galielo, PROBE etc..

O2: O2 Technology. Language O2C Supports an extended SQL language O2SQL which can refer to complex
objects.

G-Base: Lisp-based system, supports ADT, multiple inheritance.

GemStone: Earliest OODB supporting object identity, inheritance, encapsulation. Language OPAL is based
upon Smalltalk.

Ontos: C++ based system, supports encapsulation, inheritance, ability to construct complex objects.

Object Store: C++ based system.

Statics: Supports entity types, set valued attributes, and inheritance of entity types and methods.

You might also like