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.
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