Presentation is loading. Please wait.

Presentation is loading. Please wait.

Slide 18.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition,

Similar presentations


Presentation on theme: "Slide 18.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition,"— Presentation transcript:

1 Slide 18.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill, 2011 Stephen R. Schach

2 Slide 18.2 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. CHAPTER 18 EMERGING TECHNOLOGIES

3 Slide 18.3 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Overview (contd) l Aspect-oriented technology l Model-driven technology l Component-based technology l Service-oriented technology l Comparison of service-oriented and component-based technology l Social computing l Web engineering l Cloud technology l Web 3.0

4 Slide 18.4 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Overview l Computer security l Model checking l Present and future

5 Slide 18.5 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 18.1 Aspect-Oriented Technology l A concern of a software product is a specific set of behaviors of that product – Example: » In a banking product, concerns include –A set of interest computations –The writing of information to the audit trail l A core concern of a software product is a primary set of behaviors of that product – Example: » In the banking product, –The set of interest computations is a core concern –The writing of information to the audit trail is essential, but is not a core concern

6 Slide 18.6 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Aspect-Oriented Technology (contd) l Separation of concerns is highly desirable – But not always achievable in practice – Example: » In the banking product, –The set of interest computations can probably be isolated to a few modules –But virtually every banking operation has to write to the audit trail

7 Slide 18.7 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Aspect-Oriented Technology (contd) l A cross-cutting concern cuts across module boundaries – Example: » In the banking product, –The audit trail l Cross-cutting can have a deleterious effect on maintenance – Cross-cutting can lead to regression faults

8 Slide 18.8 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Aspect-Oriented Technology (contd) l Cross-cutting violates separation of concerns l A change to the audit trail mechanism requires all six pieces of audit trail code to be consistently changed Figure 18.1(a)

9 Slide 18.9 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Aspect-Oriented Technology (contd) l Aim of aspect-oriented programming (AOP): – Isolate such cross-cutting concerns in special modules called aspects l Aspects contain advice – Code to be linked to specific places in the software – Example: » In a banking product, advice includes –An audit trail routine l A pointcut is a place in the code where the advice is to be executed

10 Slide 18.10 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Aspect-Oriented Technology (contd) l An aspect therefore consists of two pieces: – The advice, and – Its associated set of pointcuts l Now, a change to the audit trail mechanism is localized to the aspect Figure 18.1(b)

11 Slide 18.11 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Aspect-Oriented Technology (contd) l An aspect-oriented programming language is needed – Its compiler is called a weaver l Development and maintenance are performed on the uncompiled source code, including its aspects and pointcuts – Separation of concerns is thereby achieved l Now, a change to the audit trail mechanism is localized to the aspect

12 Slide 18.12 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Aspect-Oriented Technology (contd) l There are aspect-oriented extensions for many programming languages, including: – AspectJ (for Java) » Currently the most popular AOPL

13 Slide 18.13 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Aspect-Oriented Technology (contd) l Aspect-oriented programming is one part of aspect-oriented software development (AOSD) – Aim: Early identification of both functional and nonfunctional cross-cutting concerns l Once the cross-cutting concerns have been identified, they are – Specified (aspect-oriented analysis), – Modularized (aspect-oriented design), and – Coded (aspect-oriented implementation)

14 Slide 18.14 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Aspect-Oriented Technology (contd) l Aspect-oriented programming has been used in a number of commercial applications, including – IBM Websphere (a framework for building online information systems in Java ), and – JBoss (an open-source Java application server)

15 Slide 18.15 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 18.2 Model-Driven Technology l Problem: moving a software product to a new platform l Model-driven architecture (MDA) solves the problem at the analysis level rather than at the design level

16 Slide 18.16 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Model-Driven Technology (contd) l 1.The functionality of the desired software product is specified by means of a platform- independent model (PIM) – This is done using UML, or an appropriate domain- specific language Figure 18.2

17 Slide 18.17 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Model-Driven Technology (contd) l 2.A platform-specific model (PSM) is chosen – Examples: CORBA,.NET, or J2EE l The PIM is mapped into the selected PSM – The PSM is expressed in UML Figure 18.2 (again)

18 Slide 18.18 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Model-Driven Technology (contd) l 3.The PSM is translated into code, using an automatic code generator, and run on a computer l 4.If multiple platforms are required, Steps 2 and 3 are repeated for each PSM Figure 18.2 (again)

19 Slide 18.19 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Model-Driven Technology (contd) l MDA – Totally decouples functionality from implementation, and – Thereby provides a powerful mechanism for achieving portability l Patterns play an important role in MDA-based software products l MDA raises the level of abstraction from the platform-dependent code level to the platform- independent model level

20 Slide 18.20 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 18.3 Component-Based Technology l The goal of component-based technology: – To construct a standard collection of reusable components l Then, all software will be constructed by – Choosing a standard architecture, – Choosing standard reusable frameworks, and – Inserting standard reusable code artifacts into the hot spots of the frameworks

21 Slide 18.21 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Component-Based Technology (contd) l That is, all future software will then be built from those reusable components – Using an automated tool l Result: – Product automation

22 Slide 18.22 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Component-Based Technology (contd) l For this technology to work, the components have to be – Independent, that is, fully encapsulated – At a higher level of abstraction than objects, because they cannot share state

