[go: up one dir, main page]

0% found this document useful (0 votes)
24 views14 pages

CH 2 Introduction To Software Engineering

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 14

Ch.

2 Introduction to software Engineering

Content:
2.1 Definition of Software

2.2 Characteristics of Software

2.3 Definition of Software Engineering

2.4 Need for Software Engineering

2.5 Mc Call’s Quality factors

2.6 The Software Process

2.7 Software Product and Process

2.8 V& V Model

 Introduction:
 Software Engineering provides a standard procedure to design and develop
software.
 The term software engineering is the product of two words, software,
and engineering.
 The software is a collection of integrated programs.
 Engineering is the application of scientific and practical knowledge to invent,
design, build, maintain, and improve frameworks, processes, etc.

 2.1 Definition of Software:

 Software:

 "Software is a set of programs (sequence of instructions) that allows the users to


perform a well-defined function or some specified task."

 The software is made up of binary language (composed of ones and zeros)

 Software's are broadly classified into two types, i.e.,

 System Software

 Application Software.
 System Software:

 System software is a computer program that helps the user to run computer
hardware or software and manages the interaction between them.

 Essentially, it is software that constantly runs in the computer background,


maintaining the computer hardware and computer's basic functionalities, including
the operating system, utility software, and interface

 Classification of System software are as follows:

 Operating System

 Device Drivers

 Firmware: Firmware is a type of permanent software embedded in the


system's ROM (read-only memory) to provide low-level control for some
particular system device hardware.

 Utility: Utility software is developed to provide support in analyzing,


optimizing, along configuring and maintaining a computer. (Antivirus,
WinRAR)

 Application Software:

 Application programs or software applications are end-user computer programs


developed primarily to provide specific functionality to the user.

Or

 Application Software is a type of computer program that performs specific functions


or task.

 For eg:

 Word Processor

 Database Software

 Multimedia Software
 2.2 Characteristics of Software:

 The characteristics of software include:

 It is intangible: It cannot be seen or touched.

 It is non-perishable: It does not degrade over time.

 It is easy to replicate: It can be copied and distributed easily.

 It can be complex: It can have many interrelated parts and features.

 It can be difficult to understand and modify: Especially for large and complex
systems.

 It can be affected by changing requirements: It may need to be updated or modified


as the needs of users change.

 It can be affected by bugs and other issues: It may need to be tested and debugged to
ensure it works as intended.

 Software Characteristics are classified into six major components:


 Functionality:
 It refers to the suitability, accuracy, interoperability, compliance, security of software
which is measured as degree of performance of the software against its intended
purpose.

 Reliability:

 Refers to the recoverability, fault tolerance, maturity of software, which is basically


a capability of the software that provide required functionality under the given
situations.
 Efficiency:
 It is the ability of the software to use resources of system in the most effective and
efficient manner. Software must make effective use of system storage and
execute command as per required timing.

 Usability:

 It is the extent to which the software can be utilized with ease and the amount of
effort or time required to learn how to use the software.

 Maintainability:

 It is the ease with which the modifications can be made in software to extend or
enhance its functionality, improve its performance, or resolve bugs.
 Portability:

 It is the ease with which software developers can relaunch software from one
platform to another, without (or with minimum) changes. In simple terms, software
must be made in way that it should be platform independent.

2.3 Definition of Software Engineering:

 The IEEE Standard Glossary of Software Engineering terminology defines software


engineering as “The Systematic approach to the development, operations,
maintenance and retirement of software.
 According to Fritz Bauer: Software Engineering is the establishment and use of
sound engineering principles in order to obtain economical software that is reliable
and works efficiently on real machine.
 Software Engineering is the application of systematic, disciplined, quantifiable
approach to the development, operation and maintenance of software i.e. the
application of engineering to software.
 In simple language, Software Engineering is application of scientific principles to
the orderly transformation of problem into a working software solution and the
subsequent maintenance of that software until the end of its useful life.
 2.4 Need for Software Engineering:

 Handling Big Projects: A corporation must use a software engineering


