Important Unit Information

advertisement
Monash University
Faculty of Information Technology
Caulfield School of Information Technology
CSE3210 – Software Component Technology
Unit Information Guide
Semester 2, 2006
Lecturer:
Dan Eaves
Office:
H6.38
Email:
dan.eaves@infotech.monash.edu.au
Phone:
9903 2079
Web Site
http://www.csse.monash.edu.au/courseware/cse3210/
Office Hours: Mon. 4-6; Tues. 10-12; Wed. 3-5; other times by appointment
Subject Details:
Credit points:
Assessment:
Prerequisites:
6
Exam: 40% + Assignments: 40% + Tutorial work: 20%
CSE1203 or equivalent (that is, a full year of programming in a
particular language. This does not need to have been Java.)
Synopsis:
Component technology systems such as COM, COM+ and .NET from Microsoft,
CORBA from the object Management Group and Java Beans from Sun Microsoft allow
self-contained, quasi-independent and significantly sized pieces of a program
(components) to be incorporated into other programs dynamically. Component
technologies provide developers with a large degree of interoperability. Designing and
developing these components to achieve this level of interoperability is different to
designing traditional programs. Programs need to be able to dynamically discover
available components in their environments. This subject will teach students how to
develop reliable and robust components and how to use such systems when developing
their own programs. It will also investigate the processes of discovering, evaluating,
selecting, including and distributing commercially available components as parts of
bespoke software products.
Programming/Software Environment:
In the 2006 version of CSE3210, considerable attention will be paid to the Microsoft
.NET and COM versions of the technology due to their wide use and significant
availability. The Visual Studio 2005 release will be used. While this version is not
currently in use across Monash, it has been installed in a 24 hour lab for student use
(K1.10) and full sets of the IDE will be distributed to students in the tutorials. You may
program in any VS supported language. These include VB, C# and C++. In Robert
Redpath’s useful phrase, I am “language agnostic” in this subject. Other languages with
tight integration with VS (for example, Eiffel) are fine.
CSE3210: Software Component Technologies, Semester 2, 2006
Page 1 of 4
Unit Web Site, Discussion Forum and Wiki
All lectures, tutorial materials and assignments are available via the web site. In addition,
an anonymous (no log-on) discussion forum is available. This forum is typically
unmoderated (your postings appear immediately) and is checked obsessively by the
lecturer (16 hours a day, 7 days a week). I will also be setting up a Wiki for the subject as
an experiment.
My Office Hours are indicated above. An email is probably the fastest way to get answers
to specific, personal questions. Using the discussion forum is the best way to get answers
to more general questions, where the answer may well be of interest to a number of
students.
Unit Outline
This subject investigates the use of modern software development technologies that allow
independent pieces of executable code (components) to be dynamically incorporated into
programs allowing the programs to add and change functionality as they execute.
Examples of such systems are COM and COM+ from Microsoft, CORBA from the
Object Management Group and Java Beans from Sun Microsystems. Component
technologies provide developers with a large degree of interoperability and reuse. For
example, components written in different languages can be incorporated into a single
program. In this subject students will learn how to develop reliable and robust
components and how to select and use such systems when developing their own
programs.
Objectives
On completion of the subject students will:
1. Understand the different architectures provided by different component
technologies and be able to describe the advantages and disadvantages of each.
2. Understand how component based development affects the systems development
lifecycle.
3. Possess the skills necessary to design and develop software components.
4. Be able to design and develop programs that utilize the services and facilities
offered by component architectures.
5. Be able to research, select, evaluate and integrate commercially available
software components into locally developed systems.
Recommended Texts
Connell, J. (2004) Developing Microsoft .NET Controls with Microsoft Visual
Basic .NET. Microsoft Press. ISBN 0735619247.
Szyperski, C. and D. Messerschmitt (2003). Software Ecosystem – Understanding
an Indispensable Technology and Industry. MIT Press. ISBN 0-262-13432-2
Papers and web sites as recommended in the lectures.
CSE3210: Software Component Technologies, Semester 2, 2006
Page 2 of 4
Assessment & Assessment Weighting
Exam: 40% + Assignments: 40% + Tutorial papers/contribution: 20%
There will be 2 major assignments, due in weeks 8 and 12 respectively. The first consists
of selecting a commercially available component from a number available to perform a
particular task. You must report on the process of finding and evaluating the relevant
products available and indicate the reasons for your selection. A “toy” system should be
submitted including your selected component in action.
The second assignment consists in actually developing a working (and distributable)
component. This must not simply replicate the functionality of an existing, commercially
available, component. Your component will be assessed by being added to the lecturer’s
own “toy” system and given a workout.
You may work in groups of one or two. I strongly recommend working in a team on the
first assignment. The process of learning a component well enough to be able to assess it
requires a considerable amount of time.
You must get the approval of your tutor for the specific component area for each of your
assignments.
Extensions and Late Submissions
For assignments and tutorial work, you will lose 2% per day for up to 5 working days.
Assignments more than one week late will not be accepted unless prior arrangements
have been made with the lecturer; a doctor’s note is supplied, etc.
Plagiarism and Cheating (N.B.: this is the Facility policy and is provided here,
word-for-word, as is required.)
Plagiarism and cheating are regarded as very serious offences. In cases where
cheating has been confirmed, students have been severely penalised, from losing all
marks for an assignment, to facing disciplinary action at the Faculty level. While we
would wish that all our students adhere to sound ethical conduct and honesty, I will ask
you to acquaint yourself with Student Rights and Responsibilities and the Faculty
regulations that apply to students detected cheating as these will be applied in all detected
cases.
In this University, cheating means seeking to obtain an unfair advantage in any
examination or any other written or practical work to be submitted or completed by a
student for assessment. It includes the use, or attempted use, of any means to gain an
unfair advantage for any assessable work in the unit, where the means is contrary to the
instructions for such work.
When you submit an individual assessment item, such as a program, a report, an essay,
assignment or other piece of work, under your name you are understood to be stating that
this is your own work. If a submission is identical with, or similar to, someone else's
work, an assumption of cheating may arise. If you are planning on working with another
CSE3210: Software Component Technologies, Semester 2, 2006
Page 3 of 4
student, it is acceptable to undertake research together, and discuss problems, but it is not
acceptable to jointly develop or share solutions unless this is specified by your lecturer.
Intentionally providing students with your solutions to assignments is classified as
"assisting to cheat" and students who do this may be subject to disciplinary action. You
should take reasonable care that your solution is not accidentally or deliberately obtained
by other students. For example, do not leave copies of your work in progress on the hard
drives of shared computers, and do not show your work to other students. If you believe
this may have happened, please be sure to contact your lecturer as soon as possible.
Cheating also includes taking into an examination any material contrary to the
regulations, including any bilingual dictionary, whether or not with the intention of using
it to obtain an advantage.
Plagiarism involves the false representation of another person's ideas, or findings, as your
own by either copying material or paraphrasing without citing sources. It is both
professional and ethical to reference clearly the ideas and information that you have used
from another writer. If the source is not identified, then you have plagiarised work of the
other author. Plagiarism is a form of dishonesty that is insulting to the reader and grossly
unfair to your student colleagues.
CSE3210: Software Component Technologies, Semester 2, 2006
Page 4 of 4
Download