0% found this document useful (0 votes)
89 views28 pages

Software Engineering Unit 4 Revision: Presented By, HARISHMA S (17BCA070) PRANEETH V (17BCA093)

The document discusses object oriented design using UML (Unified Modeling Language). It describes what object oriented design and UML are, the different types of UML diagrams, design patterns, and implementation issues in software engineering like reuse, configuration management, and host-target development. It also covers topics like open source software development, software evolution process, legacy systems, and reasons for re-engineering legacy systems.

Uploaded by

Harishma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
89 views28 pages

Software Engineering Unit 4 Revision: Presented By, HARISHMA S (17BCA070) PRANEETH V (17BCA093)

The document discusses object oriented design using UML (Unified Modeling Language). It describes what object oriented design and UML are, the different types of UML diagrams, design patterns, and implementation issues in software engineering like reuse, configuration management, and host-target development. It also covers topics like open source software development, software evolution process, legacy systems, and reasons for re-engineering legacy systems.

Uploaded by

Harishma
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 28

SOFTWARE ENGINEERING

UNIT 4 REVISION
PRESENTED BY,
HARISHMA S (17BCA070)
PRANEETH V (17BCA093)
OBJECT ORIENTED
DESIGN USING UML
What is Object Oriented
Design?
 Object Oriented Design (OOD) serves
as part of the object oriented
programming (OOP) process of
lifestyle.
 It is mainly the process of using an
object methodology to design a
computing system or application.
 This technique enables the
implementation of a software based on
the concepts of objects.
What is UML?
 UML is an acronym that stands
for Unified Modeling Language.
 In simple words, UML is a modern
approach to modelling and documenting
software.
 UML itself finds different uses in software
development and business process
documentation:
 Sketch (Forward and Backward
design)
 Blueprint
 Pseudo programming language
Types of UML diagrams

Behavioural UML diagrams :

Activity Diagram

Use Case Diagram

Interaction Overview Diagram

Timing Diagram

State Machine Diagram

Communication Diagram

Sequence Diagram
Structural UML Diagram

Class Diagram

Object Diagram

Component Diagram
Composite Structure
Diagram
Deployment Diagram

Package Diagram

Profile Diagram
DESIGN PATTERNS
What is a design pattern?
 Design patterns are typical solutions to
common problems in software design. Each
pattern is like a blueprint that you can customize
to solve a particular design problem in your code.
 Design patterns are a toolkit of tried and tested
solutions to common problems in software
design. Even if you never encounter these
problems, knowing patterns is still useful because
it teaches you how to solve all sorts of problems
using principles of object-oriented design.
Essential elements of
Patterns
 NAME:
A meaningful name/ identifier for the pattern.
 PROBLEM DESCRIPTION:
When to apply the pattern.
 SOLUTION DESCRIPTION:
Elements that make up the pattern, the
relationships, responsibilities and collaborations.
 CONSEQUENCES:
The results and trade-offs of applying the
pattern.
Classification of patterns

 Creational patterns
Creating a collection of objects in flexible
ways
Structural patterns
Represents a collection of related objects.
Behavioural patterns
Capturing behaviour among a collection
of objects.
The 7 most important
patterns
 Singleton
 Factory method
 Strategy
 Observer
 Builder
 Adapter
 State

https://refactoring.guru/design-patterns/catalog
IMPLEMENTATION ISSUES
3 aspects of Implementation important to
software engineering:

 Reuse
 Configuration management
 Host- target development
REUSE
 Most modern software is constructed
by reusing existing components or
systems.
 Software reuse is possible at 4 levels:
 The abstraction level
 The object level
 The component level
 The system level
CONFIGURE MANAGEMENT

 During the development process, many


different versions of each software
component are created. If you don’t
keep track of these versions in a
configuration management system,
you are liable to include the wrong
versions of these components in your
system.
 There are three main fundamental
configuration management activities
 They are,
 Versions management
 System integration
 Problem tracking
Host- Target Development
 Most software development is based on a host-target
model. Software is developed on one computer (the host),
but runs on a separate machine (the target).
 A software development platform should provide a range
of tools to support software engineering processes. These
may include:
1. An integrated compiler and syntax-directed editing
system that allows you to create, edit, and compile
code.
2. A language debugging system.
3. Graphical editing tools, such as tools to edit UML
models.
4. Testing tools, such as JUnit (Massol, 2003) that can
automatically run a set of tests on a new version of a
program.
5. Project support tools that help you organize the code
for different development projects.
OPEN SOURCE SOFTWARE
DEVELOPMENT
WHAT IS OSS?

 Open source is a visible set of


instructions which is open to public or
users to change and customize as per
their needs.
 Example: Linux, Libre office, Apache,
GIMP etc.,
Why OSS?

 Customizable
 Improvable
 Redistributable
 Runs literally everywhere, and for
everyone
 Transparency
 FREE!!
Free as in “FREEDOM”

 Freedom to study the code


 Freedom to improve the program
 Freedom to run the program anytime,
for any purpose on any machine.
 Freedom to redistribute.
Free Speech not Free Beer
CRITERIA FOR OPEN
SOURCE
 Free distribution
 Source code
 Derived works
 Integrity of the Author’s source code
 No discrimination against person or groups
 No discrimination against Fields of Endeavour
 Distribution of licence
 License must not be specific to a product
 License must not restrict other software
 License must be technologically neutral
SOFTWARE EVOLUTION
PROCESS
 The process of developing a software
product using software engineering
principles & method is referred to as
software evolution.
 This includes the initial development of
software & its maintenance & updates.
LIFE CYCLE OF SOFTWARE
EVOLUTION
SOFTWARE EVOLUTION
DYNAMICS
 Software evolution dynamics is the study of
system change.
 In the 1970s and 1980s, Lehman and Belady,
carried out several studies of system change
with a view to understanding more about
characteristics of software evolution.
 The work continued in the 1990s as Lehman
and others investigated the significance of
feedback in evolution processes.
 They proposed ‘Lehman’s laws’ concerning
system change.
LEHMAN’S LAW

 Law of continuing change.


 Law of increasing complexity.
 Law of large program evolution.
 Law of conservation of organization
stability.
 Law of conservation of familiarity.
LEGACY SYSTEM

 A legacy system refers to outdated


computer systems, programming
languages or application software that
are used instead of available upgraded
versions.
 Usually they rely on obsolete
technology but are still essential for the
business.
REASON FOR
REQUIREMENT OF RE-
ENGINEERING
 Most of the legacy system may be
poorly structured & their
documentation maybe either out of
date or non-existent .
 The developers of these systems have
left organization, there may be no one
in the organization who really
understands the systems in detail.
 These systems were also not designed
for change.

You might also like