methodology in order to handle large projects without any issues.

 To manage the cost: Software engineering programmers plan everything and


reduce all those things that are not required.

 To decrease time: It will save a lot of time if you are developing software using a
software engineering technique.

 Reliable software: It is the company’s responsibility to deliver software products


on schedule and to address any defects that may exist.

 Effectiveness: Effectiveness results from things being created in accordance with


the standards.

 Reduces complexity: Large challenges are broken down into smaller ones and
solved one at a time in software engineering. Individual solutions are found for each
of these issues.

 Productivity: Because it contains testing systems at every level, proper care is done
to maintain software productivity.
2.5 Mc Call’s Quality factors:

 McCall software quality model was introduced in 1977.


 This model classifies all software requirements into 11 software quality factors.
 The 11 factors are grouped into three categories – product operation, product
revision, and product transition factors.

1. Product operation factors − Correctness, Reliability, Efficiency, Integrity, Usability.

2. Product revision factors − Maintainability, Flexibility, Testability.

3. Product transition factors − Portability, Reusability, Interoperability.

 The definition of these 11 software quality factors is given below:

1. Correctness – extent to which a program satisfies its specification and fulfills the
client’s objective.

2. Reliability – extent to which a program is supposed to perform its function with the
required precision.

3. Efficiency – amount of computing and code required by a program to perform its


function.
4. Integrity – extent to which access to software and data is denied to unauthorized
users.

5. Usability– labor required to understand, operate, prepare input and interpret


output of a program

6. Maintainability– effort required to locate and fix an error in a program.

7. Flexibility– effort needed to modify an operational program.

8. Testability– effort required to test the programs for their functionality.

9. Portability– effort required to run the program from one platform to other or to
different hardware.

10. Reusability– extent to which the program or it’s parts can be used as building
blocks or as prototypes for other programs.

11.Interoperability– effort required to couple one system to another.

2.6 The Software Process:

 Software Processes:
 The term software specifies to the set of computer programs, procedures and
associated documents (Flowcharts, manuals, etc.) that describe the program and
how they are to be used.
 A software process is the set of activities and associated outcome that produce a
software product. Software engineers mostly carry out these activities.
 There are four key process activities, which are common to all software processes.
 These activities are:

1. Software specifications: The functionality of the software and constraints on its


operation must be defined.
2. Software development: The software to meet the requirement must be
produced.
3. Software validation: The software must be validated to ensure that it does
what the customer wants.
4. Software evolution: The software must evolve to meet changing client needs.
2.7 Software Product and Process:

 In the context of software development, the terms of "product" and "process" are
significant.
 The main distinction between a process and a product is that a process is a
collection of procedures used to direct a project in order to produce the desired
output.
 In contrast, a product is the finished product of a software project.

What is a Product?

 In the context of software engineering, a product is any software created


in response to a client's request.
 In other terms, a product is the outcome of a planned and managed software
project. A product's objective and scope should be established before project
planning.
 A software product is made up of several components, including design and test
documentation, requirement specifications, and user manuals.
 The developer and customer must first establish the product's aim and scope to
create a desirable product.
 The product objective offers information about the product's goal, whereas the
scope provides information about the product's essential facts, functions, and
behavior.

Components of Product:

 The best software products begin with an excellent value proposition, and they must
be carefully designed and extensively tested to ensure that value is delivered to the
end user.
 A software product's components include:
1. Product Design:
It is the visual aesthetic and interactive interface in which users may interact with
the product.
2. Functionality and Features
When people utilize a software product, they interact with it through functionality.
3. Content
The data or details contained in a software product are referred to as its content.

Comparison between Product and Process:

Features Product Process


