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

Post on 17-May-2017

221 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Software Engineering Myths and Realities

By Mohsin Sheikh

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

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

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

User CountsSoftware SizeDevelopment and Operating CostDevelopment and Execution TimeTechnology and ToolsEffort

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”

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

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 ?

Understanding Level with Stakeholders

Are software developers different to other professionals?

YES54%

NO24%

YES&NO (depending on context)

22%

What do you think?

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

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)

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

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

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

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

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

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

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

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

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.

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.

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

Product development costs

Specification Development System testing

25 50 75 1000

engine body wheels other parts

compose

car

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

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

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

Thank You…Mail-ID: mohsin07er@hotmail.com

Mb:(+91) 9009928905

top related