1 - School of Computing and Engineering
Download
Report
Transcript 1 - School of Computing and Engineering
CS551
Advanced Software Engineering
Yugi Lee
STB #555
(816) 235-5932
[email protected]
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: [email protected]
CS551 - Lecture 1
2
Course information
• www.cstp.umkc.edu/~yugi
• Lecture notes will be available in advance
• Mailing List [email protected]
– 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