Courses
- Introduction to Software Engineering (10014) תקציר הקורס:
- Software Engineering Methods (10214) תקציר הקורס:
- Seminar (10400) תקציר הקורס:
Abstract:
The first digital computer was built for the US Army in 1946.
High-level programming languages appeared in the 1950s.
Within a quarter century, we already faced what is known as the “software crisis”.
The crisis did not occur because software was not f?unctioning properly but rather because of problems related to the software development process, and the growing demand for complex software systems. The software crisis manifests itself in many problems: lack of well defined requirements; frequently changing requirements; poorly estimated costs and budgets; programmer productivity that cannot keep up with demand; and software of insufficient quality.
Software Engineering was developed in order to solve the problems that characterize the software crisis, and it encompasses the entire software development life cycle.Abstract:
Software engineering aims to facilitate the construction
of large and complicated software systems within well-defined bounds of quality, time and budget. Like other engineering disciplines software engineering uses models to analyze and reason about the systems under construction.
In this course, we teach the Unified Modeling Language (UML) and demonstrate how it may describe the different models that are used in the course of development of large software systems. The course structure follows the major phases of software development: requirements elicitation, system specification, architectural design, class design and finally the construction of the system. To assimilate these ideas and techniques you will form groups and develop a series of practical assignments
throughout the semester. Each meeting will contain a theoretical
part where we will learn new ideas and a practical part where we will implement them in context.Abstract:
The term formal methods refers to languages and methods that allow precise modeling of systems at various levels of abstraction, requirements to be formulated for them and the fulfillment of these requirements to be reliably analyzed.
Formal methods are used in software engineering to enable precise and unambiguous specifications, rigorous design, and formal verification of systems, reducing the likelihood of errors that could lead to failures in critical applications.
This seminar introduces students to formal methods, emphasizing the importance of these methods in ensuring software correctness, reliability, and security.
At the seminar, we will cover various topics in formal methods throughout the software development lifecycle.