Sie sind auf Seite 1von 7

B. Tech.

(CS)-VI A
SET: 4 ECS-602: Software Engineering
Time: 3 Hrs. MM: 100
Note: Attempt any two part from each question. All question carries equal marks.

1. a) What is software? List out the important characteristics of software.
Ans.:- Software is a set of instructions of computer programs that when executed provide desired
function and performance. It is both a process and a product. To gain an understanding of
software, it is important to examine the characteristics of software, which differ considerably
from those of hardware.
Software Characteristic
1). Software is developed or engineered, it is not manufactured.
Unlike hardware, software is logical rather than physical. It has to be designed well before
producing it. In spite of availability of many automated software development tools, it is the skill
of the individual, creativity of the developers and proper management by the project manager
that counts for a good software product.
2). Software does not wear out.
The hardware components start deteriorating they are subjected to environmental maladies
such as dust, vibration, temperature etc. and at some point of time they tend to breakdown. The
defected components can then be traced and replaced.
3) Most software is custom-built, rather than being assembled from existing components
Most of the engineered products are first designed before they are manufactured. Designing
includes identifying various components for the product before they are actually assembled.
Here several people can work independently on these components thus making the
manufacturing system highly flexible. in software , breaking a program into modules is a difficult
task, since each module is highly interlinked with other modules.
b) Explain the waterfall model of software process. What are its limitations?
Ans.:-It is the simplest and the widely used process model for software development. Here the
phases involved in the software development are organized in a linear order.
In a typical waterfall model, a project begins with the feasibility analysis. on successfully
demonstrating the feasibility of a project, the requirements analysis and project planning begins.
The design starts after completing the requirements analysis and coding starts after completing
the design phase.
The limitations of waterfall model are:
nThe model states that the entire set of requirements should be frozen before development
begins. This is possible for small projects, but is difficult for large projects where the exact
requirements may not be known in advance.
nThe waterfall model requires formal documents after each phase. This is not possible in GUI-
based applications where the documentation will be very extensive.
nThe customer sees the software only at the end of the development phase. As a result, the
customer cannot suggest any changes until the product is delivered.
c) Describe the three generic views of software engineering.
Ans.:- The software engineering as such can be categorized in to three generic phases, regardless
of application area, project size or complexity.
The three generic phases of software engineering are :-
The definition phase
The development phase
Formatted: Bullets and Numbering
The maintenance phase
The definition phase developer attempts to identify what information is to be processed, what
function and performance are desired, what system behavior can be expected, what interfaces
are to be established, what design constraints exists, and what validation criteria are required to
define a successful system.
The development phase attempts to define how data are to be structured, how function is to be
implemented as a software architecture, how produces are to be implemented, how design will
be translated, into a programming language, how testing will be performed.
The maintenance phase focus on change that is associated with the software.
Correction:- it is likely that are customers will find errors or defects in the software in spite of
quality assurance activities.
Adaptations As time progress, it is likely that the original environment for which the software
was developed is likely to change.
Enhancement as software is used, the customer will recognize the need for additional
functional requirements that will benefit him.
Prevention computer software deteriorates due to change. so, preventive maintenance, often
called software reengineering must be conducted in order to make changes to the computer
software more easily.
2. a) List out the important characteristics of good SRS.
Ans.:- A good SRS should be:
nComplete
nConsistent
nAccurate
nModifiable
nRanked
nTestable
nTraceable
nUnambiguous
nValid
b) Give the outline structure of SRS.
Ans.:- The outline of SRS structure is:
Introduction
1.1 Purpose
1.2 Document conventions
1.3 Intended audience
1.4 Additional information Formatted: Bullets and Numbering
1.5 Contact information/SRS team members
1.6 References
Overall Description
2.1 Product perspective
2.2 Product functions
2.3 User classes and characteristics
2.4 Operating environment
2.5 User environment
2.6 Design/implementation constraints
2.7 Assumptions and dependencies
External Interface Requirements
3.1 User interfaces
3.2 Hardware interfaces
3.3 Software interfaces
3.4 Communication protocols and interfaces
System Features
4.1 System feature A
4.1.1 Description and priority
4.1.2 Action/result
4.1.3 Functional requirements
4.2 System feature B
Other Nonfunctional Requirements
5.1 Performance requirements
5.2 Safety requirements
5.3 Security requirements
5.4 Software quality attributes
5.5 Project documentation
5.6 User documentation
c) Why is design an important phase in software development life cycle? Describe
design process.
Ans.:- Design is an important phase in the software development life cycle because it bridges the
requirements specification and the final solution for satisfying the requirements.
The software design is an activity which is after the requirements analysis activity. This phase
begins when the requirements document for the system to developed is available. Design is an
important phase in the software development life cycle, it bridges the requirements specification
and the final solution for satisfying the requirements.
The design process for the software has two levels:-
1. System design or top-level design
2. Detailed design or logic design
System design
Using this, the modules that are needed for the system are decided, the specifications of these
modules and how these modules need to be connected are also decided.
Detailed design
Using this, the internal design of the modules are decided or how the specifications of the
modules can be satisfied are decided. This type of design essentially expands the system design
to contain more detailed description of the processing logic and data structures so that the
designs is sufficiently complete for coding.
3. a) What is software testing ? Describe the two ways of testing any engineered
software product.
Ans.:- Software testing is the process of testing the functionality and correctness of software by
running it.
The two ways of testing any engineered software product :-
1) White-Box Testing
2) Black-Box testing
Black-box testing
It is also known as functional testing. Knowing the specified function that the product has been
designed to perform, tests can be conducted to demonstrate that each function is fully
operational
Example :- Boundary value analysis.
White Box Testing
It is also known as structural testing. Knowing the internal working of product, test can be
conducted to ensure that all internal operations perform according to specification that all
internal components have been adequately.
EXAMPLE :- basic path testing.
b) What is the difference between verification and validation ?
Ans.:- Verification is a set of activities that ensures that the software correctly implements a
specified function while Validation is a set of activities that ensures that the software that has
been built, is traceable to the customer requirements.
c) Describe the different kinds of software development team structure.
Ans.:- The different kinds of software development team structure are:
nDemocratic decentralized team
nControlled centralized team
Controlled decentralized team
Democratic decentralized team
It consists of ten or few number of programmers.
The goals of the group are set by consensus
Formatted: Bullets and Numbering
Every member is considered for taking major decision
Group leadership rotates among group member
Controlled centralized team
It consists of a chief programmer, who is responsible for all the major technical decisions of the
project. He also does most of the design activities and allocates coding part to each and every
member of the team.
Under him, he has a backup programmer, program librarian, and programmers
The backup programmer helps the chief in making decisions and takes over the role of chief in
absence of the chief programmer.
The program librarian is responsible for maintaining the documents and other communication
related work.
Controlled decentralized team
It combines the strength of the democratic and chief programmer teams
It consists of a project leader who has a group of senior programmers under him and a group
of junior programmers under a senior programmer.
The communication between the senior and junior programmers are like ego-less team,
This structure is best suited for every simple projects or research-type works.
4. a) What is COCOMO model? Explain the basic COCOMO model.
Ans.:-The COCOMO model predicts the effort and duration of a project based on inputs relating
to the size of the resulting system and a number of cost drivers that affect productivity.
THE BASIC COCOMO MODEL
Basic COCOMO model estimates the software development effort using only a single predictor
variable and three software development modes. Basic COCOMO is good for quick, early, rough,
order of magnitude estimates of software costs, but its accuracy is necessarily limited because of
its lack of factors which have a significant influence on software costs. The basic equation for the
COCOMO model is about the effort estimate in persons month required develop a project and
the KLOC, the number of delivered lines of code for the project.
b) Define the terms: quality, quality assurance and quality control.
Ans.:- QUALITY:- Software quality is conformance to the explicitly stated functional and
performance requirements, explicitly documented development standards, and implicit
characteristics that are expected of all professionally developed software.
QUALITY ASSURANCE :- Quality assurance is an auditing and reporting function of management.
QUALITY CONTROL :- Quality control consists of a series of activities like inspections, reviews, and
tests, which are carried out during the entire life cycle of software, so that each work product
meets the requirements, placed upon it.
c) Mention the objectives of formal technical review.
Ans.:- This is a software quality assurance activity that is performed by software engineers.
OBJECTIVES
To detect the errors in functions, logic or implementation found in software.
To verify that the software under review meets its requirements.
To ensure that the software has been represented according to predefined standards
To achieve software with consistent quality and on time
To make projects more manageable.
It acts as a training ground for junior engineers to observe different approaches to software
analysis, design, implementation
FTR includes walkthroughs, inspections, round-robin reviews.
5. Write short notes on:
A. a) Software engineering
Ans.:-Software engineering is a discipline. It uses the existing tools and methods of software
development and systematizes the entire process of software development. There are a number
of formal definitions for software engineering, given by experts in the field. However for the
purpose of understanding , we shall see some of them.
The application of a systematic, disciplined, quantifiable approach to the development,
operation, and maintenance of software, that is , the application of engineering to software .
b) The spiral model of software process
Ans.:-The activities in this model can be organized like a spiral, that has many cycles. Typically
the inner cycles represent the early phase of requirement analysis along with the prototyping
and the outer spirals represent the classic software lifecycle.
This model has been divided into four quadrants, each quadrant representing a major activity
like planning, risk analysis engineering and customer evaluation. The software process cycle
begins with the planning activity represented by the first quadrant
of this model. Each cycle here begins with the identification of objectives for that cycle, the
alternatives and constraints associated with that objective.
c) Programming tools.
Ans.:-programming tools is used to reduce time spent on the development of programs.
The tools which used in programming tools
1) source-code tools
- editing tools, these relate to the editing of source code
- browsing tools, helps to view the source code
The source-code beautifiers and templates not only makes a program look consistent but also
standardize indentation styles, align variable declarations and format comments.
2) Executable code tools
Tools that are required for working with executable codes. it helps in code creation, debugging
and testing
3) code creation has four major tools which help the developer in converting the source code into
executable code :
4) Debugging tools help in debugging the code.
5) testing tools help in tracing the code errors
B. Outline programming guidelines with regard to;
i) Control structures ii) Algorithms
iii) Data structures and iv) General guidelines
i) Control Structures :- Many of the control structures for a program component are given by the
architecture and design of a system. And the given design is translated in to code. In case of
some architecture, such as implicit invocation and object-oriented design, control is based on the
system states and changes in variables.
ii) Algorithms:- The program design often specifies a class of algorithms to be used in coding. For
example, the design may tell the programmer to use binary search technique. Even though, a
programmer has lot of flexibility in converting the algorithm to code, it depends on the
constraints of the implementation language and hardware.
iii) Data Structures :- Data structures can influence the organization and flow of a program. In
some cases , it can even influence the choice of programming language. For example, LISP is a
language for list processing. It is so designed that it contains structures that make it much easier
for handling lists than other languages.
iv) General Guidelines :- there are several strategies that are useful in preserving the design
quality of a program:-
Localization input and output :- those parts of a program that read input or generate output
are highly specialized and must reflect characteristics of the underlying hardware and software .
Pseudo-code can be used for transforming the design to code through a chosen programming
language.
Revise the design and rewrite the code until one is completely satisfied with the result.
Reuse code components if possible.
Abhijit Pandey

Das könnte Ihnen auch gefallen