SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
The Concepts Behind Software Design




   Elena Punskaya, elena.punskaya@eng.cam.ac.uk

                                                  1
Course Objectives
•   Object-Oriented Software Design
    - Understand the benefits of object-oriented analysis and design, its concepts and
      processes
    - Be familiar with formal design tools for object orientated design and analysis
    - Recognise and understand some frequently used design patterns
    - Be aware of the process involved in user interface design

•   Software Systems and Engineering
    - Appreciate the basic design issues and concepts in distributed, real time and concurrent
      systems
    - Understand software development methodologies
    - Understand the main issues and processes necessary to achieve effective software
      product development

•   The course is not about becoming a Code Ninja
    - so we are not going to learn programming in Scala, Ruby on Rails, Go!, Java or Thumb
    - but we might discuss them

•   It is neither about becoming a Project Management Guru
    - so we are not going to make Gantt charts and milestones
    - but we could talk about priorities, teams and metrics


                                                                                   © 2012 Elena Punskaya
                                                                                                          2
                                                              Cambridge University Engineering Department

                                                                                                              2
Books

•   Ian Sommerville, Software Engineering, Addison-Wesley
•   Roger Pressman, Software Engineering: A Practitioner's
    Approach
•   Fred Brooks, The Mythical Man Month, Addison-Wesley
•   Martin Fowler, UML Distilled: A Brief Guide to the Standard
    Object Modeling Language, Addison-Wesley
•   Andrew Hunt and David Thomas, The Pragmatic Programmer
•   Don Norman, Design of Everyday Things
•   Kent Beck with Cynthia Andres, Extreme Programming
    Explained: Embrace Change
•   Donald Norman, Living with Complexity
•   Jez Humble and David Farley, Continuous Delivery: Reliable
    Software Releases Through Build, Test and Deployment
    Automation
•   ...                                                         © 2012 Elena Punskaya
                                                                                       3
                                           Cambridge University Engineering Department

                                                                                           3
Definitions
•   Software
    - is a collection of computer programs and
      related data that provide the instructions for
      telling a computer what to do and how to do
      it. (Wikipedia)



•   Engineering
    - the way that something has been designed
      and built. (Cambridge Business English
      Dictionary)


•   Software Engineering
    - a collection of methods, techniques and tools
      that could be applied to design, build and
      maintain the “instructions for telling a         © Metro-Goldwyn-Mayer Studios Inc. All Rights Reserved.

      computer what to do and how to do it”


•   What is a computer?


                                                                              © 2012 Elena Punskaya
                                                                                                     4
                                                         Cambridge University Engineering Department

                                                                                                                 4
Example: Location-Based Mobile App
•   foursquare iPhone App
    - provides consumer location-based services
      using iOS Location API

•   foursquare Application server
    - aggregates and correlates user and location data

•   Apple iPhone
    - Operating System provides access to
      location data acquired by a GPS receiver chip

•   GPS Receiver chip
    - processes GPS signals

•   Navigation Satellite
    - broadcasts navigation messages


•   Everything is a COMPUTER (or needs one)
•   A COMPUTER needs SOFTWARE
•   Everything needs SOFTWARE :)

                                                                              © 2012 Elena Punskaya
                                                                                                     5
                                                         Cambridge University Engineering Department

                                                                                                         5
Example: Software Types
•   foursquare iPhone App – consumer software application
    - provides consumer location-based services
      using iOS Location API

•   foursquare Application server – distributed concurrent
    software system
    - aggregates and correlates user and location data


•   Apple iPhone – operating system provides software
    application platform
    - Operating System provides access to
      location data acquired by a GPS receiver chip

•   GPS Receiver chip – implements digital signal processing
    software
    - processes GPS signals

•   Navigation Satellite – uses system control software
    - broadcasts navigation messages



                                                                              © 2012 Elena Punskaya
                                                                                                     6
                                                         Cambridge University Engineering Department

                                                                                                         6
Horses for Courses
•   Not all SOFTWARE is created equal, choose an engineering
    approach accordingly
Our tests suite takes nine minutes to run (distributed
across 30-40 machines). Our code pushes take another
six minutes. Since these two steps are pipelined that
means at peak we’re pushing a new revision of the
code to the website every nine minutes. That’s 6
deploys an hour. Even at that pace we’re often batching
multiple commits into a single test/push cycle. On
average we deploy new code fifty times a day. [1]

This software never crashes. It never needs to be re-
booted. This software is bug-free. It is perfect, as perfect
as human beings have achieved. Consider these stats :
the last three versions of the program – each 420,000
lines long-had just one error each. The last 11 versions
of this software had a total of 17 errors. [2]
                                                                       © 2012 Elena Punskaya
                                                                                              7
                                                  Cambridge University Engineering Department

                                                                                                  7
Software Engineering in Cambridge [3]
•   1948-9 Research on programming methods
    under M.V. Wilkes, including:
    - definition and refinement of Initial Orders (Wheeler);
    - closed subroutines (Wheeler);
    - building of a library of subroutines (all laboratory members
      interested in programming, plus Professor D. R. Hartree).
                                                                                       M.V.Wilkes, 1913-2010
•   6 May 1949, First logged program on EDSAC 1
    (computing squares of 0-99) – World’s first
    stored program computer
•   1950 First Summer School on Programme
    Design for Automatic Digital Computing
    Machines, with 51 attendees
•   1953 Diploma in Numerical Analysis and
    Automatic Computing began
    - The Diploma “would include theoretical and practical work ...
      [and also] instruction about the various types of computing-
      machine ... and the principles of design on which they are                 EDSAC I, 1947/8 P.J.Farmer R.Piggott
      based.”                                                                    M.V.Wilkes W.A.Renwick




                                                                                    © 2012 Elena Punskaya
                                                                                                           8
                                                               Cambridge University Engineering Department

                                                                                                                        8
The NATO Software Engineering Conferences
•    1968: “In Europe alone there are about 10,000 installed computers —
     this number is increasing at a rate of anywhere from 25 per cent to 50 per
     cent per year. The quality of software provided for these computers will
     soon affect more than a quarter of a million analysts and programmers.” [4]




    P. Naur and B. Randell, (Eds.). Software       B. Randell and J.N. Buxton, (Eds.).
    Engineering: Report of a conference            Software Engineering Techniques: Report
    sponsored by the NATO Science                  of a conference sponsored by the NATO
    Committee, Garmisch, Germany, 7-11 Oct.        Science Committee, Rome, Italy, 27-31
    1968, Brussels, Scientific Affairs Division,   Oct. 1969, Brussels, Scientific Affairs
    NATO (1969) 231pp.                             Division, NATO (1970) 164pp.

                                                                                    © 2012 Elena Punskaya
                                                                                                           9
                                                               Cambridge University Engineering Department

                                                                                                               9