23 Slide 18.23 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Component-Based Technology (contd) l Achieving component-based software engineering would lead to – Order-of-magnitude increases in » software productivity and » quality, and – Order-of-magnitude decreases in » time to market and » maintenance effort l Unfortunately, the current state of the art is far from this ambitious target

24 Slide 18.24 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 18.4 Service-Oriented Technology l With service-oriented technology, capabilities are provided – By service providers, – Over a network (frequently the Internet), – To meet specific needs of service consumers

25 Slide 18.25 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Two Ways to Create a Document on a Computer l 1. Install a copy of Microsoft Word on the user’s computer, and then use Microsoft Word to create the document on that computer l 2. Open a Web browser and create the document using Google Docs – The word processing software stays on the Google computer – The document also resides on the Google computer » But a copy can be downloaded to the user’s computer, for additional security l This is service-oriented computing

26 Slide 18.26 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 18.5 Comparison of Service-Oriented and Component-Based Technology l Both service-oriented technology and component- based technology: – Are instances of distributed computing – Are primarily reuse technologies – Require encapsulation – Are accessed through their interfaces – Must have the highest possible cohesion and the lowest possible coupling – Have low entry costs – Automatically download the latest version of the software – Are generally geographic location-independent

27 Slide 18.27 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Differences between Service-Oriented and Component-Based Technology l One major difference between the two technologies is granularity – The basic building blocks of component-based technology are components, whereas – The basic building blocks of service-oriented technology are complete executable programs l A second difference is that – Early versions of service-oriented technology are already widely used today, whereas – Component-based technology still requires breakthrough research before it could be used in practice

28 Slide 18.28 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 18.6 Social Computing l The term social computing is used in two different contexts: – With the emphasis on the “social” » Not an emerging technology – With the emphasis on the “computing” » An emerging technology

29 Slide 18.29 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Social Computing (contd) l First, the term is in used in the context of the ways in which computers support social behavior – Examples include: » Chat rooms » Instant messaging » E-mail » Blogs » Shared work spaces like wikis l That is not an emerging technology

30 Slide 18.30 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Social Computing (contd) l Second, the term is used in the context of group computations – Examples include » Online auctions » Multiplayer online games » Collaborative filtering l This usage relates to an emerging technology

31 Slide 18.31 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 18.7 Web Engineering l Analogous to software engineering, Web engineering is a discipline whose aim is the production of – Fault-free Web software – Delivered on time, – Within budget, and – Satisfying the user’s needs

32 Slide 18.32 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Web Engineering (contd) l Web software is a subset of software in general – Accordingly, Web engineering is technically a subset of software engineering l However, Web software has characteristics of its own – Web engineering should therefore be considered a separate discipline

33 Slide 18.33 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Characteristics of Web Software l Unstable requirements l Wide range of user skills l No opportunity to train users l Varied content l Exceedingly short maintenance turnaround times l The human–user interface is of prime importance l Diverse runtime environments l Stringent privacy and security requirements l Accessibility through multiple devices

34 Slide 18.34 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Characteristics of Web Software (contd) l Some researchers feel that Web technology is essentially different to computer technology – They have put forward a new discipline, Web science, analogous to computer science

35 Slide 18.35 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 18.8 Cloud Technology l The Internet is sometimes referred to as “The Cloud” l Cloud technology is a synonym for Internet-based technology l Specific to cloud computing is the idea that the users are not expected to have any knowledge of the underlying infrastructure – The metaphor is that users are operating “in a cloud”

36 Slide 18.36 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 18.9 Web 3.0 l The World Wide Web (or Web for short) is a collection of hypertext documents l Web 2.0 is a term that refers to the technology that individuals now use when they make use of the Web l Web 3.0 (or the Semantic Web) is an emerging technology – The term refers to ways that the Web will be used in the future

37 Slide 18.37 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 18.10 Computer Security l Computer security is not a branch of software engineering – Nevertheless, there are aspects of computer security that are also of concern to software engineers l One important area of overlap between software engineering and computer security is human factors

38 Slide 18.38 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Human Factors l Claim: – “Given a choice between dancing pigs and security, users will pick dancing pigs every time” – Dancing pigs problem l The claim is supported by the “cute” swimming bear on a fraudulent web page for Bank of the West

39 Slide 18.39 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Human Factors (contd) l The design of human interfaces has to take into account that many users simply do not care about security l Security has to be built into a software product, rather than offered as an option – This is a hard problem

40 Slide 18.40 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 18.11 Model Checking l Model checking is a testing technology for hardware that is starting to be applied to software l Correctness proving is still somewhat problematic – We need an alternative to a human having to construct a proof

41 Slide 18.41 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Model Checking (contd) l Model checking – Use temporal logic to specify a software product that is intended to run without stopping – Realize the temporal logic specification as a finite state machine – Then determine the properties of that finite state machine l In this way, we can mathematically show that a software product is correct without explicitly constructing a proof of correctness

42 Slide 18.42 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. 18.12 Present and Future l This chapter contains an outline of 10 emerging technologies – All are promising – All have the potential to become mainstream technologies

43 Slide 18.43 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Present and Future (contd) l “It’s tough making predictions, especially about the future” – Yogi Berra – So, only in the future will we know what the future will bring


Download ppt "Slide 18.1 Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved. Object-Oriented and Classical Software Engineering Eighth Edition,"

Similar presentations


Ads by Google