Software Engineering 1 Lecture 2 - PDF
Document Details
Uploaded by LuminousWilliamsite981
Dr. Nesma Mahmoud
Tags
Summary
This is a lecture from a Software Engineering 1 course focused on the introduction to software and software engineering. It covers topics such as software crisis and software types, including generic and customized software products.
Full Transcript
Software Engineering 1 Dr. Nesma Mahmoud Lecture 2 (Undergradu ate – FAI- Level 2) An Introductio n to Software 2 Hint This lecture is based on “Chapter 1 Introduction” from the book namely “Software Engineering...
Software Engineering 1 Dr. Nesma Mahmoud Lecture 2 (Undergradu ate – FAI- Level 2) An Introductio n to Software 2 Hint This lecture is based on “Chapter 1 Introduction” from the book namely “Software Engineering, 10th Edition by Ian Sommerville” This lecture is based on “Chapter 2 Software processes” from the book namely “Software Engineering, 10th Edition by Ian Sommerville” Why we need SWE? Software Statistics Software Crisis A software crisis is a mismatch between what software can deliver and the capacities of computer systems, as well as expectations of their users. This became a growing problem in the 20th century Pressure to produce complex, advanced code can be a significant 6 contributor to a software crisis. Software Crisis Symptoms Why is the Statistics so Bad ? How is software usually constructed… The Solution Software Engineering 1 0 Recall, Software Engineering is … Software engineering is the application of scientific principles to the design and creation of software. The field uses a systematic approach to collect and analyze business requirements in order to design, build, and test software applications to satisfy those business requirements. Software Engineering Software engineers use their talents in engineering, mathematics, and computing to design and develop software that solves real-world problems for their users. If you’re an analytical thinker who enjoys problem solving, software engineering might be the career for you! Job Opportunities & Skillset in Software Engineering Software Engineering Tasks A Day in the Life of a Software Engineer Skills Required for Software Engineering (what is hard skills?) Skills Required for Software Engineering (what is hard skills?) Commonly required hard skills in the software engineering sphere include: Programming languages Version control Cloud computing, Testing and debugging Monitoring, troubleshooting Agile development Database architecture. Skills Required for Software Engineering (what is Soft skills?) Career Paths in Software Engineering Software Engineering Job Titles Software Engineering Jobs & Salaries Software Types Software products Generic products Stand-alone systems that are marketed and sold to any customer who wishes to buy them. Examples – PC software such as graphics programs, project management tools; CAD software; software for specific markets such as appointments systems for dentists. Customized products Software that is commissioned by a specific customer to meet their own needs. Examples – embedded control systems, air traffic control software, traffic monitoring systems. 30/10/2014 Chapter 1 Introduction 23 Software products Generic products The specification of what the software should do is owned by the software developer and decisions on software change are made by the developer. Customized products The specification of what the software should do is owned by the customer for the software and they make decisions on software changes that are required. 30/10/2014 Chapter 1 Introduction 24 Software Types Software Types Software Process & SDLC The Software Development Life Cycle (SDLC) Software Processes A software process encompasses the broader methodology and workflow adopted to develop, deliver, and maintain software products. It includes SDLC but also covers additional aspects such as project management practices, quality assurance, and development methodologies like Agile or Waterfall. Software processes vs SDLC Focus and Scope SDLC: Focuses primarily on the technical phases of software development, from concept to maintenance. Software Process: Encompasses the entire project lifecycle, including methodologies, management, and quality control. Objectives SDLC: Aims to provide a clear, structured path for developing software. Software Process: Aims to establish a comprehensive framework for managing software development efficiently and effectively. Software processes vs SDLC Components SDLC: Involves specific stages like planning, design, development, testing, deployment, and maintenance. Software Process: Includes SDLC stages plus additional aspects like project management and quality assurance. Flexibility SDLC: Often follows a linear or iterative approach based on project requirements. Software Process: Offers flexibility to adapt methodologies and practices to suit different projects and teams. Examples SDLC: Waterfall, V-Model, Spiral, Iterative. Software Process: Agile, Scrum, DevOps, Lean Software Development. The software process A structured set of activities required to develop a software system. Many different software processes but all involve: Specification – defining what the system should do; Design and implementation – defining the organization of the system and implementing the system; Validation – checking that it does what the customer wants; Evolution – changing the system in response to changing customer needs. A software process model is an abstract representation of a process. It presents a description of a process from some particular perspective. 30/10/2014 Chapter 2 Software Processes 32