1 - School of Computing and Engineering

advertisement
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
Download