Introduction to Key Analysis and Design Concepts
Object Oriented Analysis
Before we launch into the analysis process, I need to explain some key concepts. In analysis and design, as with any syntax-oriented environment, you ensure quality by applying the proper principles and concepts more than by perfecting the use of the syntax.
In fact, it is very possible to create a diagram with perfect syntax that will never work.
So the question is,
What concepts or guiding principles can we apply that will help us measure the quality of our models?
To define all classes, the operations, the attributes, the relationships and the behavior the following tasks must be done:
- Basic user requirements must be communicated between the customer and the software engineer.
- Classes must be identified.
- A class hierarchy must be specified.
- Object to object relationships should be represented.
- Object behavior must be modeled.
- Above Tasks must be reapplied iteratively until the model is complete
Project Management Cycle
The question, "What is software quality?", is bound to generate many different answers, depending on 1) whom you ask, 2) under what circumstances, and 3) for what kind of software systems.
An alternative question that is probably easier for us to get more informative answers is: "What are the characteristics for high-quality software?"
In this module, we attempt to define software quality by defining the expected characteristics
or properties of high-quality software. In doing so, we need to examine the different perspectives and expectations of users as well as other people involved with the development, management, marketing, and maintenance of the software products.
We also need to examine the individual characteristics associated with quality and their inter-relationship, and focus our attention on the critical characteristics of functional correctness.
Module learning objectives
In this module, you will learn:
- What it means to create an object
- How to assess the quality of an abstraction
- What it means to encapsulate an object
- How to model objects using encapsulation
- How to assess object quality using cohesion and coupling
- How to create an object by assembling other objects using aggregation and composition
- How to organize similar objects using generalization and specialization