Sunday, 22 October 2023

Software Engineering -Regular/Back (2074) - CTEVT

 Software Engineering

Regular/Back (2074) - CTEVT

---------------------------------------------------------------------------------------------------------------

1. What is software? Explain about 3P and 4P model. [2+8=10] 

Software is a set of instructions, data or programs used to operate computers and execute specific tasks. Software is a generic term used to refer to applications, scripts and programs that run on a device.

3P Model: The Three P's in Software Engineering are People, Product, Process, Project. 

1) "People" usually refer to all the people involved in the life cycle of a software. 

2) "Process" means, the various models and methodologies or sometimes even technologies used while going through the making of a software project. 

3) "Product" refers to the estimation of the cost, time and effort required to produce the finished software product.

4P Model: The four P's in Software Engineering are People, Product, Process, Project. 

1) "People" usually refer to all the people involved in the life cycle of a software. 

2) "Product" refers to the estimation of the cost, time and effort required to produce the finished software product. 

3) "Process" means, the various models and methodologies or sometimes even technologies used while going through the making of a software project.

 4) "Project" means we have to take the right steps for the successful completion of the project. If something goes wrong, then the project manager should know what steps need to take in order to solve the problem.

2. Explain prototyping model. Write down the characteristics of a good SRS. [5+5=10] 

The Prototyping Model is a systems development method (SDM) in which a prototype (an early approximation of a final system or product) is built, tested, and then reworked as necessary until an acceptable prototype is finally achieved from which the complete system or product can now be developed. This model works best in scenarios where not all of the project requirements are known in detail ahead of time. It is an iterative, trial-and-error process that takes place between the developers and the users. 

Advantages:
 1. Users are actively involved in the development.
 2. Errors can be detected much earlier. 
3. Missing functionality can be identified easily

 Disadvantages: 
1. Leads to implementing and then repairing way of building systems. 
2. Practically, this methodology may increase the complexity of the system as scope of the system may expand beyond original plans.

➔ Characteristics of a good SRS:
 1. Correctness:
 2. Completeness:
 3. Consistency:
 4. Unambiguousness:
 5. Ranking for importance and stability: 
6. Modifiability: 
7. Verifiability: 
8. Traceability: 
9. Design Independence: 
10. Testability:
11. Understandable by the customer: 
12. Right level of abstraction:

3. What are SDLC models? Why do we need them? Explain about RAD model. [2+2+6=10] 
➔ A software development life cycle (SDLC) model is a conceptual framework describing all activities in a software development project from planning to maintenance. This process is associated with several models, each including a variety of tasks and activities. 

➔ We need them because it breaks down the entire life cycle of software development thus make is easier to evaluate each part of software development and also makes it easier for programmers to work concurrently on each phase. 

RAD Model: RAD model is Rapid Application Development model. It is a type of incremental model. In the RAD model, the functional modules are developed in parallel as prototypes and are integrated to make the complete product for faster product delivery. Since there is no detailed preplanning, it makes it easier to incorporate the changes within the development process. RAD model can be applied successfully to the projects in which clear modularization is possible. If the project cannot be broken into modules, RAD may fail.

Advantages:
 • Progress can be measured.
 • Reduced development time. 
• Increases reusability of components. 

Disadvantages: 
• Requires highly skilled developers/designers. 
• High dependency on modeling skills. 
• Management complexity is more. 

4. What are the steps for project planning? Explain COCOMO in brief [2+8=10]
➔ Followings are the steps of project planning: 
1) Project goals. 
2) Project deliverable. 
3) Project schedule. 
4) Supporting plans

COCOMO: COCOMO (Constructive Cost Model) is a regression model based on LOC, i.e number of Lines of Code. It is a procedural cost estimate model for software projects and often used as a process of reliably predicting the various parameters associated with making a project such as size, effort, cost, time and quality. It was proposed by Barry Boehm in 1970 and is based on the study of 63 projects, which make it one of the best-documented models. There are various other attributes or metrics that apply to estimates, including product attributes, personnel attributes, hardware attributes and general project attributes. In general, engineers may look at phenomena and factors like roughsizing, make or buy models, or detail planning to put together a COCOMO estimate. 
There are three types of COCOMO models and they are: 1. Basic COCOMO model, Intermediate COCOMO model and Detailed COCOMO model.

5. Explain bottom-up and top-down approach strategy of software design. [10]
➔ Top-down and bottom-up are both strategies of information processing and knowledge ordering, used in a variety of fields including software, humanistic and scientific theories (systemic), and management and organization. In practice, they can be seen as a style of thinking, teaching, or leadership.

 A top-down approach is also known as step wise design and in some cases used as a synonym of decomposition. Top-down approaches emphasize planning and a complete understanding of the system. It is inherent that no coding can begin until a sufficient level of detail has been reached in the design of at least some part of the system. Top-down approaches are implemented by attaching the stubs in place of the module. This, however, delays testing of the ultimate functional units of a system until significant design is complete. 

