Es-Unit 3 Edlc-Iii Eee

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 45

UNIT – 3

EMBEDDED FIRMWARE
DEVELOPMENT ENVIRONMENT
EDLC
[Embedded product development life
cycle]
Contents:
 Introduction
 What is EDLC
 Why EDLC
 Objectives of EDLC
 Different phases of EDLC
 EDLC approaches
Introduction :
Software development company – SDLC
likewise
Product development company - EDLC
Example – Preparation of any food dish
 Dish selection and Ingredient list

 Procurement of the items in the list

 Preparation and initial taste testing

 Serving and final taste testing

Embedded Product development view


 Father - Overall management

 Mother - Developing and testing

 We - End user /client


What is EDLC?
 EDLC is an Analysis-Design-Implementation based
problem solving approach for the product
development.

 Analysis – What product need to be developed


 Design – Good approach for building it
 Implementation – To develop it
Why edlc?
 Essential in understanding the scope and
complexities involved in any Embedded
product development.
 Defines interaction and activities among
Various groups of product development
sector, including:
 Projectmanagement
 System design and development
 System testing
 Release management and quality assurance
Objectives of EDLC
 Aim of any product development is the Marginal benefit
 Marginal benefit = Return on investment
 Product needs to be acceptable by the end user i.e. it has to
meet the requirements of the end user in terms of quality,
reliability & functionality.
 EDLC helps in ensuring all these requirements by following
three objective – initial investment, man power, infrastructure
 Ensuring that high quality products are delivered to
user
 Risk minimization and defect prevention in product
development through project management
 Maximize productivity
Ensuring high quality products
 The primary definition of quality in any embedded
product development is return on investment
achieved by the product.
 In order to survive in market, quality is very
important factor to be taken care of while
developing the product.
 Qualitative attributes depends on the budget of the
product so budget allocation is very important.
 Budget allocation might have done after studying
the market, trends & requirements of product,
competition etc.
Risk minimization & defect prevention
through project management
 Project management (PM)
 Adds an extra cost on budget
 But essential for ensuring the development process is
going in right direction
 Projects in EDLC requires Loose project
management or tight project management.
 PM is required for
 Predictability
 Analyze the time to finish the product (PDS = no of person days )
 Co-ordination
 Resources (developers) needed to do the job
 Risk management
 Backup of resources to overcome critical situation
 Ensuring defective product is not developed
Increased productivity
 Measure of efficiency as well as ROI
Different ways to improve the productivity are
 Saving the manpower
X members – X period
 X/2 members – X period

 Use of automated tools where ever is required


 Re-usable effort – work which has been done for the
previous product can be used if similarities present
b/w previous and present product.
 Use of resources with specific set of skills which
exactly matches the requirements of the product,
which reduces the time in training the resource
Different phases of edlc

 A life cycle of product development is


commonly referred as the “model”
 A simple model contains five phases
 Requirement analysis
 Design
 Development and test
 Deployment and maintenance
 The no. of phases involved in EDLC model
depends on the complexity of the product
Classic Embedded product development life cycle model
NEED:
 Any embedded product may evolve as an
output of a need.
 Need may come from an individual/from
public/from company(generally speaking from
an end user/client)
 New/custom product development
 Commercial/ individual/ organisation’s requirement
 Product re-engineering
 Change in Business requirements
 UI enhancements

 Technology upgrades

 Product maintenance
 Corrective maintenance
CONCEPTUALIZATION:
CONCEPTUALIZATION:
Analysis and Estimation
 Feasibility study
-- Technical challenges and Financial feasibility
 Product scope
– functionalities documented for future reference
 Cost Benefit Analysis

 Identifying
 Revealing and
 Assessing the total development cost
 Principles of CBA
 Common unit of measurement
 Marginal Profit in terms of money (INR/USD/Euro)
 Market choice based benefit measurement
 Targeted end users
CONCEPTUALIZATION:
Planning activities
 Resource planning
 Risk management plans
 Kinds of risks and mitigation plans
 Future phases planning
ANALYSIS:

Analyze and
Analyze and
document
document
functional and non-
functional and non-
functional
functional
requirements
requirements

Interface Requirement
Interface
definition and Requirement
specification Document
definition
documentationand specification Document
document review
documentation document review

Define test plan


Define
and test plan
procedure Rework on
and procedure Rework on
requirements
andrequirements
documents
and documents
Types of testing
 Unit testing—Testing each unit or module of
the product independently for required
functionality and quality aspects
 Integration testing—Integrating each modules
and testing the integrated unit for required
functionality
 System testing- Testing the functional
aspects/product requirements of the product
after integration.
System testing
 Usability testing—Tests the usability of the
product
 How convenient is the software to end user.
 tracking of user behaviours, including mouse clicks,
keystrokes, and active or open windows.
 Load testing—Tests the behavior of the
product under different loading conditions.
 Downloading a series of large files from the internet.
 Security testing—testing the security aspects of the
product
 uncover vulnerabilities of the system and determine that
its data and resources are protected from possible
intruders.
 Scalability testing—testing the scalability aspect of
the product
 capability to cope and perform under an increased or
expanding workload.
 in terms of any of its non-functional capability like load
supported, the number of transactions, the data volume
etc.
System testing cont…
 Sanity testing—
Superficial testing performed to ensure that the product is
functioning properly and to determine that the developer has
applied some rationality (sanity) while producing the software.
 If your scientific calculator gives the result of 2 + 2 =5! Then,
there is no point testing the advanced functionalities like sin
30 + cos 50.
 Smoke testing—
Non exhaustive test to ensure that the crucial requirements for the
product are functioning properly.
This test is not giving importance to the finer details of different
functionalities
 Verify that the application launches successfully, Check that
