2. Click to edit Master text styles
Contents of Report
Contents Slide No.
Introduction 3-4
Main features/functions/characteristics 5-9
Real World Examples 10-16
SWOT:Advantage 17-18
SWOT:Weaknesses/Potential Problems 19-20
OPTIONAL Part 21-29
References Recommended 30-31
Your Own Recommendations and Conclusion. 32-34
2
3. Click to edit Master text styles
Introduction
• Object-Oriented Software Engineering (OOSE) is a
software design technique that is used in software design
in object-oriented programming.
• OOSE aims to design software such that it is broken up
into manageable chunks called classes
• Based on three technologies :Object oriented
programming, Conceptual modeling, Block design
• The fundamental unit of an object oriented system is the
class.
• A class is a set of data and the behaviors that operate upon
that data. Each behavior is captured in a method, which is
a function associated with a class. A class defines a type
of object that can exist within the system.
• OOSE is the first object-oriented design methodology that
employs use cases in software design.
3
4. Click to edit Master text styles
Introduction
• OOSE is developed by Ivar Jacobson in 1992 at Objectory
AB .It also uses other design products similar to those used
by Object-modeling technique.
• The tool Objectory was created by the team at Objectory
AB to implement the OOSE methodology. After success in
the marketplace, other tool vendors also supported OOSE.
• Documented in 1992 the book name was Object-Oriented
Software Engineering: A Use Case Driven Approach
• OOSE is one of the precursors of the Unified Modeling
Language (UML), such as Booch and OMT.
• The OOSE tools have been replaced by tools supporting
UML and RUP
• Source: https://en.wikipedia.org/wiki/Object-oriented_software_engineering
• Interaction diagrams are similar to UML's sequence
diagrams. State transition diagrams are like UML
statechart diagrams.
• It includes a requirements, an analysis, a design, an
implementation and a testing model.
4
5. Click to edit Master text styles
2.Main features/functions/characteristics
Features Description
Consist of Five different
models
•Requirement model - Aims to capture
the functional requirements
•Analysis model - Give the system a
robust and changeable object structure
•Design model -Adopt and refine the
object structure to the current
implementation environment
•Implementation model -Implement the
system
•Test model - Verify the system
Consists of Classes and
Objects
Class represent the template for several
objects and described how these objects
are structured internally. Object of the
same class have the same definition both
for their operation and information
structure.
5
6. Click to edit Master text styles
Cont’d
Messages •The means by which objects exchange
information with one another.
•A message may consist of identification of
the target object, name of the requested
operation and other relevant information for
processing the request.
•For e.g. Consider two classes product and
order. The object of the Product class may
communicate with the object of Order class
by sending the request of placing order.
6
7. Click to edit Master text styles
Cont’d
Inheritance •Inheritance is the mechanism by
which an object acquires the some/all
properties of another object.
•It supports the concept of hierarchical
classification.
•Each derived class inherits the
attributes of its base class. All classes
inherits information from upper
classes.
•In general low level classes known as
subclass and high level class is super
class.
7
8. Click to edit Master text styles
8
Cont’d
Polymorphism •Polymorphism means to process objects
differently based on their data type.
•In other words it means, one method
with multiple implementation, for a
certain class of action. And which
implementation to be used is decided at
runtime depending upon the situation
(i.e., data type of the object)
•This can be implemented by designing a
generic interface, which provides generic
methods for a certain class of action and
there can be multiple classes, which
provides the implementation of these
generic methods.
9. Click to edit Master text styles
Cont’d
Data Abstraction •Abstraction is the process of
recognizing and focusing on
important characteristics of a
situation or object and
leaving/filtering out the un-
wanted characteristics of that
situation or object
•Data Abstraction is to collect
essential elements composing to
a compound data.
9
10. Click to edit Master text styles
3.Real World Examples
# Web site address Name of a company Usage
1 https://login.yaho
o.com/
Yahoo(Yahoo Mail) When any user provide the user
name and password and click on
submit button. It will show
Compose, Inbox, Outbox, Sent
mails. When user click on compose
it will open, but user doesn't know
what are the actions performed
internally. It just Opens. User
doesn't know internal actions. It
uses the feature of OOSE(Data
Abstraction) in order to show the
relevant data.
10
11. Click to edit Master text styles
Cont’d
# Web site address Name of a company Usage
2 Bluetooth
Technology
https://www.blueto
oth.com/
Samsung, Nokia etc. When we switch on the
Bluetooth We are able to
connect another mobile but not
able to access the other mobile
features like dialing a number,
accessing inbox etc. This is
because, Bluetooth feature is
given some level of abstraction.
3 www.samsung.co
m
Samsung A base mobile features is
extended by Samsung. After
base features are extended by
Samsung. Now Samsung has
manufactured its new model
with new added features or
advanced OS like Android OS,
v 6.0 (Marshmallow). This is
done by using oops
concept(multilevel Inheritance).
11
12. Click to edit Master text styles
Cont’d
12
4.Chase
https://www.chase.co
m
Chase A bank consist of 2 accounts checking and
saving. These account automatically inherit
common features from their base class like
balance, account, acc name, deposit, withdraw.
(This is called inheritance).This is done by
using oops concept.
5.Samsung Mobiles
www.samsung.com
Samsung You can dial a number using keypad buttons.
Even you don't know how these are working
internally. You have the only information that
is needed to dial a number. But not its internal
working of mobile. This is called Abstraction.
But how the Mobile Phone internally
working?, how keypad buttons are connected
with internal circuit? is called Encapsulation.
Samsung uses the oops concept for its design.
13. Click to edit Master text styles
3.1.Most Popular Real World Examples
13
1.Mobile Apps developed using OOSE
Mobile OS OOSE Tools Used
Android Eclipse/Android Studio
Apple XCode
Windows Visual Studio
All Platforms PhoneGap
Titanium
Xamarine
Angular JS
14. Click to edit Master text stylesWebsites Using OOSE Language(JAVA)
• Amazon(High Scalability - High Scalability - Amazon
Architecture) also uses java in addition to other
languages.
• Facebook uses HBase (a Java based No-SQL DB) as
messaging platform and also uses Java in other areas see -
Facebook Engineering: What is Facebook's architecture?
• Ebay (EBay Architecture) uses Java
• Google uses Java extensively in Google Plus, GTalk
(High Scalability - High Scalability - GoogleTalk
Architecture) etc
Cont’d
14
16. Click to edit Master text styles
OOSE Softwares are installed everywhere
• Banks
• Schools
• Hospitals
• Universities
• Stores
• Salons
• Pharmacies
• Sensors
• Amusement Parks
• And Lots more….
Cont’d
16
17. Click to edit Master text styles
4.SWOT: Advantages and Benefits.
# Advantages Brief explanation
1 Simplicity Software objects model real world objects, so the complexity is reduced and the program
structure is very clear.
2 Modularity Each object forms a separate entity whose internal workings are decoupled from other
parts of the system.
3 Design Benefits Large programs are very difficult to write. Object Oriented Programs force designers to
go through an extensive planning phase, which makes for better designs with less flaws.
In addition, once a program reaches a certain size, Object Oriented Programs are actually
easier to program than non-Object Oriented ones.
4 Re-usability Objects created for Object Oriented Programs can easily be reused in other programs.
17
18. Click to edit Master text styles
Cont’d
18
5 Clear modular
Structure
OOP provides a clear modular structure for programs
which makes it good for defining abstract data types
where implementation details are hidden and the unit has
a clearly defined interface
6 Good framework OOP provides a good framework for code libraries where
supplied software components can be easily adapted and
modified by the programmer. This is particularly useful
for developing graphical user interfaces.
7 Showing necessary
modules
Implementation details are hidden from other modules
and other modules has a clearly defined interface.
8 In OOP, programmer not only defines data types but also
deals with operations applied for data structures.
19. Click to edit Master text styles
5.SWOT:Weaknesses/Potential Problems
# Disadvantage (weakness) Why? Provide clear justification here.
1 Larger program size Object-oriented programs typically involve more lines of code than procedural programs.
2 Slower programs Object-oriented programs are typically slower than procedure based programs, as they
typically require more instructions to be executed
3 Not suitable for all types
of problem
There are problems that lend themselves well to functional-programming style, logic-
programming style, or procedure-based programming style, and applying object-oriented
programming in those situations will not result in efficient programs.
4 Steep learning curve The thought process involved in object oriented programming may not be natural for some
people, and it can take time to get used to it. It is complex to create programs based on
interaction of objects. Some of the key programming techniques, such as inheritance and
polymorphism, can be challenging to comprehend initially
5 Not yet completely
accepted by major
vendors
Object-oriented Development has gained some market respectability, and vendors have
gone from catering to a "lunatic fringe" to a respected market. Still, there are major
reservations as to whether Object-oriented development will become a major force, or fade
into history, as in the 1980's when Decision Support Systems made great promises, only to
fade into obscurity
19
20. Click to edit Master text styles
Cont’d
# Disadvantage (weakness) Why? Provide clear justification here.
7 Effort Object Oriented programs require a lot of work to create. Specifically, a great deal of
planning goes into an object oriented program well before a single piece of code is ever
written. Initially, this early effort was felt by many to be a waste of time. In addition,
because the programs were larger (see above) coders spent more time actually writing
the program.
8 Correct implementation Problems with multithreading, data management, and mutability if not done right
9 overhead Compile time and run time overhead.
20
21. Click to edit Master text styles
6. OPTIONAL(OOSE Tools)
# Source tool Exact Web address to download that tool OPTIONAL: Test tool and provide your evaluation
of this tool
1 Eclipse https://www.eclipse.org/downloads/ It is one of the best IDE which can be used for
application development. It provides support for
languages such as Java, C/C++, Python, PERL,
Ruby etc. It is very easy to install. User interface is
very simple can be learnt in two days via tutorial
on
http://www.tutorialspoint.com/eclipse/index.htm
2 Netbeans https://netbeans.org/features/platform/downl
oad.html
Easy to install and comes with many integrated
components which otherwise require 3rd party
add-ons. Perfect tool for the beginners learning to
develop code for big applications.
Support languages like Java, C/C++, Ruby, PHP
etc.
21
22. Click to edit Master text styles
Cont’d
3 Code::Blocks http://codeblocks.org/do
wnloads
It is a very light-weight application. Easy to install and
easy to learn. Support multiple enterprise level
features.
4 Aptana Studio http://www.aptana.com/ Great for development of web application. Support for
PHP, Ruby on Rails and Python. Easy to install and easy
to work on.
5 Microsoft Visual Studio https://www.visualstudio.
com/en-
us/downloads/download-
visual-studio-vs.aspx
A rich, integrated development environment for creating
stunning applications for Windows, Android, and iOS,
as well as modern web applications and cloud services
22
23. Click to edit Master text styles
6.1. OPTIONAL (Why Use Eclipse)
23
• Provides reconciled set of possibilities for most of the platforms
• Apart from Java, it supports other languages
• Many flexible tools and frameworks for building various types of applications
• It has a free and an open source with a full support as well
• It is really extendable and configurable
• Industrial level of development
• Perspectives are another essential. Being able to switch the context from Plug-in Development, JEE, Debugging or a
perspective of your own creation really helps to keep things clear.
• JUnit integration is another big win - I know it's not exclusive to Eclipse, but it's a nice view and gives good visibility into
your testing tasks.
• You'll find many plug-ins to help you along at the new Eclipse Marketplace
24. Click to edit Master text styles
6.2. OPTIONAL (Why Use NetBeans)
24
• Powerful built-in Profiler natively supports Ant and Maven- no custom built system that only works in the IDE.
•Excellent support for the latest Java EE 6 and 7 features (no need to download plugins which is the case for Eclipse
really need JBoss tools for Eclipse)
•Excellent integration with GlassFish/JBoss/Tomcat/WebLogic ,Ant debugger.
•Excellent support for JavaFX
•Code completion with JPA and queries.
•NetBeans 7.3 includes new features for editing/debugging HTML5 (checkout the JavaOne videos)
•NetBeans platform - rich framework for building desktop Java applications.
•NetBeans is written using Swing - no SWT!
•Builtin support for version control systems - no wrestling with external plugins. For example, it can be a nightmare
to get SVN configured correctly on 64 bit systems.
•Clean intuitive UI (note IntelliJ also has a clean and intuitive UI in my opinion)
25. Click to edit Master text styles
6.3. OPTIONAL (Why MS Visual Studio)
25
Code development for Windows 10-- which includes mobile, desktop, Xbox and other supported platforms -- is done in Visual
Studio. Within the Visual Studio IDE, there are five versions: Visual Studio Community, Visual Studio Professional, Visual Studio
Enterprise, Visual Studio Test Professional and MSDN Platforms.
•Visual Studio C++ for Cross-Platform Development
•Visual Studio Tools for Apache Cordova
•Visual Studio Emulator for Android
•Visual Studio Tools for Universal Windows App Development
•Visual C++
•C# and Visual Basic
•F#
•.NET Framework 4.6
•Entity Framework
•Visual Studio IDE
•Blend
•Debugging and Diagnostics
•ASP.NET
•Azure
•NuGet
•JavaScript
•TypeScript
•IntelliTest
•Application Insights
•Release Management
•Single Sign-In
26. Click to edit Master text styles
6.4. OPTIONAL (Aptana Studio)
26
HTML5 Savvy Intellisense
•Aptana Studio is an open source integrated development
environment (IDE) for building web applications. Based
on Eclipse, it supports
JavaScript, HTML, DOM and CSS with code-completion,
outlining, JavaScript debugging, error and warning
notifications and integrated documentation. Additional plugins
allow Aptana Studio to support Ruby on Rails, PHP, Python,
Perl, Adobe AIR, Apple iPhone and Nokia WRT (Web
Runtime). Aptana Studio is available as a standalone
on Windows, Mac OS X and Linux, or as a plugin for Eclipse.
•Language & platform support
•Git Integration,Built-in Terminal
•Cloud-connected mobile opportunity expands to 1.5M
developers worldwide.
•IDE Customization
•Integrated Debugger(Integrated Ruby On Rails Debugger)
•Code Tracking
•it is equally adept at working with PHP, Ruby, Rails,
.Net, Titanium, PyDev (Python, Jython, Iron Python).
•It is as a standalone application or plug-in for Eclipse
3.5+.
•Aptana Studio comes with the following JavaScript
libraries, but more can be added or updated if desired.
oAdobe Spry
oExt JS
oAflax
oRico
oPrototype
oMochikit
oYUI Library
oMootools
ojQuery
oScript.aculo.us
27. Click to edit Master text styles
6.4. OPTIONAL (Code::Blocks)
27
Open Source! GPLv3, no hidden costs.
•Cross-platform. Runs on Linux, Mac, Windows (uses wxWidgets).
•Written in C++. No interpreted languages or proprietary libs needed.
•Extensible through plugins
•Compiler:
•Multiple compiler support:GCC (MingW / GNU GCC,MSVC++,Digital Mars,
Borland C++ 5.5)
•Very fast custom build system (no makefiles needed)
•Support for parallel builds (utilizing your CPU's extra cores)
•Multi-target projects
•Workspaces to combine multiple projects
•Inter-project dependencies inside workspace
•Imports MSVC projects and workspaces (NOTE: assembly code not supported yet)
•Imports Dev-C++ projects
•Interface:
•Syntax highlighting, customizable and extensible
•Code folding for C, C++, Fortran, XML and many more files.
•Tabbed interface
•Code completion
•Class Browser
•Smart indent
•One-key swap between .h and .c/.cpp files
28. Click to edit Master text styles
6.5. OPTIONAL(Comparisons Eclipse and NetBeans for JAVA)
NetBeans Eclipse
UI Toolkit Standard Swing toolkit SWT
UI Design
Free, award winning,
Matisse GUI Builder
Commercial alternatives
Module System
Standard OSGi module
systemor NetBeans-
specific module system
Standard OSGi module system
Build System
Out of the box, Maven
or Ant
Proprietary
28
29. Click to edit Master text styles
6.6. OPTIONAL(Languages Supported)
29
# Source tool /IDE Languages Supported
1 Eclipse Java
2 NetBeans Java
3 Code::Blocks C, C++, Fortran, XML
4 Aptana Studio PHP, Ruby, Rails, .Net, Titanium, PyDev (Python,
Jython, Iron Python
5 Microsoft Visual Studio Visual C++
C# and Visual Basic
F#
30. Click to edit Master text styles
7. References Recommended
Topic of articles, papers or
reports
Exact Web address to
download that article
Topics covered
Object-Oriented Software
Engineering:
Measuring and Controlling the
Development Process
http://ctp.di.fct.unl.pt/~mgo
ul/papers/Metrics/4ICSQ.p
df
•Paper emphasis on reuse of OOSE paradigm that, together, are
believed to be responsible for the increase in software quality and
development productivity
•Paper aims at development of metrics for OO designs that will
eventually help training new OO software practitioners by setting
design standards
•metrics determination should be formally defined
•non-size metrics should be system size independent
•metrics should be obtainable early in the life-cycle
Introduction in OOSE
Report
http://www.dcs.fmph.uniba.
sk/~cervenka/oose/OOSEIn
troduction.pdf
•Report covers the software engineering process.
•The problems and the characteristics of OOse
•Merits and demerits of waterfall and iterative lifecycle
•Characteristics of the process followed in OOse
•Phases associated with it
30
31. Click to edit Master text styles
Cont’d
Quantitative Approaches in
Object-Oriented
Software Engineering
http://ctp.di.fct.unl.pt/QUASAR/Resources/
Papers/2002/2002_ECOOP_QAOOSE.pdf
•Fast&&Serious: A UML Based Metric for Effort
•Functional Size Measurement for Rational Rose
•RealTim
•Combining and Adapting Software Quality
Predictive Models
•Implementing Automatic Quality Verification of
Requirements with XML and XSLT
OBJECT ORIENTED
SOFTWARE ENGINEERING
FOR DESIGNING AN AERIAL
SURVEY LIDAR SIMULATOR
http://home.iitk.ac.in/~blohani/Limulator/pu
blication/Rakesh_Paper_final.pdf
Paper describes the object oriented design methods
used to develop a software system to simulate the
functioning of an aerial survey LiDAR instrument
Object-oriented technology cuts development time
and overhead,
Ontologies and Object
models
in Object Oriented
Software Engineering
http://www.iaeng.org/IJCS/issues_v33/issue
_1/IJCS_33_1_4.pdf
UML,Modeling
31
32. Click to edit Master text styles
8. 1.Our Own Conclusion.
• OOPS is basically Object Oriented Programming. It is not
only the matter of Data Encapsulation & Data Hiding, it also
involves in Inheritance and Polymorphism. OOPS also makes
a code neat and clean and readable.
• Through inheritance we can achieve reusability. Also
eliminate redundant code. The principle of data hiding helps
to build secure program.
• Since java objects represent real world object, so oops
provide a clear structure of the program which becomes
easy to map real world problem and give solution.
• There are a number of programming languages that use
OOP, and some of these are Java, C++, and Ada. One
concept that you will want to become familiar with is data
modeling. Before you can construct an object oriented
system, you will first need to find the objects within the
system and determine the relationships they have. This
process is called data modeling.
Object oriented programming is a concept that was created because of
the need to overcome the problems that were found with using
structured programming techniques. While structured
programming uses an approach which is top down, OOP uses an
approach which is bottom up. Traditionally, programming has
placed an emphasis on logic and actions.
Object oriented programming has taken a completely different
direction, and will place an emphasis on objects and information.
With object oriented programming, a problem will be broken
down into a number of units. These units are called objects. The
foundation of OOP is the fact that it will place an emphasis on
objects and classes.
Objects will be defined, and they will interact inside the system in
a number of different ways. There are a number of advantages to
be found with using the OOP paradigm, and some of these are
simple maintenance, an advanced analysis of complicated
programs, and re-usability.
32
33. Click to edit Master text styles
8.2.1.Our Own Recommendations(Part-A)
A)Should companies and businesses invest financial and human resources, deploy and use OOSE?
Answer is Yes because Manual things are out-of date and we need to have automated systems like Chase bank uses JPMorgan’s software
developed through OOPs technologies.
Answer is Yes because even collaboration required software's and tools developed through OOPs,Skype,Join.me,Google Drive
Answer is Yes because data mining, tracking and manipulation has it’s own importance and such systems also developed using OOPs
languages
Answer is Yes because marketing is life of business and creating websites of your local/global business is possible through OOPs based
languages like asp.net, HTML,CSS,Javascripts Etc.
Answer is Yes Because Many analytics and statistical tools are created using OOPs technologies
Answer is Yes because just development of a system or software is not important but to maintain it and keep it running to upgrade it
according to need needs is also important
Answer is Yes Because research in field of science and technology require this OOPs tools,softwares and technologies
Answer is Yes Mobile apps like e-commerce apps amazon.com, ebay.com, alibaba.com, wish.com have their own app versions which are
developed using OOSE as described in initial slides of our report.
Finally our conclusion is :
Ecosystem of the digital world will collapse if we stop using OOSE so,It’s always booming, OOSE cannot be subside at any case atleast to
sustain business of millions of enterprises
33
34. Click to edit Master text styles
8.2.2Our Own Recommendations(Part-B)
B)Should we (CS/IS Department) recommend OOSE for active use in CS/IS curricula, for example, as a separate DIS or
Advanced Topics course?
Answer is undoubtedly Yes…
Students in IT are future Engineers, Developers, Architects, Testers Etc. So they must know the basics of the coding.
Most of the languages using now-a-days are based on OOPS concepts
Whether you are Engineers, Developers, Architects, Testers Etc. you must know the tangling points and technical understanding of
your project’s basics which help to choose language,IDE,Platforms Etc. by comparing merits and demerits
If we do not include this in curriculum , in future while pursuing profession in IT industry the person will definitely suffer from
skeptical picture of things going on in his/her company.
OOPS concepts should be crystal clear so that one can have their hands on any OOPs based language and tools
It’s not only demanding it’s a mandatory thing IT people must know
Like Cell is building block of our body and if the cell formation stop in our body we will die. Similaly to test software ,to develop
software, to architect or engineer a software project you must know the basics of that software i.e.Object Oriented concepts to do
good in field of IT.
34