A Review Of Data Abstraction Coupling Information Technology Essay

Published: November 30, 2015 Words: 1609

Works with all instances of a common meta-model, regardless of whether they were produced with the Java or the UML front-end. The respective extends (Java) or generalization (UML) relations expressing the inheritance between two classes are mapped onto relations of type inheritance in the common meta-model (and the specific view).

2 Does reusability helps in software engineering?Justify?

Reusable modules and classes reduce implementation time, increase the likelihood that prior testing and use has eliminated bugs and localizes code modifications when a change in implementation is required. Subroutines or functions are the simplest form of reuse.

Code reuse, also called software reuse, is the use of existing software, or software knowledge, to build new software

Types of reuse

Opportunistic reuse - While getting ready to begin a project, the team realizes that there are existing components that they can reuse.

Planned reuse - A team strategically designs components so that they'll be reusable in future projects.

Opportunistic reuse can be categorized further:

Internal reuse - A team reuses its own components. This may be a business decision, since the team may want to control a component critical to the project.

External reuse - A team may choose to license a third-party component. Licensing a third-party component typically costs the team 1 to 20 percent of what it would cost to develop internally. The team must also consider the time it takes to find, learn and integrate the component

Design patterns

A design pattern is a general solution to a recurring problem. Design patterns are more conceptual than tangible and can be modified to fit the exact need. However, abstract classes and interfaces can be reused to implement certain patterns.

Frameworks

Developers generally reuse large pieces of software via third-party applications and frameworks. Though frameworks are usually domain-specific and applicable only to families of applications.

Systematic software reuse

Systematic software reuse is still the most promising strategy for increasing productivity and improving quality in the software industry. Although it is simple in concept, successful software reuse implementation is difficult in practice. A reason put forward for this is the dependence of software reuse on the context in which it is implemented. Some problematic issues that needs to be addressed related to systematic software reuse are :[3]

a clear and well-defined product vision is an essential foundation to an SPL.

an evolutionary implementation strategy would be a more pragmatic strategy for the company.

there exist a need for continuous management support and leadership to ensure success.

3 .How will you Differentiate between Object Oriented Design and Object Oriented Analysis?

ANSWER:Object-oriented analysis and design (OOAD) is a software engineering approach that models a system as a group of interacting objects. Each object represents some entity of interest in the system being modeled, and is characterised by its class, its state (data elements), and its behavior. Various models can be created to show the static structure, dynamic behavior, and run-time deployment of these collaborating objects. There are a number of different notations for representing these models, such as the Unified Modeling Language (UML).

Object-oriented analysis (OOA) applies object-modeling techniques to analyze the functional requirements for a system. Object-oriented design (OOD) elaborates the analysis models to produce implementation specifications. OOA focuses on what the system does, OOD on how the system does it.

Object-oriented analysis

Object-Oriented Analysis (OOA) aims to model the problem domain, the problem to be solved, by developing an OO system. The source of the analysis is generally a written requirements statement. Object-oriented analysis (OOA) looks at the problem domain, with the aim of producing a conceptual model of the information that exists in the area being analyzed. Analysis models do not consider any implementation constraints that might exist, such as concurrency, distribution, persistence, or how the system is to be built. Implementation constraints are dealt with during object-oriented design (OOD). Analysis is done before the Design[citation needed]. The sources for the analysis can be a written requirements statement, a formal vision document, interviews with stakeholders or other interested parties. A system may be divided into multiple domains, representing different business, technological, or other areas of interest, each of which are analyzed separately. The result of object-oriented analysis is a description of what the system is functionally required to do, in the form of a conceptual model. That will typically be presented as a set of use cases, one or more UML class diagrams, and a number of interaction diagrams. It may also include some kind of user interface mock-up.

Object-oriented design

Object-Oriented Design (OOD) is an activity of looking for logical solutions to solve a problem by using encapsulated entities called objects.Object-oriented design (OOD) transforms the conceptual model produced in object-oriented analysis to take account of the constraints imposed by the chosen architecture and any non-functional constraints, such as transaction throughput, response time, run-time platform, development environment, or programming language. The concepts in the analysis model are mapped onto implementation classes and interfaces. The result is a model of the solution domain, a detailed description of how the system is to be built.

4. Suppose you are working in a software company and there is project regarding Big Cinema? Identify stakeholders in a Online booking project of Big Cinema? How will you gather requirement.

Ans:- Stakeholders in big cinemas :-

Particular movie ,

Actors in the movie ,

No.of seats ,

Type of ticket eg(silver ,platinum,gold)

Booking Agent

Paying methods and companies indulged in paying methods etc

5. Suppose you are an Architect in a software company? Discuss any case study in which you use the concept of object oriented SE ?

Ans. That Study said that the richest 2 percent own half the world's wealth. It also said that the richest 1 percent of adults owned 40 percent of global assets in the year 2000. And further, that the richest 10 percent of adults accounted for 85 percent of the world's total wealth. So there is an unbalanced distribution of wealth in the physical world. Have you ever thought of an unbalanced distribution of knowledge in the software world? According to my view point, the massive expansion of the software industry is forcing developers to use already implemented libraries, services and frameworks to develop software within ever shorter periods of time. The new developers are trained to use (I would say more often) already developed software components, to complete the development quicker. They just plug in an existing library and some how manage to achieve the requirements. But the sad part of the story is, that they never get a training to define, design the architecture for, and implement such components. As the number of years pass by, these developers become leads and also software architects. Their titles change, but the old legacy of not understanding, of not having any architectural experience continues, creating a vacuum of good architects. The bottom line is that only a small percentage of developers know how to design a truly object oriented system. The solution to this problem is getting harder every day as the aggressive nature of the software industry does not support an easy adjustment to existing processes, and also the related online teaching materials are either complex or less practical or sometimes even wrong. The most of them use impractical, irrelevant examples of shapes, animals and many other physical world entities to teach concepts of software architecture. There are only very few good business-oriented design references. Unfortunately, I myself am no exception and am a result of this very same system. I got the same education that all of you did, and also referred to the same resource set you all read.

Coming back to the initial point, I noticed that there is a knowledge gap, increasing every day, between the architects who know how to architect a system properly and the others who do not know. The ones, who know, know it right. But the ones, who do not know, know nothing. Just like the world’s wealth distribution, it is an unbalanced distribution of knowledge

6 Suppose you are a QA member in a software company. What activities will you perform?

Software quality assurance analysts and software quality testers both play an integral role in the software testing process. Software quality analysts must concentrate on delivering consistent quality across the software development life cycle (SDLC) of the company, while managing procedures, process, standards and policies; whereas a software quality tester is responsible for ensuring the overall quality of the software products.

The following points depict how software QA and testing activities should be organized:

Start with process.

* Create an SDLC that the whole company is expected to follow.

* Decide how the software quality assurance and software quality testing activities will be managed.

Group acceptance and agreement

* Every key member of the SDLC should agree, must participate, and needs to acknowledge the process that was set in the above step.

Formalize documentation

o Dedicate a specific location where all documentation will be stored.

o Communicate this location and the process of creating documentation to all who will need to access/perform it.

Establish metrics

o Software quality assurance analysts should be in charge of creating audits and reports.

o Software quality analysts should be responsible only for testing reports and projections.

Review and re-establish process

o Review all software quality assurance and testing activities and put together a list of "lessons learned" to be reviewed against the SDLC.

Following these five steps keeps the responsibilities of software QA analysts formalized and easily managed. Remember also that although silos may help software QA and testers stay productive, the silo effect should be kept to a minimum on the enterprise-wide scale.