software engineering fundamentals
DESCRIPTION
Fundamentals of Software Engineering.TRANSCRIPT
Software Engineering
Definition Software: The programs, routines and
symbolic language that controls the functioning of the hardware and direct its operation.
Engineering: The application of scientific and mathematical principals to practical ands such as the design, manufacture & operation of efficient and economical structures, machines, processes and systems.
Definition
Software Engineering: A systematic approach to the analysis, design, implementation and maintenance of software.
1. Conventional Methods of SE
Analysis Concepts and Principals Analysis Modeling Design Concepts and Principals Architectural Design User Interface Design
Software Life-cycle
Requirements Analysis Design Construction Testing Installation Maintenance Retirement
Analysis concepts and Principals
Understand the Information domain of the problem
Define the functionalities of the S/W Represent the behavior of the S/W Partition the models that models
that depict information, function and behavior
Analysis Procedure
Requirements Collection Customer Communication
(Questionnaire, Interviews etc.) Modeling Partitioning Prototyping Requirements Specification
Analysis Modeling
ER Diagram Data Flow Diagram
State Transition Diagram
Data Dictionary
Data ObjectDescription
Process/FunctionSpecification
Behavior/ControlSpecification
Design Concepts & Principals
Data Design Data Structures
Architectural Design Relationship among structural elements
Interface Design Human-Computer interaction
Procedural Design Procedural description of S/W
components
2. Software Project Management
Four P’s of Project Management People Product Process Project
Project Management… People must be organized into effective
terms, motivated to do high-quality s/w work and coordinated to do effective communication.
The Product requirements must be communicated from customer to developer, partitioned into their constituent parts and positioned for work by the software team.
Project Management… The Process must be adapted to the
people and the problem The Project must be organized in a
manner that enables the software team to succeed.
The Project Management also includes Measurement and metrics estimation, risk analysis, schedules, tacking and control.
Metrics
Measurement enables to improve the software process, assist in planning, tracking and control of a software project and assess the quality of the product that is produced.
Measures of specific attributes of the process, project and product are used to compute S/W metrics.
Metrics…
Metrics is a quantitative measure of the degree to which a system, component or process posses a given attribute.
Metrics Types
Size Oriented Metrics (LOC) Function Oriented Metrics (FP) Use Case Oriented Metrics (Use
Cases)
Estimation
Fundamentals Inputs Process Outputs Types Metrics Samples
Estimation fundamentals
NONO zone zoneKnowKnow zone zone
Actual reqmtsActual reqmts
Requirement clarityRequirement clarity
• Accelerate progress into KNOW zoneAccelerate progress into KNOW zone
• Advanced requirements gathering tech Advanced requirements gathering tech
• Approximate NO zone with riskApproximate NO zone with risk
Estimation inputs High quality requirements Historical productivity rates
LOC/hr, FP/hr, Pgms/day Application attributes Project team experience PM experience Language used Methodology used Platform Code complexity
Estimation inputs... Cost data
S/w cost H/w cost Service charge Salaries Link Miscellaneous - travel, team meet expenses
etc,.
Estimating process Identify the solution offerring - Organization
std process DB 5% Freeze inventory and deliverables 50% Alternative implementation techniques - build,
buy, outsource, tool based 10% Gather other estimation inputs 20% Perform estimate - Excel 10% Create schedule - res, onsite/offshore 2% Estimate the cost in $ 3%
Estimation outputs
Direct Project size Effort Duration Resources Cost
Indirect schedule process
Estimation types
Functional LOC Method based Experience based
Estimation - Metrics
Productivity : size/hrs Quality
Product - achieve funct & tech requirements
Process - defect removal rate, measures Cost: price/prj.unit size Customer satisfaction – prj time
based review
EstimationOptions Delay Estimates
Depends on Similar Projects
Decomposition Techniques
Empirical models
Decomposition Techniques
Software sizing
Function point sizing
Standard component sizing
Estimation
Problem based Estimation
LOC- based Estimation
FP- based Estimation
Process- based Estimation
Estimation
EstimationEmpirical Models
LOC- oriented estimation models
E = 5.2*(KLOC)0.91 Walton-Felix Model
E = 5.5+.73*(KLOC)1.16
Bailey-Basali Model
E = 3.2+(KLOC)1.05 Boehm simple Model
E = 5.288+(KLOC)1.047
Doty Model for KLOC >9
E is effort in person months
Estimation
Work tasks Week1D1 D2 D3 D4 D5
Week2D1 D2 D3 D4 D5
Week3
1.1 Identify Needxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxmilestone1.2Define desired-----
Timeline Chart
Tracking
Work Tasks PlannedStart
ActualStart
PlannedComplete
Actual Complete
AssignedPerson
EffortAllocated
Notes
1.1 Identify Need Wk1 d1 Wk1 d1 Wk1 d2xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxmilestone1.2Define desired-----
Project Table
Estimation
1 Introduction
2 Project Estimate
3 Risk Management Strategy
4 Schedule
5 Project Resources
6 Staff Organization
7 Tracking and Control Management
8 Appendices
Project Plan
Risk Management
What can go wrong ? What is the likelihood
(Probability) ? What will the damage be
(Impact) ? What can we do about it ?
Reactive Rick Management Project team reacts to risks when they
occur Mitigation – plan for additional
resources in anticipation of fire fighting Fix on failure - resources are found and
applied when the risk strikes Crisis management - failure does not
respond to applied resources and project is in jeopardy
Proactive Risk Management
Formal risk analysis is performed Organization corrects the root
causes of risk TQM concepts and statistical SQA Examining risk cources that lie
beyond the bounds of the s/w Developing the skill to manage
change
Risk Management Paradigm
Identify
Analyze
PlanTrack
Control
3. Software Quality
Conformance to explicit and implicit customer requirements
Striving for excellence in reliability and functions by continuous [process] improvement, supported by statistical analysis of the causes of failure.
Measuring S/W Quality No. of errors & defects, severity,
type, cause, effort to correct+ Design measures, Complexity,
structure, flow= Defect removal efficiency, statistical
SQA data, design quality metrics
A Quality Metric
E = total errors found before delivery
D = total defects found after delivery
Defect removal efficiency (DRE) = E / (E+D)
Software Quality S/w Quality is achieved through a
disciplined approach called Software Engineering
S/w Quality can be defined, described, and measured.
S/w Quality can be assessed before any code has been written
S/w Quality cannot be tested into a product
Software Quality Assurance SQA Goals: To improve s/w quality by
monitoring both the process and the product
To ensure compliance with all local standards for software engineering
O ensure that any product defect, process variance or standards noncompliance is noted and fixed
Formal Technical Reviews
A meeting conducted by technical people for technical people
A technical assessment of a work product created during the s/w engineering process
A S/w Quality Assurance mechanism
A training ground
Review Process
Establish Review Guidelines The review meeting Review reporting and record
keeping
4. Software Testing
What is Software Testing?
Any activity aimed at evaluating an attribute or capability of a program or system, to verify that it meets its required results.
It is the process of executing software in a controlled manner.
Testing is the process of executing a program with an intent to find errors.
A process of verification and validation.
IEEE-Definition of Testing
“The process of exercising or evaluating a system by manual or automatic means to verify that it satisfies specified requirements or to identify differences between expected and actual results.”
Steps in Testing
Determine the goals and what is to be measured in the test
Satisfy the Requirements Reliability
Decide how to test Inspections walkthrough manual automation
Steps in Testing (contd...)
Develop test plans and test cases Determine the expected results Execute the test cases Compare the results
Levels in Software Testing
Unit Testing Individual units are tested Confirms the module is coded correctly Types are Black Box testing & White Box
testing
Integration Testing Test the sub systems and modules and its
interfaces Checks if they function properly and meet the
system requirements.
Levels in SoftwareTesting
System Testing Black box Testing. Entire system is tested as an entity.
User Acceptance Testing Testing the finished product with respect to
the user perception.
Points to remember while Testing
Testing is the process of executing a program to find an error.
It is impossible to test any module or system completely.
There are practical and theoretical limitations. Correcting an error can introduce another error. Testing can prevent errors. Find them early. Testing is best done by independent testers. Generally the person who codes the module carries
out the Unit Testing
Why is Testing required? General
Developers are not infallible Requirement implications are not seen Find the bugs and limitations
Business Post release debugging is too expensive Reputation,sales,operations all affected Hazardous bugs(life/property)
Professional Test case design challenging, rewarding Good testing gives confidence in work Systematic test is effective
Definitions
Bug/Defect Deviation from specification or standard Anything that causes customer dissatisfaction
Validation Test phase of life cycle. It is the process of checking
if what has been specified, is what the user actually wanted.
Verification Quality control activity. It is the checking or testing
of items, including software, for conformance and consistency with an associated specification.