Saturday, 21 October 2023

 Software Engineering

Regular/Back (2075) - CTEVT

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

1What do you mean by software engineering? What are the characteristics of good software? Explain. [10]

ans:- Software engineering is the process of analyzing user needs and designing, constructing, and testing end user applications that will satisfy these needs through the use of software programming languages. Software engineering is the application of engineering to the development of software in a systematic method.

 Software is treated as a good software by the means of different factors. A software product is concluded as a good software by what it offers and how well it can be used. The factors that decide the software properties are divided into three categories: Operational, Transitional, and Maintenance. These are explained as following below.

 Operational:-In operational categories, the factors that decide the software performance in operations. It can be measured on:

• Budget • Usability • Efficiency • Correctness • Functionality • Dependability • Security • Safety

 Transitional:-When the software is moved from one platform to another, the factors deciding the software quality:

• Portability • Interoperability • Reusability • Adaptability

 Maintenance:-In this categories all factors are included that describes about how well a software has the capabilities to maintain itself in the ever changing environment:

• Modularity • Maintainability • Flexibility • Scalability

2. What is the role of management in software engineering? Define product and process. [4+6=10] 

 Ans:- Proper management is an integral part of software engineering. A large software development project involves many people working for a long period of time. To meet the cost, quality, and schedule objectives, resources have to be properly allocated to each activity for the project, and progress of different activities has to be monitored and corrective actions taken, by the role of management in software engineering.

👉The Product is what we're actually building. What's our solution to the problem at hand? Half of engineering is making sure you're building the right product and have the ability to actually build it. For software engineers, that means coming up with a software solution and being able to code it up properly.

👉The hidden side of engineering is the Process, which means how we're actually building our product. A software process specifies the abstract set of activities that should be performed to go from user needs to final product. we need to make sure we're following a process that lets us create that Product in the most efficient and effective way possible. That means coming up with a process that is robust enough to get shit done in an imperfect world but also highly responsive to change (which is inevitable).

