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