0% found this document useful (0 votes)
11 views

Software Engineering-1

A pdf of software engineering introduction

Uploaded by

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

Software Engineering-1

A pdf of software engineering introduction

Uploaded by

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

chapter-1 (Introduction)

Sottware Components
What is Software
Program:A step by step instructions to perform a specific task on a computer in a programming language
is called program, i.e. set of instructions.

Software:Is a program along with proper documentation (requirement analysis, design,

coding, testing) and user manuals which mainly includes installation guide and other manuals.

Software=Program+documentation

Software Components

>A program is a subset of software and it becomes software only if documentation and an operating
procedure manual are prepared.

>Program

>Documents

>Software documentation consist all the description, programs, graphics and instructions pertaining to
design, coding, testing and preparation of software.

Operating Procedure (User Manual & Operational Manual)

Provides information about what software is how to work with it how to install it on your system and
how to control all the activities of the software.
Software Crisis

Problems with software?

The major problem with current scenario in Software industry is, software usually overrun their
development cost, they exceed their development duration limits, are usually of poor quality.

As long as there were no machines, programming was no problem at all; when we had a few weak
computers, programming became a mild problem, and now we have gigantic computers, programming
has become an equally gigantic problem.- Edsger Dijkstra, The Humble Programmer (EWD340),
Communications of the ACM

What is Software Engineering

 In software industry we understand that there is an urgent need to use a proper strategies, process
and development cycles so that we can produce, or we can design quality products that are within
budget, with in time and must satisfy the requirement of their users.

 Software engineering is the systematic application of engineering principles and methods to the
design, development, testing, and maintenance of software products. It involves the use of
various tools, techniques, and methodologies to manage the software development process and
ensure the quality, reliability, and maintainability of software products.

Characteristics of software

1. Software Development vs. Manufacturing:

1.Software is crafted through a process of coding and development.


2. Unlike physical products, it isn't produced in factories through a manufacturing process.

2. No Physical Wear and Tear:

1.Software doesn't deteriorate over time like physical objects.

2.Its performance doesn't degrade due to physical use

3. Custom-Built Nature:

1. Most software is specially designed to meet specific needs.

2.It's often not just a combination of pre-existing components but requires unique coding and design.

4. Intangibility of Software:

1.Software can't be touched or handled physically.

2.It exists as code and functions within computers or digital devices.

Major Problems in Software Development

Inadequate Requirements Gathering:

Ambiguous or incomplete requirements

Lack of communication between stakeholders


Poor Project Management:

Inadequate planning, monitoring, and control

* Lack of risk assessment and mitigation

Multiplicity of software development life cycle

Selection of wrong technology or tool for development

Insufficient Time and Budget:

Unrealistic deadlines and resource constraints

* Inefficient resource allocation and prioritization

* Lack of Skilled Personnel:

* Inadequate expertise in the development team

* High turnover rates and loss of experienced staff

Resistance to Change:

* Difficulty in adapting to new technologies or processes

* Reluctance to modify established practices or mindsets


* Rapid technology advancement

Similarity and Differences from conventional Engineering Process

* Nature of the Product:

* Similarity: Both processes aim to create high-quality, reliable products

* Difference: Conventional engineering focuses on physical systems, while software engineering deals
with intangible software systems

Design Flexibility and Iteration:

* Similarity: Both processes involve iterative design and prototyping

* Difference: Software engineering allows for greater flexibility and ease of modification due to the non-
physical nature of software

* Quality Assurance and Testing:

* Similarity: Both processes emphasize the importance of testing and quality assurance to ensure
product performance and reliability

* Difference: Conventional engineering often involves physical testing of prototypes, while software
engineering relies on various types of software testing, such as unit, integration, and system testing

* Project Management and Collaboration:

* Similarity: Both processes require effective project management, team collaboration, and
communication among stakeholders
* Difference: Software engineering projects may involve distributed teams and rely more heavily on
digital communication and collaboration tools

* Maintenance and Evolution:

* Similarity: Both processes involve maintenance and support activities to ensure the ongoing
performance and reliability of the product

* Difference: Software engineering typically demands more frequent updates, patches, and evolution
due to the rapidly changing nature of technology and user requirements

* For hardware Same production cost every time, for software production cost only for the first time and
then only maintenance cost. This life cycle of the hardware follows the bath tub curve, while in the life
cycle of software failure intensity goes down with time

Software Quality Attributes

Correctness: The ability of the software to perform its intended tasks effectively and meet user
requirements.

Usability: The ease with which users can learn, operate, and navigate the software.

Reliability: The software's consistency in producing accurate results and maintaining performance
over time.

Efficiency: The optimal use of system resources, such as memory and processing power, to achieve
desired outcomes.
Maintainability: The ease of updating, modifying, and fixing the software to accommodate changing
requirements or fix issues.

Portability: The ability of the software to operate on different platforms or environments without
significant modifications.

Scalability: The software's capacity to handle increased workloads or user demands without
compromising performance.

Security: The software's ability to protect against unauthorized access, data breaches, and other
potential threats.

Modularity: The degree to which the software's components are organized into separate,
manageable units that can be independently developed or updated.

Reusability: The potential for the software's components to be used in other applications or contexts,
reducing development time and costs.

Testability: The ease with which the software can be tested to ensure it meets its requirements and
performs as expected.

You might also like