3.UML and Object Oriented Software Development
3.UML and Object Oriented Software Development
Software Development
and UML
19CSE204: Object Oriented Paradigm
Dr. Prabu M
Why OO?
• Benefits of object-oriented programming
• Symptoms of software development problems
• Root causes of project failure
• Software development best practices
Benefits of OO
programming
• OOA/OOD/OOP is good for:
– Analyzing user requirements
– Designing software
– Constructing software
• Reusability (reusable components)
• Reliability
• Robustness
• Extensibility
• Maintainability
– Reducing large problems to smaller, more manageable
problems
Symptoms of software
development problems
• Inaccurate understanding of end-user needs.
• Inability to deal with changing requirements.
• Modules that don't fit together.
• Software that's hard to maintain or extend.
• Late discovery of serious projects flaws.
• Poor software quality.
• Unacceptable software performance.
• Team members in each other's way.
• An untrustworthy build and release process.
Root cause of project
failure
• Ad hoc requirements management.
• Ambiguous and imprecise communication.
• Brittle architectures.
• Overwhelming complexity.
• Undetected inconsistencies in requirements, designs, and
implementations.
• Insufficient testing.
• Subjective project status assessment.
• Failure to attack risk.
• Uncontrolled change propagation.
• Insufficient automation.
Software development
best practices
• Develop software iteratively.
• Manage requirements.
• Use component-based architectures.
• Visually model software.
• Verify software quality.
• Control changes to software.
1. Encapsulation - the grouping of related ideas
into unit. Encapsulating attributes and
behaviors.
2. Inheritance - a class can inherit its behavior
from a superclass (parent class) that it extends.
3. Polymorphism - literally means ``many
forms''.
4. Information/implementation hiding - the use Introduction to
of encapsulation to keep implementation details
from being externally visible. OO concepts
5. Object identity - an object can be identified
and treated as a distinct entity.
6. Message passing - the ability to send messages
from one object to another.
7. Classes - the templates/blueprints from which
objects are created.
Encapsulation
The grouping of related items into one unit.
• One of the basic concepts of OO.
• Attributes and behaviors are encapsulated to create objects.
• OO modeling is close to how we perceive the world.
• Implementation details are hidden from the outside world.
We all know how to use a phone, few of us care how it
works.
• The packaging of operations and attributes representing
state into an object type so that state is accessible or
modifiable only through the objects' interface
• Encapsulation lets builders of objects reuse already-existing
objects, and if those objects have already been well-tested,
much larger and more complex systems can be created.
Inheritance