You are on page 1of 12

Q1.

PART A-

1. d) Nine
2. d) All mentioned above
3. c) Testing
4. c) New application development projects
5. a) Requirement gathering
6. a) Feasibility Study

PART B-

1. State Chart
2. Black box testing
3. Attributes
4. Cardinality
5. System Failure
6. Four (4)

Q2.

Software engineering is a systematic engineering approach to software development. A software engineer


is a person who applies the principles of software engineering to design, develop, maintain, test, and
evaluate computer software.

Software engineering is a detailed study of engineering to the design, development and maintenance of
software.

Software engineering is defined as a process of analyzing user requirements and then designing, building,
and testing software application which will satisfy those requirements.

Applications:-

1. System Software – 
System Software is necessary to manage the computer resources and support the execution of
application programs. Software like operating systems, compilers, editors and drivers, etc., come
under this category. A computer cannot function without the presence of these. Operating systems
are needed to link the machine-dependent needs of a program with the capabilities of the machine on
which it runs. Compilers translate programs from high-level language to machine language. 
 
2. Networking and Web Applications Software – 
Networking Software provides the required support necessary for computers to interact with each
other and with data storage facilities. The networking software is also used when software is running
on a network of computers (such as the World Wide Web). It includes all network management
software, server software, security and encryption software, and software to develop web-based
applications like HTML, PHP, XML, etc. 
 
3. Embedded Software – 
This type of software is embedded into the hardware normally in the Read-Only Memory (ROM) as
a part of a large system and is used to support certain functionality under the control conditions.
Examples are software used in instrumentation and control applications like washing machines,
satellites, microwaves, etc. 
 
4. Reservation Software – 
A Reservation system is primarily used to store and retrieve information and perform transactions
related to air travel, car rental, hotels, or other activities. They also provide access to bus and railway
reservations, although these are not always integrated with the main system. These are also used to
relay computerized information for users in the hotel industry, making a reservation and ensuring
that the hotel is not overbooked. 
 
5. Business Software – 
This category of software is used to support business applications and is the most widely used
category of software. Examples are software for inventory management, accounts, banking,
hospitals, schools, stock markets, etc. 
 
6. Entertainment Software – 
Education and entertainment software provides a powerful tool for educational agencies, especially
those that deal with educating young children. There is a wide range of entertainment software such
as computer games, educational games, translation software, mapping software, etc. 
 
7. Artificial Intelligence Software – 
Software like expert systems, decision support systems, pattern recognition software, artificial neural
networks, etc. come under this category. They involve complex problems which are not affected by
complex computations using non-numerical algorithms. 
 
8. Scientific Software – 
Scientific and engineering software satisfies the needs of a scientific or engineering user to perform
enterprise-specific tasks. Such software is written for specific applications using principles,
techniques, and formulae specific to that field. Examples are software like MATLAB, AUTOCAD,
PSPICE, ORCAD, etc. 
 
9. Utilities Software – 
The programs coming under this category perform specific tasks and are different from other
software in terms of size, cost, and complexity. Examples are anti-virus software, voice recognition
software, compression programs, etc. 
 
10. Document Management Software – 
Document Management Software is used to track, manage and store documents in order to reduce
the paperwork. Such systems are capable of keeping a record of the various versions created and
modified by different users (history tracking). They commonly provide storage, versioning,
metadata, security, as well as indexing and retrieval capabilities. 
Q3.

Winston Royce introduced the Waterfall Model in 1970.This model has five phases: Requirements
analysis and specification, design, implementation, and unit testing, integration and system testing, and
operation and maintenance. The steps always follow in this order and do not overlap. The developer must
complete every phase before the next phase begins. This model is named "Waterfall Model", because its
diagrammatic representation resembles a cascade of waterfalls.

1. Requirements analysis and specification phase: The aim of this phase is to understand the exact
requirements of the customer and to document them properly. Both the customer and the software
developer work together so as to document all the functions, performance, and interfacing requirement of
the software. It describes the "what" of the system to be produced and not "how."In this phase, a large
document called Software Requirement Specification (SRS) document is created which contained a
detailed description of what the system will do in the common language.

2. Design Phase: This phase aims to transform the requirements gathered in the SRS into a suitable form
which permits further coding in a programming language. It defines the overall software architecture
together with high level and detailed design. All this work is documented as a Software Design Document
(SDD).

3. Implementation and unit testing: During this phase, design is implemented. If the SDD is complete, the
implementation or coding phase proceeds smoothly, because all the information needed by software
developers is contained in the SDD.

00:00/06:36

During testing, the code is thoroughly examined and modified. Small modules are tested in isolation
initially. After that these modules are tested by writing some overhead code to check the interaction
between these modules and the flow of intermediate output.

