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