Presentation is loading. Please wait.

Presentation is loading. Please wait.

Methods: Deciding What to Design In-Young Ko iko.AT. icu.ac.kr Information and Communications University (ICU) iko.AT. icu.ac.kr Fall 2005 ICE0575 Lecture.

Similar presentations


Presentation on theme: "Methods: Deciding What to Design In-Young Ko iko.AT. icu.ac.kr Information and Communications University (ICU) iko.AT. icu.ac.kr Fall 2005 ICE0575 Lecture."— Presentation transcript:

1 Methods: Deciding What to Design In-Young Ko iko.AT. icu.ac.kr Information and Communications University (ICU) iko.AT. icu.ac.kr Fall 2005 ICE0575 Lecture #6 Paradigm Shifts in Software Development

2 Fall 2005 2 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Announcements Homework #4, which is due by September 23 rd, has been posted Homework #4, which is due by September 23 rd, has been posted This homework requires group work This homework requires group work Finish the affinity in a single day Finish the affinity in a single day Please use your team names for team works Please use your team names for team works

3 Fall 2005 3 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Picture of the Day: Carnegie Museum of Natural History

4 Fall 2005 4 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Today ’ s Class The Nature of Software The Nature of Software Software Crisis and Silver Bullets Software Crisis and Silver Bullets Software Development Paradigms Software Development Paradigms Component-based Software Engineering Component-based Software Engineering Service-oriented Software Development Service-oriented Software Development The content of this slide is adopted from the lecture materials of the Methods course (17-652) at Carnegie Mellon University.

5 Fall 2005 5 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Where is Software? Everywhere!

6 Fall 2005 6 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Can Software Kill People? National Cancer Institute in Panama, November 2000 National Cancer Institute in Panama, November 2000 Medical Radiation Machine provides a graphical user interface Medical Radiation Machine provides a graphical user interface Hospital works filled in fields to select options Hospital works filled in fields to select options Tab-key & Shift-Tab combination used to move between fields Tab-key & Shift-Tab combination used to move between fields Some hospital works used up & down arrows to move between rows of fields Some hospital works used up & down arrows to move between rows of fields Result: Result: Data entered in wrong fields Data entered in wrong fields 21 patients over-radiated & died 21 patients over-radiated & died http://www.technewsworld.com/story/33398.html sunset.usc.edu/classes/cs377_2004/Lecture6.ppt http://www.tlabs.ac.za/public/MedicalRadiation(Neutrons).htm

7 Fall 2005 7 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Software Failures – Ferrari Modena Ferrari's North America division recalled 353 cars in 1999 Ferrari's North America division recalled 353 cars in 1999 A software programming error found in some Ferrari 360 Modena and 360 Modena F1 models A software programming error found in some Ferrari 360 Modena and 360 Modena F1 models It was a glitch in the electronic instrument module that prevented a warning light from illuminating if a problem was detected with a car's brake system It was a glitch in the electronic instrument module that prevented a warning light from illuminating if a problem was detected with a car's brake system http://www.collectorcartraderonline.com/caddetail.html?/ad-cache/10/2/8/78769828.htm http://www.technewsworld.com/story/33398.html

8 Fall 2005 8 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Software Failures – Ariane 5 An unmanned Ariane 5 rocket launched by the European Space Agency exploded 40 seconds after take-off (June 4, 1996, Kourou, French Guiana) An unmanned Ariane 5 rocket launched by the European Space Agency exploded 40 seconds after take-off (June 4, 1996, Kourou, French Guiana) $500 million loss $500 million loss The cause of the failure was a software error in the inertial reference system The cause of the failure was a software error in the inertial reference system A 64 bit floating point number relating to the horizontal velocity of the rocket with respect to the platform was converted to a 16 bit signed integer A 64 bit floating point number relating to the horizontal velocity of the rocket with respect to the platform was converted to a 16 bit signed integer http://www.ima.umn.edu/~arnold/disasters/ariane.html

9 Fall 2005 9 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Software Failures – NY Blackout Massive power blackout hit northeastern U.S. & Canada (August 14, 2003) Massive power blackout hit northeastern U.S. & Canada (August 14, 2003) Workers in new York & Toronto forced into streets in summer heat Workers in new York & Toronto forced into streets in summer heat Subways shut down Subways shut down Firstly thought that it was caused by lightning strike at Niagara power plant Firstly thought that it was caused by lightning strike at Niagara power plant Later determined that there was a software bug in GE Energy's XA/21 Later determined that there was a software bug in GE Energy's XA/21 Led to alarm system failure at FirstEnergy's Akron, Ohio control center Led to alarm system failure at FirstEnergy's Akron, Ohio control center http://www.securityfocus.com/news/8016 http://www.cnn.com/2003/US/08/14/power.outage/ sunset.usc.edu/classes/cs377_2004/Lecture6.ppt GE Energy's XA/21 system

