/Software Engineering

Software Engineering

It’s about 3am 3abdo

Wow … you actually made it to CATaZineLive Magazine  HAH !! Congrats! Since you are already here, I could tell you humble stuff about Software Engineering and I wish you gain something useful from this article .

I know that you are wondering who’s 3am 3abdo?! , He is a software engineer but i think he is not like us , hah he is like huge Hulk ,Superman or something of that staff I mean he is a strong weight lifting and a software engineer, :D lol not our problem , our problem that he is the source of information :D ok let’s start

Hmm. Where to start? Ah … right what is the meaning of Software Engineering ?! , Ok let’s get the answer

Software Engineering :

Is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches.

It is also defined as a systematic approach to the analysis, design, assessment, implementation, testing, maintenance and re-engineering of software, that is, the application of engineering to software.

as Wikipedia and all sites can define :) , Easily it’s a way for making highly performance products in the software world .


  • Software engineering can be divided into TEN :
  • 1- Software Requirements Specification (SRS) .
  • 2- Software design .
  • 3- Software construction.
  • 4- Software testing.
  • 5- Software maintenance.
  • 6- Software configuration management.
  • 7- Software engineering management.
  • 8- Software development process.
  • 9- Software engineering tools and methods.
  • 10- Software quality .


Hah can you give us small definition about each concept of the upper ones !? , Ok wait a moment to ask 3am 3abdo first .
60 sec, 45 sec, 30 sec, 10 sec, Done :) , Great ! he accepted that , Thanks God So let us see :) .
Software Requirements Specification (SRS) :
Is a complete description of the behavior of a system to be developed. It includes a set of use cases and non-functional requirements . SRS document enlists all necessary requirements for project development. To derive the requirements we need to have clear and thorough understanding of the products to be developed. This is prepared after detailed communications with project team and the customer.
Software Design:
Is a process of problem solving and planning for a software solution. After the purpose and specifications of software are determined, Software developers will design or employ designer to develop a plan for a solution. It includes low-level component and algorithm implementation issues as well as the archticture view.
Software Construction:
Is a software engineering discipline. It is the detailed creation of working, meaningful software through a combination of coding, verification, unit testing, integration testing, and debugging. It is linked to all the other software engineering disciplines, most strongly to software design and software testing
Software Testing:
Is an investigation conducted to provide stakeholders with information about the quality of the product or service under test.Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation.
Software Maintenance :
Is the modification of a software product after delivery to correct faults, to improve performance or other attributes.
Software configuration management :software configuration management (SCM) is the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines.. According to another simple definition: Software Configuration Management is how you control the evolution of a software project.
Software Engineering Management:
The application of management activities—planning, coordinating, measuring, monitoring, controlling, and reporting—to ensure that the development and maintenance of software is systematic, disciplined, and quantified.
Software development process (VERY IMPO) :
also known as a software development life cycle (SDLC), is a structure imposed on the development of a software product. There are several models for such processes, each describing approaches to a variety of tasks or activities that take place during the process. It aims to be the standard that defines all the tasks required for developing and maintaining software.
Software Engineering Tools & Methods:
The computer-based tools that are intended to assist the software life cycle processes, see Computer Aided Software Engineering, and the methods which impose structure on the software engineering act .