The Department of Software Engineering in the University of Tehran is among the leading departments in the nation, with a diverse program in Bachelor of Science (BS), Masters of Science (MS), and Doctor of Philosophy (PhD) degrees. Our department is situated in the School of Electrical and Computer Engineering where it enjoys close academic and research collaborations with other departments, including Information Technology, Artificial Intelligence and Robotics, Hardware and Electronics, and Communications. We support a community of about 50 MS and 20 PhD students who are engaged in world-class research across Computer Science and Software Engineering, spanning the following areas:
Network-Based Computing and Distributed Systems(...)
Real-Time Embedded Systems(...)
Subcategories: Real-time scheduling and resource management algorithms - Distributed Systems - Power, energy and thermal management - Fault-tolerance and dependability - Performance Modeling and Evaluation.
Formal Modeling and Verification(...)
Software is becoming a part of most modern-day industrial systems. In most cases, safety of the whole system depends on the correctness of the software parts. However, due to the inherent complexity in computer programs, it is hard to verify their correctness without a rigorous mathematical model. This is the aim for which formal methods in software engineering are devised. A central part of any formal method is a modeling notation, with clearly defined syntax and semantics, in which the system under study is specified. The specification serves as the 'correct description' against which the system is verified. Finding a suitable notation for a particular system under study is crucial, as it partly determines the complexity of the model and the analysis methods that can be used.
On the analysis part, we focus on two techniques: model-checking and model-based testing. Model-checking refers to automatic verification of the model of a reactive system against a specification usually expressed in temporal logics. The famous problem of 'state-space explosion' however is the main barrier to successful application of model-checking to large-scale systems. Finding methods to overcome this problem has been a center of attention in model-checking research community. On the other hand, model-based testing does not assume having a formal model of the system, rather it embodies a formal specification to generate and execute test cases automatically. Although it is impossible to show 'the absence of bugs' using testing, it makes it more practical when dealing with large-scale industrial systems.
Software Design and Architecture(...)
Software systems are getting more complex, and at the same time, it becomes more critical to attain quality factors such as performance, availability, modifiability, and so on. Without having a unifying view of software elements, at a high level of detail, addressing different types of quality attributes is almost impossible. This is where software architecture comes into the play. Most modern software development processes consider software architecture as the central artifact, developed during early phases of the development, which guides many other activities in the project.
As a relatively new discipline in software engineering, software architecture has opened various research problems. How to analyze and model quality attributes that drive the architecture? Can we have a systematic way to design the architecture effectively? What are the ways to model and document software architecture? How can we evaluate the architecture to see if it satisfies the intended quality attributes? Although several methods exist for each of the problems stated, there are quite a lot of open areas that must be investigated further by the research community.
Data Mining and Information Retrieval(...)
Database Systems(...)
Agent-Based Systems(...)
Multi-Formalism Modeling and Simulation-Based Design(...)
Subcategories: Model Composability, Simulation-based System Design and Testing, Software Development Process Modeling