10 Fall 2005 10 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Why is it hard to make good software? Software is intangible Software is intangible There are no formal methods to develop software There are no formal methods to develop software Software needs (requirements) are changed over time Software needs (requirements) are changed over time

11 Fall 2005 11 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Software Crisis – 1960s Machines have become several orders of magnitude more powerful than software - Edsger Dijkstra Machines have become several orders of magnitude more powerful than software - Edsger Dijkstra A large software project: a monster of missed schedules, blown budgets, and flowed products - Frederick Brooks A large software project: a monster of missed schedules, blown budgets, and flowed products - Frederick Brooks Werewolf IBM 7090 – computer A second generation computer

12 Fall 2005 12 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University A Silver Bullet Searching for a silver bullet to kill the monster of a large software project Searching for a silver bullet to kill the monster of a large software project What would be the silver bullet?? What would be the silver bullet?? Werewolf

13 Fall 2005 13 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University What is Engineering? The application of science and mathematics by which the properties of matter and the sources of energy in nature are made useful to people [Merriam-Webster]

14 Fall 2005 14 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University What is Software Engineering? Software engineering is that form of engineering that applies the principles of computer science and mathematics to achieving cost-effective solutions to software problems [SEI] Software engineering is that form of engineering that applies the principles of computer science and mathematics to achieving cost-effective solutions to software problems [SEI] Software engineering is the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost estimates [Fairley] Software engineering is the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost estimates [Fairley]

15 Fall 2005 15 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University What is the Silver Bullet? Programming Paradigms Programming Paradigms Structured Programming Structured Programming Object-Oriented Programming Object-Oriented Programming Component-Based Software Development Component-Based Software Development Aspect-Oriented Programming Aspect-Oriented Programming Service-Oriented Software Development Service-Oriented Software Development …

16 Fall 2005 16 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Software Synthesis (Composition) Assembling software components rather than constructing a system Assembling software components rather than constructing a system Software Components: Software Components: Binary (executable) units that are independently produced, acquired and deployed, and can be connected to each other to form a composite system [Szyperski 1998] Component-based Composition Paradigms Component-based Composition Paradigms Software Integration Circuits Software Integration Circuits Software Schemas Software Schemas Megaprogramming Megaprogramming Web Services Web Services

17 Fall 2005 17 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Component-based Design Pattern [Component-Based Software Engineering Vol. II, SEI]

18 Fall 2005 18 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Why Component-based? Reusability Reusability Flexibility Flexibility Easier to customize a software system Easier to customize a software system Easier to satisfy changing user requirements Easier to satisfy changing user requirements Maintainability Maintainability Independent extensions (shorter upgrade cycle) Independent extensions (shorter upgrade cycle) Easier to maintain state-of-the-art software Easier to maintain state-of-the-art software Productivity Productivity Reduced time-to-market Reduced time-to-market More outsourcing components (component markets) More outsourcing components (component markets) Better cost efficiency Better cost efficiency Higher quality Higher quality

19 Fall 2005 19 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Difficulties of Realizing Component-based Approach No “Critical Mass” [Szypersky] No “Critical Mass” [Szypersky] No sufficient variety and quality No sufficient variety and quality No infrastructure for searching and accessing components No infrastructure for searching and accessing components No clear line between component developers and consumers No clear line between component developers and consumers Hard to form a component market Hard to form a component market

20 Fall 2005 20 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Enablers for Component-based Approach Internet and Web (Wrapper Technology) Internet and Web (Wrapper Technology) Plug-in Software Plug-in Software Software Agents Software Agents Mobile Codes (e.g., Java) Mobile Codes (e.g., Java) Distributed Service Access Infrastructure and Middleware (e.g., DCOM, CORBA, Java Bean) Distributed Service Access Infrastructure and Middleware (e.g., DCOM, CORBA, Java Bean) Web Services Web Services

21 Fall 2005 21 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University The Web: A New Infrastructure for Software Engineering Provides repositories for searching software component services Provides repositories for searching software component services Provides a medium for deploying software components as services Provides a medium for deploying software components as services Supports protocols to access software services Supports protocols to access software services Supports an environment to dynamically compose (assemble or synthesize) software systems Supports an environment to dynamically compose (assemble or synthesize) software systems Web Services Customized Applications Web-based Software Environment

22 Fall 2005 22 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Service-Oriented Approach Service-oriented approach is hot! Service-oriented approach is hot! “By 2005, the aggressive use of Web Services will drive a 30 percent increase in the efficiency of IT development projects” [Gartner] “By 2005, the aggressive use of Web Services will drive a 30 percent increase in the efficiency of IT development projects” [Gartner] Conventional software market will be disappeared and changed to “software as a service” [Oracle] Conventional software market will be disappeared and changed to “software as a service” [Oracle] What are Services? What are Services? Self-contained functions Self-contained functions Can be composed with other services to form different services Can be composed with other services to form different services

