Download as pdf or txt
Download as pdf or txt
You are on page 1of 35

Introduction to Software

Engineering
MODULE 1
What is a software?

Software, in its most general sense, is a set of


instructions or programs instructing a computer
to do specific tasks.

Software is a generic term used to describe


computer programs. Scripts, applications,
programs and a set of instructions are the terms
often used to describe software.
Software Engineering
Software engineering is a field of engineering, for designing and writing
programs for computers or other electronic devices.

A software engineer, or programmer, writes software (or changes existing


software) and compiles software using methods that improve it. Better quality
software is easier to use.

Better documentation helps other people understand and maintain it and add
new features.

Becoming a software engineer requires experience and practice writing code.


Software engineering may be very difficult work. It may be repeated during
the software release life cycle.
Phase of Software Engineering
Customer Requirements
Understanding
Characteristics of Software
Quality
Functionality

Portability Reliability

Characteristics
of software

Maintainability Usability

Efficiency
Characteristics of software

Functionality: Refers to the degree of performance of the


software against its intended purpose.

Reliability: Refers to the ability of the software to provide


desired functionality under the given conditions.

Usability: Refers to the extent to which the software can be


used with ease.

Efficiency: Refers to the ability of the software to use system


resources in the most effective and efficient manner.
Maintainability: Refers to the ease with which the modifications can be
made in a software system to extend its functionality, improve its
performance, or correct errors.

Portability: Refers to the ease with which software developers can


transfer software from one platform to another, without (or with
minimum) changes.
In simple terms, it refers to the ability of software to function properly
on different hardware and software platforms without making any
changes in it.
Steps in creating software

Requirements say what the software should do.


• Software design is usually done on paper. It says what the different
parts of the software are, and how they talk to each other.

• After the design phase is done, each component (part) of the


software is coded. Code is what tells the computer exactly what to
do at each step.

• Testing is done to see if the components meet the requirements and


that the system as a whole meet the requirements.

• Part or all of this process can be repeated if software bugs are


found or new requirements are needed.
SOFTWARE DEVELOPMENT LIFE
CYCLE
INTRO TO SDLC
• Software Development Life Cycle (SDLC) is a process used by the software industry to
design, develop and test high quality software.

• The SDLC aims to produce a high-quality software that meets or exceeds customer
expectations, reaches completion within times and cost estimates.

• SDLC is the acronym of Software Development Life Cycle.

• It is also called as Software Development Process.

• SDLC is a framework defining tasks performed at each step in the software development
process.

• ISO/IEC 12207 is an international standard for software life-cycle processes. It aims to


be the standard that defines all the tasks required for developing and maintaining
software.
NEED OF SDLC
• The development team must determine a suitable life cycle model for a
particular plan and then observe to it.

• Without using an exact life cycle model, the development of a software


product would not be in a systematic and disciplined manner.

• When a team is developing a software product, there must be a clear


understanding among team representative about when and what to do.

• Otherwise, it would point to chaos and project failure. This problem can be
defined by using an example.
SDLC CYCLE
Stage 1: Requirement Collection

• Business analyst and Project organizer set up a meeting with the client to gather all the
data like what the customer wants to build, who will be the end user, what is the objective
of the product. Before creating a product, a core understanding or knowledge of the
product is very necessary.

• For Example, A client wants to have an application which concerns money transactions. In
this method, the requirement has to be precise like what kind of operations will be done,
how it will be done, in which currency it will be done, etc.

• Once the required function is done, an analysis is complete with auditing the feasibility of
the growth of a product. In case of any ambiguity, a signal is set up for further discussion.

• Once the requirement is understood, the SRS (Software Requirement Specification)


document is created. The developers should thoroughly follow this document and also
should be reviewed by the customer for future reference.
Stage2: Defining Requirements and Requirements
breakdown(specifcations)

Once the requirement analysis is done, the next stage is to certainly represent
and document the software requirements and get them accepted from the
project stakeholders.

This is accomplished through "SRS"- Software Requirement Specification


document which contains all the product requirements to be constructed and
developed during the project life cycle.

Stage3: Designing the Software

The next phase is about to bring down all the knowledge of requirements,
analysis, and design of the software project. This phase is the product of the
last two, like inputs from the customer and requirement gathering.
Stage 4: Developing the project(coding and implementation)

In this phase of SDLC, the actual development begins, and the programming is built. The
implementation of design begins concerning writing code. Developers have to follow the
coding guidelines described by their management and programming tools like compilers,
interpreters, debuggers, etc. are used to develop and implement the code.

Stage 5: Testing

After the code is generated, it is tested against the requirements to make sure that the
products are solving the needs addressed and gathered during the requirements stage.