4. Integration and System Testing: This phase is highly crucial as the quality of the end product is
determined by the effectiveness of the testing carried out. The better output will lead to satisfied
customers, lower maintenance costs, and accurate results. Unit testing determines the efficiency of
individual modules. However, in this phase, the modules are tested for their interactions with each other
and with the system.

5. Operation and maintenance phase: Maintenance is the task performed by every user once the software
has been delivered to the customer, installed, and operational.

When to use SDLC Waterfall Model?

Some Circumstances where the use of the Waterfall model is most suited are:

o When the requirements are constant and not changed regularly.


o A project is short
o The situation is calm
o Where the tools and technology used is consistent and is not changing
o When resources are well prepared and are available to use.

Advantages of Waterfall model

o This model is simple to implement also the number of resources that are required for it is
minimal.
o The requirements are simple and explicitly declared; they remain unchanged during the entire
project development.
o The start and end points for each phase is fixed, which makes it easy to cover progress.
o The release date for the complete product, as well as its final cost, can be determined before
development.
o It gives easy to control and clarity for the customer due to a strict reporting system.

Disadvantages of Waterfall model

o In this model, the risk factor is higher, so this model is not suitable for more significant and
complex projects.
o This model cannot accept the changes in requirements during development.
o It becomes tough to go back to the phase. For example, if the application has now shifted to the
coding phase, and there is a change in requirement, It becomes tough to go back and change it.
o Since the testing done at a later stage, it does not allow identifying the challenges and risks in the
earlier phase, so the risk reduction strategy is difficult to prepare.

Q4.

#1) Requirement Gathering and Analysis

During this phase, all the relevant information is collected from the customer to develop a product as per
their expectation. Any ambiguities must be resolved in this phase only.

Business analyst and Project Manager set up a meeting with the customer to gather all the information
like what the customer wants to build, who will be the end-user, what is the purpose of the product.
Before building a product a core understanding or knowledge of the product is very important.

For Example, A customer wants to have an application which involves money transactions. In this case,
the requirement has to be clear like what kind of transactions will be done, how it will be done, in which
currency it will be done, etc.

Once the requirement gathering is done, an analysis is done to check the feasibility of the development of
a product. In case of any ambiguity, a call is set up for further discussion.

Once the requirement is clearly understood, the SRS (Software Requirement Specification) document is
created. This document should be thoroughly understood by the developers and also should be reviewed
by the customer for future reference.

#2) Design
In this phase, the requirement gathered in the SRS document is used as an input and software architecture
that is used for implementing system development is derived.

#3) Implementation or Coding

Implementation/Coding starts once the developer gets the Design document. The Software design is
translated into source code. All the components of the software are implemented in this phase.

#4) Testing

Testing starts once the coding is complete and the modules are released for testing. In this phase, the
developed software is tested thoroughly and any defects found are assigned to developers to get them
fixed.

Retesting, regression testing is done until the point at which the software is as per the customer’s
expectation. Testers refer SRS document to make sure that the software is as per the customer’s standard.

#5) Deployment

Once the product is tested, it is deployed in the production environment or first UAT (User Acceptance
testing) is done depending on the customer expectation.

In the case of UAT, a replica of the production environment is created and the customer along with the
developers does the testing. If the customer finds the application as expected, then sign off is provided by
the customer to go live.

#6) Maintenance

After the deployment of a product on the production environment, maintenance of the product i.e. if any
issue comes up and needs to be fixed or any enhancement is to be done is taken care by the developers .

Q5.

# Black Box Testing :-

Black box testing is a technique of software testing which examines the functionality of software without
peering into its internal structure or coding. The primary source of black box testing is a specification of
requirements that is stated by the customer.

In this method, tester selects a function and gives input value to examine its functionality, and checks
whether the function is giving expected output or not. If the function produces correct output, then it is
passed in testing, otherwise failed. The test team reports the result to the development team and then tests
the next function. After completing testing of all functions if there are severe problems, then it is given
back to the development team for correction.
Generic steps of black box testing

o The black box test is based on the specification of requirements, so it is examined in the
beginning.
o In the second step, the tester creates a positive test scenario and an adverse test scenario by
selecting valid and invalid input values to check that the software is processing them correctly or
incorrectly.
o In the third step, the tester develops various test cases such as decision table, all pairs test,
equivalent division, error estimation, cause-effect graph, etc.
o The fourth phase includes the execution of all test cases.
o In the fifth step, the tester compares the expected output against the actual output.
o In the sixth and final step, if there is any flaw in the software, then it is cured and tested again.

# White Box Testing :-