It supports software development
It is the outcome of a planned and by offering the structure of a
Definition
managed software project. complete software development
strategy.
The process is a collection or set of
It is the final result of a development
Basic stages that should be followed to
cycle.
create a product.
Its life cycle tends to be in the short Its life cycle tends to be in the long
Life Cycle
term. term.
It is concentrated on completing
Focus It is concerned with the end result.
each established step.
Its main goal is to complete the Its main goal is to make the better
Goal
work effectively. quality of project.
It is a layout design style where the
It is created when resources with
materials are needed to create the
Layout comparable processes or functions
product that is placed in a single line
are grouped together.
based on the orders of operations.
These are considered to provide
It offers the inventor only limited
Patents more protection than process
protection.
patents.
These are developed based on It may be utilized as a template for
Utilization consumer demands and comparably creating numerous
expectations. items.
Follows It follows the company's deadlines. It follows a consistent routine.

2.8 V& V Model:

 V-Model also referred to as the Verification and Validation Model.


 In this, each phase of SDLC must complete before the next phase starts.
 It follows a sequential design process same as the waterfall model.
 Testing of the device is planned in parallel with a corresponding stage of
development.
 Verification: It involves a static analysis method (review) done without executing
code. It is the process of evaluation of the product development process to find
whether specified requirements meet.
 Validation: It involves dynamic analysis method (functional, non-functional), testing
is done by executing code. Validation is the process to classify the software after the
completion of the development process to determine whether the software meets
the customer expectations and requirements.
 So V-Model contains Verification phases on one side of the Validation phases on the
other side. Verification and Validation process is joined by coding phase in V-shape.
Thus it is known as V-Model.

 There are the various phases of Verification Phase of V-model:

1. Business requirement analysis: This is the first step where product requirements
understood from the customer's side. This phase contains detailed communication
to understand customer's expectations and exact requirements.
2. System Design: In this stage system engineers analyze and interpret the business of
the proposed system by studying the user requirements document.
3. Architecture Design: The baseline in selecting the architecture is that it should
understand all which typically consists of the list of modules, brief functionality of
each module, their interface relationships, dependencies, database tables,
architecture diagrams, technology detail, etc. The integration testing model is
carried out in a particular phase.
4. Module Design: In the module design phase, the system breaks down into small
modules. The detailed design of the modules is specified, which is known as Low-
Level Design
5. Coding Phase: After designing, the coding phase is started. Based on the
requirements, a suitable programming language is decided. There are some
guidelines and standards for coding. Before checking in the repository, the final
build is optimized for better performance, and the code goes through many code
reviews to check the performance.
 There are the various phases of Validation Phase of V-model:

1. Unit Testing: In the V-Model, Unit Test Plans (UTPs) are developed during the
module design phase. These UTPs are executed to eliminate errors at code level or
unit level. A unit is the smallest entity which can independently exist, e.g., a program
module. Unit testing verifies that the smallest entity can function correctly when
isolated from the rest of the codes/ units.
2. Integration Testing: Integration Test Plans are developed during the Architectural
Design Phase. These tests verify that groups created and tested independently can
coexist and communicate among themselves.
3. System Testing: System Tests Plans are developed during System Design Phase.
Unlike Unit and Integration Test Plans, System Tests Plans are composed by the
client?s business team. System Test ensures that expectations from an application
developer are met.
4. Acceptance Testing: Acceptance testing is related to the business requirement
analysis part. It includes testing the software product in user atmosphere.
Acceptance tests reveal the compatibility problems with the different systems,
which is available within the user atmosphere. It conjointly discovers the non-
functional problems like load and performance defects within the real user
atmosphere.

When to use V-Model:


 When the requirement is well defined and not ambiguous.
 The V-shaped model should be used for small to medium-sized projects where
requirements are clearly defined and fixed.
 The V-shaped model should be chosen when sample technical resources are
available with essential technical expertise.

Advantage (Pros) of V-Model:


1. Easy to Understand.
2. Testing Methods like planning, test designing happens well before coding.
3. This saves a lot of time. Hence a higher chance of success over the waterfall model.
4. Avoids the downward flow of the defects.
5. Works well for small plans where requirements are easily understood.
Disadvantage (Cons) of V-Model:
1. Very rigid and least flexible.
2. Not a good for a complex project.
3. Software is developed during the implementation stage, so no early prototypes of
the software are produced.
4. If any changes happen in the midway, then the test documents along with the
required documents, has to be updated.

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

You might also like