0% found this document useful (0 votes)
10 views10 pages

Solution

THEORY EXAMINATION 20L3-18 SOFTWARE ENGINEERING solution aktu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views10 pages

Solution

THEORY EXAMINATION 20L3-18 SOFTWARE ENGINEERING solution aktu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

SOLUTION

B.TECH
THEORY EXAMINATION 20L3-18
SOFTWARE ENGINEERING
1. Attempt all questions in brief.
a) What do you understand by software crisis?
Software Crisis is a term used in computer science for the difficulty of writing
useful and efficient computer programs in the required time .software crisis was due
to using same workforce, same methods, same tools even though rapidly increasing
in software demand, complexity of software and software challenges. With increase
in the complexity of software, many software problems arise because existing
methods were insufficient.
b) What are different software quality attributes?software Quality Attributes are
features that facilitate the measurement of performance of a software product by
Software Testing professionals, and include attributes such as availability,
interoperability, correctness, reliability, learnability, robustness, maintainability,
readability, extensibility, testability, efficiency, and portability. High scores
in Software Quality Attributes enable software architects to guarantee that a
software application will perform as the specifications provided by the client.
c) Write the difference between verification and validation.
Verification is the process of checking that a software achieves its goal without any
bugs. It is the process to ensure whether the product that is developed is right or not.
It verifies whether the developed product fulfills the requirements that we have.
Verification is static testing.
Verification means Are we building the product right?
Validation is the process of checking whether the software product is up to the
mark or in other words product has high level requirements. It is the process of
checking the validation of product i.e. it checks what we are developing is the right
product. it is validation of actual and expected product. Validation is the dynamic
testing.
d) What is Decision Tree?
what is decision table
A decision table is a brief visual representation for specifying which actions to perform
depending on given conditions. The information represented in decision tables can also be
represented as decision trees or in a programming language using if-then-else and switch-
case statements.
A decision table is a good way to settle with different combination inputs with their
corresponding outputs and is also called a cause-effect table. The reason to call cause-effect
table is a related logical diagramming technique called cause-effect graphing that is
basically used to obtain the decision table.
Importance of Decision Table:
• Decision tables are very much helpful in test design techniques.
• It helps testers to search the effects of combinations of different inputs and other
software states that must correctly implement business rules.
• It provides a regular way of starting complex business rules, that is helpful for
developers as well as for testers.
• It assists in the development process with the developer to do a better job. Testing
with all combinations might be impractical.
• A decision table is basically an outstanding technique used in both testing and
requirements management.
• It is a structured exercise to prepare requirements when dealing with complex
business rules.
• It is also used in model complicated logic.

a) What is design? Describe the difference between conceptual design and technical
design.
Software design is a process to convert the user requirements into client
requirements user interface form, that helps the software developer in coding and
implementation. The software design deals with portraying the client’s requirement
which is described in Software Requirement Specification (SRS) document into a
user interface form.
To transform requirements into a working system designers must satisfy both
customers and therefore the system builders. The customers should understand what
the system is to try to do. At an equivalent time, the system builders must
understand how to try to. To accomplish the design is split into two parts as shown
in the figure below and is named as the 2 parts iterative process. A software design
has two parts :
1. Conceptual Design :
Conceptual design is an initial/starting phase in the process of planning, during
which the broad outlines of function and sort of something are coupled. It tells the
customers that what actually the system will do. An example of Conceptual design
is given in the given figure :

b)
c) Conceptual Design

2. Technical Design :
A Technical design is a phase in which the event team writes the code and describes
the minute detail of either the whole design or some parts of it. It tells the designers
that what actually the system will do. An example of Technical design is given in
the given figure :
d)
e) Technical Design

c) Differentiate between Top-Down and Bottom-Up design approach


Top-Down Design Model:
In the top-down model, an overview of the system is formulated without going into detail
for any part of it. Each part of it then refined into more details, defining it in yet more
details until the entire specification is detailed enough to validate the model. if we glance at
a haul as a full, it’s going to appear not possible as a result of it’s so complicated For
example: Writing a University system program, writing a word processor. Complicated
issues may be resolved victimization high down style, conjointly referred to as Stepwise
refinement where,
1. We break the problem into parts,
2. Then break the parts into parts soon and now each of parts will be easy to do.

Advantages:
• Breaking problems into parts help us to identify what needs to be done.
• At each step of refinement, new parts will become less complex and therefore
easier to solve.
• Parts of the solution may turn out to be reusable.
• Breaking problems into parts allows more than one person to solve the problem.

Bottom-Up Design Model:


In this design, individual parts of the system are specified in detail. The parts are linked to
form larger components, which are in turn linked until a complete system is formed.
Object-oriented language such as C++ or java uses a bottom-up approach where each object
is identified first.
Advantage:
• Make decisions about reusable low-level utilities then decide how there will be
put together to create high-level construct. ,
• The contrast between Top-down design and bottom-up design.

d) Explain software Quality Assurance


