Sei sulla pagina 1di 50

Software Engineering -Introduction

Oldest Profession
A Physician, a Civil Engineer and a Computer Scientist were arguing
about what was the oldest profession in the world

Physician remarked,
"Well, in the Bible, God created Eve from a rib taken out of Adam. This requires
surgery, and so mine is the oldest profession in the world."

Civil Engineer interrupted, and said,


" But earlier in the book of Genesis, it states that God created heavens and the
earth from out of chaos. This was the most spectacular application of civil
engineering. Therefore mine is the oldest profession in the world.“

Computer Scientist leaned back in the chair,


smiled and then said confidently,
"Ah, but what do you think created the chaos ? "
Software Development Challenges
Software Development Challenges

Undefined Project
Quality Infrastructure
Standards
Issues

Ignoring Best
Code Requirements
Development Volatility
Practices
Software Development Challenges

Adapting the Latest Market Trends

Managing Design Influences

Integration Challenge

Juggling projects & tasks


Software Development Challenges

● Test ● Security
● Environment ● Challenge
● Duplication
Software Development Challenges

Project Infrastructure Issues


Test and pre-production environments should be made
available during the development
Requirements Volatility
Don’t assume end user needs and requirements
Ignoring Best Code Development Practices
Not reviewing code, or suppressing errors to meet deadline
Undefined Quality Standards
Make sure your test plan covers all the requirements
Software Development Challenges

Adapting the Latest Market Trends


Resources constantly polish skills
Managing Design Influences
Offer a consistent experience across devices
The integration Challenge
Integrating third-party /custom applications add complexity
Juggling Projects and Tasks
Use planning tools
Software Engineering Challenges

Test Environment Duplication


Impractical to gauge how a user will really use the application
The Security Challenge
Why Software Engineering?
Why Software Engineering?

Build complex system – deal with complexity


Context of frequent change – deal with change
Produce high quality software
Within time
Why Software Engineering?

Methods used for small or medium-scale projects are not suitable


for large-scale
Accomodate changes that are unavoidable
Accommodating changes within acceptable cost is a challenge
Communications take up large amount of the time spent
Why Software Engineering?

User has vague idea about the scope and requirements


Verification of changes in documents is challenging
Thorough testing required for good quality software
Software developers can misinterpret requirements
Why Software Engineering?

Delivered, but never


successfully used
45%

Used as delivered
2%
Usable w. rework Paid for, but
3% not delivered
Used w. extensive rework, 30%
but later abandoned
20%

Take
Takeaalook
lookat
atthe
theStandish
StandishReport
Report(The
(The“Chaos”
“Chaos”Report)
Report)
Why projects are impaired?

Incomplete requirements
Lack of user involvement
Lack of resources
Unrealistic expectations
Changing requirements and specification
Why projects are impaired?

Lack of planning
Technology illiteracy
Legacy Software
Legacy Software

Refers to old software


Supported for many years
May or may not be in use
Continue to impact organization
Legacy Software
Legacy Software – Why change?
Legacy Software – Why change?

Adapt to meet needs of new technology


Enhance to implement new requirements
Extend to make it interoperable with modern systems
Re-architected to make it viable in a new environment
Nature of Software
Nature of Software

Safety & Reliability – Air traffic control system


Absence of fundamental theory – unlike physics
Ease of change – no rule to accommodate change
Rapid evolution of technology
Low manufacturing cost – reusability benefits development team
Essence of problem solving
Essence of problem solving

Understand the problem


Who has a stake in the problem
What are the unknowns
Plan a solution
Does a solution exist?
Carry out the plan
Examine results for accuracy
Software - definition

Software
Program is executable code for computation
Software is collection of executable code, libraries,
documentation
Software product – software for a specific requirement
Engineering - definition

Engineering
Developing product
Using well defined scientific principles and methods
Software Engineering - definition

"the systematic application of scientific and technological


knowledge, methods, and experience to the design,
implementation, testing, and documentation of software"

Transforms an unfocused approach into more organized and


effective approach to achieve success
Outcome of software engineering – efficient and reliable software
product
7 core principles of Software
Engineering
Remember
the reason
Think, that s/w exist
then act
Keep it simple
Principles
Plan ahead for of Software
reuse Engineering
Maintain
Vision of
Be open to project
future Others consume
What you produce
7 core principles of Software
Engineering
Software Process
Software Process
Defines a framework that includes different
activities and tasks
Communication
Project Initiation
Requirements
gathering Planning
Estimating
Scheduling
Tracking Modeling
Analysis
Design
Construction
Code
Test Deployment
Delivery
Support
Feedback
Software Process - Communication
Listen to speaker and concentrate on what is
being said
Prepare before meeting by researching
Face-to-face communication is best
Stay focused on a topic, modularize
If something is unclear, draw picture
Negotiate effectively
Software Process - Planning
Defines a framework that includes different
activities and tasks
Communication
Project Initiation
Requirements
gathering Planning
Estimating
Scheduling
Tracking Modeling
Analysis
Design
Construction
Code
Test Deployment
Delivery
Support
Feedback
Software Process - Planning
Understand scope of project
Planning is iterative
Estimate based on what you know
Consider risk
Adjust granularity
Track plan frequently
Software Process - Modeling
Defines a framework that includes different
activities and tasks
Communication
Project Initiation
Requirements
gathering Planning
Estimating
Scheduling
Tracking Modeling
Analysis
Design
Construction
Code
Test Deployment
Delivery
Support
Feedback
Software Process - Modeling
Understand information domain (data that flows
in and out)
Planning is iterative
Estimate based on what you know
Consider risk
Adjust granularity
Track plan frequently
Software Process - Construction
Defines a framework that includes different
activities and tasks
Communication
Project Initiation
Requirements
gathering Planning
Estimating
Scheduling
Tracking Modeling
Analysis
Design
Construction
Code
Test Deployment
Delivery
Support
Feedback
Software Process - Construction
Understand the problem, design principles
Pick a suitable programming language ,
environment
Select right algorithm, data structures
Coding standards
Perform unit tests
Software Process - Deployment
Defines a framework that includes different
activities and tasks
Communication
Project Initiation
Requirements
gathering Planning
Estimating
Scheduling
Tracking Modeling
Analysis
Design
Construction
Code
Test Deployment
Delivery
Support
Feedback
Software Process - Deployment
Customer expectation must be managed
Complete delivery package must be assembled
and tested
Appropriate manual provided to end users
Buggy software must be fixed
Umbrella Activities
Umbrella Activities
Software project tracking and control
Risk management
Software Quality Assurance
Formal Technical Review
Umbrella Activities

Measurement
Software Configuration Management
Reusability Management
Work product prepration and production
Question
Qn) Testing is a process of executing a
program with intent of finding an error
TRUE/FALSE?
Answer
Qn) Testing is a process of executing a
program with intent of finding an error
TRUE
Question
Qn) A good test case is one that has high
probability of finding and undiscovered error
TRUE/FALSE?
Answer
Qn) A good test case is one that has high
probability of finding and undiscovered error
TRUE

Potrebbero piacerti anche