software engineering myths and realities...become an engineer rather than a coder

28
Software Engineering Myths and Realities By Mohsin Sheikh

Upload: mon1984

Post on 17-May-2017

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Software Engineering Myths and Realities

By Mohsin Sheikh

Page 2: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Why SE is Required-Apart from Programming

Computer science theories are currently insufficient to act as a complete underpinning for software engineering, BUT it is a foundation for practical aspects of software engineering

Computer Science Software Engineeringis concerned with

Theory Fundamentals

The practicalities of developing

Delivering useful software

Page 3: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Why Software as a Engineering Stream Electrical Engineering- To satisfy growing power needs Mechanical Engineering- To provide Locomotion Civil Engineering-To provide Shelter Software Engineering------“ Not Known”

Is it Effort Is it Size Is it Cost Is it Time Is it Technology Is it Failure

Page 4: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

What Needs to be Handled with SEPMIt is Change and Complexity For Handling

User CountsSoftware SizeDevelopment and Operating CostDevelopment and Execution TimeTechnology and ToolsEffort

Page 5: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Why Software Engineering is Hard ?

Mozilla contains 3 Million lines of code UNIX contains 4 million lines of code SIZE is a BIG Problem Windows 2000 contains 108 lines of code

“Software engineering is about managing all the sources of complexity to produce effective software”

Page 6: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Software vs. Hardware

Time

Failu

re ra

te

Wear out

Infant mortality

Time

Failu

re ra

te

obsolescence

Hardware failure rates Idealized software failure rates

Time

Failu

re ra

te

Change

Side effects

software failure due to change

Page 7: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

What Needs to be Managed-

Understandability (Ease of Use) Availability (Access time, downtime) Reliability (Failure Recovery) Maintainability (Easy to Manage and Maintain) Affordability (Cost Benefits) Deployability (Easy to Migrate) Disposability (Easy to Remove at end of Lifecycle)

Who is Involved- “Stakeholders”Customer, Requirement Engineer, Analyst, Project Lead, Programmer, Business Consultant etc.

How it Works Comprehensively ?

Page 8: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Understanding Level with Stakeholders

Page 9: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Are software developers different to other professionals?

YES54%

NO24%

YES&NO (depending on context)

22%

What do you think?

Page 10: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

What Needs to be ImprovedTechnology

TrainingCost of Development

Pay of EngineerWork Task Completion Time

Client InteractionsLeaders and Experience Persons DirectionsVacations, Company Policies, Retentions of

Employee etc.Or

Some improvements over -Requirement, Planning, Design, Coding, Testing

OrMotivation to do All

Page 11: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Aim is towards a Process Formation Make the overall process improved

It automatically guides a product development which have all the quality characteristics instead of verifying each product on some quality checks.

Judge the system Quantitatively rather than Qualitatively (Numeric Measure of Assessment)

Here standards and Guidelines comes into play…….What we have ?

ISO, CMMI, SPICE, PSP-TSP etc(Wide range is available from Requirements gathering to

Deployment)

Page 12: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Software Eras Early years Batch Limited

distribution Custom

software

Second era Multiuser Real-time Database Product

software

Third era Distributed

systems Embedded

“intelligence”

Low cost hardware

Consumer impact

Fourth era Powerful

desk-top systems

OOP Parallel Internet

1950 1960 1970 1980 1990 200x

Incr

easin

g Am

ount

s of S

oftw

are

The fifth era?• Cloud computing•Web 2.0• Smart phones• Multi-core

Page 13: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Steps of Activities Common to Software Projects...

Requirements and specification Includes

Domain analysis Defining the problem Requirements gathering

Obtaining input from as many sources as possible Requirements analysis

Organizing the information Requirements specification

Writing detailed instructions about how the software should behave

Page 14: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Activities Common to Software Projects...Design

Deciding how the requirements should be implemented, using the available technology

Includes: Systems engineering: Deciding what should be in hardware and what

in software Software architecture: Dividing the system into subsystems and

deciding how the subsystems will interact Detailed design of the internals of a subsystem User interface design Design of databases

Page 15: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Activities Common to Software Projects

© Lethbridge/Laganière 2005

Chapter 1: Software and Software Engineering

15

Modeling Creating representations of the domain or the software

Use case modeling Structural modeling Dynamic and behavioral modeling

ProgrammingQuality assurance

Reviews and inspections Testing

DeploymentManaging the process

Page 16: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Myth-Programming is Everything It is sufficient for each type of development No need to go inside the development logics Easy to write code Everything is already available Easy to learn programming practices Coding is the main part of software Cost factors only depends on coding

Then why humans are hired..why not some automated tool for code generation……..

Page 17: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Why Manpower The way of writing code , The way of Understanding Problem,

The Effort Reduction Feel can only be Realized by Humans……

This is what make you Unique and Powerful

&

If you are unable to do so…NO need of yours MIS-UNDERSTANDING in industry..

Page 18: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Software Engineer is Better than CODER

CODE is not EVERYTHING It is a Part of SOMETHING

No need to Learns Code ….Learn How to Code in an effective manner

Let us Take a look Over How Code Impact on Industry Quality Value Assessment….

Page 19: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Initial (1)

Repeatable (2)

Defined (3)

Managed (4)

Optimizing (5)

Basic management control

Integrated end-to-end process

Measurement

Feedback

Process discipline

Process definition

Process control

Process improvement

Maturity Levels of Organizations Developing Code

Page 20: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Rational Unified Process®

Best Practices: Develop software iteratively Manage requirements Use component-based architectures Visually model software Verify software quality Control changes to software

The Rational Unified Process® is a Software Engineering Process. It provides a disciplined approach to assigning tasks and responsibilities within a development organization. Its goal is to ensure the production of high-quality software that meets the needs of its end-users, within a predictable schedule and budget.

Page 21: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

What are the costs of software engineering? Roughly 60% of costs are development costs, 40% are testing

costs. For custom software, evolution costs often exceed development costs.

Costs vary depending on the type of system being developed and the requirements of system attributes such as performance and system reliability.

Distribution of costs depends on the development model that is used.

Page 22: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Activity cost distributionWaterfall model

Iterative development

Component-based software engineering

Development and evolution costs for long-lifetime systems

System evolution

10 200 30 4000

System development

Specification Design Development Integration and testing

25 50 75 1000

Specification Development Integration and testing

25 50 75 1000

Specification Iterative development System testing

25 50 75 1000

Page 23: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Product development costs

Specification Development System testing

25 50 75 1000

Page 24: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

engine body wheels other parts

compose

car

Why this industry is on Top from the last 15 Years….

Page 25: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Concept A new engine model in an existing body model results in a

new car model A new engine can be designed based on existing engines As a summary, parts of a car (or the design of the parts) can

be used for new cars (or models). A necessary condition for the use: part interface should be

compatible.

Reason behind fastest Growth is

Reusability and Code Sharing

Page 26: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

SEPM Skill Improvements SessionsSession -1:Cloud Tools and Applications

Hands On and Practice Sessions

Session -2: Design Guidelines with UML Modeling (Rational Rose, Plant UML etc)Hands On and Theory Session

Session -3: Coding Standards and GuidelinesTheory and Practice Sessions

Session -4: Testing Tools and OperationsHands On and Practice Sessions

The Next Frontier - On Demand Solutions For Your BusinessCloud

WebClient-Server Computing

Personal ComputersMainframe

Next Frontier-Cloud Tools and Technologies

Page 27: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder
Page 28: Software Engineering Myths and Realities...Become an Engineer Rather than a Coder

Thank You…Mail-ID: [email protected]

Mb:(+91) 9009928905