software architecture and reuse
play

Software Architecture and Reuse R. Kuehl p. 1 R I T Software - PowerPoint PPT Presentation

Software Architecture and Reuse R. Kuehl p. 1 R I T Software Engineering Reuse: The Big Promise Focus was small-gr grained, ined, opportunistic, and techn hnology ology-dr drive iven. Results did not meet business goals. R. Kuehl p.


  1. Software Architecture and Reuse R. Kuehl p. 1 R I T Software Engineering

  2. Reuse: The Big Promise Focus was small-gr grained, ined, opportunistic, and techn hnology ology-dr drive iven. Results did not meet business goals. R. Kuehl p. 2 R I T Software Engineering

  3. Reuse Opportunities - Everything   Requirements Testing   Architecture design Project planning   Software Process, methods, components tools   Software frameworks People   User interface design Prototypes R. Kuehl p. 3 R I T Software Engineering

  4. Advantages of Reuse  Saves time and cost …  Limited development cost  Presumably of proven quality  However … R. Kuehl p. 4 R I T Software Engineering

  5. Failure of Software Reuse When cost exceeds value …  Not useful – functionality too limited, easier to rewrite  Difficult to use – too complex, too large, unacceptable learning curve  Unknown pedigree – unknown quality, uncertain support  Architectural qualities mismatched or insufficient (e.g., performance) R. Kuehl p. 5 R I T Software Engineering

  6. Software Frameworks  A partial design implemented in code that provides common reusable services  Design based on underlying patterns and tactics  API access  Range in complexity from simple functional libraries to complex and sophisticated subsystems (platforms)  Many modern web and mobile app software architectures are built on top of reusable open source frameworks R. Kuehl p. 6 R I T Software Engineering

  7. Netflix as a Case Study Hadoop R. Kuehl p. 7 R I T Software Engineering

  8. Manage Data Streaming  Apache Kafka – “ used for building real-time data pipelines and streaming apps .”  Publish and subscribe to read and write data streams  Respond in real time  Store streams of data safely in a distributed, fault tolerant cluster  Control Plane – smart job scheduling for the data R. Kuehl p. 8 R I T Software Engineering

  9. Data Management  Router – uses the Apache Samza distributed stream processing framework  Kafka for messaging R. Kuehl p. 9 R I T Software Engineering

  10.  AWS services  Amazon S3 Containers and EMR (Elastic MapReduce ) - processing and storage of large unstructured data sets  Elasticsearch – scalable, near real-time search engine  Apache Spark – supports interactive queries and data streaming for download to consumers R. Kuehl p. 10 R I T Software Engineering

  11. Android Software Architecture R. Kuehl p. 11 R I T Software Engineering

  12. Software Product Lines What are some product line examples? R. Kuehl p. 12 R I T Software Engineering

  13. Scope, Commonality, and Variability Analysis  Identify common product features and variations among potential products  Modifiability QA scenarios  Design architecture variation points to support modifiability  Module (s) that needs to be modifiable to achieve a product line variation  Select a variation mechanism for each variation point  Trade-off – cost of over-engineering flexibility versus design refactoring R. Kuehl p. 13 R I T Software Engineering

  14. Variation Points Alternatives for Variant A R. Kuehl p. 14 R I T Software Engineering

  15. Variation Mechanisms  Ways to configure variation points; compile, build, or run time  Each mechanism has a cost – development, deployment, side effects  Could just copy modules and make change s (“clone and own”)  Fast and easy, but scalability?  Inclusion or omission of elements  Through build procedures  Selection of different versions of elements with the same interface R. Kuehl p. 15 R I T Software Engineering

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend