0% found this document useful (0 votes)
38 views54 pages

SE - Unit One

The document provides an overview of software engineering, defining software as a set of instructions and detailing its types, including system, application, and utility software. It outlines the software engineering process, including phases such as requirement gathering, design, implementation, testing, deployment, and maintenance, along with various process models like Waterfall, Incremental, and Agile. Additionally, it emphasizes the importance of software engineering in managing complexity and ensuring quality in software development.

Uploaded by

nayankokane62
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)
38 views54 pages

SE - Unit One

The document provides an overview of software engineering, defining software as a set of instructions and detailing its types, including system, application, and utility software. It outlines the software engineering process, including phases such as requirement gathering, design, implementation, testing, deployment, and maintenance, along with various process models like Waterfall, Incremental, and Agile. Additionally, it emphasizes the importance of software engineering in managing complexity and ensuring quality in software development.

Uploaded by

nayankokane62
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/ 54

1.1.

Software Engineering
fundamentals
 Software:- Set of instructions or set of programs
are known as software.
 In computer science and software
engineering, computer software is all the
information processed by computer
systems, programs and data.
 computer software includes computer
programs, libraries and related non
executable data such as online
documentation or digital media.
What is software?
 Definitions:

1. Software is a set of instructions (computer


programs) that when executed provide desired
features, function and performance.
2. Software is a data structures that enable the
programs to adequately manipulate information.
3. Software is a descriptive information in both
hard copy and virtual forms that describes the
operation and use of the programs.
 Types of Software:-
1. System Software
2. Application Software
3. Utility Software

 System Software: It is a software designed to provide a


platform to other software.
Ex. Operating System (Windows, Android, Linux)

 Application Software: The software that helps you to do


a specific type of works is called as application software.
Ex. Ms word, Excel etc…..
Cont’d….

 Utility Software: To manage, maintain and


control computer resources.

Ex. Antivirus Software


Characteristics of Software

1. Software is developed or engineered; it is not


manufactured in the classical sense.
2. Software doesn’t “wear out”.
3. Custom built software
4. Efficiency
5. Maintability
6. Dependability
 Engineering: Application of science, tools and methods to
find out cost effective solution to problems.
OR
 Engineering is an Application of knowledge and well
defined principles to develop products.

 Software Engineering:- It is the method of applying


scientific and technological knowledge, procedures and
rules to design, develop, test and maintain the software
the product.
OR
Software Engineering:- Applying technological , scientific and
administrative approach to designing, developing, testing and
maintaining the software product in order to meet customer’s
requirements with best quality of referred as software
engineering.
Cont’d….
Purpose of Software Engineering

• To manage large software.

• To manage the cost.

• To manage the dynamic nature of the software.


Importance of Software Engineering
Why Study Software Engineering ?
• To acquire skills to develop large programs.
- Exponential growth in complexity and difficulty level
with size.

- The adhoc approach breaks down when size of software


increases
Cont’d….
• Ability to solve complex programming problems:
- How to break large projects into smaller and
manageable parts?

• To acquire skills to be a better programmer:


- Higher Productivity
- Better Quality Programs

• Learn techniques of:


- specification, design, interface development,
testing, project management, etc.
Nature of Software
• 7 broad categories of software:-

1. System Software
2. Application Software
3. Engineering & Scientific Software
4. Embedded Software
5. Product-line software
6. Web Applications
7. Artificial Intelligence software
Nature of Software
• 7 broad categories of software:-

1. System Software
2. Application Software
3. Engineering & Scientific Software
4. Embedded Software
5. Product-line software
6. Web Applications
7. Artificial Intelligence software
Cont’d….
 System Software:- It is a collection of program
written to provide service for other program.

Example:- OS & compiler

 Application Software:- It is a program or group


of programs designed for end users.

Example:- Email, spread sheets


Cont’d….
 Engineering & Scientific Software:- The software
is used to facilitate the engineering functions &
tasks.

