Introduction to Software Engineering
Software Process
Dr. Vendhan Duraisamy
KAMARAJ College of Engineering and Technology
Unit I - Software Process Models
IT2203 - Software Engineering
Software
Software - It is a collection of computer programs and related
documents that are intended to provide desired features,
functionalities and better performance.
•Software products may be:
1. Generic - Developed software to be sold to a range of
different customers.
2. Custom - Software is developed for a single customer
according to their specification.
Software Characteristics
• Software is developed or engineered, it is not manufactured in
the classical sense.
– Quality is concerned.
– Developers are responsible for producing qualitative product.
• Software doesn’t wear out.
– Software is not susceptible to the environmental maladies.
– As changes are made, errors will be occurred, causing the
failure rate to spike.
– Software maintenance tasks are considerably more
complexity than hardware maintenance.
• The industry is moving toward components-based construction,
most software continues to be custom built.
– Software industry is trying to make library of reusable
components.
idealized curve
change
actual curve
Failure
rate
Time
increased failure
rate due to side effects
Failure Curve for Software - Idealized Curve
Failure Curve for Hardware - Bathtub Curve
Categories of Software
1. System Software - It is a collection of programs written to serve
other programs.
To establish a communication with the hardware. Eg: OS
2. Application Software - Standalone programs that are developed
for specific business needs.
This software may be supported by database systems.
3. Engineering/Scientific Software - It has a wide range of
programs from astronomy to volcanology.
This software is based on complex computations.
4. Embedded Software - Programs that can reside within a
product or system.
It can be used to implement and control features and functions for
the end-user and for the system itself.
5. Web Applications - Web application software consists of
various web pages that can be retrieved by a browser.
(JAVA, PERL, CGI, HTML, DHTML)
6. Artificial Intelligence Software - Makes use of non numerical
algorithms to solve complex problems.
This software is useful in robotics, expert systems, image and
voice recognition, artificial neural networks, theorem proving
and game playing.
Goals and Objectives of Software
• Satisfy Users Requirements - Understand the demand of end user.
• High Reliability - Software should be delivered only if high
reliability is achieved.
• Low Maintenance Costs - Software maintenance is done only
after delivering the software to the customer.
• Delivery on Time - Systematic development of the software can
lead to meet the given deadline.
• Low Production Costs - The software product should be cost
effective.
• High Performance - Software are expected to achieve
optimization in speed and memory usage.
• Ease of Reuse - Use same software in different systems and
software.
What is Engineering?
• Engineering is the application of scientific knowledge to solving
problems in the real world.
• It is the branch of science and technology concerned with the
design, building and use of engines, machines and structures.
• Engineering is the application of science and math to solve
problems.
• Engineering is the use of scientific principles to design and build
machines, structures, and other items, including bridges, tunnels,
roads, vehicles and buildings.
Software Engineering
• A concerned effort should be made to understand the problem
before a software solution is developed.
• Design becomes a pivotal activity.
• Software should exhibit high quality.
• Software should be maintainable.
Software Engineering - The application of a systematic,
disciplined, quantifiable approach to the development,
operation, and maintenance of software; that is, the application
of engineering to software.
Software engineering is a discipline in which theories, methods and
tools are applied to develop professional software product.
Introduction to Software Engineering
• Based on the problem and development constraints various tools and
techniques are applied to develop quality software.
• The definition of software engineering is based on two terms:
1. Discipline: For finding the solution to the problem an engineer
applies appropriate theories, methods and tools.
• While finding the solutions, engineers must think of the
organizational and financial constraints.
• Within these constraints only, he/she has to find solution.
2. Product: The software product gets developed after the following
systematic theories, methods and tools applied along with the
appropriate management activities.
Introduction to Software Engineering
A
A “
“Quality
Quality”
” Focus
Focus
Process Model
Process Model
Methods
Methods
Tools
Tools
• Software engineering is a layered technology.
• Any engineering approach (including software engineering) must
rest on an organizational commitment to quality.
• The bedrock that supports software engineering is a quality
focus.
• The foundation for software engineering is the process layer.
• Process defines a framework that must be established for effective
delivery of software engineering technology.
• Software Engineering Methods provide the technical how-to’s for
building software.
• Methods encompass a broad array of tasks that include
communication, requirement analysis, design modeling, program
construction, testing and support.
• Software Engineering Tools are used to bring automation in
software development process.
• Software Engineering is a combination of process, methods, and
tools for the development of quality software.
Software Process
• A process is a collection of activities, actions and tasks that are
performed when some work product is to be created.
• An activity strives to achieve a broad objective and is applied
regardless of the application domain, size of the project.
• An action encompasses a set of tasks that produce a major work
product.
• A task focuses on a small, but well-defined objective that
produces a tangible outcome.
• A process framework establishes the foundation for a complete
software engineering process by identifying a small number of
framework activities that applicable to all software projects,
regardless of their size or complexity.
• A generic process framework for software engineering
encompasses five activities:
1. Communication: It is important to communicate and
collaborate with customer for requirement gathering.
2. Planning: Establishes engineering work plan, describes
technical risks, resource requirements, work products produced
and defines work schedule.
Software Process - A Generic Process Framework
3. Modeling: A software engineer creates model to better
understand the requirements.
1. Analysis of requirements
2. Design (Sketch - Pictures) - Understand the problem
4. Construction: The software design is mapped into code by
1. Code Generation - Manual or Automated
2. Testing - To identify errors in the code
5. Deployment: The software is delivered to the customer who
evaluates the delivered product and provides feedback based on
the evaluation.
Software Process - Umbrella Activities
• Umbrella activities are applied throughout a software project and help
a software team manage and control progress, quality, change and
risk:
1. Software Project Tracking and Control: Software team can assess
progress and take corrective action to maintain the schedule.
2. Risk Management: The risks that may affect project outcomes or the
quality can be analyzed.
3. Software Quality Assurance: Defines and conducts the activities
required to ensure software quality.
4. Technical Reviews: It is required to assess engineering work products
to uncover and remove errors before they propagate to next activity.
5. Measurement: Defines and collects process, project and
product measures used to assist the software team in delivering
the required software.
6. Software Configuration Management: Manages the effects of
changes throughout the software process.
7. Reusability Management: Defines criteria for work product
reuse.
8. Work Product Preparation and Production: The activities to
create models, documents, logs, forms and lists are carried out.
Software Process - Umbrella Activities

