seo入門培訓(xùn)一( 網(wǎng)絡(luò)贏銷、SEM、SEO定義區(qū)別)_第1頁
seo入門培訓(xùn)一( 網(wǎng)絡(luò)贏銷、SEM、SEO定義區(qū)別)_第2頁
seo入門培訓(xùn)一( 網(wǎng)絡(luò)贏銷、SEM、SEO定義區(qū)別)_第3頁
seo入門培訓(xùn)一( 網(wǎng)絡(luò)贏銷、SEM、SEO定義區(qū)別)_第4頁
seo入門培訓(xùn)一( 網(wǎng)絡(luò)贏銷、SEM、SEO定義區(qū)別)_第5頁
已閱讀5頁,還剩48頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、Chapter 6 System Design: Decomposing the System,福州SEO ,Design,“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies.” - C.A.R. Hoare,Which

2、would be more difficult?,Why is Design so Difficult?,Analysis: Focuses on the application domain Design: Focuses on the solution domain Design knowledge is a moving target The reasons for design decisions are changing very rapidly Halftime knowledge in software engineering: About 3-5 years What I te

3、ach today will be out of date in 3 years Cost of hardware rapidly sinking “Design window”: Time in which design decisions have to be made Technique Time-boxed prototyping,The “evolutionary rapid development” process focuses on the use of small artisan-based teams integrating software and systems eng

4、ineering disciplines working multiple, often parallel short-duration timeboxes with frequent customer interaction. reuse of architectural components ,Overview,System Design I (Today) 0. Overview of System Design 1. Design Goals 2. Subsystem Decomposition System Design II: Addressing Design Goals (ne

5、xt lecture) 3. Concurrency 4. Hardware/Software Mapping 5. Persistent Data Management 6. Global Resource Handling and Access Control 7. Software Control 8. Boundary Conditions,More Self reading,System Design,System Design,2. System,Layers/Partitions Cohesion/Coupling,5. Data,4. Hardware/,Special pur

6、pose,Softwar,e,Buy or Build Trade-off,Allocation,Connectivity,3. Concurrency,Data structure,Persistent Objects,Files,Databases,Management,Access control Security,6. Global,Resource Handling,Failure,Decomposition,Mapping,7. Software Control,Identification of Threads,Monolithic Event-Driven Threads Co

7、nc. Processes,How to use the results from the Requirements Analysis for System Design,Nonfunctional requirements = Activity 1: Design Goals Definition Functional model = Activity 2: System decomposition (Selection of subsystems based on functional requirements, cohesion, and coupling) Object model =

8、 Activity 4: Hardware/software mapping Activity 5: Persistent data management Dynamic model = Activity 3: Concurrency Activity 6: Global resource handling Activity 7: Software control Subsystem Decomposition Activity 8: Boundary conditions,List of Design Goals,Reliability Modifiability Maintainabili

9、ty Understandability Adaptability Reusability Efficiency Portability Traceability of requirements Fault tolerance Backward-compatibility Cost-effectiveness Robustness High-performance,Good documentation Well-defined interfaces User-friendliness Reuse of components Rapid development Minimum # of erro

10、rs Readability Ease of learning Ease of remembering Ease of use Increased productivity Low-cost Flexibility,Are these exhaustive? Anything else? What do we do with all these?,How do we get the Design Goals?,Lets look at a small example Current Situation: Computers must be used in the office What we

11、want: A computer that can be used in mobile situations.,Problem,Why?,What are the technical terms describing the two?,Single Output Device,Precise Input,Direction where the user looks is irrelevant,Fixed Network Connection,Location of user does not matter,Identify Current Technology Constraints,Mult

12、iple Output Devices,Vague Input,Direction where the user looks is relevant,Dynamic Network Connection,Location-based,Generalize Constraints using Technology Enablers,Any concrete scenarios?,Establish New Design Goals,Mobile Network Connection Multiple Output Devices Location-Based Multimodal Input (

13、Users Gaze, Users Location, ) Vague input,Are these Requirements or Design?,Sharpen the Design Goals,Location-based input Input depends on user location Input depends on the direction where the user looks (“egocentric systems”) Multi-modal input The input comes from more than one input device Dynami

14、c connection Contracts are only valid for a limited time Is there a possibility of further generalizations? Example: location can be seen as a special case of context User preference is part of the context Interpretation of commands depends on context,Relationship Between Design Goals,Reliability,Lo

15、w cost Increased Productivity Backward-Compatibility Traceability of requirements Rapid development Flexibility,Client,End User,(Customer,Portability Good Documentation,Runtime Efficiency,Sponsor),Minimum # of errors Modifiability, Readability Reusability, Adaptability Well-defined interfaces,Functi

16、onality User-friendliness Ease of Use Ease of learning Fault tolerant Robustness,Nielson Usability Engineering MMK, HCI Rubin Task Analysis,What does “Reliability” mean?,Typical Design Trade-offs,Functionality vs. Usability Cost vs. Robustness Efficiency vs. Portability Rapid development vs. Functio

