
Introduction to Software Engineering: Overview and Roles
Discover the fundamentals of software engineering, including the role of software in system design, differences between software engineering and system engineering, the responsibilities of a Software Engineer, and the essence of a software process. Explore the systematic approach required for software production and the vital skills needed in this engineering discipline.
Download Presentation

Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
You are allowed to download the files provided on this website for personal or commercial use, subject to the condition that they are used lawfully. All files are the property of their respective owners.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author.
E N D
Presentation Transcript
An Introduction to Software Engineering
CHPTER 1 Software Engineering: A Preview The role of Software Engineering in system design: The Software Engineering activity is therefore a part of a much larger system design activity. Example: Telephone switching system consist of: Computers, telephone lines and cables, telephones, other hardware such as satellites, and finally software to control the various components.
What is software? Computer programs and associated documentation such as requirements, design models and user manuals. Software products may be developed for a particular customer or may be developed for a general market.
What is software engineering? Software engineering is an engineering discipline that is concerned with all aspects of software production. Software engineers should adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available.
What is the difference between software engineering and system engineering? System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Software engineering is part of this process concerned with developing the software infrastructure, control, applications and databases in the system. System engineers are involved in system specification, architectural design, integration and deployment.
The role of the Software Engineer: A Software Engineer must be a good programmer, be well versed in data structures and algorithms, and be fluent in one or more programming languages. A Software Engineer is a member of team and he needs communication skills, and ability to schedule works.
What is a software process? A set of activities whose goal is the development or evolution of software. Generic activities in all software processes are: Specification - what the system should do and its development constraints Development - production of the software system Validation - checking that the software is what the customer wants Evolution - changing the software in response to changing demands.
What is a software process model? A simplified representation of a software process, presented from a specific perspective. Examples of process perspectives are Workflow perspective - sequence of activities; Data-flow perspective - information flow; Role/action perspective - who does what. Generic process models Waterfall; Iterative development; Component-based software engineering.
The software life cycle: A sample waterfall life cycle model comprises the following phases: Requirement analysis and specification: Identify and document the exact requirements for the system. System design and Specification: Design a software system to meet the requirements Architectural design and detailed design. Coding and module testing: Produce the code that will be delivered to the customer. The code are tested before being delivered to the next phase.
The software life cycle: Integration and system testing All the modules that have been developed before and tested individually are put together integrated- and are tested as a whole system. Delivery and maintenance The system delivered to the customer. Modifications made to the system after the initial delivery.