the GUI is responsive ... etc.
 Smoke testing is like General Health Check Up

 Performance testing—Testing the performance
aspects of the product after integration
 This process can involve quantitative tests done in a
lab, such as measuring the response time or the
number of MIPS (millions of instructions per second)
at which a system functions.
 Endurance testing—Durability test of the
product
 Ability to handle continuous expected load for
longer period of time
 User acceptance testing—Testing the product
to ensure it is meeting all requirements of the
end user.
 to collect feed back from customers after completion
of functional testing.
DESIGN: Deals with the entire design of the product taking the requirements
into consideration and focuses on how the functionalities can be delivered.

•Generates detailed
architecture including
components for
•Only i/p & o/p function of each
are defined here block
•Product will look •Detailed architecture
like a black box also needs approval
•Sent for approval
from client
DEVELOPMENT AND TESTING:
 Development phase transforms the design into realizable product

 Design is transformed into hardware and firmware

 Look and feel of the device is very important

Testing phase can be divided into


 Unit testing – independent testing of hardware and firmware

 Integration testing – testing after integrating hardware and

firmware
 System testing – testing of whole system on functionality and

non-functionality basis
 User acceptance testing – testing of the product against the

criteria mentioned by the end-user/client


 Test reports
DEPLOYMENT:
 A process of launching fully functional model into the market
Tasks Performed
 Notification of product deployment
 Execution of training plan
 Product installation
 Product post implementation review
SUPPORT:
 Deals with the operation and maintenance of the product
 Support should be provide to the end user/client to fix the bugs of the product
UPGRADES:
 Releasing of new version for the product which is already exists in the market
 Releasing of major bug fixes.
RETIREMENT/DISPOSAL:
 Everything changes, the technology you feel as the most advanced and best
today may not be the same tomorrow
 Due to this the product cannot sustain in the market for long
 It has to be disposed on right time before it causes the loss.
EDLC APPROACHES:
Linear/Waterfall Model:
Each phase of EDLC is
Need
Need executed in sequence
Conceptualization
Flow is unidirectional
Conceptualization Output of one phase
Analysis serving as input of other
Analysis
Best suited for product
Design
Design developments with well
Development & testing defined requirements
Development & testing
Deployment
Deployment
Support
Support
Upgrades
Upgrades
Retirement
Retirement
Iterative/Incremental/Fountain EDLC Model:

Cascaded series of linear models


Do some analysis, follow some design,
then some implementation in cycles
Repeat the cycles until the
requirements are met
Used for products where risk is very
high when used with linear model
Prototyping/evolutionary model:
 Similar to iterative model, product is developed in
multiple cycles
 The only difference is the model produces more
refined prototype of the product at each cycle instead
of just adding the functionality at each cycle like in
iterative model.
 Approach:
 Requirements definition
 Proto type development
 Proto type Evaluation
 Requirements refining
PROTOTYPING/EVOLUTIONARY
MODEL
Spiral model:
 Spiral model is best suited for the development of
complex embedded products and situations where
the requirements are changing from customer side.
 Risk evaluation in each stage helps in reducing risk
SPIRAL MODEL
Conclusion
 In order to make best profit out of product
what you do, development life cycle is very
important.
 To build a reliable product, of best quality,
functionality and to release your product in
right time.
 EDLC will make things easy for sure!!.
ISSUES IN HARDWARE SOFTWARE
DESIGN AND CO-DESIGN
 Selection of model
 Selecting the architecture – commonly used
architecture are, controller architecture, datapath
architecture, CISC, RISC, Very long instruction
set computing, single instruction multiple data,
multiple instruction multiple data.
 Controller architecture: uses state register and
combinational circuits – state register holds the
present state and combinational circuits
implements logic for next state and output.
 Datapath Architecture: represents channel
between input and output. It may contain
registers, counters, register files, memories and
ports along with high speed arithmetic units.
 Complex instruction set computing: possible
to perform large complex operations with
single instruction. Reduces the program
memory access and memory size requirements.
Requires additional silicon for implementing
microcode decoder for decoding the CISC
instruction.
 RISC: uses instruction set representing simple
operations and requires the execution of
multiple RISC instruction to program complex
operation.
 Very long instruction word: implements
multiple functional units in the datapath.
 Parallel processing architecture: implements
multiple concurrent processing element and
each processing element may associate a
datapath containing register and local memory.
 Selecting the language
ISSUES IN HARDWARE SOFTWARE
DESIGN AND CO-DESIGN
 1.Embedded system design
 (1)When the software development cycle ends
then the cycle begins for the process of
integrating the software into the hardware at
the time when a system is designed .
 (2) Both cycles concurrently proceed when co-
designing a time critical sophisticated system
 2. Hardware Software Trade off
 It is possible that certain subsystems in
hardware (microcontroller), IO memory
accesses, real-time clock, system clock, pulse
width modulation, timer and serial
communication are also implemented by the
software.
 A serial communication real-time clock and
timers featuring microcontroller may cost
more than the microprocessor with external
memory and a software implementation.
 Hardware implementations provide advantage
of processing speed
 Hardware implementation advantages
( i ) Reduced memory for the program.
( ii ) Reduced number of chips but at an increased
cost.
( iii ) Simple coding for the device drivers.
( iv ) Internally embedded codes, which are more secure
than at the external ROM
(v) Energy dissipation can be controlled by controlling
the clock rate and voltage
 Software implementation advantages
(i) Easier to change when new hardware versions
become available.
(ii) Programmability for complex operations.
(iii) Faster development time.
(iv) Modularity and portability.
(v) Use of standard software engineering, modeling and
RTOS tools.
(vi) Faster speed of operation of complex functions with
high-speed microprocessors.
(vii) Less cost for simple systems.

You might also like