2012华东交大外教课程Lecture 6_software architecture terminologies.ppt_第1页
2012华东交大外教课程Lecture 6_software architecture terminologies.ppt_第2页
2012华东交大外教课程Lecture 6_software architecture terminologies.ppt_第3页
2012华东交大外教课程Lecture 6_software architecture terminologies.ppt_第4页
2012华东交大外教课程Lecture 6_software architecture terminologies.ppt_第5页
已阅读5页,还剩46页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Usman Farooq sf_,Software Architecture Terminologies,Software Architecture Terminology,Architecture Style, Architecture Pattern,Defines A set of components (e.g. a database, computational modules),that perform a function required by a system. A set of connectors that enable “communication, coordinat

2、ion and cooperation” among components. Constraints that define how components can be integrated to form the system Semantic model that allow/enable a designer to understand the overall properties of a system by analyzing the known properties of its constituent parts.,Major Architecture Style or Patt

3、ern,Pipe and Filter Data Centered Architecture Client Server Architecture Layered Architecture Model-View-Controller (MVC),1. Pipes and Filter,Main Components: Filter: Filter is a service that transforms a stream of input data into a stream of output data Pipe: is a mechanism or conduit through whic

4、h the data flows from one filter to another,read input file,process file,filter,pipe,Pipes and Filter (Example),Pipes and Filter (Example),Pipe and Filter (Advantages and Disadvantages),Advantages Filters are self containing processing service that performs a specific function thus it is fairly cohe

5、sive Filters communicate (pass data most of the time) through pipes only, thus it is “somewhat” constrained in coupling Disadvantages Filters processes and sends streams of data over pipes is a solution that fits well with heavy batch processing, but may not do well with any kind of user-interaction

6、. Anything that requires quick and short error processing is still restricted to sending data through the pipes, possibly making it difficult to interactively react to error- events.,2. Data Centered Architecture,Another example of architecture style is data centered architecture. A data store (e.g.

7、, a file or database) resides at the center of this architecture and is accessed frequently by other components that update, add, delete, or otherwise modify data within the store.,Data Centered Architecture,The high level design solution is based on a shared data-store which acts as the “central co

8、mmand” with 2 variations: Blackboard style: the data-store alerts the participating parties whenever there is a data-store change (trigger) Repository style: the participating parties check the data-store for changes,Patient database,Physician diagnosis,Pharmacy etc. have the following properties: 1

9、. All the functionalities work off a single data-store. 2, Any change to the data-store may affect all or some of the functions 3. All the functionalities need the information from the data-store,Very Common In Business where Data is central,Data-Centered Architecture (Advantages and Disadvantages),

10、Advantages It promotes integrability i.e., existing components can be changed and new client components added to the architecture without concern about other clients (because the client components operate independently). Single data-store makes the maintenance of data in terms of back-up recovery an

11、d security easier to manage Disadvantages If the data-store fails, all parties are affected and possibly all functions have to stop (may need to have 1) redundant db for this architecture style; also, should have 2) good back up- and recovery procedures.),3. Client-Server Architecture,A network arch

12、itecture in which each computer or process on the network is either a client or a server.,Client-Server Architecture,Components Clients Servers Communication Networks,Client-Server Architecture,1. Clients A set of clients that call on the services offered by servers. There will normally be several i

13、nstances of a client program executing concurrently on different computers. Example: E-mail client An application that enables you to send and receive e-mail,Client-Server Architecture,2. Servers A set of servers that offer services to other components. Examples of servers include print servers that

14、 offer printing services, file servers that offer file management services, and a compile server, which offers programming language compilation services. Example: Database Server A computer system that processes database queries,Client-Server Architecture,3. Communication Networks,Networks Connect C

15、lients and Servers,Client-Server Architecture,Middleware,Software that connects two otherwise separate applications Example: Middleware product linking a database system to a Web server,Client: Requests Data via Web,Database Server: Manages Data,Web Server: Presents Dynamic Pages,Middleware Links Ap

16、plications,Client-Server Architecture,Types of Servers,Application Servers Audio/Video Servers Chat Servers Fax Servers FTP Servers Groupware Servers IRC Servers,List Servers Mail Servers News Servers Proxy Servers Telnet Servers Web Servers Z39.50 Servers,Client-Server Architecture,Example,Client-S

