0% found this document useful (0 votes)
36 views46 pages

SE Lecture Slide

The document discusses a software engineering course offered by the Department of Applied Computational Science & Engineering. The course is titled Software Engineering and has the course code KDS 063. It discusses the course objectives, prerequisites, outcomes, and covers topics like the definition of software engineering, components of software, key process activities in software development, and the software crisis. It also compares the differences between software engineering processes and conventional engineering processes.

Uploaded by

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

SE Lecture Slide

The document discusses a software engineering course offered by the Department of Applied Computational Science & Engineering. The course is titled Software Engineering and has the course code KDS 063. It discusses the course objectives, prerequisites, outcomes, and covers topics like the definition of software engineering, components of software, key process activities in software development, and the software crisis. It also compares the differences between software engineering processes and conventional engineering processes.

Uploaded by

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

Department of Applied Computational Science & Engg.

Program: B. Tech. AI
Course Code: KDS 063
Course Name: Software Engineering
Lectures
Department of Applied Computational Science & Engg.
Course Code : Course Name:

Course Outcomes :

Program Name: Program Code:


Department of Applied Computational Science & Engg.
Course Code : KDS 063 Course Name: Software Engineering

Course Prerequisites

Any Programming Languages like C, C++,


Python, Java, etc.

Program Name: B. Tech AI Program Code: KDS 063


Department of Applied Computational Science & Engg.
Course Code : KDS 063 Course Name: Software Engineering

Program Name: B. Tech. AI Program Code: KDS 063


Department of Applied Computational Science & Engg.
Course Code : Course Name:

• Lecture Objectives
To know various software characteristics and analyze
different software Development Models.
Department of Applied Computational Science & Engg.
Course Code : Course Name:

• Lecture Outcomes
– To understand and use various software
characteristics and analyze different software
Development Models for software development.
Introduction to Software Engineering

• Definition of Software Engineering


• Software engineering is the branch of computer science
that deals with the design, development, testing, and
maintenance of software applications.
• Software engineers apply engineering principles and
knowledge of programming languages to build software
solutions for end users.
• Software engineers design and develop computer games,
business applications, operating systems, network control
systems, and middleware.
Components of Software

There are three major components of the software:


These are : Program, Documentation, and Operating
Procedures.
• Program –A computer program is a list of instructions
that tell a computer what to do.
• Documentation – Source information about the
product contained in design documents, detailed code
comments, etc.
• Operating Procedures –Set of step-by-step
instructions compiled by an organization to help
workers carry out complex routine operations.
Components of Software . . .

Other components are:


• Code: the instructions that a computer executes in order to
perform a specific task or set of tasks.
• Data: the information that the software uses or manipulates.
• User interface: the means by which the user interacts with
the software, such as buttons, menus, and text fields.
• Libraries: pre-written code that can be reused by the
software to perform common tasks.
• Documentation: information that explains how to use and
maintain the software, such as user manuals and technical
guides.
Components of Software . . .

• Test cases: a set of inputs, execution conditions, and


expected outputs that are used to test the software for
correctness and reliability.
• Configuration files: files that contain settings and
parameters that are used to configure the software to run
in a specific environment.
• Build and deployment scripts: scripts or tools that are
used to build, package, and deploy the software to
different environments.
• Metadata: information about the software, such as
version numbers, authors, and copyright information.
All these components are important for software
development, testing and deployment.
Key Process Activities

• There are four basic key process activities:


• Software Specifications – In this process, detailed
description of a software system to be developed with its
functional and non-functional requirements.

• Software Development –In this process, designing,


programming, documenting, testing, and bug fixing is
done.

• Software Validation –In this process, evaluation software


product is done to ensure that the software meets the
business requirements as well as the end users needs.
• Software Evolution – It is a process of developing
software initially, then timely updating it for various
reasons.
Software Crisis

• Software Crisis : Software Crisis is a term used in computer


science for the difficulty of writing useful and efficient
computer programs in the required time. The software crisis
was due to using the same workforce, same methods, and
same tools even though rapidly increasing software demand,
the complexity of software, and software challenges.
• Size and Cost –
Day to day growing complexity and expectation out of
software. Software are more expensive and more complex.

• Quality –
Software products must have good quality.

• Delayed Delivery –
Software takes longer than the estimated time to develop,
which in turn leads to cost shooting up.
Software Crisis . . .