The box testing approach of software testing consists of black box testing and white box testing. We are
discussing here white box testing which also known as glass box is testing, structural testing, clear box
testing, open box testing and transparent box testing. It tests internal coding and infrastructure of a
software focus on checking of predefined inputs against expected and desired outputs. It is based on inner
workings of an application and revolves around internal structure testing. In this type of testing
programming skills are required to design test cases. The primary goal of white box testing is to focus on
the flow of inputs and outputs through the software and strengthening the security of the software.

The term 'white box' is used because of the internal perspective of the system. The clear box or white box
or transparent box name denote the ability to see through the software's outer shell into its inner workings.

Developers do white box testing. In this, the developer will test every line of the code of the program. The
developers perform the White-box testing and then send the application or the software to the testing
team, where they will perform the black box testing and verify the application along with the
requirements and identify the bugs and sends it to the developer.

The developer fixes the bugs and does one round of white box testing and sends it to the testing team.
Here, fixing the bugs implies that the bug is deleted, and the particular feature is working fine on the
application.

Here, the test engineers will not include in fixing the defects for the following reasons:

o Fixing the bug might interrupt the other features. Therefore, the test engineer should always find
the bugs, and developers should still be doing the bug fixes.
o If the test engineers spend most of the time fixing the defects, then they may be unable to find the
other bugs in the application.

The white box testing contains various tests, which are as follows:

o Path testing
o Loop testing
o Condition testing
o Testing based on the memory perspective
o Test performance of the program

# Alpha testing:- is a type of acceptance testing, which is performed to identify all possible bugs/issues
before releasing the product to the end-user. Alpha test is a preliminary software field test carried out by a
team of users to find out the bugs that were not found previously by other tests. Alpha testing is to
simulate a real user environment by carrying out tasks and operations that actual user might perform.
Alpha testing implies a meeting with a software vendor and client to ensure that the developers
appropriately meet the client's requirements in terms of the performance, functionality, and durability of
the software.

Alpha testing needs lab environment, and usually, the testers are an internal employee of the organization.
This testing is called alpha because it is done early on, near the end of the software development, but
before beta testing.

# Beta Testing:- is a type of acceptance testing; it is the final test before shipping a product to the
customers. Beta testing of a product is implemented by "real users "of the software application in a "real
environment." In this phase of testing, the software is released to a limited number of end-users of the
product to obtain feedback on the product quality. It allows the real customers an opportunity to provide
inputs into the design, functionality, and usability of the product. These inputs are essential for the
success of the product. Beta testing reduces product failure risks and increases the quality of the product
through customer validation. Direct feedback from customers is a significant advantage of beta testing.
This testing helps to tests the software in a real environment. The experiences of the previous users are
forwarded back to the developers who make final changes before releasing the software product.

Q6.

RAD is a linear sequential software development process model that emphasizes a concise development
cycle using an element based construction approach. If the requirements are well understood and
described, and the project scope is a constraint, the RAD process enables a development team to create a
fully functional system within a concise time period.

RAD (Rapid Application Development) is a concept that products can be developed faster and of higher
quality through:

o Gathering requirements using workshops or focus groups


o Prototyping and early, reiterative user testing of designs
o The re-use of software components
o A rigidly paced schedule that refers design improvements to the next product version
o Less formality in reviews and other team communication

The various phases of RAD are as follows:

1.Business Modelling: The information flow among business functions is defined by answering questions
like what data drives the business process, what data is generated, who generates it, where does the
information go, who process it and so on.

2. Data Modelling: The data collected from business modeling is refined into a set of data objects
(entities) that are needed to support the business. The attributes (character of each entity) are identified,
and the relation between these data objects (entities) is defined.

3. Process Modelling: The information object defined in the data modeling phase are transformed to
achieve the data flow necessary to implement a business function. Processing descriptions are created for
adding, modifying, deleting, or retrieving a data object.

4. Application Generation: Automated tools are used to facilitate construction of the software; even they
use the 4th GL techniques.

5. Testing & Turnover: Many of the programming components have already been tested since RAD
emphasis reuse. This reduces the overall testing time. But the new part must be tested, and all interfaces
must be fully exercised.

When to use RAD Model?

o When the system should need to create the project that modularizes in a short span time (2-3
months).
o When the requirements are well-known.
o When the technical risk is limited.
o When there's a necessity to make a system, which modularized in 2-3 months of period.
o It should be used only if the budget allows the use of automatic code generating tools.

Advantage of RAD Model

o This model is flexible for change.


o In this model, changes are adoptable.
o Each phase in RAD brings highest priority functionality to the customer.
o It reduced development time.
o It increases the reusability of features.

Disadvantage of RAD Model