3. Explain prototyping model and spiral model in brief. [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:
 ➔ Users are actively involved in the development.
 ➔ Errors can be detected much earlier.
 ➔ Missing functionality can be identified easily.
Disadvantages: 
➔ Leads to implementing and then repairing way of building systems. 
➔ Practically, this methodology may increase the complexity of the system as scope of the system may expand beyond original plans.

👉 Spiral model is one of the most important Software Development Life Cycle models, which provides support for Risk Handling. In its diagrammatic representation, it looks like a spiral with many loops. The exact number of loops of the spiral is unknown and can vary from project to project. Each loop of the spiral is called a Phase of the software development process.

4. Describe cost estimation. Define COCOMO I and COCOMO II in detail. [2+8=10]
👉 Cost estimation in software engineering is typically concerned with the financial spend on the effort to develop and test the software, this can also include requirements review, maintenance, training, managing and buying extra equipment, servers and software. Many methods have been developed for estimating software costs for a given project.

👉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 rough sizing, make or buy models, or detail planning to put together a COCOMO estimate.

👉COCOMO-II is the revised version of the original COCOMO (constructive Cost Model) and is developed at University of Southern California. It is the model that allows one to estimate the cost, effort and schedule when planning a new software development activity. It consists of three sub-models:
  End User Programming:
  Intermediate Sector:
  Infrastructure Sector:
5.What are the symbols used in DFD? Define E-R Diagram with any example. [5+5=10] 
👉 Followings are the symbols used in DFD:

👉 An Entity Relationship Diagram (ERD) is a visual representation of different entities within a system and how they relate to each other. For example, the elements writer, novel, and a consumer may be described using ER diagrams the following way:

6. What do you mean by Capability Maturity Model ? Describe its levels. [2+8=10]
👉Capability Maturity Model is a common-sense application of software or Business Process Management and quality improvement concepts to software development and maintenance. The Capability Maturity Model (CMM) is a methodology used to develop and refine an organization's software development process.

:- CMM classifies software development industries into the following five maturity levels: 
 Initial Level: At the initial level, processes are disorganized, even chaotic. Success is likely to depend on individual efforts, and is not considered to be repeatable, because processes would not be sufficiently defined and documented to allow them to be replicated. 
 Repeatable Level: At the repeatable level, basic project management techniques are established, and successes could be repeated, because the requisite processes would have been made established, defined, and documented.
  Defined Level: At the defined level, an organization has developed its own standard software process through greater attention to documentation, standardization, and integration. 
 Managed Level: At the managed level, an organization monitors and controls its own processes through data collection and analysis.
  Optimizing Level: At the optimizing level, processes are constantly being improved through monitoring feedback from current processes and introducing innovative processes to better serve the organization's particular needs.

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

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.

8. Explain about reverse engineering and re-engineering. [5+5=10]
👉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.

👉Software Re-engineering is a process of software development which is done to improve the maintainability of a software system. Re-engineering is the examination and alteration of a system to reconstitute it in a new form. This process encompasses a combination of sub-processes like reverse engineering, forward engineering, reconstructing etc. Re-engineering is the reorganizing and modifying existing software systems to make them more maintainable.

9. What do you mean by configuration management? Describe various types of documentation. [5+5=10]
👉 A configuration management (CM) system is used to keep track of an organization’s hardware, software and related information. This includes software versions and updates installed on the organization's computer systems. CM also involves logging the network addresses belonging to the hardware devices used. Software is available for all of these tracking tasks. Configuration management may also be called configuration control.

:- All software documentation can be divided into two main categories: Product Documentation and Process Documentation.
1) Product documentation: Product documentation describes the product that is being developed and provides instructions on how to perform various tasks with it. Product documentation can be broken down into: 
    a) System documentation: System documentation represents documents that describe the system itself and its parts. It includes requirements documents, design decisions, architecture descriptions, program source code, and help guides. 
    b) User documentation: User documentation covers manuals that are mainly prepared for end-users of the product and system administrators. User documentation includes tutorials, user guides, troubleshooting manuals, installation, and reference manuals.

 2) Process documentation:-Process documentation represents all documents produced during development and maintenance that describe… well, process. The common examples of process documentation are project plans, test schedules, reports, standards, meeting notes, or even business correspondence.


10. Write short notes on (Any Two) [5*2=10]

SDLC: Software Development Life Cycle (SDLC) is a process used by the software industry to design, develop and test high quality software. The SDLC aims to produce a high quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates. SDLC is a process followed for a software project, within a software organization. It consists of a detailed plan describing how to develop, maintain, replace and alter or enhance specific software. The life cycle defines a methodology for improving the quality of software and the overall development process.

Debugging & its technique: In the context of software engineering, debugging is the process of fixing a bug in the software. In other words, it refers to identifying, analyzing and removing errors. This activity begins after the software fails to execute properly and concludes by solving the problem and successfully testing the software. The purpose of leaving test output in the final version is to facilitate maintenance. For real time programs it can be essential to be able to find a bug in the very production run where it appeared. In that case, test output is stored on a backing store file for inspection if an error should occur.

 ● Types of information system: There are various types of information systems, few of them are listed below:
 ✔ Transaction processing system:- A Transaction Processing Systems (TPS) is used primarily for record keeping which is required in any organization to conduct the business. Examples of TPS are sales order entry, payroll, and shipping records etc. 

✔ Decision support system:- Decision Support System (DSS) serves the management of an organization. A decision support system has sophisticated data analysis tools, which support and assist all aspects of problem-specific decision-making.

✔ executive information system An Executive Information System (EIS) is also called the Executive Support System. Senior managers of an organization use the EIS. Therefore, it must be easy to use so that executives can use it without any assistance.
 
✔ Management information system Management Information System (MIS) provides the management routine summary of basic operations of the organization. The primary objective behind installing an MIS in the organization is to increase operational efficiency.
 
✔ Workflow system A workflow system is a rule-based management system that directs, coordinates and monitors the execution of an interrelated set of tasks arranged to form a business process.

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