- In Object Oriented Program Inheritance is a mechanism that allows one class to inherit the attributes and method of another class.
It can be Very useful since we do not have to code the same attributes and methods again, as the derived class (“child class”) inherits the attributes and methods of the base class (“ parent class”).
If we need some new method then we can add it to the child Class and we can override a method in the child class too.
This decreases the complexity of the overall program, reduces redundancy, and makes the program more structured and readable.
- Accessibility of x, y, z in each of the class A, B, C, D are as follows
z: not accessible
z: not accessible
z: not accessible
z: not accessible
- In the Context of OO class-based modelling, Inheritance is a mechanism that allows a class to inherit the attributes and methods defined in another class. For example, A parent class. ‘Animal’ class can have several attributes like Eyes, Nose etc. and several subclass/ child class like Dog, Cat etc can inherit those attributes. This allows reusability of code and reduces redundant codes.
- 5 common attributes of a Furniture are as follows
- Date of Manufacture
- Brand Name
All of these Attributes can be used in the subclasses “Table”, “Chair”, “Desk”, and “Sofa” Since they would have the same attributes as well.
- Attributes of the subclasses
A Table can have a length, width and a height
- Armrest (Boolean)
A chair can be of a certain height and it may or may not have an aremrest
A Desk can have a length, width and a height, it can also have an attribute declaring its capacity
- Cushion Material
A Sofa cushion material and the number of people it can provide space for may vary from sofa to sofa.
- Unit testing is a testing technique using which smallest units of the program can be tested. It checks if each unit in an isolated condition is acting in the expected way or not.
Unit testing deals with testing interface, local data structures, boundary conditions, independent paths, error handling paths.
In other words unit testing is used make sure that independent modules work correctly on their own.
- Regression Testing is a part of an integration testing procedure. Regression Testing checks if any defect is propagated to any other module when changes are made to an existing program.
To achieve this, Regression Testing re executes some of the tests previously conducted because unintended side effects aren’t caused by changes made to the program.
- Unforeseen side effects may occur when independent modules which work correctly in isolated conditions are brought together. These modules may interfere with one another when put in the same program.
Integration Testing is used to detect such issues. It tests, whether the independent modules work correctly when put together in a program or not.
There are different options for integration testing, which are Regression Testing, Top-Down integration, Bottom-Up integration, Sandwich Testing.
- A scalable system is system whose performance improves after adding resources, The performance is supposed to improve proportional to the capacity of the resource added.
- Three general solutions to improve the scalability of a distributed software system are as follows
- The software system is distributed though a network and each node/system in the network can work independently and have minimal dependency on other nodes/systems.
- If some node/system fails then the task allocated to it may be reallocated to some other node/system
- Updating the software may occur at different times and doesn’t require all the systems to halt.
- Real world example of a scalable software solution: Amazon Web Service
- FIVE different types of risks are as follows
- Proposal Risk
- Schedule Risk
- Programmatic Risk
- Development Risk
- Potential Risks and Scenario
|There are some confusion and uncertainty about the content and layout of the interface and also the requirements for adding new cars and updating cars details.
|The uncertainty about the requirements means that the total development time will be difficult to predict.
|The new people in the team are not aware of testing tools.
|The unavailability of teammates at critical times.
|The team are planning to use some reusable software components which to date have not been tested.
- Strategy for managing the risks
|The exact requirement should be communicated. And if there are plans for future, those should be discussed as well.
|Requirements need to be structured properly, if there are multiple scenarios which may occur due to future plan. Then those are taken into account too while scheduling.
|The new team members need to be given proper training for the testing tools which they’re not familiar with.
|Board meetings should be called time to time and availability of critical team members should be discussed. If some team member is to be unavailable a particular critical time, then a replacement should be found beforehand for that period of time.
|If the team is trying to reuse some codes then the codes should be unit tested before adding it to the program, as well as integration testing should also be conducted after adding those code to the existing program.