o It required highly skilled designers.


o All application is not compatible with RAD.
o For smaller projects, we cannot use the RAD model.
o On the high technical risk, it's not suitable.
o Required user involvement.

Q7.

Spiral Model generally shows the repetitive nature of the prototyping model and control proper well-
defined approaches of the linear sequential model. The spiral model is also known to be a meta-model
because all the other process models are included in the spiral model. 
The waterfall model is also represented by the single loop of the spiral model. To develop the prototype
before the establishment of the actual product, the prototyping approach is used by the spiral model.
The evolutionary model is also supported by the spiral model as iterations along the spiral represent
evolutionary levels, using which a complete system can be built. Risk reduction can be done in a spiral
model using a prototyping approach. From the waterfall model, the systematic proper development
approach is adopted. 
For obtaining the project requirements, customer communication is very important and essential in the
spiral model, the WIN-WIN model also suggests and supports well and proper communication with the
customer. In actual practice, the process of negotiation which simply means to compromise has to be
faced by the customers and developers. When both sides agree, only then successful negotiation occurs.
This is called the WIN-WIN situation. 
 
 Customer’s win means – 
Obtaining the system that fulfill most of the requirements of customers. 
 
 Developer’s win means – 
Getting the work done by fulfilling the realistic requirements of customers in a given deadline and
achievable budgets. 
 
At the beginning of each pass of the spiral, the negotiation activities are carried out in a WIN-WIN
spiral model. 
Various activities that can be carried out in a WIN-WIN spiral model are shown in the following
diagram – 
 
 
1. Identification of ‘stakeholders’. 
 
2. Determination of stakeholders to make great efforts to achieve or obtain a win condition. 
 
3. Negotiations of stakeholders struggling vigorously for win condition. Software project team
conciliate for a win-win result with concern. Then determine next level objectives, constraints, and
alternatives. 
 
4. Evaluation of the process and product and then analyzing and resolving or reducing the risks to make
it easy. 
 
5. Defining the next level of product and process for proper working. 
 
6. Validation of process and product definitions is must. 
 
7. Reviewing of the product and giving the necessary and important comments on it. 
 
Three anchor points are available that can be defined in the WIN-WIN spiral model that are given
below – 
 
1. Life Cycle Objective (LCO) – 
LCO defines the objectives that are essential for activities of software engineering. 
 
2. Life Cycle Architecture (LCA) – 
LCA defines the software architectures that can be produced with all the objectives that are set. 
 
3. Initial Operational Capability (IOC) – 
IOC represent the software with all the initial required operational capabilities. 

Q8.
Boehm proposed COCOMO (Constructive Cost Estimation Model) in 1981.COCOMO is one of the most
generally used software estimation models in the world. COCOMO predicts the efforts and schedule of a
software product based on the size of the software.

The necessary steps in this model are:

1. Get an initial estimate of the development effort from evaluation of thousands of delivered lines
of source code (KDLOC).
2. Determine a set of 15 multiplying factors from various attributes of the project.
3. Calculate the effort estimate by multiplying the initial estimate with all the multiplying factors
i.e., multiply the values in step1 and step2.

The initial estimate (also called nominal estimate) is determined by an equation of the form used in the
static single variable models, using KDLOC as the measure of the size. To determine the initial effort
Ei in person-months the equation used is of the type is shown below

                Ei=a*(KDLOC)b

128.4K
10% OFF Hybrid Active Noise Cancelling Wireless Earbuds with Dual-Mic by Dyplay : Good Tech
Cheap

The value of the constant a and b are depends on the project type.

In COCOMO, projects are categorized into three types:

1. Organic
2. Semidetached
3. Embedded

1.Organic: A development project can be treated of the organic type, if the project deals with developing
a well-understood application program, the size of the development team is reasonably small, and the
team members are experienced in developing similar methods of projects. Examples of this type of
projects are simple business systems, simple inventory management systems, and data processing
systems.

2. Semidetached: A development project can be treated with semidetached type if the development
consists of a mixture of experienced and inexperienced staff. Team members may have finite experience
in related systems but may be unfamiliar with some aspects of the order being developed.  Example of
Semidetached system includes developing a new operating system (OS), a Database Management
System (DBMS), and complex inventory management system.

3. Embedded: A development project is treated to be of an embedded type, if the software being


developed is strongly coupled to complex hardware, or if the stringent regulations on the operational
method exist. For Example: ATM, Air Traffic control.

For three product categories, Bohem provides a different set of expression to predict effort (in a unit of
person month)and development time from the size of estimation in KLOC(Kilo Line of code) efforts
estimation takes into account the productivity loss due to holidays, weekly off, coffee breaks, etc.

You might also like