0% found this document useful (0 votes)
33 views3 pages

Se Lab: Overview of Software Engineering

The document provides an overview of software engineering. It describes software as both a product that delivers computing functionality and as a vehicle for delivering other products. The objectives of software engineering are listed as maintainability, efficiency, correctness, reusability, testability, reliability, portability, adaptability, and interoperability. A program is defined as a set of instructions, while software includes documentation and licensing. The key components of software engineering are the program, documentation, and operating procedures. The key process activities are software specifications, development, validation, and evolution. Challenges in software engineering include increasing size/cost, quality issues, and delayed delivery. Common tools used include requirements, design, construction, and testing tools.

Uploaded by

Rakesh Mirchi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views3 pages

Se Lab: Overview of Software Engineering

The document provides an overview of software engineering. It describes software as both a product that delivers computing functionality and as a vehicle for delivering other products. The objectives of software engineering are listed as maintainability, efficiency, correctness, reusability, testability, reliability, portability, adaptability, and interoperability. A program is defined as a set of instructions, while software includes documentation and licensing. The key components of software engineering are the program, documentation, and operating procedures. The key process activities are software specifications, development, validation, and evolution. Challenges in software engineering include increasing size/cost, quality issues, and delayed delivery. Common tools used include requirements, design, construction, and testing tools.

Uploaded by

Rakesh Mirchi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

SE LAB

EXPERIMENT-1
OVERVIEW OF SOFTWARE ENGINEERING

Introduction:
Software is a program or set of programs containing instructions that provide desired functionality.
And Engineering is the process of designing and building something that serves a particular purpose
and finds a cost-effective solution to problems.

Dual Role of Software:


• As a product:
• It delivers the computing potential across networks of Hardware.
• It enables the Hardware to deliver the expected functionality.
• It acts as an information transformer because it produces, manages, acquires, modifies,
displays, or transmits information.

• As a vehicle for delivering a product:


• It provides system functionality (e.g., payroll system)
• It controls other software (e.g., an operating system)
• It helps build other software (e.g., software tools)

Objectives of Software Engineering:


• Maintainability:
It should be feasible for the software to evolve to meet changing requirements.
• Efficiency:
The software should not make wasteful use of computing devices such as memory, processor
cycles, etc.
• Correctness:
A software product is correct if the different requirements as specified in the SRS document
have been correctly implemented.
• Reusability:
A software product has good reusability if the different modules of the product can easily be
reused to develop new products.
• Testability:
Here software facilitates both the establishment of test criteria and the evaluation of the software
with respect to those criteria.
• Reliability:
It is an attribute of software quality. The extent to which a program can be expected to perform
its desired function, over an arbitrary time period.
• Portability:
In this case, the software can be transferred from one computer system or environment to
another.
• Adaptability:
In this case, the software allows differing system constraints and the user needs to be satisfied
by making changes to the software.
• Interoperability:
Capability of 2 or more functional units to process data cooperatively.

Program vs Software Product:


• A program is a set of instructions that are given to a computer in order to achieve a specific task
whereas software is when a program is made available for commercial business and is properly
documented along with its licensing. Software=Program+documentation+licensing.
• A program is one of the stages involved in the development of the software, whereas a software
development usually follows a life cycle, which involves the feasibility study of the project,
requirement gathering, development of a prototype, system design, coding, and testing.

Components of Software Engineering:


There are three components of the software: These are: Program, Documentation, and Operating
Procedures.
• Program:
A computer program is a list of instructions that tell a computer what to do.
• Documentation:
Source information about the product contained in design documents, detailed code comments,
etc.
• Operating Procedures:
Set of step-by-step instructions compiled by an organization to help workers carry out
complex routine operations.

There are four basic key process activities:


• Software Specifications:
In this process, detailed description of a software system to be developed with its functional
and non-functional requirements.

• Software Development:
In this process, designing, programming, documenting, testing, and bug fixing is done.

• Software Validation:
In this process, evaluation software product is done to ensure that the software meets the
business requirements as well as the end user’s needs.

• Software Evolution:
It is a process of developing software initially, then timely updating it for various reasons.
Software Crisis:
• Size and Cost:
Day to day growing complexity and expectation out of software. Software are more expensive
and more complex.
• Quality:
Software products must have good quality.
• Delayed Delivery:
Software takes longer than the estimated time to develop, which in turn leads to cost shooting
up.

Tools used in Software Engineering:


• Software Requirements Tools:
Tools for dealing with software requirements have been partitioned into two topics: modeling and
traceability. More fine-grained partitioned would certainly be possible but this partition was
considered adequate based on the coverage of tools in the literature. Requirements modeling tools
used for eliciting, recording, analyzing and validating software requirements belong in this
section. Traceability tools Requirements traceability tools are becoming increasingly important as
the complexity of software systems grow, and since traceability tools are relevant also in other
lifecycle phases, they have been separated from the other tools for requirements.
• Software Design Tools:
This section covers tools for creating and checking software designs. There is a variety of such
tools, with much of this variety being a consequence of the diversity of design notations and
methods. While this variety of tools exists, no compelling partitions for this topic were found.
• Software Construction Tools:
Software construction tools are concerned with the production and translation of the program
representation (commonly known as source code) that is sufficiently detailed and explicit to
enable machine execution. Program editors Program editors are tools used for creation and
modification of programs (and possibly associated documents). These tools can be general-
purpose text or document editors, or they can be specialized for a target language. Editing refers
to human-controlled development tools. Compilers and code generators Traditionally, compilers
have been non-interactive translators of source code but there has been a trend to integrate
compilers and program editors to provide integrated programming environments. This topic also
covers pre-processors, linker/loaders, and code generators. Interpreters provide software
execution through emulation. They can support software construction activities by providing a
more controllable and observable environment for program execution. Debuggers Debugging
tools have been made a separate topic since they support the construction process but are different
from program editors or compilers.
• Software Testing Tools:
Testing tools are categorized according to where in the testing process they are used. Test
generators Test generators assist the development of test cases. Test execution frameworks Test
execution frameworks enable the execution of test cases in a controlled environment where the
behavior of the object under test is observed.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy