Oose Assign 1
Oose Assign 1
1. UML
UML is an acronym that stands for Unified Modeling Language. Simply put, UML
is a modern approach to modeling and documenting software. In fact, it’s one of
the most popular business process modeling techniques.
Mainly, UML has been used as a general-purpose modeling language in the field
of software engineering. However, it has now found its way into the
documentation of several business processes or workflows. For example, activity
diagrams, a type of UML diagram, can be used as a replacement for flowcharts.
They provide both a more standardized way of modeling workflows as well as a
wider range of features to improve readability and efficiency.
2. CLASS
Class diagrams are the main building block of any object-oriented solution. It
shows the classes in a system, attributes, and operations of each class and the
relationship between each class.
In most modeling tools, a class has three parts. Name at the top, attributes in the
middle and operations or methods at the bottom. In a large system with many
related classes, classes are grouped together to create class diagrams. Different
relationships between classes are shown by different types of arrows.
3. OBJECT
Object Diagrams, sometimes referred to as Instance diagrams are very similar
to class diagrams. Like class diagrams, they also show the relationship between
objects but they use real-world examples.
They show how a system will look like at a given time. Because there is data
available in the objects, they are used to explain complex relationships between
objects.
4. OOPS:
In the object-oriented design method, the system is viewed as a collection of
objects (i.e., entities). The state is distributed among the objects, and each object
handles its state data. For example, in a Library Automation Software, each library
representative may be a separate object with its data and functions to operate on
these data. The tasks defined for one purpose cannot refer or change data of other
objects. Objects have their internal data which represent their state. Similar objects
create a class. In other words, each object is a member of some class. Classes may
inherit features from the superclass.
6. INHERITANCE
Inheritance is one of the core aspects of the fundamental called Object-Oriented
Programming (OOPs) and if we need to describe then inheritance is that it provides
the way of achieving code re-usability were writing the same code the multiple
times, again and again, rather we can use inherit a version of the given properties
of one class into the other by extending it.
9. Encapsulation
In normal terms, Encapsulation is defined as wrapping up of data and information
under a single unit. In Object Oriented Programming, Encapsulation is defined as
binding together the data and the functions that manipulates them.
Consider a real-life example of encapsulation, in a company there are different
sections like the accounts section, finance section, sales section etc. The finance
section handles all the financial transactions and keep records of all the data related
to finance. Similarly, the sales section handles all the sales related activities and
keep records of all the sales. Now there may arise a situation when for some reason
an official from finance section needs all the data about sales in a particular month.
In this case, he is not allowed to directly access the data of sales section. He will
first have to contact some other officer in the sales section and then request him to
give the particular data. This is what encapsulation is. Here the data of sales
section and the employees that can manipulate them are wrapped under a single
name “sales section”
10. Abstraction
Data abstraction is one of the most essential and important features of object-
oriented programming. Abstraction means displaying only essential information
and hiding the details. Data abstraction refers to providing only essential
information about the data to the outside world, hiding the background details or
implementation.
Consider a real-life example of a man driving a car. The man only knows that
pressing the accelerators will increase the speed of car or applying brakes will stop
the car but he does not know about how on pressing accelerator the speed is
actually increasing, he does not know about the inner mechanism of the car or the
implementation of accelerator, brakes etc. in the car. This is what abstraction is.
11. Generalization
Generalization is the process of taking out common properties and functionalities
from two or more classes and combining them together into another class which
acts as the parent class of those classes or what we may say the generalized class of
those specialized classes. All the subclasses are a type of superclass. So, we can
say that subclass “is-A” superclass. Therefore, Generalization is termed as “is-A
relationship”
For example, a child class has to inherit all the characteristics from its parent
although it may change its implementation by overriding it cannot neglect any
characteristic of the parent. This shows the restrictive form of generalization.
Also, the child class has its own properties which the parent class object cannot use
because these extended properties belong to a child only. This addition of extra
properties shows an extensible form of generalization.
12. Association
An association is defined as an organization of people with a common purpose and
having a formal structure. It represents a binary relationship between two objects
that describes an activity. It is a relationship between objects. For example, A
doctor can be associated with multiple patients.
Association is a relationship between two classes where one class use another.
It is inflexible in nature
It means there is almost always a link between objects
It is represented by a “has a” relationship
Line segment is used between the components or the class
13. Specialization
Template in C++is a feature. We write code once and use it for any data type
including user defined data types. For example, sort() can be written and used to
sort any data type items. A class stack can be created that can be used as a stack of
any data type.
It is possible in C++ to get a special behavior for a particular data type. This is
called template specialization.
When we write any template-based function or class, compiler creates a copy of
that function/class whenever compiler sees that being used for a new data type or
new set of data types (in case of multiple template arguments).
If a specialized version is present, compiler first checks with the specialized
version and then the main template. Compiler first checks with the most
specialized version by matching the passed parameter with the data type(s)
specified in a specialized version.
14. SDLC
Software Development Life Cycle (SDLC) is a process used by the software
industry to design, develop and test high quality software. The SDLC aims to
produce a high-quality software that meets or exceeds customer expectations,
reaches completion within times and cost estimates.
Planning for the quality assurance requirements and identification of the risks
associated with the project is also done in the planning stage. The outcome of the
technical feasibility study is to define the various technical approaches that can be
followed to implement the project successfully with minimum risks.
This DDS is reviewed by all the important stakeholders and based on various
parameters as risk assessment, product robustness, design modularity, budget and
time constraints, the best design approach is selected for the product.
A design approach clearly defines all the architectural modules of the product
along with its communication and data flow representation with the external and
third-party modules (if any). The internal design of all the modules of the proposed
architecture should be clearly defined with the minutest of the details in DDS.
Developers must follow the coding guidelines defined by their organization and
programming tools like compilers, interpreters, debuggers, etc. are used to generate
the code. Different high level programming languages such as C, C++, Pascal, Java
and PHP are used for coding. The programming language is chosen with respect to
the type of software being developed.
Then based on the feedback, the product may be released as it is or with suggested
enhancements in the targeting market segment. After the product is released in the
market, its maintenance is done for the existing customer base.