17、erver Architecture (Advantages thus the architecture provides high degree of cohesion within the layer. Each layer, being cohesive and is coupled only to lower layers, makes it easier for reuse by others and easier to be replaced or interchanged (change of DB touches only the data store/access layer

18、, change of browser only changes the presentation layer of the previous slide) - good for component design,Layered Architecture (Advantages the UI must be portable. Different kind of users may expect different data format from the UI (bar char, spreadsheet etc.).,Model-View-Controller (MVC),Solution

19、 Divide the system into three parts: processing, output, and input: Model: contains the processing and the data involved. View: defines and manages how the data is presented to the user. Controller: manages user interaction (e.g., key presses, mouse clicks, etc.) and passes these interactions to the

20、 view and the model.,Model-View-Controller (MVC),Model-View-Controller (MVC),When used Used when there are multiple ways to view and interact with data. Also used when the future requirements for interaction and presentation of data are unknown. Advantages Views, controller, and model are separate c

21、omponents that allow modification and change in each “layer” without significantly disturbing the other. The view component, which often needs changes (UI technology improvement) and updates to keep the users continued interests, is separate The View-Controller can keep on partially functioning even

22、 if the model component is down.,Model-View-Controller (MVC),Disadvantages Heavily dependent on the development and production system environment and tools that match the MVC architecture (e.g. TomCat, .Net, Rail, etc.) Example,Reference Architecture, Domain Specific Software Architecture,Like archi

23、tectural styles, they define element types and allowed interactions, but in this case they apply to a particular domain. Thus they define how the domain functionality is mapped to the architecture elements. Lets take an example of Compiler:- There is a general notion of the basic elements of a compi

24、ler (e.g. front end, back end, symbol table), what they should do, and how they are interconnected. Sometime designing a new compiler would not start from scratch, but would begin with this basic reference architecture in mind when defining the software architecture of the new compiler.,Product Line

25、 Architecture,In todays world, software companies are mostly emphasizing on component-based development. Why? In order to attain the elusive goal/objective of systematic reuse. The main goal of systematic reuse is to produce quality software products consistently and predictably by moving towards an

26、 asset-supported development approach. In simple words, we need to move our focus from engineering single systems to engineering families of systems by discovering or identifying reusable solutions within a collection of related products. “These collections are called software product lines.”,Produc

27、t Line Architecture,Software Reuse Reuse tiny pieces of code e.g. Classes Libraries Adhoc reuse or unplanned reuse Update the current or existing system , in order to develop a new system. Reuse components or component systems (without reusing architecture). Product versions or product releases of s

28、ingle products. Reuse both components and architecture.,Product Line Architecture,All of the reuse processes discussed in last slide create/produce a single product. But the main goal of PLA (Product Line Architecture) is to produce different models of a product using common assets. The components o

29、f Boeing 757 and 767 are 60% in common,Product Line Architecture,The components in different models of Mercedes Benz E class may be over 70% in common.,Product Line Architecture,Drawback of Adhoc Reuse (Continuous) The diagram below shows a situation in which a design (i.e. an architecture) of a fig

30、hter plane was “reused” to develop a commercial airliner, with the unfortunate consequence that the new product ended up without space to store your carry-on luggage, since this was a feature not present in the original fighter jet design.,Product Line Architecture,Systematic Reuse Occurs when reusa

31、ble assets are planned and created as a separate activity from product development, a process called as “product line engineering.” Systematic reuse requires more “original” engineering design work, by focusing first on discovering or identifying as much commonality and flexibility as possible. Thes

32、e are then optimized out by reducing unnecessary variation and by providing specific variability control mechanisms.,Product Line Architecture,Software Product Line The same concept of product line can be effectively applied to software development. A software product line is a set of systems that s

33、hare a common set of core assets. In simple words, software product line compose of:- Multiple systems, which have the same architecture and share common core assets. Variability among systems,Product Line Architecture,Software Product Line (Continuous) In some cases, there is a need to develop the

34、components from the scratch in variation points. In order to develop a product from a product line, the product line should be instantiated through the following two steps:- Selection : select the functionality (assets) which is required, unneeded or unnecessary functionality is stripped, and variab

35、ility are solved. Extension: additional functionality or assets are added from the remaining variation points (probably developed from scratch.),Product Line Architecture,Software Product Line (Continuous) Selection is the most important phase in developing a product from a product line. Now the iss

36、ues is how to select functionality or assets from a product line? The probable solution for this problem is to select the assets based on :- Keywords Attributes Behavior etc. The most well-liked approach is based on features i.e. functional requirements.,Product Line Architecture,Software Product Li

37、ne (Continuous) Tangible products In order to produce a car from the car product line we can choose the feature such as:- Air bag ABS break CD Player Car CC power e.g. 2000 CC Etc. However the variability can be solved sometimes e.g. How many airbags do we want ?,Product Line Architecture,Software P

38、roduct Line (Continuous) Un-Tangible products In order to develop a bank system from product line, we choose the features such as :- Deposit Withdraw Loan Remit Foreign currency exchange Etc. Like the example on previous slide, we can also see here that variability can be solved sometimes like what

39、kind of foreign currency exchange are allowed.,Product Line Architecture,Commercial off the Shelf Component (COTS),Implementation of commercially available technologies for traditionally customized applications Examples: Military Industrial Space Applies to Hardware and/or Software,Commercial off th

40、e Shelf Component (COTS),Examples: Software: Operating Systems (UNIX, Windows/NT, OS2) Databases (Oracle, Sybase) Graphics Packages (Motif, ?) Hardware: Busses (VME, PCI, cPCI) Processors (Motorola, HP, Sun, Intel) Disk Drives (Western Digital, Red Rock) Peripherals (Printers, Monitors, Keyboards, etc.),Commercial off the Shelf Component (COTS),Commercial software products Sold, leased, licensed at advertised parties Source code unavailable Generally an application programming inte

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论