@proceedings {393, title = {On Software Components Characterization and Specification}, journal = {9th International CSI Computer Conference}, year = {2004}, month = {02/2004}, address = {Tehran, Iran}, abstract = {Because of the increasing complexity of software applications, it is becoming more and more complicated to develop them from scratch. Developing software applications by using existing software components is a solution to this problem. But, before everything, we will introduce software components as a solution to software crisis and software engineering problems. By software crisis we mean the lack of productivity and performance in the software development projects. Using existing software components in the development of new software applications has some advantages and disadvantages. In this paper, we will talk about some of these issues. Another problem relates to the definition of software components itself. Unfortunately, there is no standard and specific definition of software components. In this paper, we try to define a comprehensive set of attributes for characterizing software components in a repository of software component products. These attributes are classified into six major categories: Source, Specification, Packaging, Modification, Requirements, and Quality attributes.}, author = {Abbas Heydarnoori and Farhad Mavaddat} }