CH 2 Introduction To Software Engineering
CH 2 Introduction To Software Engineering
CH 2 Introduction To Software Engineering
Content:
2.1 Definition of Software
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.
Software:
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.
Operating System
Device Drivers
Application Software:
Or
For eg:
Word Processor
Database Software
Multimedia Software
2.2 Characteristics of Software:
It can be difficult to understand and modify: Especially for large and complex
systems.
It can be affected by bugs and other issues: It may need to be tested and debugged to
ensure it works as intended.
Reliability:
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.
To decrease time: It will save a lot of time if you are developing software using a
software engineering technique.
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:
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.
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.
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:
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?
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.
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.
-------------------------------------------------------------------------------------------------------------------------------