• The term “software crisis” refers to a set of problems that were faced
by the software industry in the 1960s and 1970s, such as:
• High costs and long development times: software projects were taking
much longer and costing much more than expected.
• Low quality: software was often delivered late, with bugs and other
defects that made it difficult to use.
• Lack of standardization: there were no established best practices or
standards for software development, making it difficult to compare
and improve different approaches.
• Lack of tools and methodologies: there were few tools and
methodologies available to help with software development, making
it a difficult and time-consuming process.
• These problems led to a growing realization that the traditional
approaches to software development were not effective and needed
to be improved. This led to the development of new software
development methodologies, such as the Waterfall and Agile
methodologies, as well as the creation of new tools and technologies
to support software development.
Difference Between Software Engineering Process
and Conventional Engineering Process

Software Engineering Process Conventional Engineering Process


1--Software Engineering Process is a process The conventional Engineering Process is a
that majorly involves computer science, process that majorly involves science,
information technology, and discrete mathematics, and empirical knowledge.
mathematics.
2-It is mainly related to computers, It is about building cars, machines,
programming, and writing codes for building hardware, buildings, etc.
applications.
3-In Software Engineering Process construction In Conventional Engineering Process
and development cost is low. construction and development cost is high.
4-It can involve the application of new and It usually applies only known and tested
untested elements in software projects. principles to meet product requirements.
Difference Between Software Engineering Process
and Conventional Engineering Process

5-In Software Engineering Process, most In Conventional Engineering Process, most


development effort goes into building new development efforts are required to change
designs and features. old designs.
6-It majorly emphasizes quality. It majorly emphasizes mass production.
7-Product development develops intangible Product development develops tangible
products (software). products (e.g. bridges, buildings).
8-Design requirements may change Design Requirements are typically well-
throughout the development process. defined upfront.
Difference Between Software Engineering Process
and Conventional Engineering Process

Software development often involves Conventional engineering may have more


complex logic and algorithms. complex physical properties to deal with.
Software development often follows Conventional engineering may have well-
established standards and frameworks. established regulations and standards.
Software development is typically less Conventional engineering may be more
expensive to start, but costs may increase expensive to start due to materials and
with maintenance and updates. construction but may have lower maintenance
costs.
SoftwareFactors of Software Quality----

Factors of Software Quality----


The modern read of high-quality associates with software many
quality factors like the following:

1. Portability: A software is claimed to be transportable, if it may


be simply created to figure in several package environments, in
several machines, with alternative code merchandise, etc.
2. Usability: A software has smart usability if completely different
classes of users (i.e. knowledgeable and novice users) will simply
invoke the functions of the merchandise.
3. Reusability: A software has smart reusability if completely
different modules of the merchandise will simply be reused to
develop new merchandise.
4. Correctness: Software is correct if completely different needs as
laid out in the SRS document are properly enforced.
SoftwareFactors of Software Quality----

• Maintainability: A software is reparable, if errors may be simply


corrected as and once they show up, new functions may be simply
added to the merchandise, and therefore the functionalities of the
merchandise may be simply changed, etc
• Reliability. Software is more reliable if it has fewer failures. Since
software engineers do not deliberately plan for their software to fail,
reliability depends on the number and type of mistakes they make.
Designers can improve reliability by ensuring the software is easy to
implement and change, by testing it thoroughly, and also by ensuring
that if failures occur, the system can handle them or can recover
easily.
• Efficiency. The more efficient software is, the less it uses of CPU-time,
memory, disk space, network bandwidth, and other resources. This is
important to customers in order to reduce their costs of running the
software, although with today’s powerful computers, CPU time,
memory and disk usage are less of a concern than in years gone by.
SoftwareFactors of Software Quality----

SDLC---
The software development lifecycle (SDLC)
outlines several tasks required to build a
software application. The development process
goes through several stages as developers add
new features and fix bugs in the software.
SoftwareFactors of Software Quality----

Phases of the waterfall model

When used for a software development process, the waterfall


methodology has seven stages:

1---Requirements. Potential requirements, deadlines and guidelines for the


project are analyzed and placed into a formal requirements document, also
called a functional specification. This stage of development defines and plans
the project without mentioning specific processes.
2---Analysis. The system specifications are analyzed to generate product
models and business logic to guide production. This is also when financial and
technical resources are audited for feasibility.
3---Design. A design specification document is created to outline technical
design requirements, such as the programming language, hardware, data
sources, architecture and services.
SoftwareFactors of Software Quality----