During this stage, unit testing (Testing Code Line by Line by developer), integration
testing(Many Developers code integrated and Tested) , system testing(Functional
Testing/Black box Testing), acceptance testing(Customer site Testing) are done.
Stage 6: Deployment

Once the software is certified, and no bugs or errors are stated, then it is deployed.

Then based on the assessment, the software may be released as it is or with suggested
enhancement in the object segment.

After the software is deployed, then its maintenance begins.

Stage 7: Maintenance

Once when the client starts using the developed systems, then the real issues come up and
requirements to be solved from time to time.

This procedure where the care is taken for the developed product is known as maintenance.
PROCESS MODELS
▣ PRESCRIPTIVE PROCESS MODELS

1. It defines a distinct set of activities, actions, tasks,


milestones and work products that are required to
engineer high quality software.

2. The activities may be linear, incremental or


evolutionary.
Waterfall Model (Diagram)
Waterfall Model
(Description)
• Oldest software lifecycle model and best understood by
upper management

• Used when requirements are well understood and


risk is low

• Work flow is in a linear (i.e., sequential) fashion

• Used often with well‐defined adaptations or


enhancements to current software
Waterfall Model(Problems)

▣ Doesn't support iteration, so changes can cause


confusion
▣ Difficult for customers to state all requirements
explicitly and up front
▣ Requires customer patience because a working
version of the program doesn't occur until the final
phase
▣ Problems can be somewhat alleviated in the model
through the addition of feedback loops
VERIFICATION AND
VALIDATION
▣ Verification is the process of checking that a software achieves its goal without
any bugs. It is the process to ensure whether the product that is developed is right
or not.
▣ Verification means Are we building the product right?

▣ Validation is the process of checking whether the software product is up to the


mark or in other words product has high level requirements. It is the process of
checking the validation of product i.e. it checks what we are developing is the
right product. it is validation of actual and expected product. Validation means
Are we building the right product?

▣ The verifying process includes checking documents, design, code, and program
▣ Validation is a dynamic mechanism of testing and validating the actual product
V-MODEL
What is V model?
▣ V- model means Verification and Validation
model.
▣ V-Shaped life cycle is a sequential path of execution
of processes.
▣ Each phase must be completed before the next phase
starts.
▣ Testing of the product is planned in parallel with a
corresponding phase of development.
When to use the V-model?

▣ 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 needed
technical expertise.
2 PHASES- VERIFICATION &
VALIDATION
ADVANTAGES
▣ Simple and easy to use.
▣ Testing activities like planning, test designing happens
well before coding.
▣ This saves a lot of time. Hence higher chance of success
over the waterfall model.
▣ Proactive defect tracking – that is defects are found at
early stage.
▣ Avoids the downward flow of the defects.
▣ Works well for small projects where requirements are
easily understood.
DISADVANTAGES
▣ Very rigid and least flexible.
▣ Software is developed during the implementation
phase, so no early prototypes of the software are
produced.
▣ If any changes happen in midway, then the test
documents along with requirement documents has to
be updated.
▣ V-Model vs. Waterfall Model
▣ Since v-model is an extended version of waterfall. It
shares similar characteristics to each other, for
example, processes are executed sequentially, and
requirement is needed in the beginning. But there
are some differences between them.
▣ V-Model tests at the first stage. while Waterfall
tests after the development stage.
▣ V-Model costs higher. Since the process is more
complex than waterfall. development cost is
expensive.
ITERATIVE MODEL
Process of Iterative Model:
▣ The process of Iterative Model is cyclic, unlike the
more traditional models that focus on a rigorous
step-by-step process of development.

▣ In this process, once the initial planning is complete,


a handful of phases are repeated again and again,
with the completion of each cycle incrementally
improving and iterating on the software.
Advantages

▣ Some working functionality can be developed and early in the


software development life cycle (SDLC).
▣ It is easily adaptable to the ever changing needs of the project as
well as the client.
▣ It is best suited for agile organisations.
▣ It is more cost effective to change the scope or requirements in
Iterative model.
▣ Parallel development can be planned.
▣ Testing and debugging during smaller iteration is easy.
▣ Risks are identified and resolved during iteration; and each iteration
is an easily managed.
▣ In iterative model less time is spent on documenting and more time
is given for designing.
▣ One can get reliable user feedback, when presenting sketches and
blueprints of the product to users for their feedback.
Disadvantages
▣ Not all requirements are gathered in the beginning of the
entire life cycle.
▣ More resources may be required.
▣ Although cost of change is lesser, but it is not very suitable
for changing requirements.
▣ More management attention is required.
▣ It is not suitable for smaller projects.
▣ Highly skilled resources are required for skill analysis.
▣ Project progress is highly dependent upon the risk analysis
phase.
▣ Defining increments may require definition of the complete
system.

You might also like