CS551 Advanced Software Engineering Yugi Lee STB #555 (816) 235-5932 yugi@cstp.umkc.edu www.cstp.umkc.edu/~yugi 1 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 CS551 - Lecture 1 2 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++) CS551 - Lecture 1 3 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, AddisonWesley,1999 Component Software: beyond Object-oriented programming, Clemens Szyperski, Addison-Wesley, 1999 Technical Papers CS551 - Lecture 1 4 Assessment • Group Project 50% Projects 1 - 4 Presentation/Final package 42% 8% • Individual Work 50% – Midterm Exam: – Final Exam: – Quizzes: 10% 20% 20% Both components must be passed in order to pass the course. CS551 - Lecture 1 5 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%) CS551 - Lecture 1 6 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. CS551 - Lecture 1 7 Exams • Weekly Quizzes (20%) • Tentative Exam Schedule: – October 8 – December Midterm exam (10%) Final exam (20%) • Some selected students can pursue a research track. Research papers can be replaced with class examination. CS551 - Lecture 1 8 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. CS551 - Lecture 1 9 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 • Project Related work – designing/coding/learning skills – meeting & communication – updating web-materials CS551 - Lecture 1 10 12 hrs. 12 hrs. 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. CS551 - Lecture 1 11 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. CS551 - Lecture 1 12 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. CS551 - Lecture 1 13 Requirements • Hardware: • Communication across Network – Clients: Web-TV – How to transmit complex data structures across the Internet? – Servers: RISC processor • Scale • Operating System Heterogeneity : – Scaling from initially several hundred to currently 90,000 – Clients: Java OS users – Servers: UNIX • Security • Programming Language – Secure Payment Heterogeneity: – Authentication – Clients: Java – Servers: C++ CS551 - Lecture 1 14 Another Example:IT Infrastructure of UBS Customer Information Services Authorisation Services Trading Workstation Product Database Services Marketing Services 15 CS551 - Lecture 1 Host Services A Brief History of Objects Time DCOM CORBA Java UML COM OOAD 1990 Eiffel DCE C++ 1980 Sun ONC 1970 16 Distributed Systems Smalltalk Information Hiding Simula-67 - Lecture 1 ProgrammingCS551 Languages Software Engineering Why Software Engineering? ...to get away from ad hoc and unpredictable software development towards a systematic, understood one... CS551 - Lecture 1 17 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. CS551 - Lecture 1 18 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. CS551 - Lecture 1 19 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. CS551 - Lecture 1 20 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. CS551 - Lecture 1 21 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. CS551 - Lecture 1 22 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 CS551 - Lecture 1 23 Contents of Lecture • Topic 2: Component-based Development What is Object? Component? What is Object-oriented SE? Componentoriented SE? Frameworks, Patterns, Software Architecture, and Components Designing for reuse Connections, events, and late binding CS551 - Lecture 1 24 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 CS551 - Lecture 1 25 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 CS551 - Lecture 1 26 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 CS551 - Lecture 1 27 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 CS551 - Lecture 1 28