Assignment 3
Assignment 3
Assignment 3
ASSIGNMENT 3
SUBMITTED TO:
SUBMITTED BY :
ANJANI KUNWAR
RA1803A10
10807973
B.TECH(CSE)-H
Q1. Consider a program containing many modules. If a global variable x
must be used to share data between two modules A and B, How would
you design the modules to minimize coupling ?
ANS:
- Can't reuse calling module without including the called one "they
are inextricably linked" - Schach .They can hardly be considered
separate modules at all!
- Remember the module that takes an integer arg and prints the
corresponding error message?
Problem: one module must know too much about the other (i.e. its
internal logic and structure)
ANS:
Model Type Strengths Weaknesses
ANS:
The problems that arise when requirements for a software system are poorly
understood are widely recognized and well documented in a number of books and
articles .Still, the problems persist, and, in my estimation, will never totally
disappear. Here are a few reasons for this.
• Pushing the Technology Envelope. When systems are expanding into areas
of new technology, the "requirements" are frequently being discovered as
development proceeds.
• Building Product Platforms. When it is the objective of a project to develop
a platform to support a family of products over an extended period of time,
seldom are all the members of this family defined yet. Many are little more
than a glimmer in some marketing VP's eye. In situations like this,
requirements are never well understood at the beginning, nor do they remain
static over time.
Schedules
Size/Complexity
Of issue here is not that systems are large or complex, but that their true size and
complexity are often poorly understood. As long as this is the case, schedule
projections suffer and a mild sense of being out of control persists. It is in the
analysis phase that the size/complexity question must be answered, and the
analysis method should have two important characteristics to deal with this. First is
the ability to scale up for large and complex problems if necessary. Second is the
ability to factor and reduce the size and complexity to their smallest possible
dimensions. The Domain Chart of OOA is a valuable tool for doing this and its use
is described in the next section.
Engineering Skills
The design approach associated with OOA (Recursive Design [6]) also offers
opportunities to begin some design and implementation tasks early in some areas,
often while analysis is still proceeding in other areas.
Silver Bullet Syndrome
Perhaps the most insidious real-world problem when introducing new software
methods is the over zealous and unrealistic expectation that the next new method
(object-oriented anything, these days) will prove to be the long awaited "silver
bullet" with which the dreaded software development dragon can be slayed.
ANS:
A consistent user interface may be impossible to produce for complex systems with a large
number of interface options. In such systems, there is a wide imbalance between the extent
of usage of different commands so for frequently used commands, it is desirable to have
short cuts. Unless all commands have short cuts, then consistency is impossible.
It may also be the case in complex systems that the entities manipulated are of quite
different types and it is inappropriate to have consistent operations on each of these types.
An example of such a system is an operating system interface. Even MacOS which has
attempted to be as consistent as possible has inconsistent operations that are liked by users.
For example, to delete a file it is dragged to the trash but dragging a disk image to the trash
does not delete it but unmounts that disk.
ANS:
Verification and Validation (also known simply as V&V) are two parts of the same
software package. They are used in software project management, software testing, and
software engineering. It is the process by which a software system meets certain
specifications. It is also the process by which a software system fulfils the intended
purpose of its creation. It is also commonly known as software quality control.
Validation is the portion of the software checks and balances that checks that the product
design satisfies or fits the use for which it was intended. This is known as high level
checking (basically, informing the system that it built the right product). It carries out this
task using dynamic testing and a variety of other forms of review. Dynamic testing
specifically examines the physical response from the system to those variables that are not
constant and, in time, are prone to change. In a basic sense, validation ensures that the
product meets the needs of the user. It also ensures that the certain specifications were, in
fact, correct from the beginning of the program. Basically, validation lets you know if you
have built the right thing.
Verification is the portion of the software checks and balances that evaluates the software
to determine whether the products that are found in a given development phase satisfy the
conditions that were put forth at the beginning of that particular phase. In a basic sense,
verification ensures that the particular product has been built according to the requirements
and design specifications that were introduced at the beginning of the program. Quite
frankly, verification lets you know that the correct object was built correctly.
Beyond the software community, the definitions of verification and validation are
somewhat similar. In the modelling and simulation community, validation is the process by
which the degree of accuracy of a model, simulation, or federation of models and
simulations and their associated data can be determined. It also determines whether these
models, simulations, or federations therein are accurate representations of the real world
from the perspective of the use that was intended for the model, etc. Verification, on the
other hand, is the process by which the system determines whether a computer model,
simulation, or federation of models and simulations implementations and the content
associated with that data represents the conceptual descriptions and specifications of the
developer.
Verification:
1.It is a Quality improvement process.
3. It is conducted by QA team.
4. Verification is Correctness.
Validation:
3. Validation is Truth.
ANS:
Object-oriented systems should be maintainable as the objects are independent. They may
be understood and modified as stand-alone entities. Changing the implementation of an
object or adding services should not affect other system objects. Because objects are
associated with things, there is often a clear mapping between real-world entities (such as
hardware components) and their controlling objects in the system. This improves the
understandability and hence the maintainability of the design.
Objects are potentially reusable components because they are independent encapsulations
of state and operations. Designs can be developed using objects that have been created in
previous designs. This reduces design, programming and validation costs. It may also lead
to the use of standard objects (hence improving design understandability) and reduces the
risks involved in software development.