This course aims to introduce the student to the most important topics covered by software engineering, which are the general framework within which software development operations take place. There are many axes in this article, some of which may be the subject of an independent course, but reviewing these concepts together and understanding the relationships between them and the interaction of each other with others gives a holistic view and allows an understanding of the mechanisms of software development and the techniques adopted in its management. It enables the student to specifically: • First: Understanding the methodologies of software development, its importance and the bases on which it is based. • Second: Understanding the programming procedures models, activities and development. • Third: Learn about the requirements engineering and procedures and verify the requirements. • Fourth: Understanding the modeling of software systems in terms of structure, interaction and behavior between its components • Fifth: The ability to design and implement software systems and to use diagrams in that. • Sixth: Knowing of techniques and types of tests for software and software systems. • Seventh: The ability to manage and plan projects in terms of managing risks, people, and teams in software projects. In addition to be able to write the plan of the project.