17、nality Cost vs. Reusability Backward Compatibility vs. Readability,Section 2. System Decomposition,Subsystem (UML: Package) Collection of classes, associations, operations, events and constraints that are interrelated Seed for subsystems: UML Objects and Classes. (Subsystem) Service: Group of operat

18、ions provided by the subsystem Seed for services: Subsystem use cases Service is specified by Subsystem interface: Specifies interaction and information flow from/to subsystem boundaries, but not inside the subsystem. Should be well-defined and small. Often called API: Application programmers interf

19、ace, but this term should used during implementation, not during System Design,From what spec.?,Coupling and Cohesion,Goal: Reduction of complexity while change occurs Cohesion measures the dependence among classes High cohesion: The classes in the subsystem perform similar tasks and are related to

20、each other (via associations) Low cohesion: Lots of miscellaneous and auxiliary classes, no associations Coupling measures dependencies between subsystems High coupling: Changes to one subsystem will have high impact on the other subsystem (change of model, massive recompilation, etc.) Low coupling:

21、 A change in one subsystem does not affect any other subsystem Subsystems should have as maximum cohesion and minimum coupling as possible:,Can you illustrate these using UML conventions?,Partitions and Layers,Partitioning and layering are techniques to achieve low coupling. A large system is usuall

22、y decomposed into subsystems using both, layers and partitions. Partitions vertically divide a system into several independent (or weakly-coupled) subsystems that provide services on the same level of abstraction. A layer is a subsystem that provides subsystem services to a higher layers (level of a

23、bstraction) A layer can only depend on lower layers A layer has no knowledge of higher layers, and ?,What are other architectural styles?,Subsystem Decomposition into Layers,Subsystem Decomposition Heuristics: No more than 7+/-2 subsystems More subsystems increase cohesion but also complexity (more

24、services) No more than 4+/-2 layers, use 3 layers (good),Ideally use one package for each subsystem,Why?,Why?,Relationships between Subsystems,Layer relationship Layer A “Calls” Layer B (runtime) Layer A “Depends on” Layer B (“make” dependency, compile time) Partition relationship The subsystem have

25、 mutual but not deep knowledge about each other Partition A “Calls” partition B and partition B “Calls” partition A,Actually, this will depend on the directionality?,Virtual Machine,Dijkstra: T.H.E. operating system (1965) A system should be developed by an ordered set of virtual machines, each buil

26、t in terms of the ones below it.,VM4,VM3,VM2,VM1,C1,attr,opr,C1,attr,opr,C1,attr,opr,C1,attr,opr,C1,attr,opr,C1,attr,opr,C1,attr,opr,C1,attr,opr,Problem,Existing System,Virtual Machine,A virtual machine is an abstraction It provides a set of attributes and operations. A virtual machine is a subsyste

27、m It is connected to higher and lower level virtual machines by provides services for associations. Virtual machines can implement two types of software architecture Open and closed architectures.,How do we represent this in UML?,Closed Architecture (Opaque Layering),Any layer can only invoke operat

28、ions from the immediate layer below Design goal: High maintainability, flexibility,Only vertical communications?,Open Architecture (Transparent Layering),Any layer can invoke operations from any layers below Design goal: Runtime efficiency,VM4,VM3,VM2,VM1,Properties of Layered Systems,Layered system

29、s are hierarchical. They are desirable because hierarchy reduces complexity (by low coupling). Closed architectures are more portable. Open architectures are more efficient. If a subsystem is a layer, it is often called a virtual machine.,Why?,What are examples of systems using a layered architectur

30、al style?,and what else?,So, which is better?,Software Architectural Styles,Subsystem decomposition Identification of subsystems, services, and their relationship to each other. Specification of the system decomposition is critical. Patterns for software architecture Client/Server Peer-To-Peer Repos

31、itory Model/View/Controller Pipes and Filters,What are other architectural styles?,Patterns = styles?,Is this a J2EE pattern?,Core J2EE Patterns: Patterns index page,Client/Server Architectural Style,One or many servers provides services to instances of subsystems, called clients. Client calls on th

32、e server, which performs some service and returns the result Client knows the interface of the server (its service) Server does not need to know the interface of the client Response in general immediately Users interact only with the client,Is “interface” the same as “interface of the server” in UML

33、?,Client/Server Architectural Style,Often used in database systems: Front-end: User application (client) Back end: Database access and manipulation (server) Functions performed by client: Customized user interface Front-end processing of data Initiation of server remote procedure calls Access to dat

34、abase server across the network Functions performed by the database server: Centralized data management Data integrity and database consistency Database security Concurrent operations (multiple user access) Centralized processing (for example archiving),Cf. J2EE and its evolution: motivation behind

35、J2EE? architecture?,?,Does a system use a single style or multiple styles?,Design Goals for Client/Server Systems,Service Portability Server can be installed on a variety of machines and operating systems and functions in a variety of networking environments Transparency, Location-Transparency The s

36、erver might itself be distributed (why?), but should provide a single logical service to the user Performance Client should be customized for interactive display-intensive tasks Server should provide CPU-intensive operations Scalability Server should have spare capacity to handle larger number of cl

