Documente Academic
Documente Profesional
Documente Cultură
By Mohsin Sheikh
Computer Science
Theory Fundamentals
Software Engineering
The practicalities of developing Delivering useful software
is concerned with
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
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
Mozilla contains 3 Million lines of code UNIX contains 4 million lines of code Windows 2000 contains 108 lines of code
Software engineering is about managing all the sources of complexity to produce effective software
Failure rate
Failure rate
obsolescence
Time
Time
Failure rate
Side effects
Change
Time
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.
YES 54%
NO 24%
Software Eras
Early years Second era Third era Fourth era Batch Multiuser Distributed Powerful systems desk-top Limited Real-time systems distribution Database Embedded intelligence OOP Custom Product software software Low cost Parallel hardware Internet Consumer impact The fifth era? Cloud computing Web 2.0 Smart phones Multi-core
1950
1960
1970
1980
1990
200x
and specification
Includes
Obtaining input from as many sources as possible Organizing the information Writing detailed instructions about how the software should behave
Requirements analysis
Requirements specification
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
Programming
Quality
assurance
Deployment Managing
the process
15
Lethbridge/Laganire 2005
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 soNO need of yours MIS-UNDERSTANDING in industry..
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.
Process improvement
Process control
Managed (4)
Feedback
Process definition
Defined (3)
Measurement
Process discipline
Repeatable (2)
Initial (1)
Best Practices: Develop software iteratively Manage requirements Use component-based architectures Visually model software Verify software quality Control changes to software
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.
Sp eci f i cat io n
Desi gn
Develo pment
Sp eci f i cat io n
Sys t em t es t in g
1 00
Sp eci f i cat io n
Develo pment
em s 30 400
Sys t em d ev el op m ent
Sys t em evo lu ti on
25
50
75
100
Sp ecificatio n
Develo pmen t
System testin g
compose
car
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
Session -2: Design Guidelines with UML Modeling (Rational Rose, Plant UML etc)
Hands On and Theory Session
The Next Frontier - On Demand Solutions For Your Business Cloud Web Client-Server Computing Personal Computers Mainframe
Thank You
Mail-ID: mohsin07er@hotmail.com Mb:(+91) 9009928905