DOC PREVIEW
Columbia COMS 3156 - RPIS and Project

This preview shows page 1-2-3-4-5-6 out of 19 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 19 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Software Engineering 3156AdministriviaReview: ConcurrencyRPISBasic Reuse: LibrariesImpediments to ReuseSuccessful Reuse: ObjectsReuse: FrameworksReuse: Design PatternsPortability PitfallsLanguage PortabilityInteroperabilityCORBACOMScalabilityRational Development SuiteReview: XMLImportant PointWhere Is It?Software Engineering 31561-Oct-01#7: RPIS and ProjectPhil Gross2AdministriviaGroups and questionnaires are locked–Talk to Janak or me directly for changes3Review: 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])4RPISReusabilityPortabilityInteroperability(Scalability)Things to keep in mind early–So you’re not trying to force it in later5Basic Reuse: LibrariesLibraryAPISystem Call6Impediments to ReuseLack of trust / NIHLogistics of reuseMismatch of features (Kangaroos)Not to mention Ariane 5 (8.3.6)7Successful 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 successfully8Reuse: FrameworksHigh-levelFramework gives you a generic body into which you add your particular codeExample: MFCProblems: bloat, steep learning curve9Reuse: 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 things10Portability PitfallsHardwareOSNumericsCompilersLibrariesBut, you have to do it: software lasts longer than hardware11Language 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 proposition12InteroperabilityCOM and CorbaBoth define abstract servicesAllow programs in any language to access services in any language in any locationObject-ish13CORBAInternational standardTransport independentObject orientedGood for distributed applicationsQuite complex14COM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 components15Scalability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 pool16Rational Development SuiteName makes jokes too easyInterface is flakySoftware is incredibly bloatedPoor advertisement for software engineeringAnd yet…17Review: 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 choices18Important 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…19Where 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


View Full Document

Columbia COMS 3156 - RPIS and Project

Download RPIS and Project
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view RPIS and Project and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view RPIS and Project 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?