37、ients Flexibility The system should be usable for a variety of user interfaces and end devices (eg. WAP Handy, wearable computer, desktop) Reliability System should survive node or communication link problems,glance through,Is this what performance means to you?,Is this what realiability means to yo

38、u?,Problems with Client/Server Architectural Styles,do not provide peer-to-peer communication Peer-to-peer communication is often needed Example: Database receives queries from application but also sends notifications to application when data have changed,What does this mean?,Peer-to-Peer communicat

39、ion Wikipedia,Peer-to-peer (P2P) networking is a method of delivering computer network services in which the participants share a portion of their own resources, such as processing power, disk storage, network bandwidth, printing facilities. Such resources are provided directly to other participants

40、 without intermediary network hosts or servers.1 Peer-to-peer network participants are providers and consumers of network services simultaneously, which contrasts with other service models, such as traditional client-server computing.,A peer-to-peer based network,A server based network (i.e: not pee

41、r-to-peer).,Peer-to-Peer Architectural Style,Generalization of Client/Server Architecture Clients can be servers and servers can be clients,This is where the chicken-and-egg problem exists!,Application,Presentation,Session,Transport,Network,DataLink,Physical,Level of abstraction,Example of a Peer-to

42、-Peer Architectural Style,ISOs OSI Reference Model ISO = International Standard Organization OSI = Open System Interconnection Reference model defines 7 layers of network protocols and strict methods of communication between the layers. Closed software architecture,Layer,?,OSI model Packages and the

43、ir Responsibility,The Physical layer represents the hardware interface to the net-work. It allows to send() and receive bits over a channel. The Datalink layer allows to send and receive frames without error using the services from the Physical layer. The Network layer is responsible for that the da

44、ta are reliably transmitted and routed within a network. The Transport layer is responsible for reliably transmitting from end to end. (This is the interface seen by Unix programmers when transmitting over TCP/IP sockets) The Session layer is responsible for initializing a connection, including auth

45、entication. The Presentation layer performs data transformation services, such as byte swapping and encryption The Application layer is the system you are designing (unless you build a protocol stack). The application layer is often layered itself.,glance through,Another View at the ISO Model,A clos

46、ed software architecture Each layer is a UML package containing a set of objects,Middleware Allows Focus On The Application Layer,What does this mean, and where is the middleware?,Model/View/Controller,Subsystems are classified into 3 different types Model subsystem: Responsible for application doma

47、in knowledge View subsystem: Responsible for displaying application domain objects to the user Controller subsystem: Responsible for sequence of interactions with the user and notifying views of changes in the model. MVC is a special case of a repository architecture: Model subsystem implements the

48、central datastructure, the Controller subsystem explicitly dictate the control flow,Cf. boundary/control/entity,What is this?,What creates boundary objects?,Which interacts with the user?,Sequence of Events (Collaborations),What creates boundary objects?,Which interacts with the user?,Repository Arc

49、hitectural Style (Blackboard Architecture, Hearsay II Speech Recognition System),Subsystems access and modify data from a single data structure Subsystems are loosely coupled (interact only through the repository) Control flow is dictated by central repository (triggers) or by the subsystems (locks,

50、 synchronization primitives),Wreck the nice beach,Two kinds,Whats blackboard? Are all repository architectural styles mean blackboard?,Examples of Repository Architectural Style,Hearsay II speech understanding system (“Blackboard architecture”) Database Management Systems Modern Compilers,LexicalAna

51、lyzer,SyntacticAnalyzer,CodeGenerator,Compiler,SyntacticEditor,Optimizer,Subsystem Decomposition Example,Is this the right decomposition or is this too much ravioli?,System as a set of subsystems communicating via a software bus,Authoring,Modeling,Augmented Reality,Workorder,Repair,Inspection,Workfl

52、ow,A Subsystem Interface Object publishes the service (= Set of public methods) provided by the subsystem,What is this architectural style called?,A 3-layered Architecture,What is the relationship between Modeling and Authoring? Are other subsystems needed?,Summary,System Design Reduces the gap betw

53、een requirements and the (virtual) machine Decomposes the overall system into manageable parts Design Goals Definition Describes and prioritizes the qualities that are important for the system Defines the value system against which options are evaluated Subsystem Decomposition Results into a set of

54、loosely dependent parts which make up the system,Additional Slides,Nonfunctional Requirements may give a clue for the use of Design Patterns,Read the problem statement again Use textual clues (similar to Abbots technique in Analysis) to identify design patterns Text: “manufacturer independent”, “dev

55、ice independent”, “must support a family of products” Abstract Factory Pattern Text: “must interface with an existing object” Adapter Pattern Text: “must deal with the interface to several systems, some of them to be developed in the future”, “ an early prototype must be demonstrated” Bridge Pattern

56、,Textual Clues in Nonfunctional Requirements,Text: “complex structure”, “must have variable depth and width” Composite Pattern Text: “must interface to an set of existing objects” Faade Pattern Text: “must be location transparent” Proxy Pattern Text: “must be extensible”, “must be scalable” Observer Pattern Text: “mus

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論