CS551 Advanced Software Engineering - PowerPoint PPT Presentation

View by Category
About This Presentation
Title:

CS551 Advanced Software Engineering

Description:

CS551 Advanced Software Engineering Yugi Lee STB #555 (816) 235-5932 yugi_at_cstp.umkc.edu www.cstp.umkc.edu/~yugi General stuff Class: M/W 12:30-1:45, FH460 Office ... – PowerPoint PPT presentation

Number of Views:305
Avg rating:3.0/5.0
Slides: 29
Provided by: Frank481
Learn more at: http://sce2.umkc.edu
Category:

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: CS551 Advanced Software Engineering


1
CS551 Advanced Software Engineering
  • Yugi Lee
  • STB 555
  • (816) 235-5932
  • yugi_at_cstp.umkc.edu
  • www.cstp.umkc.edu/yugi

2
General stuff
  • Class M/W 1230-145, FH460
  • Office hours
  • Yugi Lee M/W 145-245 or by appointment
  • TA Venkatavaradhan (Santhosh) Panchapagesam
  • Email vpanchap_at_hotmail.com

3
Course information
  • www.cstp.umkc.edu/yugi
  • Lecture notes will be available in advance
  • Mailing List cs551a_at_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)

4
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, Addison-Wesley,1999
  • Component Software beyond Object-oriented
    programming, Clemens Szyperski, Addison-Wesley,
    1999
  • Technical Papers

5
Assessment
  • Group Project 50
  • Projects 1 - 4
    42
  • Presentation/Final package
    8
  • Individual Work
    50
  • Midterm Exam
    10
  • Final Exam
    20
  • Quizzes
    20
  • Both components must be passed in order to pass
    the course.

6
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)

7
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.

8
Exams
  • Weekly Quizzes (20)
  • Tentative Exam Schedule
  • October 8 Midterm exam (10)
  • December Final exam (20)
  • Some selected students can pursue a research
    track. Research papers can be replaced with class
    examination.

9
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.

10
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 12 hrs.
  • Project Related work
    12 hrs.
  • designing/coding/learning skills
  • meeting communication
  • updating web-materials

11
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.

12
Todays 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.

13
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.

14
Requirements
  • Hardware
  • Clients Web-TV
  • Servers RISC processor
  • Operating System Heterogeneity
  • Clients Java OS
  • Servers UNIX
  • Programming Language Heterogeneity
  • Clients Java
  • Servers C
  • Communication across Network
  • How to transmit complex data structures across
    the Internet?
  • Scale
  • Scaling from initially several hundred to
    currently 90,000 users
  • Security
  • Secure Payment
  • Authentication

15
Another ExampleIT Infrastructure of UBS
Customer Information Services
Authorisation Services
Trading Workstation
Product Database Services
Marketing Services
Host Services
16
A Brief History of Objects
Time
Java
DCOM
UML
COM
CORBA
OOAD
1990
Eiffel
DCE
C
Sun ONC
1980
Smalltalk
Information Hiding
1970
Simula-67
Programming Languages
Distributed Systems
Software Engineering
17
Why Software Engineering?
  • ...to get away from ad hoc and unpredictable
    software development towards a systematic,
    understood one...

18
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.

19
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.

20
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.

21
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.

22
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.

23
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

24
Contents of Lecture
  • 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

25
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

26
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

27
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

28
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
About PowerShow.com