SlideServe
Menu
Préférences
© SlideServe · v2026

Software Engineering 3156

viola avatar
19 diapositives · 302 Views · Sep 03, 2014

Learn about concurrency, reusability, portability, and design patterns in software engineering, with a focus on frameworks, language portability, and interoperability. Understand scalability principles for efficient software design.

Software Engineering 3156 - slide 1
01 / 19Software Engineering 3156
1 / 17

Télécharger la présentation

Software Engineering 3156
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.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Software Engineering 3156 1-Oct-01 #7: RPIS and Project Phil Gross

  2. Administrivia • Groups and questionnaires are locked • Talk to Janak or me directly for changes 2

  3. Review: Concurrency • Threads (lightweight processes) • Ability to run concurrent sets of code in one process • Java: Class should implement Runnable • Then create new Thread on this class and start() it • Race conditions (fix with locks) • Deadlock (fix with timeout [or cycle detection]) 3

  4. RPIS • Reusability • Portability • Interoperability • (Scalability) • Things to keep in mind early • So you’re not trying to force it in later 4

  5. Basic Reuse: Libraries • Library • API • System Call 5

  6. Impediments to Reuse • Lack of trust / NIH • Logistics of reuse • Mismatch of features (Kangaroos) • Not to mention Ariane 5 (8.3.6) 6

  7. Successful Reuse: Objects • Well, that was the intention in any case • Typical language-level objects need some help • Discovered somewhat by accident: VBX • Lead to JavaBeans and the COM family • Windows uses this pretty successfully 7

  8. Reuse: Frameworks • High-level • Framework gives you a generic body into which you add your particular code • Example: MFC • Problems: bloat, steep learning curve 8

  9. Reuse: Design Patterns • Christopher Alexander in 1977 • Gang of Four in 1995 • Ways of organizing objects in order to solve frequently reoccurring problems • Design it to be flexible, extensible, scalable, portable, etc. from the beginning • Give a vocabulary • Antipatterns: known bad ways of doing things 9

  10. Portability Pitfalls • Hardware • OS • Numerics • Compilers • Libraries • But, you have to do it: software lasts longer than hardware 10

  11. Language Portability • Java and C# • Java uses a JVM • Write once, run anywhere, sorta, kinda • C#: mobile data, not code • XML everywhere • Winner as yet unknown, but betting against Microsoft is historically a losing proposition 11

  12. Interoperability • COM and Corba • Both define abstract services • Allow programs in any language to access services in any language in any location • Object-ish 12

  13. CORBA • International standard • Transport independent • Object oriented • Good for distributed applications • Quite complex 13

  14. COM • Microsoft proprietary • Microsoft proprietary transport • Object based (weaker than oriented) • Impossibly complex • Works really, really well with Windows (surprise!) • Vast quantities of off-the-shelf components 14

  15. Scalability • Just keep it in mind • Familiarity with patterns can help • Don’t worry about scaling beyond abilities of machine • Just avoid unnecessary barriers • Plus maybe graceful overload handling • From single connection, to forking processes, to threads, to thread pool 15

  16. Rational Development Suite • Name makes jokes too easy • Interface is flaky • Software is incredibly bloated • Poor advertisement for software engineering • And yet… 16

  17. Review: XML • XML Schema is like a class • An individual message is like an instance of that class • Schema is itself defined with XML syntax • Made up of elements, aggregated with sequences or choices 17

  18. Important Point • Forgot to mention this last time • XML Schema Primer 0 • Read it • No, really, read it • Read and understand, and you have a sweet item for your resume • Plus a chance of understanding the requirements… 18

  19. Where Is It? • http://www.w3.org/TR/xmlschema-0/ • More than the textbook, this is required reading • Like, right now • An example to kick things off… 19