Example:- CAD

 Embedded Software:- It is used to control


products & systems for consumer & industrial
markets. It resides in ROM.

 Example:- GPS devices, calculators.


Cont’d
 Web applications:- It is a client-server computer
program which the client runs in a web browser.

Examples:- online auctions, web mails, websites

 Artificial Intelligence software:-ML learning includes


algorithms that are developed to tell a computer
how to respond to something by example.

Examples:- Speech recognition, Problem Solving


Learning & planning
Software Process
 Process:- A sequence of steps/actions taken to
develop successful software system.

 Process Framework:- Establishes the for SE by


identifying small no. of framework activities and
umbrella activities that are applicable for entire
software process.
Software Process Framework
Software

Process Framework
The process of framework consist if several activities which are
applicable to all types of projects,
• The software process framework is considered as a group of
various types of task sets.
• In the task sets there is collection of small work tasks, project
milestones, work productivity as well as software quality
assurance points.
Software Engineering Process
1. Requirement gathering analysis
• In this phase stakeholders communicate with customer and
system users to gather the business requirements like who will
use the system? How use will interact with the system? What
should be the system input and output? Etc
• Depending upon these requirements, Requirements
Specification Document (SRS) is prepared.
2. Design
• This phase makes use of output of requirements gathering
phase i.e. requirement specification document as an
input.
• Based on requirement specifications, software design
is prepared.
• Output of this phase is design specifications which
Cont’d….

• Data flow diagrams, flowcharts etc are included by design


specification document.
• Design specification acts as an input for Implementation phase
 3. Implementation
• Implementation phase of development process decomposes the
system work into various smaller parts called modules.
• These modules are assigned to development team members and
actual coding is started.
• This is longest phase of system development.
• Output of this phase is actual code using specific programming
language .
Cont’d….
4. Testing
• Testing phase involves testing of actual code of system against
requirements of user in order to ensure that system will ensure will
satisfy all needs of users.
• Various testing strategies used are unit testing, system testing ,
integration testing, etc
• Output of testing phase is corrected and modified software code.
5. Deployment
• In this phase the system is deployed at users’ site for their use.
• In this phase customer uses the software and give feedback to
development team for any changes modifications in system if any.
 6. Maintenance
• Once the software is deployed actual problems from user’s
perspective will come up. Its is responsibility of development team to
solve user’s problem time to time. This process is called as
maintenance of system.
Umbrella Activities

 Framework activities: Small projects


 Umbrella activities: Large projects
1. Software project tracking and control:-
Compare the progress of the project with the plan and take steps to
maintain a planned schedule.
2. Risk management:-
Analyze any potential risk that may have an impact on the software
product’s quality and outcome.
3. Software quality Assurance:-
These are activities required to maintain software quality.
Perform actions to ensure the product’s quality.
Cont’d….
4. Formal technical reviews:-
Assessment of errors and correction done at each stage of
activity
5. Software configuration management:-
Managing of configuration process when any change in the
software occurs.
6. Reusability Management:-
Reusable work items should be backed up. And reusable
software components should be achieved.
7. Work product preparation and production:-
The activities to create models, documents, logs, forms
and lists are carried out.
SE Layered Architecture
Cont’d….
•Software engineering is a fully layered
technology.

• To develop a software, we need to go from


one layer to another.

• All these layers are related to each other


and each layer demands the fulfillment of
the previous layer.
Cont’d….
1. Quality focus
The characteristics of good quality
software are:
Correctness of the functions required to be
performed by the software.
Maintainability of the software
Integrity i.e. providing security so that the
unauthorized user cannot access information
or data.
Usability i.e. the efforts required to use or
operate the software.
Cont’d….
2. Process : It is the base layer or
foundation layer for the software
engineering.
The software process is the key to keep all
levels together.
It defines a framework that includes
different activities and tasks.
In short, it covers all activities, actions and
tasks required to be carried out for software
development.
Cont’d….
3. Methods :The method provides the
answers of all 'how-to' that are asked during
the process.
It provides the technical way to implement
the software.
It includes collection of tasks starting from
communication, requirement analysis,
analysis and design modelling, program
construction, testing and support.
Cont’d….
4. Tools :The software engineering tool is
an automated support for the software
development.
The tools are integrated i.e the information
created by one tool can be used by the other
tool.
For example: The Microsoft publisher can
be used as a web designing tool.
Principles that Guide
Process
Be agile
1.