1. Introduction to Software Engineering and Software Process.ppt

  • 1.
    Introduction to SoftwareEngineering Software Process Dr. Vendhan Duraisamy KAMARAJ College of Engineering and Technology Unit I - Software Process Models IT2203 - Software Engineering
  • 2.
    Software Software - Itis a collection of computer programs and related documents that are intended to provide desired features, functionalities and better performance. •Software products may be: 1. Generic - Developed software to be sold to a range of different customers. 2. Custom - Software is developed for a single customer according to their specification.
  • 3.
    Software Characteristics • Softwareis developed or engineered, it is not manufactured in the classical sense. – Quality is concerned. – Developers are responsible for producing qualitative product. • Software doesn’t wear out. – Software is not susceptible to the environmental maladies. – As changes are made, errors will be occurred, causing the failure rate to spike. – Software maintenance tasks are considerably more complexity than hardware maintenance. • The industry is moving toward components-based construction, most software continues to be custom built. – Software industry is trying to make library of reusable components.
  • 4.
    idealized curve change actual curve Failure rate Time increasedfailure rate due to side effects Failure Curve for Software - Idealized Curve Failure Curve for Hardware - Bathtub Curve
  • 5.
    Categories of Software 1.System Software - It is a collection of programs written to serve other programs. To establish a communication with the hardware. Eg: OS 2. Application Software - Standalone programs that are developed for specific business needs. This software may be supported by database systems. 3. Engineering/Scientific Software - It has a wide range of programs from astronomy to volcanology. This software is based on complex computations.
  • 6.
    4. Embedded Software- Programs that can reside within a product or system. It can be used to implement and control features and functions for the end-user and for the system itself. 5. Web Applications - Web application software consists of various web pages that can be retrieved by a browser. (JAVA, PERL, CGI, HTML, DHTML) 6. Artificial Intelligence Software - Makes use of non numerical algorithms to solve complex problems. This software is useful in robotics, expert systems, image and voice recognition, artificial neural networks, theorem proving and game playing.
  • 7.
    Goals and Objectivesof Software • Satisfy Users Requirements - Understand the demand of end user. • High Reliability - Software should be delivered only if high reliability is achieved. • Low Maintenance Costs - Software maintenance is done only after delivering the software to the customer. • Delivery on Time - Systematic development of the software can lead to meet the given deadline. • Low Production Costs - The software product should be cost effective. • High Performance - Software are expected to achieve optimization in speed and memory usage. • Ease of Reuse - Use same software in different systems and software.
  • 8.
    What is Engineering? •Engineering is the application of scientific knowledge to solving problems in the real world. • It is the branch of science and technology concerned with the design, building and use of engines, machines and structures. • Engineering is the application of science and math to solve problems. • Engineering is the use of scientific principles to design and build machines, structures, and other items, including bridges, tunnels, roads, vehicles and buildings.
  • 9.
    Software Engineering • Aconcerned effort should be made to understand the problem before a software solution is developed. • Design becomes a pivotal activity. • Software should exhibit high quality. • Software should be maintainable. Software Engineering - The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. Software engineering is a discipline in which theories, methods and tools are applied to develop professional software product.
  • 10.
    Introduction to SoftwareEngineering • Based on the problem and development constraints various tools and techniques are applied to develop quality software. • The definition of software engineering is based on two terms: 1. Discipline: For finding the solution to the problem an engineer applies appropriate theories, methods and tools. • While finding the solutions, engineers must think of the organizational and financial constraints. • Within these constraints only, he/she has to find solution. 2. Product: The software product gets developed after the following systematic theories, methods and tools applied along with the appropriate management activities.
  • 11.
    Introduction to SoftwareEngineering A A “ “Quality Quality” ” Focus Focus Process Model Process Model Methods Methods Tools Tools • Software engineering is a layered technology. • Any engineering approach (including software engineering) must rest on an organizational commitment to quality. • The bedrock that supports software engineering is a quality focus.
  • 12.
    • The foundationfor software engineering is the process layer. • Process defines a framework that must be established for effective delivery of software engineering technology. • Software Engineering Methods provide the technical how-to’s for building software. • Methods encompass a broad array of tasks that include communication, requirement analysis, design modeling, program construction, testing and support. • Software Engineering Tools are used to bring automation in software development process. • Software Engineering is a combination of process, methods, and tools for the development of quality software.
  • 13.
    Software Process • Aprocess is a collection of activities, actions and tasks that are performed when some work product is to be created. • An activity strives to achieve a broad objective and is applied regardless of the application domain, size of the project. • An action encompasses a set of tasks that produce a major work product. • A task focuses on a small, but well-defined objective that produces a tangible outcome.
  • 14.
    • A processframework establishes the foundation for a complete software engineering process by identifying a small number of framework activities that applicable to all software projects, regardless of their size or complexity. • A generic process framework for software engineering encompasses five activities: 1. Communication: It is important to communicate and collaborate with customer for requirement gathering. 2. Planning: Establishes engineering work plan, describes technical risks, resource requirements, work products produced and defines work schedule. Software Process - A Generic Process Framework
  • 15.
    3. Modeling: Asoftware engineer creates model to better understand the requirements. 1. Analysis of requirements 2. Design (Sketch - Pictures) - Understand the problem 4. Construction: The software design is mapped into code by 1. Code Generation - Manual or Automated 2. Testing - To identify errors in the code 5. Deployment: The software is delivered to the customer who evaluates the delivered product and provides feedback based on the evaluation.
  • 16.
    Software Process -Umbrella Activities • Umbrella activities are applied throughout a software project and help a software team manage and control progress, quality, change and risk: 1. Software Project Tracking and Control: Software team can assess progress and take corrective action to maintain the schedule. 2. Risk Management: The risks that may affect project outcomes or the quality can be analyzed. 3. Software Quality Assurance: Defines and conducts the activities required to ensure software quality. 4. Technical Reviews: It is required to assess engineering work products to uncover and remove errors before they propagate to next activity.
  • 17.
    5. Measurement: Definesand collects process, project and product measures used to assist the software team in delivering the required software. 6. Software Configuration Management: Manages the effects of changes throughout the software process. 7. Reusability Management: Defines criteria for work product reuse. 8. Work Product Preparation and Production: The activities to create models, documents, logs, forms and lists are carried out. Software Process - Umbrella Activities