1968, Typical Software Project
•   The need for feedback is identified

                                          Selig: “External specifications at any
                                          level describe the software product in
                                          terms of the items controlled by and
                                          available to the user.

                                          The internal design describes the
                                          software product in terms of the
                                          program structures which realize the
                                          external specifications. It has to be
                                          understood that feedback between
                                          the design of the external and
                                          internal specifications is an essential
                                          part of a realistic and effective
                                          implementation process.

                                          Furthermore, this interaction must
                                          begin at the earliest stage of
                                          establishing the objectives, and
                                          continue until completion of the
                                          product.” [4]




                                                                © 2012 Elena Punskaya
                                                                                       10
                                           Cambridge University Engineering Department

                                                                                            10
Learning From Mistakes
•   Traditionally, large scale project disasters are seen as the
    impetus for developing software engineering as a discipline in
    order to mitigate the risks
•   Most referenced disaster projects include:
    - 1991-1992, London Ambulance Service – an attempt to switch to a fully automated
      dispatch system (26 Oct 1992: went live, 02 Nov 1992: switched back to the manual
      system)
    - 1985-1987, Therac-25 – a computer-controlled radiation therapy machine massively
      overdosed 6 people
    - 1996, Ariane 5 – the first launch of a new rocket terminated in self-destruction due to a
      software bug in the control software

•   More recently
    - 2003, Northeast Blackout – a power outage affecting est. 55m people in USA and
      Canada, an early alarm failed due to a “race condition” in the energy management
      system software
    - 2005-2006, Sensotronic Brake Control – almost 2m Mercedes cars recalled, the system
      is no longer used in production
    - April, 2011 – Amazon Elastic Compute Cloud (EC2) service disruption takes down
      FourSquare, Quora, Reddit
    - Oct 2011 – 3 days BlackBerry services outage affecting subscribers worldwide

                                                                                 © 2012 Elena Punskaya
                                                                                                        11
                                                            Cambridge University Engineering Department

                                                                                                             11
Measuring Complexity: Lines of Code
     Software entities are more complex for their size than perhaps
     any other human construct... Many of the classical problems of
     developing software products derive from this essential complexity
     and its nonlinear increases with size.
                            Fred Brooks, “No Silver Bullet – Essence and Accident in Software Engineering” [5]


•   F-22 Raptor: 1.7m
•   Radio and navigation system in the current S-class Mercedes-
    Benz: 20m
•   IBM OS/360 (1966): 1m
•   Android Mobile OS: 1m
•   Facebook main site: 9.2m
•   Google Chrome browser: 4.5m
•   Of course, the number lines depends on the programming
    language and less is not always better
       perl -MYAML -ne '$c{$_}++for split//;END{print Dump%c}' data.txt

                                                                                       © 2012 Elena Punskaya
                                                                                                              12
                                                                  Cambridge University Engineering Department

                                                                                                                   12
