0% found this document useful (0 votes)
21 views9 pages

Introduction to Software Engineering Concepts

it is the notes of software engineering for btech students its very helpful for semester exams

Uploaded by

nirupamyatin5
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)
21 views9 pages

Introduction to Software Engineering Concepts

it is the notes of software engineering for btech students its very helpful for semester exams

Uploaded by

nirupamyatin5
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

Unit-1

[Link] to Software Engineering


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

Software Engineering is the process of designing, developing, testing, and maintaining software.

● Software engineering includes a variety of techniques, tools, and methodologies, including


requirements analysis, design, testing, and maintenance.

● It is a rapidly evolving field, and new tools and technologies are constantly being developed
to improve the software development process.

● By following the principles of software engineering and using the appropriate tools and
methodologies, software developers can create high-quality, reliable, and maintainable
software that meets the needs of its users.

Characteristics of software
Software is engineered or developed; it is not manufactured in the classical sense.
Software does not wear out.
Although the industry is moving toward component based assembly, most software continues to be
custom built

1. Reliability: The ability of the software to consistently perform its intended tasks without
unexpected failures or errors.

2. Usability: How easily and effectively users can interact with and navigate through the
software.

3. Efficiency: The optimal utilization of system resources to perform tasks on time.

4. Maintainability: How easily and cost-effectively software can be modified, updated, or


extended.

5. Portability: The ability of software to run on different platforms or environments without


requiring significant modifications.

[Link] Role of Software


Dual Role of Software

There is a dual role of software in the industry. The first one is as a product and the other one is as a
vehicle for delivering the product. We will discuss both.

i) As a Product

● It delivers 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.

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

Changing Nature of Software - Software Engineering


The software is an instruction or computer program that when executed provides desired features,
function, and performance. A data structure that enables the program to adequately manipulate
information and documents that describe the operation and use of the [Link], seven
broad categories of computer software present continuing challenges for software engineers. Which
is given below:
1. System Software: System software is a collection of programs that are written to service
other programs. Some system software processes complex but determinate, information
structures. Other system application processes largely indeterminate data. Sometimes
when, the system software area is characterized by the heavy interaction with computer
hardware that requires scheduling, resource sharing, and sophisticated process
management.

2. Application Software: Application software is defined as programs that solve a specific


business need. Application in this area processes business or technical data in a way that
facilitates business operation or management technical decision-making. In addition to
conventional data processing applications, application software is used to control business
functions in real-time.

3. Engineering and Scientific Software: This software is used to facilitate the engineering
function and task. however modern applications within the engineering and scientific area
are moving away from conventional numerical algorithms. Computer-aided design, system
simulation, and other interactive applications have begun to take a real-time and even
system software characteristic.

4. Embedded Software: Embedded software resides within the system or product and is used
to implement and control features and functions for the end-user and for the system itself.
Embedded software can perform limited and esoteric functions or provide significant
function and control capability.

5. Product-line Software: Designed to provide a specific capability for use by many customers,
product-line software can focus on the limited and esoteric marketplace or address the mass
consumer market.

6. Web Application: It is a client-server computer program that the client runs on the web
browser. In their simplest form, Web apps can be little more than a set of linked hypertext
files that present information using text and limited graphics. However, as e-commerce and
B2B applications grow in importance.
7. Artificial Intelligence Software: Artificial intelligence software makes use of a nonnumerical
algorithm to solve a complex problem that is not amenable to computation or
straightforward analysis. Applications within this area include robotics, expert systems,
pattern recognition, artificial neural networks, theorem proving, and game playing.

Software Myths:
Most, experienced experts have seen myths or superstitions (false beliefs or interpretations) or
misleading attitudes (naked users) which creates major problems for management and technical
people. The types of software-related myths are listed below.

Types of Software Myths

(i) Management Myths:

Myth 1:

We have all the standards and procedures available for software development.

Fact:

● Software experts do not know all the requirements for the software development.

● And all existing processes are incomplete as new software development is based on new and
different problem.

Myth 2:

The addition of the latest hardware programs will improve the software development.

Fact:

● The role of the latest hardware is not very high on standard software development; instead
(CASE) Engineering tools help the computer, they are more important than hardware to
produce quality and productivity.

● Hence, the hardware resources are misused.

Myth 3:
● With the addition of more people and program planners to Software development can help
meet project deadlines (If lagging behind).

Fact:

● If software is late, adding more people will merely make the problem worse. This is because
the people already working on the project now need to spend time educating the
newcomers, and are thus taken away from their work. The newcomers are also far less
productive than the existing software engineers, and so the work put into training them to
work on the software does not immediately meet with an appropriate reduction in work.

(ii)Customer Myths:

The customer can be the direct users of the software, the technical team, marketing / sales
department, or other company. Customer has myths leading to false expectations (customer) &
that's why you create dissatisfaction with the developer.

Myth 1:

A general statement of intent is enough to start writing plans (software development) and details of
objectives can be done over time.

Fact:

● Official and detailed description of the database function, ethical performance,


communication, structural issues and the verification process are important.

● Unambiguous requirements (usually derived iteratively) are developed only through


effective and continuous
communication between customer and developer.

Myth 2:

Software requirements continually change, but change can be easily accommodated because
software is flexible

