TAMIL
NADU OPEN UNIVERSITY
School
of Computer Science
SPOT
ASSIGNMENT (CY-2013/AY 2012-2013)
NOTE : Part A Contains 3
Questions and will carry 5 Marks each, Part B Contain 1 Question and will carry
10 Marks. Students are requested to write 150 words and should not exceed 2
pages each in Part A, 300 words and
should not exceed 4 pages in Part B.
Referring Materials.
Bachelor
of Computer Applications
Second Year
Course
Code : BCA-11
Course
Title : Introduction to Software Engineering
(Total Marks=25)
Part-
A- Short Answer Questions
Answer all questions (3 X 5 = 15 Marks)
- Explain the Phases in the Software Development?
Answer:
Phases in Software
Development:
Definition phase:
The definition phase
focuses on what. That is, during definition, the software engineer 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 exist, and what validation criteria are
required to define a successful system. The key requirements of the system and
the software are identified. Although the methods applied during the definition
phase will vary depending on the software engineering paradigm (or combination
of paradigms) that is applied, three major tasks will occur in some form:
system or information engineering, software project planning and requirements analysis.
Development phase:
The development phase
focuses on how. That is, during development a software engineer attempts to
define how data are to be structured, how function is to be implemented within
a software architecture, how procedural details are to be implemented software design
code generation, and software testing.
Support phase:
The
support phase focuses on change associated with error correction, adaptations
required as the software's environment evolves, and changes due to enhancements
brought about by changing customer requirements. Corrective maintenance changes
the software to correct defects.
- Explain the following
i)
Linear Sequential
ii)
RAD
iii)
Spiral
Answer:
(I)
THE LINEAR SEQUENTIAL MODEL:
Sometimes called the classic life
cycle or the waterfall model, the linear sequential model suggests a
systematic, sequential approach5 to software development that begins at the
system level and progresses through analysis, design, coding, testing, and
support. This system view is essential when software must interact with other
elements such as hardware, people, and databases.
(II) RAD:
The
Rapid Application Development Model Rapid Application Development (RAD) is an
incremental software development process model that emphasizes an extremely
short development cycle. The RAD model is a "high-speed" adaptation
of the linear sequential model in which rapid development is achieved by using
component-based construction. If requirements are well understood and project
scope is constrained, the RAD process enables a development team to create a
"fully functional system" within very short time periods (e.g., 60 to
90 days).
(III) Spiral:
•
Process is represented as a spiral rather than as a sequence of activities with
backtracking
• Each loop in the
spiral represents a phase in the process.
• No fixed phases such
as specification or design - loops in the spiral are chosen depending on what
is required
• Risks are explicitly assessed and resolved
throughout the process.
- Write notes on Risk Management ?
Answer:
Risk Analysis and Management
Risk analysis and management are a series of steps that help a software team to
understand and manage uncertainty. Many problems can plague a software project.
A risk is a potential problem it might happen, it might not. But, regardless of
the outcome, it's a really good idea to identify it, assess its probability of
occurrence, estimate its impact, and establish a contingency plan should the
problem actually occur. Everyone involved in the software process managers, software
engineers, and customers participate in risk analysis and management. The risks
that are analyzed and managed should be derived from thorough study of lots of
things can go wrong, and frankly, many often do. It's for this reason that
being prepared understanding the risks and taking proactive measures to avoid
or manage them is a key element of good software project management. Steps:
Recognizing what can go wrong is the first step, called "risk
identification." Next, each risk is analyzed to determine the likelihood
that it will occur and the damage that it will do if it does occur. Once this
information is established, risks are ranked, by probability and impact.
Finally, a plan is developed to manage those risks with high probability and
high impact. Work Product: A Risk Mitigation, Monitoring, and Management (RMMM)
plan or the people, the product, the process, and the project. The RMMM should
be revisited as the project proceeds to ensure that risks are kept up to date.
Contingency plans for risk management should be realistic.
Part-
B- Long Answer Question
Answer the following question (1 X 10 = 10 Marks)
- What are the types of testing? Explain them in detail?
Answer:
Software
Testing
Software testing is the process of
evaluation a software item to detect differences between given input and
expected output. Also to assess the feature of A software item. Testing
assesses the quality of the product. Software testing is a process that should
be done during the development process. In other words software testing is a
verification and validation process.
Verification
Verification is the process to make
sure the product satisfies the conditions imposed at the start of the
development phase. In other words, to make sure the product behaves the way we
want it to.
Validation
Validation is the process to make sure
the product satisfies the specified requirements at the end of the development
phase. In other words, to make sure the product is built as per customer
requirements.
Basics
of software testing
There are two basics of software
testing: blackbox testing and whitebox testing.
Blackbox
Testing
Black box testing is a testing
technique that ignores the internal mechanism of the system and focuses on the
output generated against any input and execution of the system. It is also
called functional testing.
Whitebox
Testing
White box testing is a testing
technique that takes into account the internal mechanism of a system. It is
also called structural testing and glass box testing.
Black box testing is often used for
validation and white box testing is often used for verification.
Types
of testing
There are many types of testing like
- Unit Testing
- Integration Testing
- Functional Testing
- System Testing
- Stress Testing
- Performance Testing
- Usability Testing
- Acceptance Testing
Unit
Testing
Unit testing is the testing of an
individual unit or group of related units. It falls under the class of white
box testing. It is often done by the programmer to test that the unit he/she
has implemented is producing expected output against given input.
Integration
Testing
Integration testing is testing in
which a group of components are combined to produce output. Also, the
interaction between software and hardware is tested in integration testing if
software and hardware components have any relation. It may fall under both
white box testing and black box testing.
Functional
Testing
Functional testing is the testing to
ensure that the specified functionality required in the system requirements
works. It falls under the class of black box testing.
System
Testing
System testing is the testing to
ensure that by putting the software in different environments (e.g., Operating
Systems) it still works. System testing is done with full system implementation
and environment. It falls under the class of black box testing.
Stress
Testing
Stress testing is the testing to
evaluate how system behaves under unfavorable conditions. Testing is conducted at
beyond limits of the specifications. It falls under the class of black box
testing.
Performance
Testing
Performance testing is the testing to
assess the speed and effectiveness of the system and to make sure it is
generating results within a specified time as in performance requirements. It
falls under the class of black box testing.
Usability
Testing
Usability testing is performed to the
perspective of the client, to evaluate how the GUI is user-friendly? How easily
can the client learn? After learning how to use, how proficiently can the
client perform? How pleasing is it to use its design? This falls under the
class of black box testing.
Acceptance
Testing
Acceptance testing is often done by
the customer to ensure that the delivered product meets the requirements and
works as the customer expected. It falls under the class of black box testing.
No comments:
Post a Comment