Software Quality Assurance (SQA) is simply a way to assure quality in the software. It is
the set of activities which ensure processes, procedures as well as standards are suitable for
the project and implemented correctly.
Software Quality Assurance is a process which works parallel to development of software.
It focuses on improving the process of development of software so that problems can be
prevented before they become a major issue. Software Quality Assurance is a kind of
Umbrella activity that is applied throughout the software process.
Software Quality Assurance has:
1. A quality management approach
2. Formal technical reviews
3. Multi testing strategy
4. Effective software engineering technology
5. Measurement and reporting mechanism

Major Software Quality Assurance Activities:

1. SQA Management Plan:


Make a plan for how you will carry out the sqa through out the project. Think
about which set of software engineering activities are the best for project. check
level of sqa team skills.

2. Set The Check Points:


SQA team should set checkpoints. Evaluate the performance of the project on
the basis of collected data on different check points.

3. Multi testing Strategy:


Do not depend on a single testing approach. When you have a lot of testing
approaches available use them.

4. Measure Change Impact:


The changes for making the correction of an error sometimes re introduces more
errors keep the measure of impact of change on project. Reset the new change to
change check the compatibility of this fix with whole project.
5. Manage Good Relations:
In the working environment managing good relations with other teams involved
in the project development is mandatory. Bad relation of sqa team with
programmers team will impact directly and badly on project. Don’t play
politics.

e) What is Pseudocode? How it is different from Algorithm.

BASIS FOR
ALGORITHM PSEUDOCODE
COMPARISON

Comprehensibility Quite hard to understand Easy to interpret

Uses Complicated Combination of programming


programming language language and natural language

Debugging Moderate Simpler

Ease of construction Complex Easier

i) What is Adaptive and Corrective Maintenance?


Corrective maintenance deals with the repair of faults or defects found in day-today
system functions. A defect can result due to errors in software design, logic and coding.
Design errors occur when changes made to the software are incorrect, incomplete,
wrongly communicated, or the change request is misunderstood. Logical errors result
from invalid tests and conclusions, incorrect implementation of design specifications,
faulty logic flow, or incomplete test of data. All these errors, referred to as residual
errors, prevent the software from conforming to its agreed specifications. Note that the
need for corrective maintenance is usually initiated by bug reports drawn by the users.
Adaptive maintenance is the implementation of changes in a part of the system, which
has been affected by a change that occurred in some other part of the system. Adaptive
maintenance consists of adapting software to changes in the environment such as the
hardware or the operating system. The term environment in this context refers to the
conditions and the influences which act (from outside) on the system. For example,
business rules, work patterns, and government policies have a significant impact on the
software system.

Q2.
a) Explain Spiral Model? Also write it's advantages and disadvantages
Spiral model is also known as Meta Model because it subsumes all the other SDLC models.
In its diagrammatic representation, it looks like a spiral with many loops, that’s the reason
it’s called as Spiral. Each loop of the spiral is called a Phase of the software development
process. This model has capability to handle risks.
These are following advantages and disadvantages of using Spiral Model
Advantages of Spiral Model:
1. Software is produced early in the software life cycle.
2. Risk handling is one of important advantages of the Spiral model, it is best
development model to follow due to the risk analysis and risk handling at every
phase.
3. Flexibility in requirements. In this model, we can easily change requirements at
later phases and can be incorporated accurately. Also, additional Functionality
can be added at a later date.
4. It is good for large and complex projects.
5. It is good for customer satisfaction. We can involve customers in the
development of products at early phase of the software development. Also,
software is produced early in the software life cycle.
6. Strong approval and documentation control.
7. It is suitable for high risk projects, where business needs may be unstable. A
highly customized product can be developed using this.
Disadvantages of Spiral Model:
1. It is not suitable for small projects as it is expensive.
2. It is much more complex than other SDLC models. Process is complex.
3. Too much dependable on Risk Analysis and requires highly specific expertise.
4. Difficulty in time management. As the number of phases is unknown at the start
of the project, so time estimation is very difficult.
5. Spiral may go on indefinitely.
6. End of the project may not be known early.
7. It is not suitable for low risk projects.
8. May be hard to define objective, verifiable milestones. Large numbers of
intermediate stages require excessive documentation.

b) Explain CMM Model. Compare ISO and CMM.


ISO 9000:
It is a set of International Standards on quality management and quality assurance
developed to help companies effectively document the quality system elements needed to
an efficient quality system.
SEICMM:
SEI (Software Engineering Institute), Capability Maturity Model (CMM) specifies an
increasing series of levels of a software development organization.
Difference between ISO9000 and SEI-CMM:

ISO 9000 SEICMM

ISO 9000 is a set of international standards on SEI (Software Engineering Institute),


quality management and quality assurance Capability Maturity Model (CMM)
developed to help companies effectively specifies an increasing series of levels
document the quality system elements needed to of a software development
an efficient quality system. organization.

Focus on the software supplier to


Focus is customer supplier relationship, improve its interval processes to
attempting to reduce customer’s risk in choosing achieve a higher quality product for
a supplier. the benefit of the customer.

It is created for hard goods manufacturing


industries. It is created for software industry.

ISO9000 is recognized and accepted in most of SEICMM is used in USA, less widely
the countries. elsewhere.

