PowerPoint - School of Computing and Engineering

Download Report

Transcript PowerPoint - School of Computing and Engineering

CS551
Advanced Software Engineering
Yugi Lee
STB #555
(816) 235-5932
[email protected]
www.sice.umkc.edu/~leeyu
1
CS551 - Lecture 1
General stuff
• Class: T/TH 2:00 – 3:15, HH301
• Office hours:
– Yugi Lee: T/TH 3:15-4:15pm or by appointment
• TA:
– Venkatavaradhan (Santhosh) Panchapagesam
Email: [email protected]
– Kaustubh Supekar
Email: [email protected]
CS551 - Lecture 1
2
Course information
• Lecture notes will be available in advance:
www.sice.umkc.edu/~leeyu
• Mailing List
– information will be distributed via the mailing list (e.g.
announcements, corrections etc.)
• Prerequisites (Mandatory)
 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
• Individual Work (60%):
–
–
–
–
Midterm Exam: 15%
Final Exam:
15%
Quiz:
10%
Lab(12):
20%
• Group Work (40%)
–
–
–
–
–
Project 1 (8%):
Project 2 (8%):
Project 3 (8%):
Project 4 (8%)
Project 5 (8%):
Project proposal
Project description
Project development-1
Project development-2
Project report
Both components must be passed in order to pass the course.
CS551 - Lecture 1
5
Group Projects
• Teams of Maximum 4 members
– work on a realistic software-engineering problem.
• The overall assignment will be split into several steps that
will be marked individually.
– Project 1 (8%): Project proposal (problem statement, domain
analysis, etc)
– Project 2 (8%): Project description (solution statement, system
design, etc)
– Project 3 (8%): Project development-1 (System implementation1, documentation, etc)
– Project 4 (8%) Project development-2 (System implementation2 , documentation, etc)
– Project 5 (8%): Final project report
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, Architecture styles, Object Framework
building using Java, XML and CORBA/COM/EJB.
CS551 - Lecture 1
7
Exams
• Weekly Quizzes (10%)
• Tentative Exam Schedule:
– 10/10/02
– 12/10/02
Midterm exam (15%)
Final exam (15%)
• Some selected students can pursue a research
track. Research papers can be replaced with class
examination.
CS551 - Lecture 1
8
Distribute Computing Lab
• Mark: 20%, a group of two students
• Experience with a number of the technologies that can be
used to distribute an application.
• Starting with the simplest and moving towards more highly
abstracted solutions:
–
–
–
–
–
Direct socket communication
Remote Procedure Call (RPC)
Remote Method Invocation (RMI)
Common Object Request Broker Architecture (CORBA)
Standard Object Access Protocol (SOAP)
• This workshop is originally designed by David Stratton for
SIGCSE 2002 Workshop, Distributed Applications in Java
CS551 - Lecture 1
9
Distribute Computing Lab
• As we approach each new distribution architecture you
will be given a sample “Hello World” style program
written with that architecture.
• An initial, “fake” distribution, which is in fact an
alternate local distribution, is the starting point in order
that you can become familiar with the process of
modifying the calculator.
• As you add each new distribution architecture to the
menu you will write code to implement a calculator
server for that distribution and add classes to the
calculator program that will cause it to send calculations
to the server to be performed.
CS551 - Lecture 1
10
Distribute Computing Lab
•
•
•
•
•
•
•
•
•
•
•
•
Lab 1 - The Local Calculator - Adding a "Fake" Distribution
Lab 2 - Refining the Local Calculator
Lab 3 - A Socket-Based Calculator Distribution
Lab 4 - Advanced - Developing the Socket-Based Calculator
server
Lab 5 - Remote Procedure Call – RPC
Lab 6 - Advanced - Further exploration of RPC
Lab 7 - RMI Introduction
Lab 8 - Advanced - More RMI
Lab 9 - Introduction to CORBA
Lab 10 – Advanced - Implementation inheritance in CORBA
Lab 11 – Introduction to SOAP
Lab 12 – Fun –Performance Evaluation
CS551 - Lecture 1
11
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
12
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
13
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
14
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
15
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
• 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
CS551 - Lecture 1
16
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
17
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
18
Contents of Lecture
• Topic 6: Factoring Models and Designs
 Design pattern
 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
19
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
20