Software Engineering
Regular/Back (2075) - CTEVT
-------------------------------------------------------------------------------------------------------
1. What 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