Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS551 - Lecture 1 1 CS551 Advanced Software Engineering Yugi Lee STB #555 (816) 235-5932

Similar presentations


Presentation on theme: "CS551 - Lecture 1 1 CS551 Advanced Software Engineering Yugi Lee STB #555 (816) 235-5932"— Presentation transcript:

1 CS551 - Lecture 1 1 CS551 Advanced Software Engineering Yugi Lee STB #555 (816) 235-5932 yugi@cstp.umkc.edu www.cstp.umkc.edu/~yugi

2 2 CS551 - Lecture 1 General stuff Class: M/W 12:30-1:45, FH460 Office hours: –Yugi Lee: M/W 1:45-2:45 or by appointment TA: Venkatavaradhan (Santhosh) Panchapagesam –Email: vpanchap@hotmail.com

3 3 CS551 - Lecture 1 Course information www.cstp.umkc.edu/~yugi Lecture notes will be available in advance Mailing List cs551a@cstp.umkc.edu –information will be distributed via the mailing list (e.g. announcements, corrections etc.) Prerequisites  CS451 (Software Engineering)  Object-Oriented programming language (Java, C++)

4 4 CS551 - Lecture 1 Textbooks Required:  Engineering Distributed Objects, Wolfgang Emmerich, John Wiley & Sons, LTD, 2000 Additional readings  Objects, Components, and Frameworks with UML; the catalysis approach, Desmond f. D'souza and Alan Cameron Wills, Addison- Wesley,1999  Component Software: beyond Object-oriented programming, Clemens Szyperski, Addison-Wesley, 1999  Technical Papers

5 5 CS551 - Lecture 1 Assessment Group Project 50%  Projects 1 - 4 42%  Presentation/Final package 8% Individual Work 50% –Midterm Exam: 10% – Final Exam: 20% –Quizzes: 20% Both components must be passed in order to pass the course.

6 6 CS551 - Lecture 1 Group Projects Teams of Maximum 2 members Each team will develop a component of some system. The overall assignment will be split into several steps that will be marked individually.  Project 1 (12%): Technical skill building  Project 2 (7%): Project proposal  Project 3 (8%): System design  Project4 (15%): System implementation & documentation  Presentation and final package (8%)

7 7 CS551 - Lecture 1 Group Projects Building system followed by component-based design and programming Each project group will construct a component of the system. Incremental outcomes going through Object-Oriented software lifecycle, such as requirement analysis and design, implementing, testing, and integration. Object-Oriented Specification/Design (UML/ROSE), Design patterns, styles, Object Framework building using Java, XML and CORBA/COM/EJB.

8 8 CS551 - Lecture 1 Exams Weekly Quizzes (20%) Tentative Exam Schedule: –October 8 Midterm exam (10%) –December Final exam (20%) Some selected students can pursue a research track. Research papers can be replaced with class examination.

9 9 CS551 - Lecture 1 Several reasons you should take this course...  You can have a comprehensive picture of software development process  You can have hands-on experiences on component oriented development. You will obtain the skill on UML, XML, CORBA/COM/EJB, and tools (Rose etc)., You will have object-oriented programming (Java). You will get a reasonable grade when you completed all the class requirements.

10 10 CS551 - Lecture 1 However…  This course requires heavy load of work. Class survey (1999) –Compute the average time spent for cs451 related activities (hrs/week): average 3hrs/day Individual work 12 hrs. Project Related work 12 hrs. – designing/coding/learning skills – meeting & communication – updating web-materials

11 11 CS551 - Lecture 1 However…  What would you suggest to next year's students? –Don't take many more 400 level or above classes while taking this one. –Pick out a class to drop, join the witness protection program so that your friends and family cannot find you, and constantly remind yourself it will be over in sixteen weeks. –Don't take this class with more than 6 other credits, too much work, unable to do well. –STUDY!!! –Keep up with the text to avoid pileup of readings.

12 12 CS551 - Lecture 1 Today’s Software Systems? A software environment (i.e., Internet) is evolving rapidly and software requirements and technologies are also evolving very rapidly. Some requirements and characteristics of the current system can be determined as comparability, heterogeneity, scalability, openness, security and distribution. Are you ready for this? It is necessary to understand the current trend of software systems and to identify the technologies and requirements for the system development.

13 13 CS551 - Lecture 1 Real World Example: Hong Kong Telecom Video-on-demand: provide subscribers with facilities to download videos from HK TK servers to low-cost Web-TVs. currently 90,000 users. Built using distributed object-technology. Video-on-demand: provide subscribers with facilities to download videos from HK TK servers to low-cost Web-TVs. currently 90,000 users. Built using distributed object-technology. …

14 14 CS551 - Lecture 1 Requirements Hardware: –Clients: Web-TV –Servers: RISC processor Operating System Heterogeneity : –Clients: Java OS –Servers: UNIX Programming Language Heterogeneity: –Clients: Java –Servers: C++ Communication across Network –How to transmit complex data structures across the Internet? Scale –Scaling from initially several hundred to currently 90,000 users Security –Secure Payment –Authentication

15 15 CS551 - Lecture 1 Trading Workstation Trading Workstation Authorisation Services Authorisation Services Host Services Customer Information Services Customer Information Services Product Database Services Product Database Services Marketing Services Marketing Services Another Example:IT Infrastructure of UBS

16 16 CS551 - Lecture 1 A Brief History of Objects Simula-67 Information Hiding Smalltalk C++ Eiffel Java CORBA COM OOAD UML Sun ONC DCE Programming LanguagesDistributed SystemsSoftware Engineering Time 1970 1980 1990 DCOM

17 17 CS551 - Lecture 1 Why Software Engineering?...to get away from ad hoc and unpredictable software development towards a systematic, understood one...

18 18 CS551 - Lecture 1 Component-Based Software Engineering? An emerging concept called "a component-based software" appears to be a solution for the development of software system. The component-based software engineering focuses on the entities (objects) developed and the components intended from their inception to be used within a framework in which they are placed in containers and combined with other components.

19 19 CS551 - Lecture 1 Goals of this Course To study the development of component-based software systems (with hands-on experience) To introduce the concept of software component, including its relationship to the object-oriented programming paradigm. To learn how to specify and design, using UML, the basic building blocks present in component frameworks, including events, properties, introspection and reflection, persistence, and packaging.

20 20 CS551 - Lecture 1 Goals of this Course To introduce/compare/evaluate different component frameworks, including XML, Enterprise Java Beans (EJB), COM and CORBA. To give students hands-on experience in programming components using Java, XML and component development environments (CORBA, COM, EJB). To achieve an understanding of how components work in a distributed computing environment.

21 21 CS551 - Lecture 1 Requirements for this Course  Critical Reading/Thinking:  Students are required to read and assimilate information from the readings beyond the material covered in class.  Throughout the semester, papers and chapters of the texts will be read and discussed. Discovery (Self-guided) Learning: The course and group project will require independent research and programming, and students are expected to be able to demonstrate ability of this kind.

22 22 CS551 - Lecture 1 Requirements for this Course  Analytical Writing/Presentation:  Students are asked to think critically and reason about information presented in the textbooks or papers.  This critical evaluation requires that students offer their own understanding of the significance of what students have learned. Students should be able to present their knowledge to the public.

23 23 CS551 - Lecture 1 Contents of Lecture Topic 1: Today's Software Systems  What's a current trend of Software Systems? Distributed System?  Examples of Distributed Systems  New Software Requirements  The Evolution of Object Technology

24 24 CS551 - Lecture 1 Contents of Lecture Topic 2: Component-based Development  What is Object? Component?  What is Object-oriented SE? Component- oriented SE?  Frameworks, Patterns, Software Architecture, and Components  Designing for reuse  Connections, events, and late binding

25 25 CS551 - Lecture 1 Contents of Lecture Topic 3: Principles of Object-Oriented Middleware  Computer Networks  Types of Middleware  Object-Oriented Middleware  Developing with Object-Oriented Middleware Topic 4: Alternative Component Architectures  The Microsoft Approach: COM, and DCOM  The OMG Approach: CORBA and OMA  The Sun Approach: JAVA RMI, and EJB

26 26 CS551 - Lecture 1 Contents of Lecture Topic 5: Object Oriented Modeling  Modeling with Objects  Static Models: Object Attributes and Invariant  Behavior Models: Object Types and Operations  Interaction Models: Use Cases, Actions, Collaboration  UML for Distributed Objects  A Meta-Model for Distributed Objects  Local versus Distributed Objects

27 27 CS551 - Lecture 1 Contents of Lecture Topic 6: Factoring Models and Designs  Abstraction, Refinement  Package  Composing models and specifications  Model Framework and Template Package Topic 7: Component-based Programming  The Microsoft Approach: ActiveX, COM, and DCOM  The OMG Approach: CORBA, OMA  The Sun Approach: JAVA RMI, and Enterprise Java Beans

28 28 CS551 - Lecture 1 Contents of Lecture Topic 8: Advanced Topics in Middleware  Heterogeneity  Dynamic Object Requests  Advanced Communication between Distributed Objects  Locating Distributed Objects and Persistence  Distributed Object Transactions and Security


Download ppt "CS551 - Lecture 1 1 CS551 Advanced Software Engineering Yugi Lee STB #555 (816) 235-5932"

Similar presentations


Ads by Google