Bottom-up emphasizes coding and early testing, which can begin as soon as the first module has been specified. This approach, however, runs the risk that modules may be coded without having a clear idea of how they link to other parts of the system, and that such linking may not be as easy as first thought. Re-usability of code is one of the main benefits of the bottom-up approach. A bottom-up approach is the piecing together of systems to give rise to more complex systems, thus making the original systems sub-systems of the emergent system.

6. What is software metric and how can it be measured? Explain about defect density and inspection rate. [5+5=10]
➔A software metric is a standard of measure of a degree to which a software system or process possesses some property. Even if a metric is not a measurement (metrics are functions, while measurements are the numbers obtained by the application of metrics), often the two terms are used as synonyms. Software metrics are measures of the success of a software process. In theory, metrics can help to improve the development process and provide companies with information that makes future projects more predictable, efficient, etc. 
Software metric is calculated by dividing how many times an application fails (F) by how many times it is used (U). 
 ACR = F/U
Defect Density: Defect Density is the number of confirmed defects detected in the software or a component during a defined period of development or operation, divided by the size of the software. It is one such process that enables one to decide if a piece of software is ready to be released. 

By detecting defects and errors during the early stages of software development one can ensure the quality, performance, scalability, features, security, as well as other important elements of the software. The defect density could be defined as the value of the total defects, which are known to the size of the software product calculated:  
 ▪ Defect Density = Total Defect/Size

 Inspection Rate: Inspection in software engineering, refers to peer review of any work product by trained individuals who look for defects using a well defined process. The inspection rate is computed by: Inspection rate = size / total inspection time Where “size” stands for the size of the artifact in number of pages, loc, or other size measure and “total inspection time” measured in hours.

7. Explain About the SEI CMM. [10]
➔ SEI stands for ‘Software Engineering Institute' at Carnegie-Mellon University, initiated by the U.S. Defense Department to help improve software development processes.

 CMM stands for ‘Capability Maturity Model', developed by the SEI. It's a model of 5 levels of organizational ‘maturity' that determine effectiveness in delivering quality software.

 CMM is a common-sense application of software or Business Process Management and quality improvement concepts to software development and maintenance. The Capability Maturity Model for Software (CMM) is a framework that describes the key elements of an effective software process. SEI Capability Maturity Model (SEI CMM) helped organizations to improve the quality of the software they develop and therefore adoption of SEI CMM model has significant business benefits. SEI CMM can be used two ways: capability evaluation and software process assessment. SEI CMM classifies software development industries into the following five maturity levels:
 • Level 1: Initial
 • Level 2: Repeatable 
 • Level 3: Defined 
• Level 4: Managed 
• Level 5: Optimizing

8. Explain about the levels of testing. [10]
➔ A level of software testing is a process where every unit or component of a software/ system is tested. The main goal of system testing is to evaluate the system's compliance with the specified needs.
 There are mainly four testing levels are: 
1. Unit Testing: A Unit is a smallest testable portion of system or application which can be compiled, liked, loaded, and executed. This kind of testing helps to test each module separately. The aim is to test each part of the software by separating it. It checks that component are fulfilling functionalities or not. This kind of testing is performed by developers. 
2. Integration Testing: Integration means combining. For Example, In this testing phase, different software modules are combined and tested as a group to make sure that integrated system is ready for system testing. Integrating testing checks the data flow from one module to other modules. This kind of testing is performed by testers. 
3. System Testing: System testing is performed on a complete, integrated system. It allows checking system's compliance as per the requirements. It tests the overall interaction of components. It involves load, performance, reliability and security testing. System testing most often the final test to verify that the system meets the specification. It evaluates both functional and non-functional need for the testing. 4. Acceptance Testing: Acceptance testing is a test conducted to find if the requirements of a specification or contract are met as per its delivery. Acceptance testing is  basically done by the user or customer. However, other stockholders can be involved in this process.

9. What is software maintenance and why is it performed? Explain about reverse engineering. [5+5=10]
➔ Software maintenance is a part of Software Development Life Cycle. Its main purpose is to modify and update software application after delivery to correct faults and to improve performance. Software is a model of the real world. When the real world changes, the software requires alteration wherever possible. It is performed for the following operations: 
 Bug fixing. 
 Capability Enhancement. 
 Removal of outdated functions. 
 Performance Improvement. 
➔ Reverse Engineering: Reverse engineering is the process of discovering the technological principles of a human made device, object or system through analysis of its structure, function and operation. Reverse engineering is the process of analyzing a subject system to create representations of the system at a higher level of abstraction. Software reverse engineering is done to retrieve the source code of a program because the source code was lost. Reverse engineering is also called as back engineering. It Is the process of extracting knowledge and design information from anything man-made and re-producing it based on extracted information 

techanicalll.blogspot.com



No comments:

Post a Comment

                           Software Engineering Notes 1.1   Software Engineering : The term is made of two words, software and engineering...