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

Recommend


More recommend