0% found this document useful (0 votes)
19 views17 pages

Oose Assign 1

Uploaded by

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

Oose Assign 1

Uploaded by

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

ASSIGNMENT - 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.

It is based on diagrammatic representations of software components. As the old


proverb says: “a picture is worth a thousand words”. By using visual
representations, we are able to better understand possible flaws or errors in
software or business processes.

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.

The different terms related to object design are:


5. PERSISTENCE
Persistence is "the continuance of an effect after its cause is removed". In the
context of storing data in a computer system, this means that the data survives after
the process with which it was created has ended. In other words, for a data store to
be considered persistent, it must write to non-volatile storage.

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.

Different types of inheritance:


OOPs support the six different types of inheritance as given below:
I. Single inheritance
II. Multi-level inheritance
III. Multiple inheritance
IV. Multipath inheritance
V. Hierarchical Inheritance
VI. Hybrid Inheritance
I. Single inheritance:
In this inheritance, a derived class is created from a single base class. In the given
example, Class A is the parent class and Class B is the child class since Class B
inherits the features and behavior of the parent class A.

II. Multi-level inheritance


In this inheritance, a derived class is created from another derived class. In the
given example, class c inherits the properties and behavior of class B and class B
inherits the properties and behavior of class B. So, here A is the parent class of B
and class B is the parent class of C. So, here class C implicitly inherits the
properties and behavior of class A along with Class B i.e. there is a multilevel of
inheritance.
III. Multiple inheritance
In this inheritance, a derived class is created from more than one base class. This
inheritance is not supported by .NET Languages like C#, F#, etc., and Java
Language. In the given example, class c inherits the properties and behavior of
class B and class A at the same level. So, here A and Class B both are the parent
classes for Class C.

IV. Multipath inheritance


In this inheritance, a derived class is created from other derived classes and the
same base class of other derived classes. This inheritance is not supported by .NET
Languages like C#, F#, etc.
In the given example, class D inherits the properties and behavior of class C and
class B as well as Class A. Both class C and class B inherit the Class A. So, Class
A is the parent for Class B and Class C as well as Class D. So it's making it a
Multipath inheritance.
V. Hierarchical Inheritance
In this inheritance, more than one derived class is created from a single base class
and further child classes act as parent classes for more than one child class.
In the given example, class A has two children class B and class D. Further, class
B and class C both are having two children - class D and E; class F and G
respectively.

VI. Hybrid inheritance


This is a combination of more than one inheritance. Hence, it may be a
combination of Multilevel and Multiple inheritance or Hierarchical and Multilevel
inheritance Hierarchical and Multipath inheritance, or Hierarchical, Multilevel and
Multiple inheritances.
7. POLYMORPHISHM
The word polymorphism means having many forms. In simple words, we can
define polymorphism as the ability of a message to be displayed in more than one
form. A real-life example of polymorphism, a person at the same time can have
different characteristics. Like a man at the same time is a father, a husband, an
employee. So, the same person possesses different behavior in different situations.
This is called polymorphism. Polymorphism is considered as one of the important
features of Object-Oriented Programming.
8. Data binding
Binding refers to the process of converting identifiers (such as variable and
performance names) into addresses. Binding is done for each variable and
functions. For functions, it means that matching the call with the right function
definition by the compiler. It takes place either at compile time or at runtime.

Early Binding (compile-time time polymorphism) As the name indicates, compiler


(or linker) directly associates an address to the function call. It replaces the call
with a machine language instruction that tells the mainframe to leap to the address
of the function.
By default, early binding happens in C++. Late binding is achieved with the help
of virtual keyword)

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”

Encapsulation also lead to data abstraction or hiding. As using encapsulation also


hides the data. In the above example the data of any of the section like sales,
finance or accounts is hidden from any other 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.

Abstraction using Classes: We can implement Abstraction in C++ using classes.


Class helps us to group data members and member functions using available access
specifiers. A Class can decide which data member will be visible to outside world
and which is not.

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.

SDLC is the acronym of Software Development Life Cycle. It is also called as


Software Development Process.
SDLC is a framework defining tasks performed at each step in the software
development process. ISO/IEC 12207 is an international standard for software life-
cycle processes. It aims to be the standard that defines all the tasks required for
developing and maintaining software.

SDLC is a process followed for a software project, within a software organization.


It consists of a detailed plan describing how to develop, maintain, replace and alter
or enhance specific software. The life cycle defines a methodology for improving
the quality of software and the overall development process.

The following figure is a graphical representation of the various stages of a typical


SDLC.
Stage 1: Planning and Requirement Analysis
Requirement analysis is the most important and fundamental stage in SDLC. It is
performed by the senior members of the team with inputs from the customer, the
sales department, market surveys and domain experts in the industry. This
information is then used to plan the basic project approach and to conduct product
feasibility study in the economical, operational and technical areas.

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.

Stage 2: Defining Requirements


Once the requirement analysis is done the next step is to clearly define and
document the product requirements and get them approved from the customer or
the market analysts. This is done through an SRS (Software Requirement
Specification) document which consists of all the product requirements to be
designed and developed during the project life cycle.
Stage 3: Designing the Product Architecture
SRS is the reference for product architects to come out with the best architecture
for the product to be developed. Based on the requirements specified in SRS,
usually more than one design approach for the product architecture is proposed and
documented in a DDS - Design Document Specification.

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.

Stage 4: Building or Developing the Product


In this stage of SDLC the actual development starts and the product is built. The
programming code is generated as per DDS during this stage. If the design is
performed in a detailed and organized manner, code generation can be
accomplished without much hassle.

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.

Stage 5: Testing the Product


This stage is usually a subset of all the stages as in the modern SDLC models, the
testing activities are mostly involved in all the stages of SDLC. However, this
stage refers to the testing only stage of the product where product defects are
reported, tracked, fixed and retested, until the product reaches the quality standards
defined in the SRS.

Stage 6: Deployment in the Market and Maintenance


Once the product is tested and ready to be deployed it is released formally in the
appropriate market. Sometimes product deployment happens in stages as per the
business strategy of that organization. The product may first be released in a
limited segment and tested in the real business environment (UAT- User
acceptance testing).

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.

15. Types of testing (black box and white box)


Software Testing can be majorly classified into two categories:
Black Box Testing is a software testing method in which the internal
structure/design/implementation of the item being tested is not known to the tester.
Only the external design and structure are tested.

White Box Testing is a software testing method in which the internal


structure/design/implementation of the item being tested is known to the tester.
Implementation and impact of the code are tested.

S.NO. BLACK BOX TESTING WHITE BOX TESTING

1. It is a way of software testing in It is a way of testing the software


which the internal structure or the in which the tester has
program or the code is hidden and knowledge about the internal
nothing is known about it. structure or the code or the
program of the software.
2. Implementation of code is not Code implementation is
needed for black box testing. necessary for white box testing.
3. It is mostly done by software It is mostly done by software
testers. developers.

4. No knowledge of implementation is Knowledge of implementation is


needed. required.
5. It can be referred as outer or It is the inner or the internal
external software testing. software testing.
6. It is functional test of the software. It is structural test of the
software.
7. This testing can be initiated on the This type of testing of software
basis of requirement specifications is started after detail design
document. document.
8. No knowledge of programming is It is mandatory to have
required. knowledge of programming.
9. It is the behavior testing of the It is the logic testing of the
software. software.
10. It is applicable to the higher levels It is generally applicable to the
of testing of software. lower levels of software testing.
11. Example: search something on Example: by input to check and
google by using keywords verify loops
12. Types of Black Box Testing: Types of White Box Testing:

A. Functional Testing A. Path Testing

B. Non-functional testing B. Loop Testing

C. Regression Testing C. Condition testing

You might also like