Fact:

● It is true that software requirements change, but the impact of change varies with the time
at which it is introduced. When requirements changes are requested early (before design or
code has been started), the cost impact is relatively small. However, as time passes, the cost
impact grows rapidly—resources have been committed, a design framework has been
established, and change can cause upheaval that requires additional resources and major
design modification.
Different Stages of Myths

(iii)Practitioner’s Myths:

Myths 1:

They believe that their work has been completed with the writing of the plan.

Fact:

● It is true that every 60-80% effort goes into the maintenance phase (as of the latter software
release). Efforts are required, where the product is available first delivered to customers.

Myths 2:

There is no other way to achieve system quality, until it is "running".

Fact:

● Systematic review of project technology is the quality of effective software verification


method. These updates are quality filters and more accessible than test.

Myth 3:

An operating system is the only product that can be successfully exported project.

Fact:

● A working system is not enough, the right document brochures and booklets are also
required to provide guidance & software support.

Myth 4:

Engineering software will enable us to build powerful and unnecessary document & always delay us.

Fact:

● Software engineering is not about creating documents. It is about creating a quality product.
Better quality leads to reduced rework. And reduced rework results in faster delivery times
Layered Technology in Software Engineering
Software Engineering is a fully layered technology, to develop software we need to go from one
layer to another. All the layers are connected and each layer demands the fulfillment of the previous
layer.
Just as software engineering requires progressing through interconnected layers to build robust
software, advancing your skills in software testing also involves a step-by-step approach. To
effectively move from basic testing to more complex automation,

Layered technology is divided into four parts:

1. A quality focus: It defines the continuous process improvement principles of software. It provides
integrity that means providing security to the software so that data can be accessed by only an
authorized person, no outsider can access the data. It also focuses on maintainability and usability.

2. Process: It is the foundation or base layer of software engineering. It is key that binds all the layers
together which enables the development of software before the deadline or on time. Process
defines a framework that must be established for the effective delivery of software engineering
technology. The software process covers all the activities, actions, and tasks required to be carried
out for software development.

3. Method: During the process of software development the answers to all "how-to-do" questions
are given by method. It has the information of all the tasks which includes communication,
requirement analysis, design modeling, program construction, testing, and support.
4. Tools: Software engineering tools provide a self-operating system for processes and methods.
Tools are integrated which means information created by one tool can be used by another.
Software Process Framework

A Software Process Framework is a structured approach that defines the steps, tasks, and activities
involved in software development. This framework serves as a foundation for software engineering,
guiding the development team through various stages to ensure a systematic and efficient process.
A Software Process Framework helps in project planning, risk management, and quality assurance by
detailing the chronological order of actions.

Software Process Framework Activities


The Software process framework is required for representing common process activities. Five
framework activities are described in a process framework software engineering Communication,
planning, modelling, construction, and deployment are all examples of framework activities. Each
engineering action defined by a framework activity comprises a list of needed work outputs, project
milestones, points. Let's explain each:

1. Communication

Definition: Communication involves gathering requirements from customers and stakeholders to


determine the system's objectives and the software's requirements.

Activities:

● Requirement Gathering: Engaging with consumers and stakeholders through meetings,


interviews, and surveys to understand their needs and expectations.

● Objective Setting: Clearly defining what the system should achieve based on the gathered
requirements.

Explanation: Effective communication is essential to understand what the users need from the
software. This phase ensures that all stakeholders are on the same page regarding the goals and
requirements of the system.

2. Planning

Definition: Planning involves establishing an engineering work plan, describing technical risks, listing
resource requirements, and defining a work schedule.

Activities:
● Work Plan: Creating a detailed plan that outlines the tasks and activities needed to develop
the software.

● Risk Assessment: Identifying potential technical risks and planning how to mitigate them.

● Resource Allocation: Determining the resources (time, personnel, tools) required for the
project.

● Schedule Definition: Setting a timeline for completing different phases of the project.

Explanation: Planning helps in organizing the project and setting clear expectations. It ensures that
the development team has a roadmap to follow and that potential challenges are anticipated and
managed.

3. Modelling

Definition: Modelling involves creating architectural models and designs to better understand the
problem and work towards the best solution.

Activities:

● Analysis of Requirements: Breaking down the gathered requirements to understand what


the system needs to do.

● Design: Creating architectural and detailed designs that outline how the software will be
structured and how it will function.

Explanation: Modelling translates requirements into a visual and structured representation of the
system. It helps in identifying the best design approach and serves as a blueprint for development.

4. Construction

Definition: Construction involves creating code, testing the system, fixing bugs, and confirming that
all criteria are met.

Activities:

● Code Generation: Writing the actual code based on the design models.

● Testing: Running tests to ensure the software works as intended, identifying and fixing bugs.

Explanation: This phase is where the actual software is built. Testing is crucial to ensure that the
code is error-free and that the software meets all specified requirements.

5. Deployment

Definition: Deployment involves presenting the completed or partially completed product to


customers for evaluation and feedback, then making necessary modifications based on their input.

Activities:

● Product Release: Delivering the software to users, either as a full release or in stages.
● Feedback Collection: Gathering feedback from users about their experience with the
software.

● Product Improvement: Making changes and improvements based on user feedback to


enhance the product.

You might also like