CMM provides detailed and specific


It specifies concepts, principles and safeguards definition of what is required for
that should be in place. given levels.

This establishes one acceptance level. It assesses on 5 levels.

Its certification is valid for three years. It has no limit on certification.

It focuses on inwardly processes. It focus outwardly.

It has 5 levels:

(a). Initial
(b). Repeatable
(c). Defined
(d). Managed
(e). Optimized
It has no level.
ISO 9000 SEICMM

It is basically an audit. It is basically an appraisal.

It is open to multi sector. It is open to IT/ITES.

Follow set of standards to make success It emphasizes a process of continuous


repeatable. improvement.

Compare the relative advantages and disadvantages of function-oriented design and


objectoriented design.
Function Oriented Design :
Function oriented design is the result of focusing attention to the function of the program.
This is based on the stepwise refinement. Stepwise refinement is based on the iterative
procedural decomposition. Stepwise refinement is a top-down strategy where a program is
refined as a hierarchy of increasing levels of details.
We start with a high level description of what the program does. Then, in each step, we take
one part of our high level description and refine it. Refinement is actually a process of
elaboration. The process should proceed from a highly conceptual model to lower level
details. The refinement of each module is done until we reach the statement level of our
programming language.
2. Object Oriented Design :
Object oriented design is the result of focusing attention not on the function performed by
the program, but instead on the data that are to be manipulated by the program. Thus, it is
orthogonal to function -oriented design. Object-oriented design begins with an examination
of the real world “things”. These things are characteristics individually in terms of their
attributes and behavior.
Objects are independent entities that may readily be changed because all state and
representation information is held within the object itself. Object may be distributed and
may execute sequentially or in parallel. Object oriented technology contains following three
keywords –
1. Objects –
Software package are designed and developed to correspond with real world
entities that contain all the data and services to function as their associated
entities messages.
2. Communication –
Communication mechanisms are established that provide the means by which
object work together.
3. Methods –
Methods are services that objects perform to satisfy the functional requirements
of the problem domain. Objects request services of the other objects through
messages.
Difference Between Function Oriented Design and Object Oriented Design :
COMPARISON FUNCTION ORIENTED OBJECT ORIENTED
FACTORS DESIGN DESIGN
The basic abstractions are
not the
The basic abstractions,
real world functions but are
which
Abstraction the data
are given to the user, are real
abstraction where the real
world functions.
world
entities are represented.
Function are grouped
together on
Functions are grouped the basis of the data they
Function together by which a higher operate
level function is obtained. since the classes are
associated with
their methods.
In this approach the state
information is not
represented is not
In this approach the state
represented in a centralized
State information is often
memory
information represented in a centralized
but is implemented or
shared memory.
distributed
among the objects of the
system.
Approach It is a top down approach. It is a bottom up approach.
Begins by considering the Begins by identifying
Begins basis use case diagrams and the objects and
scenarios. classes.

COMPARISON FUNCTION ORIENTED OBJECT ORIENTED


FACTORS DESIGN DESIGN
In function oriented design
We decompose in class
Decompose we decompose in
level.
function/procedure level.
This approach is mainly
This approach is mainly
used for
used
Use evolving system which
for computation sensitive
mimics a
application.
business or business case.
Q4. What do you mean by a good software design? Also discuss the criteria for a software
design to enhance the quality of software.
Software Design is also a process to plan or convert the software requirements into a step
that are needed to be carried out to develop a software system. There are several principles
that are used to organize and arrange the structural components of Software design.
Software Designs in which these principles are applied affect the content and the working
process of the software from the beginning.
These principles are stated below :
Principles Of Software Design :
1. Should not suffer from “Tunnel Vision” –
While designing the process, it should not suffer from “tunnel vision” which
means that is should not only focus on completing or achieving the aim but on
other effects also.
2. Traceable to analysis model –
The design process should be traceable to the analysis model which means it
should satisfy all the requirements that software requires to develop a highquality product.
3. Should not “Reinvent The Wheel” –
The design process should not reinvent the wheel that means it should not waste
time or effort in creating things that already exist. Due to this, the overall
development will get increased.
4. Minimize Intellectual distance –
The design process should reduce the gap between real-world problems and
software solutions for that problem meaning it should simply minimize
intellectual distance.
5. Exhibit uniformity and integration –
The design should display uniformity which means it should be uniform throughout
the process without any change. Integration means it should mix or combine all
parts of software i.e. subsystems into one system.
6. Accommodate change –
The software should be designed in such a way that it accommodates the change
implying that the software should adjust to the change that is required to be done as
per the user’s need.
7. Degrade gently –
The software should be designed in such a way that it degrades gracefully which
means it should work properly even if an error occurs during the execution.
8. Assessed or quality –
The design should be assessed or evaluated for the quality meaning that during the
evaluation, the quality of the design needs to be checked and focused on.
9. Review to discover errors –
The design should be reviewed which means that the overall evaluation should be
done to check if there is any error present or if it can be minimized.
10. Design is not coding and coding is not design –
Design means describing the logic of the program to solve any problem and coding
is a type of language that is used for the implementation of a design

You might also like