Principles of Object-Oriented Software Development. Software Architecture. Software Architecture. Introduction Elements of architecture Case study -- multimedia feature detection Crossing boundaries Architectural patterns and styles Cross-platform development
01 / 59Principles of Object-Oriented Software Development
1 / 17
Télécharger la présentation
Principles of Object-Oriented Software Development
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
Software Architecture Introduction Elements of architecture Case study -- multimedia feature detection Crossing boundaries Architectural patterns and styles Cross-platform development Summary Q/A Literature
Software architecture • architecture -- components and boundaries • case study -- a framework for multimedia feature detection • native objects -- the language boundary • embedded logic -- the paradigm boundary • architectural styles -- distributed object technology • cross-platform development -- Unix versus Windows Additional keywords and phrases: components, information architecture, multimedia information retrieval, feature detection, portability
Elements of Architecture [Wolf] • processing elements -- transformation on data • data elements -- contain information • connections -- glue that holds elements together
Models and Views [Kruchten95] • logical -- functional requirements • process -- performance, availability, distribution • physical -- scalability, configuration • development -- organization of software modules • scenarios -- instances of use cases Definitions http://www.sei.cmu.edu/architecture/definitions.html
The software architecture of a program or computing system is the structure of the system, which comprises software components, the externally visible properties of those components, and their interrelationships. Bass et al.
Technological infrastructure [CS2001] • client-platform -- hardware, OS • presentation services -- windows, multimedia • application software -- code, business logic • network -- communication support • middleware -- distribution, (object) brokers • server platform -- hardware, OS • database -- data management system
The ACOI framework detector world; finds the name of the world detector people; checks name, eliminates institutes detector company; looks if there are at least two persons atom str name; community: world people company; world: name; people: person*; person: name; A sample grammar
int personDetector(tree *pt, list *tks ){ ... q = query_query("kit=pl src=check.pl"); while (t = next_token(tks)) { sprintf(buf,"person(\%s)",t); query_eval(q,buf); if (query_result(q,0)) // put name(person) on tokenstream putAtom(tks,"name",t); } ... } A person detector
detector song; to get the filename detector lyrics; extracts lyrics detector melody; extracts melody atom str name; atom str text; atom str note; song: file lyrics melody; file: name; lyrics: text*; melody: note*; A simple feature grammar for MIDI files
Crossing boundaries Subsections: Embedded logic -- crossing the paradigm boundary Native objects -- crossing the language boundary Combining Java and C++
midi(This):midi, create midi object Self = self(This), Self:open('a.mid'), Self:header(0,1,480), Self:track(start), Self:melody([48,50,51,53,55]), // c d es f g, minor indeed Self:track(end), end track
From technology to style • the distributed objects style • the (dynamically) downloadable code style • the mobile objects style
distributed downloadable mobile objects code objects Component object object/class agent Connector ORB various methods Creation server client any Location server client any Client fixed extensible extensible Server extensible fixed extensible Feature classification
Guidelines for selecting a style Rules of thumb -- selecting an architectural style Dedicated hardware or legacy code distributed objects Strategic or secret code distributed objects Many users downloadable code Periodic updates downloadable code Communication and negotiation mobile objects
Cross-platform development Unix vs NT • open toolkits and standards -- OMG CORBA Research/GNU AT&T U/WIN -- Posix for 95/NT Cygnus -- GNU-win32 Commercial NuTCracker/MKS -- porting Unix applications to Windows Wind/U, Mainwin -- porting Windows applications to Unix Tributary -- developing Unix applications from Windows IDE
Connexion au compte
Connectez-vous pour publier votre contenu sur SlideServe.