4--Coding and implementation---The source code is


developed using the models, logic and requirement
specifications designated in the prior phases. Typically,
the system is coded in smaller components, or units,
before being put together.
5—Testing--- This is when quality
assurance, unit, system and beta tests identify issues
that must be resolved. This may cause a forced repeat
of the coding stage for . If the system passes integration
and testing, the waterfall continues forward.
SoftwareFactors of Software Quality----

• Linear sequential model or classic life cycle or


waterfall model
SoftwareFactors of Software Quality----

• Advantages of the waterfall model


• enables large or changing teams to move
toward a common goal that's been defined in
the requirements stage;
• forces structured, disciplined organization;
• simplifies understanding, following and
arranging tasks;
• facilitates departmentalization and managerial
control based on the schedule or deadlines
SoftwareFactors of Software Quality----

• Disadvantages of the waterfall model


• Design isn't adaptive; when a flaw is found, the entire
process often needs to start over.
• Method doesn't incorporate midprocess user or client
feedback, and makes changes based on results.
• Waterfall model delays testing until the end of the
development lifecycle.
• It doesn't consider error correction.
• The methodology doesn't handle requests for changes,
scope adjustments and updates well.
• Waterfall doesn't let processes overlap for simultaneous
work on different phases, reducing overall efficiency.
SoftwareFactors of Software Quality----

Prototype model--
• Prototyping paradigm begins with
requirements gathering.
• Developer and customer meet and define the
overall objectives for the
• software , identity whatever requirement are
known and outline areas .
• A quick design then occurs.
Prototype model fig
Prototype model

• Advantages:
• User are actively involved in the development
• Errors can be detected much earlier
• Quicker user feedback is available leading better
solutions
• Missing functionality can be easily identified
• Users get a better understanding
• Disadvantages:
• Repairing way of building system
• Practically may increase the complexity of the system
• Incomplete applications may cause applications
Rapid Application Development(RAD) Model---

Rapid Application Development(RAD) Model---


• It is an incremental software development process model
that emphasizes an extremely short development cycle.
• It is a high –speed adaptation of the linear sequential
model
• It enables a development team to create a fully functional
system within
very short time periods (e.g. 60 to 90 days).
• The following Phases :
• Business modeling
• Data modeling
• Process modeling
• Application generation
• Testing and turnover
Rapid Application Development(RAD) Mode

Rapid Application Development(RAD) Mode

• Business modeling: Information flow among business


functions,
• Data modeling : data objects ,relationship between
objects.
• Process modeling: information flow , adding ,modifying ,
deleting and retrieving a data objects.
• Application generation: Generation programming
languages.
• Testing and turnover: reduces overall testing time, reuses.
Rapid Application Development(RAD) Model—

Rapid Application Development(RAD) Model—


Evolutionary process Models—

Evolutionary process Models—


• Evolutionary models are iterative models.
• Software engineers to develop increasingly
more complete versions of the software.
• Incremental model
• Spiral model.
Incremental model---
• Linear sequential model.
• Iterative philosophy of prototyping.
• EX: word-processing ,what’s app .etc
• Increment 1 :
• Analysis , Design ,code ,Test
• Increment 2 :
• Analysis , Design ,code ,Test
• ….
• Increment n :
• Analysis , Design ,code ,Test
SoftwareFactors of Software Quality----

Incremental model---
SoftwareFactors of Software Quality----

Spiral model—
• Iterative nature.
• Incremental version of the software.
• Phases :
• Customer communication: effective communication between
developer
and customer.
• Planning: resources, timelines, and other project related
information.
• Risk analysis: technical and management risks
• Engineering: build one or more representations of the application
• Construction and release: construct, test, install, and provide user
support
• Customer evaluation: obtain customer feedback based on
evaluation of the software
Spiral model

Spiral model---
Spiral model

Spiral Model Phases


Spiral Model Phases Activities performed during phase
1-Planning
It includes estimating the cost, schedule and resources for the iteration. It
also involves understanding the system requirements for continuous
communication between the system analyst and the customer
2-Risk Analysis
Identification of potential risk is done while risk mitigation strategy is planned
and finalized
Scheduling Risk
Technology Risk
Technology Risk
Spiral model

