Software Engineering: Analysis and Design

CSE3308




OO


E-mail this post



Remember me (?)



All personal information that you provide here will be governed by the Privacy Policy of Blogger.com. More...



Today's lecture is about Object Oriented Design
www.objectmentor.com

There is no clear boundary bw/ analysis and design.

Use mostly the same tools to describe design as used to describe analysis.

Don't make the mistake of OO design as a way of writing programs in an OO language. You still have to be disciplined in how you design them.

Simply put it in terms of three perspectives.
Conceptual - Analysis
Specification - Analysis and Design
Implementation - Design

OO Design Key Ideas
Abstraction

The Open/Closed principle
Classes should be open for extension, but should be closed for modification.

Encapsulation
Compartmentalising the elements of an abstraction that constitute its structure and behaviour.

Connascence
You've got two things. Ideally you would be able to change one thing in one place, but once you have to change two things, you have to remember to change the other thing correctly. It's a major cause of problems in programming and software.

Use encapsulation to manage connascence
Break the system into encapsulated components

If things are powerful they can also go powerfully wrong.

Things like C++ 'friend' function is one of those things.
A connascence abuse.

Class Cohesion
Measures the interrelatedness of the methods in the external interface of a class.

If you want to make software that is easy to change, you have a lot more of a tricky problem. As a designer, you have to make the decision of whether it is worth the extra cost.

If software was designed for portability, then it wouldn't be 6 months for mac people to wait for a port.

Class Cohesion
Measures the interrelatedness of the methods in the external interface of a class.
How well does the class hang together as an implementation of a class?

Low class cohesion is to be avoided

2nd Assignment:
Computer-Aided Software Engineering Tool
Learn about stuctured analysis and structured design
And do an Object Oriented analysis on it.

Hint. Consider what happens when an architect designs a house. (2nd Paragraph)


0 Responses to “OO”

Leave a Reply

      Convert to boldConvert to italicConvert to link

 


Previous posts

Archives

Links