1 / 22

EEE 243B Applied Computer Programming

EEE 243B Applied Computer Programming. Software architecture I Communicating your design. Review. Name the 5 phases of the software lifecycle What is the difference between verification and validation?. Outline. What is architecture? Software architecture Pipes and filter

karyn-short
Download Presentation

EEE 243B Applied Computer Programming

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EEE 243BApplied Computer Programming Software architecture I Communicating your design

  2. Review • Name the 5 phases of the software lifecycle • What is the difference between verification and validation? Maj JGA Beaulieu & Capt MWP LeSauvage

  3. Outline • What is architecture? • Software architecture • Pipes and filter • Layered architecture Maj JGA Beaulieu & Capt MWP LeSauvage

  4. What is architecture? • Engineers must be able to communicate their designs and ideas early in a project to be effective • In most engineering disciplines, designs are communicated with blueprints • At the highest level of the blueprints the drawings show a high level abstraction of the entire project • These high level abstractions show the architectural style of the project Maj JGA Beaulieu & Capt MWP LeSauvage

  5. What is architecture? • Architectural drawings convey more than what the end product will look like; they communicate engineering intent • For example, the architecture of a bridge shows what it will look like and also how the bridge will be supported, (suspension, compression, cantilever,…) without the details of how this will be done • Words like cantilever describe an architectural style or architectural idiom that civil engineers understand and study Maj JGA Beaulieu & Capt MWP LeSauvage

  6. Software architecture • In software engineering there are no blueprints • However, software engineers still require a way of communicating their designs and their intent • The study of software architecture is currently in its infancy Shaw and Garland, 1996 • Although S/W architecture has not yet matured, there are several ideas that can be useful to help us communicate our designs Maj JGA Beaulieu & Capt MWP LeSauvage

  7. Software architecture • In the several decades that software products have appeared, several architectural idioms have been identified because they keep reappearing and are proven to work • Such idioms are: • Pipes and filters architectures • Layered architectures • Data abstractions • Repositories • Client-server architectures • Process Control Systems Maj JGA Beaulieu & Capt MWP LeSauvage

  8. Software architecture • Software architectures help us: • Identify how the components will interact with each other • Show how data and information is exchanged between components • By providing a set of symbols and a vocabulary to describe our systems • Rules for using the symbols and the vocabulary • When we specify an architectural style, the design and implementation must respect this architecture Maj JGA Beaulieu & Capt MWP LeSauvage

  9. Software architecture • So far, we have seen two kinds of diagrams that can help us describe and communicate our systems: • Functional hierarchy: shows the various functions in our system and their relative relationships to one another (caller-server relation) • Flow charts: low-level representation of the logic of an algorithm • Architectural diagrams are at a higher level of abstraction than functional hierarchies Maj JGA Beaulieu & Capt MWP LeSauvage

  10. Software architecture • We also have talked about modules; which allow us to apply the principle of information hiding • As we build systems, the modules we use can also be represented in a hierarchy similar to a functional hierarchy to show dependency relationships • However, modules can also be used as building blocks in software architectural styles Maj JGA Beaulieu & Capt MWP LeSauvage

  11. Pipes and filters • Perhaps one of the simplest architectural style is one that originated in batch systems: the pipes and filters architecture • This style is used extensively for programs written in the Unix shell • In a pipes and filters architecture, data is seen as a continuous stream which is transformed by components (filters) Maj JGA Beaulieu & Capt MWP LeSauvage

  12. Pipes and filters • Filters are independent of each others; the state of each filter is unknown to the others • A filter does not “know” which other filters are upstream or downstream • Output at a filter can start before input is completely done (continuous flow) • The connectors in a pipes and filters architecture represent data that is feed and collected continuously to and from filters; hence the name pipe • Pipes and filters can be typed or un-typed Maj JGA Beaulieu & Capt MWP LeSauvage

  13. Pipes and filters Filters Pipes Maj JGA Beaulieu & Capt MWP LeSauvage

  14. Pipes and filters • Pipes and filters architecture is useful for electrical engineers that use software as part of their solutions • Many components used in data acquisition, signal processing, communication systems, radars, power management and several other implementations, use software filters because they are highly flexible • The continuous flow of data and transformations are a good fit for processing digitalized signals Maj JGA Beaulieu & Capt MWP LeSauvage

  15. Pipes and filters • Once developed, filters can be reused: i.e. a low pass filter that has been written can be reused for different tasks by changing the filtering controls (constants) • Early language compilers followed the pipes and filters architecture • One of the company in the world that uses the pipes and filters architecture in their products is Tektronix – in their digital oscilloscopes Maj JGA Beaulieu & Capt MWP LeSauvage

  16. Layered architectures • Another architectural style that has been extensively used over the years is the layered architecture • Dijkstra first introduced the layered architecture when he designed the T.H.E. Operating System • Dijkstra proposed that operating systems should be a hierarchy of layers • Each layer has its own responsibility and provides a service to the layer above it. Maj JGA Beaulieu & Capt MWP LeSauvage

  17. Layered architectures Layer n Layer n-1 … Layer 2 Layer 1 Layer 1 Layer 2 Maj JGA Beaulieu & Capt MWP LeSauvage

  18. Layered architectures • Layered architectures should be used when: • You have identified that your system needs to isolate classes of services • Provide access control mechanisms or several levels of security • Need to hide hardware or software implementation to reduce complexity • Increase platform portability by replacing lower layer(s) depending on the platform used • Need to account for asynchronous signals and high variation in response times Maj JGA Beaulieu & Capt MWP LeSauvage

  19. Layered architectures • The type of hierarchy in a layered architecture differs from the simple modular or functional hierarchies because the layers redefine the relationships • The relationships in a functional hierarchy identify which functions are used by other functions • The relationships in a layered architecture identify the functions that provide services and the functions that can call those services Maj JGA Beaulieu & Capt MWP LeSauvage

  20. Layered architectures • The functions in a layer provide services to the functions in the layer above it; and are clients to the functions in the layer below it. My_prog Fctn 1 Fctn 2 Fctn 3 Fctn A Fctn B Maj JGA Beaulieu & Capt MWP LeSauvage

  21. Layered architectures • Layered systems can be used for: • projects that implement protocols (communication, transformation,…) • GUI systems to separate the user interface functions, from the solution • Robotics systems, to separate responsibilities in layers – Decision making, High level navigation, Map making, Sensor integration, Sensor reading, robot control Maj JGA Beaulieu & Capt MWP LeSauvage

  22. Quiz Time • Why do we use architectural idioms (styles) in software engineering? • Are the filters inside a pipes and filters architecture, in a hierarchy? • What is the difference between a functional hierarchy and the hierarchy in a layered architecture? Maj JGA Beaulieu & Capt MWP LeSauvage

More Related