Information Science, 1996
University of Tabriz, Iran (July 2013 - Present)
Department of Computer Science
Middle East Technical University Northern Cyprus
Campus, Turkey (August
2012 July 2013 )
Department of Computer Engineering
University of Tabriz, Iran (January 1996 - August 2012)
Department of Computer Science
For the first time in University of Tabriz, in 1999, founded and established the Department of Computer Science and, as the department head, carried out all the responsibilities associated with this position.
Responsibilities, as the department head, included attracting and hiring faculty members, admitting students, offering courses, and trying to set and maintain an excellent standard on research and teaching programs.
Other responsibilities include teaching graduate and undergraduate courses in computer science and applied mathematics, supervising graduate students, and leading research projects.
Queen's University, Canada (September 1996 - January 1997)
Research involved software behavioral requirements engineering.
Queen's University, Canada (September 1992 - August 1996)
Teaching and Research Assistant (TA & RA)
Assisted in teaching (grading and occasional lecturing) two undergraduate courses: Information Structures and Formal Methods. Research involved software behavioral requirements engineering.
University of Tabriz, Iran (April 1990 - August 1992)
Member of Faculty
In addition to some research activities, taught undergraduate computer science courses, including Introduction to Computing Science, Data Structures, Algorithms, and Automata Theory.
AT&T Bell Laboratories, USA (November 1981 - April 1990)
Member of Technical Staff (MTS)
Designed and developed a data communication protocol verification software system, simulating the ITU (formerly CCITT) Telematic Services Protocol for facsimile data communications. This system was used to check the communication network compatibility of the Telematic Services Terminals.
Involved in definition, design, and development of a Manufacturing Process Control System (MPCS) for various AT&T circuit pack manufacturing shops. Specific responsibilities included:
Designed and proposed a standard procedure for PBXs in ISDN environment. Each PBX was to implement this procedure in its communication with the network and other PBXs to provide user-transparent features in a network of different PBXs.
Studied neural computing technology, its capabilities and limitations compared to traditional computing technology; designed and proposed an application of neural networks in manufacturing automation.
Other accomplishments, in Bell Labs, included direct involvement in the design and development of the following software systems which have been marketed by the company:
Sun Information Services,
USA (October 1980 -
Initiated, designed, and proposed a business graphics software system and, as the project manager, led the development efforts covering all phases of system life-cycle. The system was designed to produce output on the Calcomp pen plotters, Versatec laser jet plotters, and Tektronix high-resolution graphics terminals. A simple English-like command language was also provided for the user interface. This system was developed within the proposed time frame and marketed by the company.
Central Bank of Iran, Iran (July 1978 - October 1980)
Manuchehri High School, Iran
(September 1973 - May
Iranian Army, Iran (April 1971 - April 1973)
Served as a Science Officer in command of over 100 military scientific personnel, spending their own military service as elementary school teachers in faraway hard to reach villages of the country.
Have taught, teaching, and would like to teach undergraduate courses in:
and advanced graduate level courses in:
My main research interests are concerned with reducing and/or managing the complexity of behavioral requirements specifications of large-scale software systems. A complex system may consist of many different sub-systems and components, distributed world-wide, and it may exhibit a combination of many different and identical behavioral views, where a requirements engineer is not necessarily concerned with all these views. Current research and industrial advances in networking and distributed systems indicate that software systems will get even larger and more complex. One cannot envision producing an integrated behavioral requirements specification for an arbitrarily large and complex system. However, if we define the behavior of a system as a composition of behavioral views, then all we need to do is to specify the views of our interest. The focus of my research is on reducing the problem of specifying the behavior of a system to specifying its behavioral views and thereby simplifying the specification.
My major contributions so far have been the introduction of an approach to software behavioral requirements specifications using behavioral views and a formal notation called Viewcharts that supports the approach.
Large-scale software systems, distributed or otherwise, are generally complex to describe, construct, manage, understand, and maintain. Current research approaches to reducing this complexity separate software structural and behavioral descriptions. It is important to study and analyze the behavioral as well as structural aspects of software systems. Much research continues on software structures and their patterns, characterizations, and classifications. Currently, research on the behavioral aspect of software systems includes using formal notations for specifying software behaviors and possibly refining the specifications to design and implementation. Large formal specifications, however, can be difficult to create and to understand; more research is needed into methods for assisting software requirements engineers in reducing these difficulties.
This dissertation introduces the idea of a software "behavioral view": intuitively, this is a complete description of the behavior of the system observable from a specific point of view. We believe that a fully-developed methodology based on views would significantly reduce the complexity of creating and understanding software requirements. In this dissertation we take the first steps towards such a methodology. We define a formal notation, Viewcharts, with a well-defined semantics based on Statecharts. Viewcharts gives a means for precisely describing views and their compositions. We show that Viewcharts reasonably capture the informal idea of a view by giving two examples: a manufacturing control system, and a plain old telephone system. We show that Viewcharts have some advantages over Statecharts; in particular, Viewcharts adds name space control to limit the scope of broadcast communication, solving a problem with Statecharts presented by Harel.