3-Engineering
It includes testing, coding and deploying software at the customer site
4-Evaluation
Evaluation of software by the customer. Also, includes identifying and
monitoring risks such as schedule slippage and cost overrun
Spiral model

Advantages

1- Additional functionality or changes can be done at a later


stage.
2- Cost estimation becomes easy as the prototype building is
done in small fragments.
3- Continuous or repeated development helps in risk
management.
4- Development is fast and features are added in a systematic
way in Spiral development.
5- There is always a space for customer feedback
Spiral model

disadvantages

1- Risk of not meeting the schedule or budget


2- Spiral development works best for large projects only also
demands risk assessment expertise
3- For its smooth operation spiral model protocol needs to be
followed strictly .
4- Documentation is more as it has intermediate phases
5- Spiral software development is not advisable for smaller
project, it might cost them a lot
Iterative model

The iterative process model is the implementation of the


software development life cycle in which the initial development
is started based on the initial requirements and more features
are added to the base software product with the ongoing
iterations until the final system is created.

The iterative model was designed as an improvement to the


existing waterfall model. The waterfall model is a linear SDLC
model whereas the iterative model is cyclical in nature.
Iterative model
Iterative model

Advantages of Iterative Model


• This model produces a working software much quickly and
early during the SDLC.
• This model is very flexible. As new functionality can be added
to it at any time of development.
• This model is considerably cheap as it is less costly to change
requirements as compared to the other process models.
• The end-user or the stakeholders can give their feedback
quickly, which can then be implemented into the system.
• The errors and bugs in the system can be identified early.
• Takes smaller development teams as compared to other
process models.
Iterative model

• Disadvantages of Iterative Model


• Problems pertaining to the system architecture can
come up because all the requirements are not
gathered upfront.
• It is not a good choice for small projects.
• More resource-intensive than waterfall model.
• Risk analysis requires highly qualified specialists to
check the risks in our system.
• The whole process is difficult to manage.
THANK YOU
Department of Applied Computational Science & Engg.
Course Code : Course Name:

Recommended Books
Text books
1. RS Pressman, Software Engineering: A Practitioners Approach, McGraw Hill.
2. Pankaj Jalote, Software Engineering, Wiley
3. Rajib Mall, Fundamentals of Software Engineering, PHI Publication.
4. KK Aggarwal and Yogesh Singh, Software Engineering, New Age International
Publishers.
5. Ghezzi, M. Jarayeri, D. Manodrioli, Fundamentals of Software Engineering, PHI
Publication
6. Ian Sommerville, Software Engineering, Addison Wesley.
7. Kassem Saleh, “Software Engineering”, Cengage Learning.
8. P fleeger, Software Engineering, Macmillan Publication

Additional online materials:


https://www.youtube.com/watch?v=b7hmU72GRaE&list=PLqleLpAMfxGB1g0xlYj2H6lyY2
Q2ku7p9
https://www.youtube.com/watch?v=0Wcme-TI75Y&list=PLFge8Doy5d0iFyR1X2o8YItNMJe5XNVZ
E
Program Name: B. Tech. AI Program Code: KDS 063
Department of Applied Computational Science & Engg.
Course Code : Course Name:

Recommended Books
Text books
1. RS Pressman, Software Engineering: A Practitioners Approach, McGraw Hill.
2. Pankaj Jalote, Software Engineering, Wiley
3. Rajib Mall, Fundamentals of Software Engineering, PHI Publication.
4. KK Aggarwal and Yogesh Singh, Software Engineering, New Age International
Publishers.
5. Ghezzi, M. Jarayeri, D. Manodrioli, Fundamentals of Software Engineering, PHI
Publication
6. Ian Sommerville, Software Engineering, Addison Wesley.
7. Kassem Saleh, “Software Engineering”, Cengage Learning.
8. P fleeger, Software Engineering, Macmillan Publication

Additional online materials:


https://www.youtube.com/watch?v=b7hmU72GRaE&list=PLqleLpAMfxGB1g0xlYj2H6lyY2
Q2ku7p9
https://www.youtube.com/watch?v=0Wcme-TI75Y&list=PLFge8Doy5d0iFyR1X2o8YItNMJe5XNVZ
E
Program Name: B. Tech. AI Program Code: KDS 063

You might also like