Example: Facebook


                                                                                                            '()*+$$,&-.*/&0/$123&456&
                                    *!!"

                                    )!!"

                                    (!!"

                                    '!!"



                         !"##"$%&
                                    &!!"

                                    %!!"

                                    $!!"
•   800m users [8]
                                    #!!"

•   500m visit daily                  !"
                                                     /01.!'"
                                                               234.!'"


                                                                                   +,-.!'"
                                                                         5,6.!'"




                                                                                                       234.!("




                                                                                                                                     /01.!)"
                                                                                                                                               234.!)"


                                                                                                                                                                   +,-.!)"
                                                                                                                                                         5,6.!)"


                                                                                                                                                                             /01.!*"
                                                                                                                                                                                       234.!*"


                                                                                                                                                                                                           +,-.!*"
                                                                                                                                                                                                 5,6.!*"


                                                                                                                                                                                                                     /01.!7"
                                                                                                                                                                                                                               234.!7"


                                                                                                                                                                                                                                                   +,-.!7"
                                                                                                                                                                                                                                         5,6.!7"




                                                                                                                                                                                                                                                                       234.#!"




                                                                                                                                                                                                                                                                                                     /01.##"
                                                                                                                                                                                                                                                                                                               234.##"
                                           +,-.!&"




                                                                                                                           +,-.!("




                                                                                                                                                                                                                                                                                           +,-.#!"
                                                                                             /01.!("


                                                                                                                 5,6.!("




                                                                                                                                                                                                                                                             /01.#!"


                                                                                                                                                                                                                                                                                 5,6.#!"
•   350m on mobile
•   all data is stored in a database (MySQL)
•   60 million queries per second
•   4 million row changes per second

                                                                                                                                                                              © 2012 Elena Punskaya
                                                                                                                                                                                                     13
                                                                                                                                                         Cambridge University Engineering Department

                                                                                                                                                                                                                                                                                                                         13
Example: eBay
•   “The size of the problem
    - The problem involves both the number of changes and
      the velocity of the changes. The eBay code base
      consists of hundreds of thousands of source elements
      (with total lines of code in the tens of millions). The
      applications – which comprise web, services,
      messaging, and batch style – number in the thousands.
      It is common for an application to use tens of
      thousands of source elements. The elements
      themselves are contributed by different teams and are
      shared with other applications.” [8]

                          Code Type                                           Count

     Source elements                                            100,000’s

     Source elements per application                            10,000’s

     Applications                                               1000’s

     Features per month                                         100’s

     Source elements changed per feature                        100’s (sometimes 1000’s)

     Projects                                                   1000’s

     Source elements per project                                10-100’s (sometimes 1000’s)
                                                                                         © 2012 Elena Punskaya
                                                                                                                14
                                                                    Cambridge University Engineering Department

                                                                                                                     14
Better Faster Stronger
•   Instagram: 60 photos per second;
•   Tumblr: 900 posts per second
•   Twitter: 8,868 Tweets per second (during MTV Awards)
•   Netflix: stream 1 billion hours in Q4 2011
•   PayPal: 5 million transactions a day
•   London Stock Exchange: 22.4 million trades in Dec 2011
•   Google: over 1 billion searches per day
•   Youtube: over 100 million views a day on mobile



        Ever Increasing Complexity Software
       Systems Drive World’s Economic Growth

                                                                   © 2012 Elena Punskaya
                                                                                          15
                                              Cambridge University Engineering Department

                                                                                               15
Software Engineering Aims
•   Managing complexity and Minimizing risks

       [T]here are known knowns; there are things we know we know.
       We also know there are known unknowns; that is to say we
       know there are some things we do not know.
       But there are also unknown unknowns – there are things we
       do not know we don't know.
                                           Former United States Secretary of Defense Donald Rumsfeld


•   Designing systems that
    - meet requirements (“known knowns”)
    - can adapt to changes (“known unknowns”)
    - and withstand any unexpected use cases (“unknown unknowns”)

•   Software Engineering is also about:

             Making Better Mistakes Tomorrow!
                  Having Happy (Alive) Users!
                                                                                © 2012 Elena Punskaya
                                                                                                       16
                                                           Cambridge University Engineering Department

                                                                                                            16
Software Process
•   “Analysis is discovering and describing those aspects of a
    software development about which there is no choice, that is, to
    which the project is already committed”
•   Design is creating a definition of how the project goals are
    going to be achieved
•   Implementation is the process of writing code, typically would
    be partitioned in many subprojects
•   Building is creating a “complete” version of the software, i.e.
    putting all chunks of code together, including any custom
    configurations for target deployment
•   Testing is about making sure that small independent parts of
    code work correctly (unit tests), that all code parts work
    together (integration tests), that the functionality meets
    requirements (acceptance), that any new code doesn’t break
    the old (regression)

                                                                  © 2012 Elena Punskaya
                                                                                         17
                                             Cambridge University Engineering Department

                                                                                              17
Software Process
•   Deployment – actual release of the software into the end user
    environment, e.g. publishing the mobile app in the App Store or
    launching the service on bank’s servers


•   Maintenance – supporting the software during its lifetime, e.g.
    releasing compatibility updates when a new version of mobile OS is
    released or improving performance as user base grows
•   Traditionally, 80-90% of software system Total Cost of Ownership
    is attributed to maintenance. Once the system is operational, the
    cost of change is high (each new release requires a new full cycle:
    analyse, design, implement, build, test, deploy). Also, to achieve a
    better Return on Investment, the preference is naturally to extend
    the existing system than develop a new one.
•   Nowadays, in some software systems (web apps), the line between
    maintenance and continuous development is less clear, consider
    Google and Facebook – is scaling up to hundreds of millions of users
    and PetaBytes of data maintenance or new development?
                                                                    © 2012 Elena Punskaya
                                                                                           18
                                               Cambridge University Engineering Department

                                                                                                18
Example




                               © 2012 Elena Punskaya
                                                      19
          Cambridge University Engineering Department

                                                           19
Requirements Analysis not Analysis Paralysis
    The hardest single part of building a software system is
    deciding precisely what to build. No other part of the
    conceptual work is as difficult as establishing the detailed
    technical requirements, including all the interfaces to people, to
    machines, and to other software systems. No other part of the
    work so cripples the resulting system if done wrong.
                          Fred Brooks, “No Silver Bullet – Essence and Accident in Software Engineering” [5]



•   It is impossible to know in advance everything required to
    build the software system. Why?
•   Users don’t know 100% what it should do
•   Developers don’t know 100% how users would use it
•   The only 100% certainty is that things will change:
    - the deployment environment change, e.g. new version of hardware/software platform
    - the business requirements change, e.g. adding a new method to a payment system
    - the scale changes, e.g. from 1m users to 800m


                                                                                         © 2012 Elena Punskaya
                                                                                                                20
                                                                    Cambridge University Engineering Department

                                                                                                                     20
The Answer?
•   Over 40 years since The 1968
    NATO Software Engineering
    conference, the issues discussed
                                              Grow, don’t build, software.
                                                 Fred Brooks, “No Silver Bullet – Essence and
    are as much present as then                            Accident in Software Engineering”


•   No Silver Bullet – there is no
    single answer/process/method
•   but we can ...
✓   Build for Change
✓   Communicate Clearly
✓   Test Continuously, Test Everything
    - problem understanding, user behaviour
      assumptions, code, integration...

✓   Choose the Tools for the Job
    - Object-Oriented Analysis and Design            © Warner Bros. Ent. All rights reserved.

    - Extreme/Agile Programming
    - Continuous Integration/Deployment
    - IDEs, Source Control, UML ...
                                                                     © 2012 Elena Punskaya
                                                                                            21
                                                Cambridge University Engineering Department

                                                                                                 21
References and Further Reading
1. http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day/

2. http://www.fastcompany.com/magazine/06/writestuff.html

3. http://www.cl.cam.ac.uk/conference/EDSAC99/history.html

4. http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF

5. http://www.cs.nott.ac.uk/~cah/G51ISS/Documents/NoSilverBullet.html

6. http://www.facebook.com/press/info.php?timeline

7. http://www.facebook.com/press/info.php?statistics

8. http://www.ebaytechblog.com/2011/12/15/rapid-development-setup-in-large-environments/

9. http://www.securityfocus.com/news/8016

10. http://aws.amazon.com/message/65648/

11. http://www.autoweek.com/article/20051216/FREE/51216010

12. http://www.computerworlduk.com/news/mobile-wireless/3310790/we-do-not-know-why-system-failed-says-blackberry-ceo/

13. http://spectrum.ieee.org/green-tech/advanced-cars/this-car-runs-on-code/0

14. http://highscalability.com/

15. http://martinfowler.com/bliki/UseCases.html




                                                                                                                 © 2012 Elena Punskaya
                                                                                                                                        22
                                                                                            Cambridge University Engineering Department

                                                                                                                                             22

Más contenido relacionado

La actualidad más candente

Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-designOliver Cheng
 
Software Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionSoftware Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionHenry Muccini
 
Unit iii(part d - component level design)
Unit   iii(part d - component level design)Unit   iii(part d - component level design)
Unit iii(part d - component level design)BALAJI A
 
Reed simpson
Reed simpsonReed simpson
Reed simpsonNASAPMC
 
Half-Push/Half-Polling
Half-Push/Half-PollingHalf-Push/Half-Polling
Half-Push/Half-PollingYoungSu Son
 
Context-Oriented Programming
Context-Oriented ProgrammingContext-Oriented Programming
Context-Oriented Programmingkim.mens
 
Unit iii(part c - user interface design)
Unit   iii(part c - user interface design)Unit   iii(part c - user interface design)
Unit iii(part c - user interface design)BALAJI A
 
Software Patterns
Software PatternsSoftware Patterns
Software Patternskim.mens
 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering JayaKamal
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural designHiren Selani
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
Design Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringDesign Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringMeghaj Mallick
 
Software Architecture: Introduction
Software Architecture: IntroductionSoftware Architecture: Introduction
Software Architecture: IntroductionHenry Muccini
 

La actualidad más candente (20)

Pressman ch-11-component-level-design
Pressman ch-11-component-level-designPressman ch-11-component-level-design
Pressman ch-11-component-level-design
 
Software Architecture: introduction to the abstraction
Software Architecture: introduction to the abstractionSoftware Architecture: introduction to the abstraction
Software Architecture: introduction to the abstraction
 
Unit iii(part d - component level design)
Unit   iii(part d - component level design)Unit   iii(part d - component level design)
Unit iii(part d - component level design)
 
Reed simpson
Reed simpsonReed simpson
Reed simpson
 
Half-Push/Half-Polling
Half-Push/Half-PollingHalf-Push/Half-Polling
Half-Push/Half-Polling
 
Unit2
Unit2Unit2
Unit2
 
Context-Oriented Programming
Context-Oriented ProgrammingContext-Oriented Programming
Context-Oriented Programming
 
Unit iii(part c - user interface design)
Unit   iii(part c - user interface design)Unit   iii(part c - user interface design)
Unit iii(part c - user interface design)
 
Software Patterns
Software PatternsSoftware Patterns
Software Patterns
 
Software Engineering
 Software Engineering  Software Engineering
Software Engineering
 
Software design
Software designSoftware design
Software design
 
Software Design Concepts
Software Design ConceptsSoftware Design Concepts
Software Design Concepts
 
Unit 3 3 architectural design
Unit 3 3 architectural designUnit 3 3 architectural design
Unit 3 3 architectural design
 
Unit i software design principles 9
Unit i software design principles 9Unit i software design principles 9
Unit i software design principles 9
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
08 component level_design
08 component level_design08 component level_design
08 component level_design
 
05 architectural design
05 architectural design05 architectural design
05 architectural design
 
Design Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software EngineeringDesign Model & User Interface Design in Software Engineering
Design Model & User Interface Design in Software Engineering
 
Software Architecture: Introduction
Software Architecture: IntroductionSoftware Architecture: Introduction
Software Architecture: Introduction
 
5 software design
5 software design5 software design
5 software design
 

Destacado

Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineeringPreeti Mishra
 
Software engineering syllabus
Software engineering syllabusSoftware engineering syllabus
Software engineering syllabusswatisinghal
 
Industry Vs Curriculum Talk Mec
Industry Vs Curriculum Talk MecIndustry Vs Curriculum Talk Mec
Industry Vs Curriculum Talk Mectej_arora
 
Talent42 2014 Sam Wholley -
Talent42 2014 Sam Wholley - Talent42 2014 Sam Wholley -
Talent42 2014 Sam Wholley - Talent42
 
Your Were Made To Do Great Thing
Your Were Made To Do Great ThingYour Were Made To Do Great Thing
Your Were Made To Do Great ThingPeter Chan
 
Pmm who we are
Pmm who we arePmm who we are
Pmm who we arestefanid
 
Carol y mellizas
Carol y mellizasCarol y mellizas
Carol y mellizasvitita
 
Bhl Europe Atos Origin Wp3 Insights V1.0
Bhl Europe Atos Origin   Wp3 Insights V1.0Bhl Europe Atos Origin   Wp3 Insights V1.0
Bhl Europe Atos Origin Wp3 Insights V1.0Roger Essoh
 
Project10 Uk 2010
Project10 Uk 2010Project10 Uk 2010
Project10 Uk 2010leonvanm
 
Presentation Alumni Day University Of Leuven Relation Between Dso And Consu...
Presentation Alumni Day University Of Leuven   Relation Between Dso And Consu...Presentation Alumni Day University Of Leuven   Relation Between Dso And Consu...
Presentation Alumni Day University Of Leuven Relation Between Dso And Consu...Tim Vermeir
 
درآمدی بر رایانش ابری
درآمدی بر رایانش ابریدرآمدی بر رایانش ابری
درآمدی بر رایانش ابریNasser Ghanemzadeh
 
Professional Identity2
Professional Identity2Professional Identity2
Professional Identity2Halby33
 
Versailles Breakfast Club Speech
Versailles Breakfast Club SpeechVersailles Breakfast Club Speech
Versailles Breakfast Club SpeechLoisGeller
 
AshabëT E Muhamedit A.S.
AshabëT E Muhamedit A.S.AshabëT E Muhamedit A.S.
AshabëT E Muhamedit A.S.guestef339
 
Intro To Phoenix 12 18 08
Intro To Phoenix 12 18 08Intro To Phoenix 12 18 08
Intro To Phoenix 12 18 08stefanid
 
We are damaging the ecosystem
We are damaging the ecosystemWe are damaging the ecosystem
We are damaging the ecosystemvitita
 
US Obesity Stats Map
US Obesity Stats MapUS Obesity Stats Map
US Obesity Stats MapPeter Chan
 
你為何需要乳清蛋白? 你為何需要 IsaPro?
你為何需要乳清蛋白? 你為何需要 IsaPro?你為何需要乳清蛋白? 你為何需要 IsaPro?
你為何需要乳清蛋白? 你為何需要 IsaPro?Peter Chan
 

Destacado (20)

Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Software engineering syllabus
Software engineering syllabusSoftware engineering syllabus
Software engineering syllabus
 
Industry Vs Curriculum Talk Mec
Industry Vs Curriculum Talk MecIndustry Vs Curriculum Talk Mec
Industry Vs Curriculum Talk Mec
 
Talent42 2014 Sam Wholley -
Talent42 2014 Sam Wholley - Talent42 2014 Sam Wholley -
Talent42 2014 Sam Wholley -
 
Your Were Made To Do Great Thing
Your Were Made To Do Great ThingYour Were Made To Do Great Thing
Your Were Made To Do Great Thing
 
Pmm who we are
Pmm who we arePmm who we are
Pmm who we are
 
Carol y mellizas
Carol y mellizasCarol y mellizas
Carol y mellizas
 
Firefox Tips And Tricks
Firefox Tips And TricksFirefox Tips And Tricks
Firefox Tips And Tricks
 
Bhl Europe Atos Origin Wp3 Insights V1.0
Bhl Europe Atos Origin   Wp3 Insights V1.0Bhl Europe Atos Origin   Wp3 Insights V1.0
Bhl Europe Atos Origin Wp3 Insights V1.0
 
Project10 Uk 2010
Project10 Uk 2010Project10 Uk 2010
Project10 Uk 2010
 
Presentation Alumni Day University Of Leuven Relation Between Dso And Consu...
Presentation Alumni Day University Of Leuven   Relation Between Dso And Consu...Presentation Alumni Day University Of Leuven   Relation Between Dso And Consu...
Presentation Alumni Day University Of Leuven Relation Between Dso And Consu...
 
درآمدی بر رایانش ابری
درآمدی بر رایانش ابریدرآمدی بر رایانش ابری
درآمدی بر رایانش ابری
 
Professional Identity2
Professional Identity2Professional Identity2
Professional Identity2
 
Versailles Breakfast Club Speech
Versailles Breakfast Club SpeechVersailles Breakfast Club Speech
Versailles Breakfast Club Speech
 
Schanitzel2
Schanitzel2Schanitzel2
Schanitzel2
 
AshabëT E Muhamedit A.S.
AshabëT E Muhamedit A.S.AshabëT E Muhamedit A.S.
AshabëT E Muhamedit A.S.
 
Intro To Phoenix 12 18 08
Intro To Phoenix 12 18 08Intro To Phoenix 12 18 08
Intro To Phoenix 12 18 08
 
We are damaging the ecosystem
We are damaging the ecosystemWe are damaging the ecosystem
We are damaging the ecosystem
 
US Obesity Stats Map
US Obesity Stats MapUS Obesity Stats Map
US Obesity Stats Map
 
你為何需要乳清蛋白? 你為何需要 IsaPro?
你為何需要乳清蛋白? 你為何需要 IsaPro?你為何需要乳清蛋白? 你為何需要 IsaPro?
你為何需要乳清蛋白? 你為何需要 IsaPro?
 

Similar a Lecture 1 Software Engineering and Design Introduction

Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introductionTaymoor Nazmy
 
Application Virtualization, University of New Hampshire
Application Virtualization, University of New HampshireApplication Virtualization, University of New Hampshire
Application Virtualization, University of New HampshireTony Austwick
 
Unit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptxUnit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptxtaxegap762
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to androidJawad Mohmand
 
SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf
SDPM - Lecture 3 - Selecting an appropriate software development approach.pdfSDPM - Lecture 3 - Selecting an appropriate software development approach.pdf
SDPM - Lecture 3 - Selecting an appropriate software development approach.pdfOpenLearningLab
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 
A glance at a scrum team in real software company
A glance at a scrum team in real software companyA glance at a scrum team in real software company
A glance at a scrum team in real software companyPin-Ying Tu
 
[doc].doc
[doc].doc[doc].doc
[doc].docbutest
 
resume_spr_2015_tex
resume_spr_2015_texresume_spr_2015_tex
resume_spr_2015_texJames Reese
 
.NET? MonoDroid Does
.NET? MonoDroid Does.NET? MonoDroid Does
.NET? MonoDroid DoesKevin McMahon
 
Harshitha_Resume
Harshitha_ResumeHarshitha_Resume
Harshitha_ResumeHarshitha S
 
Mobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloudMobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloudSrinivasan Nanduri
 

Similar a Lecture 1 Software Engineering and Design Introduction (20)

RKSinha_latest_december
RKSinha_latest_decemberRKSinha_latest_december
RKSinha_latest_december
 
Software Engineering Lec 1-introduction
Software Engineering Lec 1-introductionSoftware Engineering Lec 1-introduction
Software Engineering Lec 1-introduction
 
Unit1
Unit1Unit1
Unit1
 
My androidpresentation
My androidpresentationMy androidpresentation
My androidpresentation
 
Application Virtualization, University of New Hampshire
Application Virtualization, University of New HampshireApplication Virtualization, University of New Hampshire
Application Virtualization, University of New Hampshire
 
Unit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptxUnit_1(Software and Software Engineering).pptx
Unit_1(Software and Software Engineering).pptx
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf
SDPM - Lecture 3 - Selecting an appropriate software development approach.pdfSDPM - Lecture 3 - Selecting an appropriate software development approach.pdf
SDPM - Lecture 3 - Selecting an appropriate software development approach.pdf
 
[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
A glance at a scrum team in real software company
A glance at a scrum team in real software companyA glance at a scrum team in real software company
A glance at a scrum team in real software company
 
[doc].doc
[doc].doc[doc].doc
[doc].doc
 
resume_spr_2015_tex
resume_spr_2015_texresume_spr_2015_tex
resume_spr_2015_tex
 
.NET? MonoDroid Does
.NET? MonoDroid Does.NET? MonoDroid Does
.NET? MonoDroid Does
 
Unit 5
Unit 5Unit 5
Unit 5
 
Introduction to android
Introduction to androidIntroduction to android
Introduction to android
 
Harshitha_Resume
Harshitha_ResumeHarshitha_Resume
Harshitha_Resume
 
Duc le CV
Duc le CVDuc le CV
Duc le CV
 
SE Unit-1.pptx
SE Unit-1.pptxSE Unit-1.pptx
SE Unit-1.pptx
 
Shwetambari Gulhane Resume
Shwetambari Gulhane ResumeShwetambari Gulhane Resume
Shwetambari Gulhane Resume
 
Mobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloudMobile app-and-microservices-with-ibm-cloud
Mobile app-and-microservices-with-ibm-cloud
 

Más de op205

3 f6 security
3 f6 security3 f6 security
3 f6 securityop205
 
3 f6 8_databases
3 f6 8_databases3 f6 8_databases
3 f6 8_databasesop205
 
3 f6 10_testing
3 f6 10_testing3 f6 10_testing
3 f6 10_testingop205
 
3 f6 9a_corba
3 f6 9a_corba3 f6 9a_corba
3 f6 9a_corbaop205
 
3 f6 9a_corba
3 f6 9a_corba3 f6 9a_corba
3 f6 9a_corbaop205
 
Lecture 7 Software Engineering and Design User Interface Design
Lecture 7 Software Engineering and Design User Interface Design Lecture 7 Software Engineering and Design User Interface Design
Lecture 7 Software Engineering and Design User Interface Design op205
 
Lecture 6 Software Engineering and Design Good Design
Lecture 6 Software Engineering and Design Good Design Lecture 6 Software Engineering and Design Good Design
Lecture 6 Software Engineering and Design Good Design op205
 
Lecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design PatternsLecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design Patternsop205
 
Lecture 4 Software Engineering and Design Brief Introduction to Programming
Lecture 4 Software Engineering and Design Brief Introduction to ProgrammingLecture 4 Software Engineering and Design Brief Introduction to Programming
Lecture 4 Software Engineering and Design Brief Introduction to Programmingop205
 
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...op205
 
More on DFT
More on DFTMore on DFT
More on DFTop205
 
Digital Signal Processing Summary
Digital Signal Processing SummaryDigital Signal Processing Summary
Digital Signal Processing Summaryop205
 
Implementation of Digital Filters
Implementation of Digital FiltersImplementation of Digital Filters
Implementation of Digital Filtersop205
 
Basics of Analogue Filters
Basics of Analogue FiltersBasics of Analogue Filters
Basics of Analogue Filtersop205
 
Design of IIR filters
Design of IIR filtersDesign of IIR filters
Design of IIR filtersop205
 
Design of FIR filters
Design of FIR filtersDesign of FIR filters
Design of FIR filtersop205
 
Basics of Digital Filters
Basics of Digital FiltersBasics of Digital Filters
Basics of Digital Filtersop205
 
Introduction to Digital Signal Processing
Introduction to Digital Signal ProcessingIntroduction to Digital Signal Processing
Introduction to Digital Signal Processingop205
 
Fast Fourier Transform
Fast Fourier TransformFast Fourier Transform
Fast Fourier Transformop205
 
Brief Review of Fourier Analysis
Brief Review of Fourier AnalysisBrief Review of Fourier Analysis
Brief Review of Fourier Analysisop205
 

Más de op205 (20)

3 f6 security
3 f6 security3 f6 security
3 f6 security
 
3 f6 8_databases
3 f6 8_databases3 f6 8_databases
3 f6 8_databases
 
3 f6 10_testing
3 f6 10_testing3 f6 10_testing
3 f6 10_testing
 
3 f6 9a_corba
3 f6 9a_corba3 f6 9a_corba
3 f6 9a_corba
 
3 f6 9a_corba
3 f6 9a_corba3 f6 9a_corba
3 f6 9a_corba
 
Lecture 7 Software Engineering and Design User Interface Design
Lecture 7 Software Engineering and Design User Interface Design Lecture 7 Software Engineering and Design User Interface Design
Lecture 7 Software Engineering and Design User Interface Design
 
Lecture 6 Software Engineering and Design Good Design
Lecture 6 Software Engineering and Design Good Design Lecture 6 Software Engineering and Design Good Design
Lecture 6 Software Engineering and Design Good Design
 
Lecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design PatternsLecture 5 Software Engineering and Design Design Patterns
Lecture 5 Software Engineering and Design Design Patterns
 
Lecture 4 Software Engineering and Design Brief Introduction to Programming
Lecture 4 Software Engineering and Design Brief Introduction to ProgrammingLecture 4 Software Engineering and Design Brief Introduction to Programming
Lecture 4 Software Engineering and Design Brief Introduction to Programming
 
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
Lecture 2 Software Engineering and Design Object Oriented Programming, Design...
 
More on DFT
More on DFTMore on DFT
More on DFT
 
Digital Signal Processing Summary
Digital Signal Processing SummaryDigital Signal Processing Summary
Digital Signal Processing Summary
 
Implementation of Digital Filters
Implementation of Digital FiltersImplementation of Digital Filters
Implementation of Digital Filters
 
Basics of Analogue Filters
Basics of Analogue FiltersBasics of Analogue Filters
Basics of Analogue Filters
 
Design of IIR filters
Design of IIR filtersDesign of IIR filters
Design of IIR filters
 
Design of FIR filters
Design of FIR filtersDesign of FIR filters
Design of FIR filters
 
Basics of Digital Filters
Basics of Digital FiltersBasics of Digital Filters
Basics of Digital Filters
 
Introduction to Digital Signal Processing
Introduction to Digital Signal ProcessingIntroduction to Digital Signal Processing
Introduction to Digital Signal Processing
 
Fast Fourier Transform
Fast Fourier TransformFast Fourier Transform
Fast Fourier Transform
 
Brief Review of Fourier Analysis
Brief Review of Fourier AnalysisBrief Review of Fourier Analysis
Brief Review of Fourier Analysis
 

Último

Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptxSherlyMaeNeri
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptxiammrhaywood
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxiammrhaywood
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...Postal Advocate Inc.
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxPoojaSen20
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...Nguyen Thanh Tu Collection
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Seán Kennedy
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 

Último (20)

FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
Judging the Relevance and worth of ideas part 2.pptx
Judging the Relevance  and worth of ideas part 2.pptxJudging the Relevance  and worth of ideas part 2.pptx
Judging the Relevance and worth of ideas part 2.pptx
 
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptxAUDIENCE THEORY -CULTIVATION THEORY -  GERBNER.pptx
AUDIENCE THEORY -CULTIVATION THEORY - GERBNER.pptx
 
Raw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptxRaw materials used in Herbal Cosmetics.pptx
Raw materials used in Herbal Cosmetics.pptx
 
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptxECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
ECONOMIC CONTEXT - PAPER 1 Q3: NEWSPAPERS.pptx
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
USPS® Forced Meter Migration - How to Know if Your Postage Meter Will Soon be...
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptxCulture Uniformity or Diversity IN SOCIOLOGY.pptx
Culture Uniformity or Diversity IN SOCIOLOGY.pptx
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
HỌC TỐT TIẾNG ANH 11 THEO CHƯƠNG TRÌNH GLOBAL SUCCESS ĐÁP ÁN CHI TIẾT - CẢ NĂ...
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...Student Profile Sample - We help schools to connect the data they have, with ...
Student Profile Sample - We help schools to connect the data they have, with ...
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 

Lecture 1 Software Engineering and Design Introduction

  • 1. The Concepts Behind Software Design Elena Punskaya, elena.punskaya@eng.cam.ac.uk 1
  • 2. Course Objectives • Object-Oriented Software Design - Understand the benefits of object-oriented analysis and design, its concepts and processes - Be familiar with formal design tools for object orientated design and analysis - Recognise and understand some frequently used design patterns - Be aware of the process involved in user interface design • Software Systems and Engineering - Appreciate the basic design issues and concepts in distributed, real time and concurrent systems - Understand software development methodologies - Understand the main issues and processes necessary to achieve effective software product development • The course is not about becoming a Code Ninja - so we are not going to learn programming in Scala, Ruby on Rails, Go!, Java or Thumb - but we might discuss them • It is neither about becoming a Project Management Guru - so we are not going to make Gantt charts and milestones - but we could talk about priorities, teams and metrics © 2012 Elena Punskaya 2 Cambridge University Engineering Department 2
  • 3. Books • Ian Sommerville, Software Engineering, Addison-Wesley • Roger Pressman, Software Engineering: A Practitioner's Approach • Fred Brooks, The Mythical Man Month, Addison-Wesley • Martin Fowler, UML Distilled: A Brief Guide to the Standard Object Modeling Language, Addison-Wesley • Andrew Hunt and David Thomas, The Pragmatic Programmer • Don Norman, Design of Everyday Things • Kent Beck with Cynthia Andres, Extreme Programming Explained: Embrace Change • Donald Norman, Living with Complexity • Jez Humble and David Farley, Continuous Delivery: Reliable Software Releases Through Build, Test and Deployment Automation • ... © 2012 Elena Punskaya 3 Cambridge University Engineering Department 3
  • 4. Definitions • Software - is a collection of computer programs and related data that provide the instructions for telling a computer what to do and how to do it. (Wikipedia) • Engineering - the way that something has been designed and built. (Cambridge Business English Dictionary) • Software Engineering - a collection of methods, techniques and tools that could be applied to design, build and maintain the “instructions for telling a © Metro-Goldwyn-Mayer Studios Inc. All Rights Reserved. computer what to do and how to do it” • What is a computer? © 2012 Elena Punskaya 4 Cambridge University Engineering Department 4
  • 5. Example: Location-Based Mobile App • foursquare iPhone App - provides consumer location-based services using iOS Location API • foursquare Application server - aggregates and correlates user and location data • Apple iPhone - Operating System provides access to location data acquired by a GPS receiver chip • GPS Receiver chip - processes GPS signals • Navigation Satellite - broadcasts navigation messages • Everything is a COMPUTER (or needs one) • A COMPUTER needs SOFTWARE • Everything needs SOFTWARE :) © 2012 Elena Punskaya 5 Cambridge University Engineering Department 5
  • 6. Example: Software Types • foursquare iPhone App – consumer software application - provides consumer location-based services using iOS Location API • foursquare Application server – distributed concurrent software system - aggregates and correlates user and location data • Apple iPhone – operating system provides software application platform - Operating System provides access to location data acquired by a GPS receiver chip • GPS Receiver chip – implements digital signal processing software - processes GPS signals • Navigation Satellite – uses system control software - broadcasts navigation messages © 2012 Elena Punskaya 6 Cambridge University Engineering Department 6
  • 7. Horses for Courses • Not all SOFTWARE is created equal, choose an engineering approach accordingly Our tests suite takes nine minutes to run (distributed across 30-40 machines). Our code pushes take another six minutes. Since these two steps are pipelined that means at peak we’re pushing a new revision of the code to the website every nine minutes. That’s 6 deploys an hour. Even at that pace we’re often batching multiple commits into a single test/push cycle. On average we deploy new code fifty times a day. [1] This software never crashes. It never needs to be re- booted. This software is bug-free. It is perfect, as perfect as human beings have achieved. Consider these stats : the last three versions of the program – each 420,000 lines long-had just one error each. The last 11 versions of this software had a total of 17 errors. [2] © 2012 Elena Punskaya 7 Cambridge University Engineering Department 7
  • 8. Software Engineering in Cambridge [3] • 1948-9 Research on programming methods under M.V. Wilkes, including: - definition and refinement of Initial Orders (Wheeler); - closed subroutines (Wheeler); - building of a library of subroutines (all laboratory members interested in programming, plus Professor D. R. Hartree). M.V.Wilkes, 1913-2010 • 6 May 1949, First logged program on EDSAC 1 (computing squares of 0-99) – World’s first stored program computer • 1950 First Summer School on Programme Design for Automatic Digital Computing Machines, with 51 attendees • 1953 Diploma in Numerical Analysis and Automatic Computing began - The Diploma “would include theoretical and practical work ... [and also] instruction about the various types of computing- machine ... and the principles of design on which they are EDSAC I, 1947/8 P.J.Farmer R.Piggott based.” M.V.Wilkes W.A.Renwick © 2012 Elena Punskaya 8 Cambridge University Engineering Department 8
  • 9. The NATO Software Engineering Conferences • 1968: “In Europe alone there are about 10,000 installed computers — this number is increasing at a rate of anywhere from 25 per cent to 50 per cent per year. The quality of software provided for these computers will soon affect more than a quarter of a million analysts and programmers.” [4] P. Naur and B. Randell, (Eds.). Software B. Randell and J.N. Buxton, (Eds.). Engineering: Report of a conference Software Engineering Techniques: Report sponsored by the NATO Science of a conference sponsored by the NATO Committee, Garmisch, Germany, 7-11 Oct. Science Committee, Rome, Italy, 27-31 1968, Brussels, Scientific Affairs Division, Oct. 1969, Brussels, Scientific Affairs NATO (1969) 231pp. Division, NATO (1970) 164pp. © 2012 Elena Punskaya 9 Cambridge University Engineering Department 9
  • 10. 1968, Typical Software Project • The need for feedback is identified Selig: “External specifications at any level describe the software product in terms of the items controlled by and available to the user. The internal design describes the software product in terms of the program structures which realize the external specifications. It has to be understood that feedback between the design of the external and internal specifications is an essential part of a realistic and effective implementation process. Furthermore, this interaction must begin at the earliest stage of establishing the objectives, and continue until completion of the product.” [4] © 2012 Elena Punskaya 10 Cambridge University Engineering Department 10
  • 11. Learning From Mistakes • Traditionally, large scale project disasters are seen as the impetus for developing software engineering as a discipline in order to mitigate the risks • Most referenced disaster projects include: - 1991-1992, London Ambulance Service – an attempt to switch to a fully automated dispatch system (26 Oct 1992: went live, 02 Nov 1992: switched back to the manual system) - 1985-1987, Therac-25 – a computer-controlled radiation therapy machine massively overdosed 6 people - 1996, Ariane 5 – the first launch of a new rocket terminated in self-destruction due to a software bug in the control software • More recently - 2003, Northeast Blackout – a power outage affecting est. 55m people in USA and Canada, an early alarm failed due to a “race condition” in the energy management system software - 2005-2006, Sensotronic Brake Control – almost 2m Mercedes cars recalled, the system is no longer used in production - April, 2011 – Amazon Elastic Compute Cloud (EC2) service disruption takes down FourSquare, Quora, Reddit - Oct 2011 – 3 days BlackBerry services outage affecting subscribers worldwide © 2012 Elena Punskaya 11 Cambridge University Engineering Department 11
  • 12. Measuring Complexity: Lines of Code Software entities are more complex for their size than perhaps any other human construct... Many of the classical problems of developing software products derive from this essential complexity and its nonlinear increases with size. Fred Brooks, “No Silver Bullet – Essence and Accident in Software Engineering” [5] • F-22 Raptor: 1.7m • Radio and navigation system in the current S-class Mercedes- Benz: 20m • IBM OS/360 (1966): 1m • Android Mobile OS: 1m • Facebook main site: 9.2m • Google Chrome browser: 4.5m • Of course, the number lines depends on the programming language and less is not always better perl -MYAML -ne '$c{$_}++for split//;END{print Dump%c}' data.txt © 2012 Elena Punskaya 12 Cambridge University Engineering Department 12
  • 13. Example: Facebook '()*+$$,&-.*/&0/$123&456& *!!" )!!" (!!" '!!" !"##"$%& &!!" %!!" $!!" • 800m users [8] #!!" • 500m visit daily !" /01.!'" 234.!'" +,-.!'" 5,6.!'" 234.!(" /01.!)" 234.!)" +,-.!)" 5,6.!)" /01.!*" 234.!*" +,-.!*" 5,6.!*" /01.!7" 234.!7" +,-.!7" 5,6.!7" 234.#!" /01.##" 234.##" +,-.!&" +,-.!(" +,-.#!" /01.!(" 5,6.!(" /01.#!" 5,6.#!" • 350m on mobile • all data is stored in a database (MySQL) • 60 million queries per second • 4 million row changes per second © 2012 Elena Punskaya 13 Cambridge University Engineering Department 13
  • 14. Example: eBay • “The size of the problem - The problem involves both the number of changes and the velocity of the changes. The eBay code base consists of hundreds of thousands of source elements (with total lines of code in the tens of millions). The applications – which comprise web, services, messaging, and batch style – number in the thousands. It is common for an application to use tens of thousands of source elements. The elements themselves are contributed by different teams and are shared with other applications.” [8] Code Type Count Source elements 100,000’s Source elements per application 10,000’s Applications 1000’s Features per month 100’s Source elements changed per feature 100’s (sometimes 1000’s) Projects 1000’s Source elements per project 10-100’s (sometimes 1000’s) © 2012 Elena Punskaya 14 Cambridge University Engineering Department 14
  • 15. Better Faster Stronger • Instagram: 60 photos per second; • Tumblr: 900 posts per second • Twitter: 8,868 Tweets per second (during MTV Awards) • Netflix: stream 1 billion hours in Q4 2011 • PayPal: 5 million transactions a day • London Stock Exchange: 22.4 million trades in Dec 2011 • Google: over 1 billion searches per day • Youtube: over 100 million views a day on mobile Ever Increasing Complexity Software Systems Drive World’s Economic Growth © 2012 Elena Punskaya 15 Cambridge University Engineering Department 15
  • 16. Software Engineering Aims • Managing complexity and Minimizing risks [T]here are known knowns; there are things we know we know. We also know there are known unknowns; that is to say we know there are some things we do not know. But there are also unknown unknowns – there are things we do not know we don't know. Former United States Secretary of Defense Donald Rumsfeld • Designing systems that - meet requirements (“known knowns”) - can adapt to changes (“known unknowns”) - and withstand any unexpected use cases (“unknown unknowns”) • Software Engineering is also about: Making Better Mistakes Tomorrow! Having Happy (Alive) Users! © 2012 Elena Punskaya 16 Cambridge University Engineering Department 16
  • 17. Software Process • “Analysis is discovering and describing those aspects of a software development about which there is no choice, that is, to which the project is already committed” • Design is creating a definition of how the project goals are going to be achieved • Implementation is the process of writing code, typically would be partitioned in many subprojects • Building is creating a “complete” version of the software, i.e. putting all chunks of code together, including any custom configurations for target deployment • Testing is about making sure that small independent parts of code work correctly (unit tests), that all code parts work together (integration tests), that the functionality meets requirements (acceptance), that any new code doesn’t break the old (regression) © 2012 Elena Punskaya 17 Cambridge University Engineering Department 17
  • 18. Software Process • Deployment – actual release of the software into the end user environment, e.g. publishing the mobile app in the App Store or launching the service on bank’s servers • Maintenance – supporting the software during its lifetime, e.g. releasing compatibility updates when a new version of mobile OS is released or improving performance as user base grows • Traditionally, 80-90% of software system Total Cost of Ownership is attributed to maintenance. Once the system is operational, the cost of change is high (each new release requires a new full cycle: analyse, design, implement, build, test, deploy). Also, to achieve a better Return on Investment, the preference is naturally to extend the existing system than develop a new one. • Nowadays, in some software systems (web apps), the line between maintenance and continuous development is less clear, consider Google and Facebook – is scaling up to hundreds of millions of users and PetaBytes of data maintenance or new development? © 2012 Elena Punskaya 18 Cambridge University Engineering Department 18
  • 19. Example © 2012 Elena Punskaya 19 Cambridge University Engineering Department 19
  • 20. Requirements Analysis not Analysis Paralysis The hardest single part of building a software system is deciding precisely what to build. No other part of the conceptual work is as difficult as establishing the detailed technical requirements, including all the interfaces to people, to machines, and to other software systems. No other part of the work so cripples the resulting system if done wrong. Fred Brooks, “No Silver Bullet – Essence and Accident in Software Engineering” [5] • It is impossible to know in advance everything required to build the software system. Why? • Users don’t know 100% what it should do • Developers don’t know 100% how users would use it • The only 100% certainty is that things will change: - the deployment environment change, e.g. new version of hardware/software platform - the business requirements change, e.g. adding a new method to a payment system - the scale changes, e.g. from 1m users to 800m © 2012 Elena Punskaya 20 Cambridge University Engineering Department 20
  • 21. The Answer? • Over 40 years since The 1968 NATO Software Engineering conference, the issues discussed Grow, don’t build, software. Fred Brooks, “No Silver Bullet – Essence and are as much present as then Accident in Software Engineering” • No Silver Bullet – there is no single answer/process/method • but we can ... ✓ Build for Change ✓ Communicate Clearly ✓ Test Continuously, Test Everything - problem understanding, user behaviour assumptions, code, integration... ✓ Choose the Tools for the Job - Object-Oriented Analysis and Design © Warner Bros. Ent. All rights reserved. - Extreme/Agile Programming - Continuous Integration/Deployment - IDEs, Source Control, UML ... © 2012 Elena Punskaya 21 Cambridge University Engineering Department 21
  • 22. References and Further Reading 1. http://timothyfitz.wordpress.com/2009/02/10/continuous-deployment-at-imvu-doing-the-impossible-fifty-times-a-day/ 2. http://www.fastcompany.com/magazine/06/writestuff.html 3. http://www.cl.cam.ac.uk/conference/EDSAC99/history.html 4. http://homepages.cs.ncl.ac.uk/brian.randell/NATO/nato1968.PDF 5. http://www.cs.nott.ac.uk/~cah/G51ISS/Documents/NoSilverBullet.html 6. http://www.facebook.com/press/info.php?timeline 7. http://www.facebook.com/press/info.php?statistics 8. http://www.ebaytechblog.com/2011/12/15/rapid-development-setup-in-large-environments/ 9. http://www.securityfocus.com/news/8016 10. http://aws.amazon.com/message/65648/ 11. http://www.autoweek.com/article/20051216/FREE/51216010 12. http://www.computerworlduk.com/news/mobile-wireless/3310790/we-do-not-know-why-system-failed-says-blackberry-ceo/ 13. http://spectrum.ieee.org/green-tech/advanced-cars/this-car-runs-on-code/0 14. http://highscalability.com/ 15. http://martinfowler.com/bliki/UseCases.html © 2012 Elena Punskaya 22 Cambridge University Engineering Department 22