عنوان مقاله

ابزاری برای پشتیبانی از روش طراحی CRC



خرید نسخه پاورپوینت این مقاله


خرید نسخه ورد این مقاله



 

فهرست مطالب

چکیده

مقدمه

توسعه نرم افزاری جسم – محور

CRC

کار آینده





بخشی از مقاله

زیرسیستم ها شامل زیرسیستم های دیگری می باشند. آنها همچنین شامل کلاس ها هستند. کلاس ها شامل مسئولیت ها هستند. مسئولیت ها می توانند با استفاده از نسبت ها یا پروتکل ها اجرا شود. مسئولیت ها را می توان به دسته های مربوطه با نام کنتراکت ها گروه بندی کرد. آن در پایگاه داده نشان داده نشده است، اما مسئولیت ها در همان کنتراکت باید به همان کلاس تعلق داشته باشد. این در طراحی جسم اجرا می شود. و سرانجام، یک همکاری بعنوان روابط بین دو مسئولیت تعریف می گردد.





خرید نسخه پاورپوینت این مقاله


خرید نسخه ورد این مقاله



 

کلمات کلیدی: 

A Tool to Support the CRC Design Method AUTHORS: Steve Roach, Department of Computer Science, University of Texas at El Paso, sroach@cs.utep.edu Javier C Vásquez, Department of Computer Science, University of Texas at El Paso, jvasquez@cs.utep.edu Abstract  Software design is an essential yet challenging concept for students in computer science and software engineering. Classes, Responsibilities, and Collaborations (CRC) is a design method focused on creating highly cohesive and modular systems. Classes describe real-world objects that exist in a system. These classes are assigned responsibilities, i.e., data and actions that the class is required to support. A class may fulfill a responsibility by itself, or it may collaborate with some other class to fulfill the responsibility. The interactions among classes must be described in detail and eventually translated into method signatures. Related responsibilities of each class are grouped into clusters called contracts. Contract responsibilities are those that perform a general service for other classes. Responsibilities that do not service outside classes are known as private responsibilities. A higher level of abstraction of this model is invoked through the use of subsystems. Subsystems can contain classes and other subsystems that combined perform a general function or set of related functions. In doing this, the design can hold several levels of abstraction. When using the CRC method as described in text books, a design team writes information on index cards. Each card represents a class. It shows the name, description, superclass, subclasses, responsibilities, collaborations, and subsystems of a class. The advantage is that the design team can easily move the cards around to visualize the design, and modifications to the design can be made quickly by simply replacing cards. Some difficulties with this approach is that design layouts are not easily transferred to team members when the spatial relations are eliminated, modification of complex classes becomes tedious, and since the data is contained only in hand-written form, it is necessary to transfer the content of cards into an electronic medium in order to use software development tools such as Rational Rose or to document the design. The CRC Design Assistant is a software tool created to assist students during the design process. It stores a design in a database and assists designers in the creation and modification of designs using the CRC method. CRC cards are represented graphically and can be easily manipulated using the mouse and keyboard. The tool can generate design documents in MS Word and UML diagrams, which can be uploaded into other tools for processing. The automation allows students to focus on the actual design of a system rather than spend time revising documents. The tool is available for download from the University of Texas at El Paso web site. Index Terms  CRC, Design Environment, Object-Oriented Design, Software Engineering Education. INTRODUCTION Object-oriented development has become a prevalent approach for producing flexible, maintainable software systems. Because of its potential for reusability and extensibility, object orientation is a result of the search for techniques to manage the complexity of modern software. An object-oriented system is organized around models of objects in the problem domain. These objects maintain their own state and interact with each other to achieve system behaviors. The importance of objectorientation is underscored by its prevalence in the ACM computing curriculum CC2001 [6] and CE2003 [7]. In the Computer Science Department at the University of Texas at El Paso (UTEP), the software engineering course is taught in the context of the senior capstone project. The course is presented over two semesters during which student teams construct a software system for a client. Our client list includes the Pan American Center for Earth and Environmental Studies, the US Army Research Laboratory, Sandia National Laboratories, the US Geological Survey, the UTEP Department of Geology, and the New Mexico State University Department of Agronomy. Our experience in this course has been that while students are familiar with programming in object-oriented languages such as Java or C++, they have difficulty designing object-oriented solutions to larger, real-world problems. Our students need a method for developing and analyzing object-oriented designs that is easy to learn, facilitates modification of designs, and encourages team interactions. The Classes, Responsibilities, and Collaborations (CRC) method [10] [11] is a design method focused on creating highly-cohesive and modular software systems. The CRC method is a relatively simple way for students to investigate objectoriented design with minimal investment. The advantages of CRC include ease of learning for new team members, rapid design development, ease of change of designs, and effective integration of team members. The use of 3x5 index cards allows