Fundamental of Software Engineering CSE 3205 Chapter 1 PDF
Document Details
Uploaded by AdjustableHyperbola
Arba Minch University
Tags
Related
Summary
This document details chapter 1 of a course on Fundamental of Software Engineering. It provides a concise introduction to software, its different types, and the concepts of software engineering. It includes aspects such as the definition of software, its relationship to computer science, the software crisis, and the challenges of software development.
Full Transcript
Fundamental of Software Engineering CSE 3205 Chapter- One Introduction 1 Software is a set of instructions, data, or. programs used to operate a computer and execute specific tasks. In simpler terms, it tells a computer how to fu...
Fundamental of Software Engineering CSE 3205 Chapter- One Introduction 1 Software is a set of instructions, data, or. programs used to operate a computer and execute specific tasks. In simpler terms, it tells a computer how to function. It’s a generic term used to refer to applications, scripts, and programs that run on devices. such as PCs, mobile phones, tablets, and other smart devices. out software, most computers would be useless. For example, a web browser is a software 2 Engineering Engineering is all about developing a product using well defind scientific principle and methods. Software engineering is branch of engineering that develop a software product using scientific principle , methods and procedure. The outcome of software engineering is reliable and efficient software product. 3 What is software? Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market Software products may be Generic - developed to be sold to a range of different customers Bespoke (custom) - developed for a single customer according to their specification 4 Programs versus Software Products Usually small in size Large Author himself is sole Large number of user users Single developer Lacks proper user Team of developers interface Well-designed Lacks proper interface documentation Ad hoc development. Well documented & user-manual prepared Systematic development 5 I. What is Software Engineering? Software Engineering is the process of designing, developing, testing, and maintaining software. It is a systematic and disciplined approach to software development that aims to create high- quality, reliable, and maintainable software. Software engineering is a modeling activity. Software engineering is a problem-solving activity. Software engineering is a knowledge acquisition activity. Software engineering is a rationale-driven activity. 6 Cont.. 1. Modeling Activity: A model is an abstract representation of a system that enables us to answer questions about the system. Software engineers deal with complexity through modeling, by focusing at any one time on only the relevant details and ignoring everything else. Models are useful when dealing with systems that are too large, too small, too complicated, or too expensive to experience firsthand. 7 Cont… 2. Problem solving Engineering is a problem-solving activity. It is not algorithmic. In its simplest form, the engineering method includes five steps: 1. formulate the problem 2. analyze the problem 3. Design 4. Implement to decide on the appropriate solution 5. Deploy specify the solution 8 Cont… 3. Knowledge acquisition In modeling the application and solution domain, software engineers collect data, organize it into information, and formalize it into knowledge. A common mistake that software engineers and managers make is to assume that the acquisition of knowledge needed to develop a system is linear. 9 Why Study Software Engineering? (1) To acquire skills to develop large programs. Ability to solve complex programming problems To acquire skills to be a better programmer Finally to develop quality software product 10 Software Crisis The cost of maintaining software was as expensive as developing the software. A Projects were running overtime not finish based on the schedule. A Software was very inefficient. The quality of the software was low quality. Software did not meet user requirements. Non-optimal resource utilization(like budget) Challenging to debug, maintain and update software 11 What is the difference between software engineering and computer science? Computer Science Software Engineering is concerned with theory the practicalities of developing fundamentals and delivering useful software Algorithms, data structures, SE deals with practical problems in complexity theory, numerical complex software products methods. 12 Software Engineering Body of Knowledge Source: http://www.sei.cmu.edu/pub/documents/99.reports/pdf/99tr004.pdf 13 What is a software process? SP is a set of activities whose goal is the development or evolution of software Fundamental activities in all software processes are: Specification - what the system should do and its development constraints Development - production of the software system (design and implementation) Validation - checking that the software is what the customer wants Evolution - changing the software in response to changing demands 15 What are the attributes of good software? Maintainability Software must evolve to meet changing needs Dependability Software must be trustworthy Efficiency Software should not make wasteful use of system resources Usability Software must be usable by the users for which it was designed 16 17 What are the key challenges facing software engineering? Software engineering in the 21 st century faces three key challenges: Legacy systems Old, valuable systems must be maintained and updated Heterogeneity Systems are distributed and include a mix of hardware and software Delivery There is increasing pressure for faster delivery of software 18 Thank You! Q? 19