Focus on quality at every step


2.

3. Be ready to adapt
4. Build an effective team
5. Establish mechanisms for communication and coordination
6. Manage change
7. Assess risk
8. Create work products that provide value for others
Principles that Guide
Divide and conquer
1.

2.
Practice
Understand the use of abstraction
3. Strive for consistency
4. Focus on the transfer of information
5. Build software that exhibits effective modularity
6. Look for patterns
7. When possible, represent the problem and its solution
from a number of different perspectives.
8. Remember that someone will maintain the software.
Prescriptive Process Model
 A process model describes how each step in SDLC
works & what are the process required for each
step in SDLC.

 5 Process Model
1. Waterfall Model
2. Incremental Model- a) Incremental b) RAD
3. Iterative Model- a) Prototype b) Spiral
4. Evolutionary Model
5. Unified Model
Software Development Life Cycle
(SDLC)
 Refers to overall process involved in the s/w
development.
Cont’d….

 6 Phases in SDLC :

1. Requirement gathering & analysis


2. Design
3. Implementation / development
4. Testing
5. Deployment
6. Maintenance
Cont’d….
 Requirement gathering & analysis:- User
requirements are collected from the user and
are provided to development team &
documents the requirements in the SRS
document.

 Design:- Based on the requirement we make


a design showing how the flow of process
should happen.

Types - High level design e.g. Complete


house
Cont’d….
 Implementation/ Development:- We start writing
the code for the s/w product. Output is code
document.

 Testing:- Once the s/w is ready, it is sent to the


testing team. Check errors, validation of Req. etc.

 Deployment:- Delivering the s/w to customer

 Maintenance:- Solving the problems of the


customers.
Waterfall Model
 Oldest Model
 Sequential Development
 Requirements
 No reverse direction
 Only when we are clear about requirements
 Low budget Projects
 No customer involvement
 Will not allow any changes
Cont’d….
Cont’d….
Cont’d….
Incremental Model
 Requirements are divided into multiple modules

 Each module – Analysis, design, code & Testing

 Used in day to day applications


e.g. Banking

 Less manpower is required

 Two Models :-
1. Incremental Model and RAD Model
Incremental Model
Cont’d….
Cont’d….
RAD Model
Iterative Process Model
 Two Types :-
1. Prototype Model:- Sample- dummy model
- used when customer is not clear about req.
- also called throwaway model

2. Spiral Model:- 4 stages


- Repetitive activities
- mainly used for risk handling
Prototype Model
Spiral Model
Evolutionary Model
 Also called Successive Version Model

 Combination of iterative and incremental model

 Incremental model first implement a few basic


features(i.e. basic s/w) and deliver to the customer.
Then build the next part and deliver it again and
repeat process.

 Iterative model it takes feedback from every phases.


Cont’d….
 Here, we break our work into smaller parts

 Prioritize those parts and deliver to customer one


by one

 Also known as “ Design a little, build a little, test


a little and deploy a little model.
Evolutionary Model
Advantages and Disadvantages
 Advantages:
 Customer requirements are clearly specified
 Risk analysis is better
 It supports changing environment
 Initially operating time is less
 Better suited for large mission-critical projects

 Disadvantages:
 Not suitable for smaller projects
 Cost is large
 Highly skilled resources are required.
Unified Process Model
 Used only in case of object oriented systems(real time
systems)
Agile Software Development
 Agile:- Move quickly

You might also like