23 Fall 2005 23 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Services vs. Software Components Visibility difference: Services are visible to external users; Software components are visible to external software systems Visibility difference: Services are visible to external users; Software components are visible to external software systems Software Components External Software System (Service Access Infrastructure; Mediator; e.g., DCOM, CORBA) Services External Users

24 Fall 2005 24 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Benefits of Using Services Inheriting of the benefits of component-based software engineering Inheriting of the benefits of component-based software engineering Rapid software development (outsourcing) Rapid software development (outsourcing) Enhanced adaptability Enhanced adaptability Scalability Scalability Maintainability Maintainability User-oriented views (abstraction) User-oriented views (abstraction) Loose coupling Loose coupling Asynchrony Asynchrony Agility (dynamic service composition) Agility (dynamic service composition)

25 Fall 2005 25 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Web Services Definition: software components that can be accesses over public networks using generally available protocols and transport (XML, HTTP) Definition: software components that can be accesses over public networks using generally available protocols and transport (XML, HTTP) Software Components External Software System Services External Users Web Services Platform WSDL, SOAP, UDDI

26 Fall 2005 26 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Web Services Standards WSDL (Web Services Description Language) WSDL (Web Services Description Language) Language for Describing Functionality and I/O Data of Web Services Language for Describing Functionality and I/O Data of Web Services DAML-S (DARPA Agent Markup Language for Services) DAML-S (DARPA Agent Markup Language for Services) Language for Describing Semantic Web Services Language for Describing Semantic Web Services SOAP (Simple Object Access Protocol) SOAP (Simple Object Access Protocol) Envelop for sending messages Envelop for sending messages UDDI (Universal Description Discovery and Integration) UDDI (Universal Description Discovery and Integration) Directory service for Web Services Directory service for Web Services

27 Fall 2005 27 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Web Services Architecture Service Consumer Service Provider Directory Service (UDDI) SOAP Message (Service Description in WSDL) SOAP Message (Query Response in WSDL) SOAP Message (Queries) (Service Request in WSDL) SOAP Message (Service Response) 1 2 3 4 5

28 Fall 2005 28 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Benefits of Using Web Services Inheriting the benefits of service-oriented software development Inheriting the benefits of service-oriented software development Enable outsourcing services Enable outsourcing services Adaptability, Scalability, Maintainability Adaptability, Scalability, Maintainability Abstraction, Loose coupling, Asynchrony, Agility Abstraction, Loose coupling, Asynchrony, Agility Standard-based solution Standard-based solution Ubiquitous services Ubiquitous services Clean division between production and delivery of service Clean division between production and delivery of service

29 Fall 2005 29 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Challenging Issues in New Software Environments Hard to choose from a large and growing number of available software components and services (e.g., new component versions, new applications, Web services) Hard to choose from a large and growing number of available software components and services (e.g., new component versions, new applications, Web services) Hard to make them work together due to high complexity in interoperability relationships Hard to make them work together due to high complexity in interoperability relationships Hard to cope with changing user requirements and dynamic situations Hard to cope with changing user requirements and dynamic situations

30 Fall 2005 30 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Dynamic Software Composition Infrastructure Service-Oriented Architecture (SOA) Service-Oriented Architecture (SOA) Building, deploying and managing service-oriented system integration Building, deploying and managing service-oriented system integration Main parts: Main parts: Service Provider Service Provider Service Requester Service Requester Service Broker Service Broker Dynamic Composition Environment Dynamic Composition Environment Finding and locating services Finding and locating services Monitoring service behaviors Monitoring service behaviors Reconfiguring a system during run time Reconfiguring a system during run time

31 Fall 2005 31 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University An Application Domain: Web- based Information Management Retrieve document collections from various Web resources (e.g. search engines, news video archives) Retrieve document collections from various Web resources (e.g. search engines, news video archives) Analyze the document collections using various document analysis services (characterize, sort, partition, filter, etc.) Analyze the document collections using various document analysis services (characterize, sort, partition, filter, etc.) Visualize analysis results using various visualization services to help users make sense of them Visualize analysis results using various visualization services to help users make sense of them Impose structure on the resulting document collection to define a customized, task- oriented information space Impose structure on the resulting document collection to define a customized, task- oriented information space GeoWorlds (www.isi.edu/geoworlds/) www.isi.edu/geoworlds/

32 Fall 2005 32 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University An Application Domain: Context-Aware Software for Ubiquitous Computing User Requirement Changes Exceptional Situations Environmental Changes Applications Context Awareness Support Context-sensitive Component Brokering Dynamic Application Composition and Reconfiguration

33 Fall 2005 33 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University What is the Silver Bullet?

34 Fall 2005 34 ICE 0575 – Methods: Deciding What to Design © In-Young Ko, Information and Communications University Questions??


Download ppt "Methods: Deciding What to Design In-Young Ko iko.AT. icu.ac.kr Information and Communications University (ICU) iko.AT. icu.ac.kr Fall 2005 ICE0575 Lecture."

Similar presentations


Ads by Google