Study of the requirements, concepts, and architectures of comprehensive, integrated, software development and maintenance environments. Major topics include process support, object management, communication, interoperability, measurement, analysis, and user interfaces in the environment context.Themes: Software architectures and composition technologies.
This offering of ICS 228, as with its predecessor, adopts something of a design
studio approach to the topic. During the quarter the class will jointly create
a software development environment focused on architecture-centric development.
In particular, the environment will aim to provide lifecycle support for applications
developed in the C2 architectural style. Since this was the focus of the previous
class's project, you can expect to build upon their results. Moreover the architeture
itself will be an "application" built in the style, so it will be amenable to
further evolution using itself.
Successfully pursuing the project will require some focused instruction in the cornerstone technologies: the xADL architecture representation mechanism, the c2.fw architectural framework, and so on. To provide this instruction we'll be holding discussion sections during the first half of the quarter. Unfortunately this section was not scheduled through the Registrar, so we'll have to quickly identify a time and place where everyone can meet. To faciliate this please bring your schedule to the first meeting of class, and we'll decide the time then.
Eric Dashofy will be running the Discussion Section and maintaining its website.
Name | Assignment | Weight |
Pop quizzes (no kidding!) | These will be simple, short, in-class quizzes designed to assess whether or not you've read the assigned readings. If you have read the papers these quizzes will be a snap. If you haven't read them, I'll be able to tell. Be sure to bring pen/cil and paper to class everyday, just in case! | 15% |
Progress reports and presentations | These are oral reports to the class covering the progress you've made in the previous week on your part of the course project. | 15% |
Project | You will be developing a part of a software development environment, cooperatively with the rest of the class. This portion of your grade will reflect what you've built as part of the project. | 35% |
Summary paper | By the time you're done with your part of the development project, you'll necessarily know the related work, what you've done, what happened when you tried to integrate with the other students' projects, and how well the C2 framework, et.al., supported you in your task. All you have to do here is capture that understanding in a paper not to exceed 5000 words (unless you are REALLY interesting). With luck, this paper will be publishable. | 35% |
Date
|
Topic
|
Reading
Assigned
|
Project
|
---|---|---|---|
Week 1
January 7/9
|
Overview
Themes AST-based environments Event-based communication |
[TM81] W. Teitelman and L. Manister. "The
Interlisp Programming Environment", IEEE Computer, 14(4):25-33,
April 1981.
[RT84] T. Reps and T. Teitelbaum. "The Synthesizer Generator", in Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pp. 42-48, Pittsburgh, PA, April 1984. [Rei90] S.P. Reiss. "Connecting Tools Using Message Passing in the Field Environment", IEEE Software, 7(4):57-66, July 1990. |
The idea
|
Week 2
January 14/16
|
Architecture-based development The Web of Design |
Taylor, R. N., N. Medvidovic, et al. (1996). "A Component- and Message-Based Architectural Style for GUI Software." IEEE Transactions on Software Engineering 22(6): 390-406. Anderson, K. M., R. N. Taylor, et al. (2000). "Chimera:
Hypermedia for Heterogeneous Software Development Environments." ACM
Transactions on Office Information Systems (TOIS) 18(3): 211-245.
See also Chimera-2 [FWABOT98] R. Fielding, et.al. "Web-Based Development of Complex Information Products" CACM, August 1998, pp. 84-92. Acrobat PDF (200K). |
|
Week 3
January 21/23 No class on the 21st! |
Process-centered environments. Heterogeneous environments No class on 1/21 (MLK Day holiday) |
[KFP88] G.E. Kaiser, P.H. Feiler and S.S. Popovich. "Intelligent Assistance for Software Development and Maintenance", IEEE Software, 5(3):40-49, May 1988.
[Kad92] R. Kadia. "Issues Encountered in Building a Flexible Software Development Environment: Lessons Learned from the Arcadia Project", in Proceedings of ACM SIGSOFT '92: Fifth Symposium on Software Development Environments, pp. 169-180, Washington, DC, December 1992. Postscript version. |
|
Week 4
January 28/30
|
Analysis and environments
|
Bandinelli,S., E. Di Nitto, andA. Fuggetta. Supporting Cooperation in the SPADE-1 Environment. IEEE TSE, 22, 12 December 1996. pp. 841-865. [TN92] I. Thomas and B.A. Nejmeh. "Definitions of Tool Integration for Environments", IEEE Software, 9(2):29-35, March 1992. Robbins, J. E., D. M. Hilbert, et al. (1998). "Extending Design Environments to Software Architecture Design." Automated Software Engineering 5(3): 261-90.
|
|
Week 5
February 4/6
|
Architecture-based environments, round 2
|
Medvidovic, N., D. S. Rosenblum, et al. (1999). A Language and Environment for Architecture-Based Software Development and Evolution. 21st International Conference on Software Engineering, Los Angeles, CA, IEEE Computer Society. Khare, R., Guntersdorfer, M., P. Oreizy, Medvidovic, N.,, et al. (2000). xADL: Enabling Architecture-Centric Tool Integration with XML. 2001. (You've seen this paper before,listed below under the project)) Nenad Medvidovic„ Peyman Oreizy„„ Richard N. Taylor„„ Rohit Khare„„ Michael Guntersdorfer. An Architecture-Centered Approach to Software Environment Integration |
1st progress report due Wednesday (Powerpoint, 2 or 3 slides) |
Week 6
February 11/13
|
Expect the topic above to slide into this week, on to 2/13 Object management, configuration management, deployment, and environments
Andre van der Hoek: 2/11/02 |
Ler, C. and D. S. Rosenblum (2001). Wren - An Environment for Component-Based Development. Joint 8th European Software Engineering Conference (ESEC) and 9th ACM Sigsoft International Symposium on the Foundations of Software Engineering (FSE-9), Vienna, Austria. Magee, J., N. Dulay, et al. (1994). "Regis: A Constructive Development Environment for Distributed Programs." IEE/IOP/BCS Distributed Systems Engineering 1(5): 304ö312.
Menage and The Software Dock (and ??) |
2nd progress report
|
Week 7
February 18/20 No class on the 18th! |
No class on 2/18 (President's Day holiday) Process and architectures, redux. |
Consider the use of Magi? Event-based project awareness tools? Knowledge Depot? "Source Forge" |
3rd progress report
|
Week 8
February 25/27
|
Integrating with commercial tools and environments Visiting lecturer: Sriram Sankar ?? |
COM based integration; J2EE, Rational. Sullivan's papers |
4th progress report
|
Week 9
March 4/6
|
Analysis tools, redux. Frameworks: NIST/ECMA, ESF, Corporation model |
Harrison, W., H. Ossher, et al. (2000). Software Engineering Tools and Environments: A Roadmap. The Future of Software Engineering. A. Finkelstein. New York, ACM: 261-277. |
|
Week 10
March 11/13
|
Demos of project components
Review and future directions |
|
Final papers due on 3/13
|
The course environment will be built "in the ArchStudio" way, which means drawing from the previous versions of ArchStudio, and using xADL and its associated tools as the technical heart of the environment. You'll need to consult the following websites and read the listed papers.
Paper 1: ICSE 2002
Paper 2: WICSA 2001
Paper 1: HICSS 2001