170 likes | 283 Views
Component-Based Software Development: Nurturing the Inner Designers. Hoang Bao CSC 509 – Winter 2005. Concern. Software design: conception of a new software Current computer science and software engineer students do not have enough exposure to software design.
E N D
Component-Based Software Development: Nurturing the Inner Designers Hoang Bao CSC 509 – Winter 2005
Concern • Software design: conception of a new software • Current computer science and software engineer students do not have enough exposure to software design.
The most common response toward software design training: “I was trained to do some other job, but ended up doing software design.” (Winograd) • There are few software design programs out there. • London’s Royal College of Art – Computer Related Design • Stanford University – Human-Computer Interaction Design • MIT – Program in Media Arts and Sciences
One way students learn about software development is through the software development processes. • Some processes encourage more involvement in software design than others.
Hypothesis • Component-based development (CBD) provides better training for software design than other development methods.
Building Design Consciousness • CBD helps to build the design consciousness (intuition, unspoken knowledge, and gut reaction) in participants.
Goals • Analyze the hypothesis • Analyze how CBD build the design consciousness • Compare CBD with common development methods. Implication: If the hypothesis holds true, we can consider using CBD as a teaching tool to expose students to design.
CBD • Focus on composing software systems with existing components. • CBSE Process • Analysis and components acquisition • Components-Oriented design • Components Composition • Integration Test • System Test
Main Difference • CBD is component oriented • Component development – creation of parts as reusable entities.
Component Development • Extra level of design • Components are designed separately from the final systems. • High requirements on functionality and flexibility
Component Development (cont.) • Forces components developers to • Think of (possible) products the components might be a part of. • How the components fit into those products architecturally
Building Consciousness • Over time, such actions build up a developer’s creativity and create a designer mindset for him.
Current Literature • Haven’t been able to find many papers that directly relate CBD to software design. • The papers used in this research so far has been on the topics of: • Software engineering • Software design • CBD
Further Works • Explore the component development process in more details. • How each step of the process contributes to design activities • More detail comparison of CBD and other methods.
Bibliography • Aoyama, M. “New Age of Software Development: How Component-Based Software Engineering Changes the Way of Software Development?” International Workshop on CBSE. • Brown, AW., et Al. “The Current State of CBSE.” IEEE Software, 1998. • Crnkovic, I., and Larsson, M. “A Case Study: Demands on Component-based Development.” International Conference on Software Engineering, 2000. • Fredriksson, A. “Component-Based Systems Development” • Freeman, P., Wasserman, I. A., and Fairley E. R. “Essential elements of software engineering education.” Proceedings of the 2nd international conference on Software engineering, 1976. • Shaw, M. “Software engineering education: a road map.” Proceedings of the Conference on The Future of Software Engineering, 2000. • Vitharana, P. “Risks and Challenges of Component-Based Software Development.” Communication of the ACM, 2003. • Winograd, T. (1996). Bringing Design to Software. New York: ACM Press.