Tnou Study Center

Blog Owner: Vignesh A





Search This Blog

Friday, November 22, 2013

BCA 11 Introduction to Software Engineering - BCASPOT ASSIGNMENT (CY-2013 AY 2013-2014)

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)
  1. 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.

  1. 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.

  1. 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)
  1. 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