logging in or signing up cs251 Mudki Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 174 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: December 10, 2007 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript CS251Intermediate Software Design: CS251 Intermediate Software Design Dr. Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt/cs251/ Professor of EECS Vanderbilt University Nashville, TennesseeCS 251 Course Philosophy: CS 251 Course Philosophy Good design and programming is not learned by generalities, but by seeing how significant programs can be made clean, easy to read, easy to maintain and modify, human-engineered, efficient, and reliable, by the application of good design and programming practices. Careful study and imitation of good designs and programs significantly improves development skills. - Kernighan and PlaugerCS 251 Course Information: Required textbooks CS 251 Course Information CS 251 class web page www.dre.vanderbilt.edu/ ~schmidt/cs251/ My office hours in Featheringill Hall room 226 are M 10:00am to 11am W 10:00am to 11am TAs: Joe Hoffert & Akshay Dabholkar jhoffert@dre.vanderbilt.edu & akshay.dabholkar@vanderbilt.edu TA office hours will be announced shortly Please send all questions to d.schmidt@vanderbilt.edu I’ll send the answers to the class mailing list CS 251 Ground Rules: CS 251 Ground Rules Assignments must be submitted on time (including “Assignment 0”) Work must be your own No laptops open in class during lecture or quizzes You will be called upon periodically to answer questions You’ll get out of this course what you put into it, so be prepared to work hard Be prepared for weekly quizzes & occasional guest lectures Make sure to avail yourself of available help, e.g., office hours, TAs, mailing list, etc.CS 251 Course Contents: CS 251 Course Contents Focus on topics important to developing & maintaining quality software: Reuse of patterns & software components Developing, documenting, testing, & applying reusable classes & object-oriented frameworks using C++ Patterns will be taught to provide good role models for software designs & to clearly articulate design tradeoffs Object-oriented techniques will be taught to show how to build software architectures that decouple inter-dependencies between components I assume you know C++ a little bit, e.g., you know how to use a C++ compiler The course will cover object-oriented techniques that address: Decentralized software architecture Architectural and design patterns Class interface definition Component reuse Module decomposition Hierarchical classification Extensible object-oriented application frameworks Many case studies will be used in class to illustrate the OO design & programming processCS 251 Course Work: CS 251 Course Work There will be 5-6 programming assignments written in C++ Can be done on Windows, Linux, Mac, etc. Must be done individually Programs will be graded as follows: 40% execution correctness 30% structure (e.g., modularization, information hiding, etc.) 10% insightful programming (e.g., developing reusable class components, etc.) 10% Consistent style (e.g., capitalization, indenting, etc.) 10% appropriate commenting style There will be a 5 point deduction (out of a possible 100 points) for each day that your program is late Programs turned in later than two calendar days after the due date will receive a 0 There will be weekly quizzes (starting today) There will be a comprehensive final exam The relative weighting of each portion of the course is : 40% Programming projects 35% Quizzes 25% Final Exam Overview of C++: Overview of C++ Overview of C++: Overview of C++ Overview of C++: Overview of C++ Overview of Patterns: Overview of PatternsOverview of Pattern Languages: Overview of Pattern Languages Motivation Individual patterns & pattern catalogs are insufficient Software modeling methods & tools largely just illustrate how – not why – systems are designed Benefits of Pattern Languages Define a vocabulary for talking about software development problems Provide a process for the orderly resolution of these problems, eg: What are key problems to be resolved & in what order What alternatives exist for resolving a given problem How should mutual dependencies between the problems be handled How to resolve each individual problem most effectively in its context Help to generate & reuse software architecturesTaxonomy of Patterns & Idioms : Taxonomy of Patterns & Idioms Overview of Frameworks: Overview of Frameworks Framework Characteristics Comparing Class Libraries, Frameworks, & Components: Comparing Class Libraries, Frameworks, & ComponentsOverview of the ACE Frameworks: Overview of the ACE Frameworks Features Open-source 6+ integrated frameworks 250,000+ lines of C++ 40+ person-years of effort Ported to Windows, UNIX, & real-time operating systems e.g., VxWorks, pSoS, LynxOS, Chorus, QNX Large user community www.cs.wustl.edu/~schmidt/ACE.htmlThe POSA2 Pattern Language: Pattern Benefits Preserve crucial design information used by applications & middleware frameworks & components Facilitate reuse of proven software designs & architectures Guide design choices for application developers The POSA2 Pattern Language You do not have the permission to view this presentation. In order to view it, please contact the author of the presentation.
cs251 Mudki Download Post to : URL : Related Presentations : Share Add to Flag Embed Email Send to Blogs and Networks Add to Channel Uploaded from authorPOINTLite Insert YouTube videos in PowerPont slides with aS Desktop Copy embed code: (To copy code, click on the text box) Embed: URL: Thumbnail: WordPress Embed Customize Embed The presentation is successfully added In Your Favorites. Views: 174 Category: Entertainment License: All Rights Reserved Like it (0) Dislike it (0) Added: December 10, 2007 This Presentation is Public Favorites: 0 Presentation Description No description available. Comments Posting comment... Premium member Presentation Transcript CS251Intermediate Software Design: CS251 Intermediate Software Design Dr. Douglas C. Schmidt d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt/cs251/ Professor of EECS Vanderbilt University Nashville, TennesseeCS 251 Course Philosophy: CS 251 Course Philosophy Good design and programming is not learned by generalities, but by seeing how significant programs can be made clean, easy to read, easy to maintain and modify, human-engineered, efficient, and reliable, by the application of good design and programming practices. Careful study and imitation of good designs and programs significantly improves development skills. - Kernighan and PlaugerCS 251 Course Information: Required textbooks CS 251 Course Information CS 251 class web page www.dre.vanderbilt.edu/ ~schmidt/cs251/ My office hours in Featheringill Hall room 226 are M 10:00am to 11am W 10:00am to 11am TAs: Joe Hoffert & Akshay Dabholkar jhoffert@dre.vanderbilt.edu & akshay.dabholkar@vanderbilt.edu TA office hours will be announced shortly Please send all questions to d.schmidt@vanderbilt.edu I’ll send the answers to the class mailing list CS 251 Ground Rules: CS 251 Ground Rules Assignments must be submitted on time (including “Assignment 0”) Work must be your own No laptops open in class during lecture or quizzes You will be called upon periodically to answer questions You’ll get out of this course what you put into it, so be prepared to work hard Be prepared for weekly quizzes & occasional guest lectures Make sure to avail yourself of available help, e.g., office hours, TAs, mailing list, etc.CS 251 Course Contents: CS 251 Course Contents Focus on topics important to developing & maintaining quality software: Reuse of patterns & software components Developing, documenting, testing, & applying reusable classes & object-oriented frameworks using C++ Patterns will be taught to provide good role models for software designs & to clearly articulate design tradeoffs Object-oriented techniques will be taught to show how to build software architectures that decouple inter-dependencies between components I assume you know C++ a little bit, e.g., you know how to use a C++ compiler The course will cover object-oriented techniques that address: Decentralized software architecture Architectural and design patterns Class interface definition Component reuse Module decomposition Hierarchical classification Extensible object-oriented application frameworks Many case studies will be used in class to illustrate the OO design & programming processCS 251 Course Work: CS 251 Course Work There will be 5-6 programming assignments written in C++ Can be done on Windows, Linux, Mac, etc. Must be done individually Programs will be graded as follows: 40% execution correctness 30% structure (e.g., modularization, information hiding, etc.) 10% insightful programming (e.g., developing reusable class components, etc.) 10% Consistent style (e.g., capitalization, indenting, etc.) 10% appropriate commenting style There will be a 5 point deduction (out of a possible 100 points) for each day that your program is late Programs turned in later than two calendar days after the due date will receive a 0 There will be weekly quizzes (starting today) There will be a comprehensive final exam The relative weighting of each portion of the course is : 40% Programming projects 35% Quizzes 25% Final Exam Overview of C++: Overview of C++ Overview of C++: Overview of C++ Overview of C++: Overview of C++ Overview of Patterns: Overview of PatternsOverview of Pattern Languages: Overview of Pattern Languages Motivation Individual patterns & pattern catalogs are insufficient Software modeling methods & tools largely just illustrate how – not why – systems are designed Benefits of Pattern Languages Define a vocabulary for talking about software development problems Provide a process for the orderly resolution of these problems, eg: What are key problems to be resolved & in what order What alternatives exist for resolving a given problem How should mutual dependencies between the problems be handled How to resolve each individual problem most effectively in its context Help to generate & reuse software architecturesTaxonomy of Patterns & Idioms : Taxonomy of Patterns & Idioms Overview of Frameworks: Overview of Frameworks Framework Characteristics Comparing Class Libraries, Frameworks, & Components: Comparing Class Libraries, Frameworks, & ComponentsOverview of the ACE Frameworks: Overview of the ACE Frameworks Features Open-source 6+ integrated frameworks 250,000+ lines of C++ 40+ person-years of effort Ported to Windows, UNIX, & real-time operating systems e.g., VxWorks, pSoS, LynxOS, Chorus, QNX Large user community www.cs.wustl.edu/~schmidt/ACE.htmlThe POSA2 Pattern Language: Pattern Benefits Preserve crucial design information used by applications & middleware frameworks & components Facilitate reuse of proven software designs & architectures Guide design choices for application developers The POSA2 Pattern Language