SE1

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 6

SOFTWARE ENGINEERING I

Grading Policy
1. Mid Term 2. Final Term 3. Quizzes 4. Assignments 5. Class Attendance + Class participation 6. Project

(Total Points: 60)


18 30 3 3 2 4

Lecture No. 1 & 2


Objectives
1. What is software? 2. What is Science & Engineering? 3. What is Software engineering? 4. History of Software Engineering 5. What is the difference between software engineering and system engineering? 6. Role software engineer 7. Software Engineering methods 8. Software Specification 9. CASE (computer-aided software engineering) 10. Attributes of a good Software

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
Barani Institute of Information Technology (BIIT-UAAR Rawalpindi) Page 1

SOFTWARE ENGINEERING I
Generic - developed to be sold to a range of different customers Bespoke (custom) - developed for a single customer according to their specification

What is Science & Engineering?


Science: Science is an intellectual activity carried on by humans that is designed to discover information about the natural world in which humans live and to discover the ways in which this information can be organized into meaningful patterns. A primary aim of science is to collect facts (data). Science involves more than the gaining of knowledge. It is the systematic and organized inquiry into the natural world and its phenomena. Science is about gaining a deeper and often useful understanding of the world. Engineering: Engineering is the discipline, art, skill, profession and technology of acquiring and applying scientific, mathematical, economics, social and practical knowledge in order to design and build structures, machines, devices, system, materials and processes.

What is software engineering?


1. Software engineering is an engineering discipline which is concerned with all aspects of software production. 2. Software engineers should adopt a systematic and organized approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available

History of Software Engineering


In the early days of computing, the problem of programming was viewed essentially as how to place a sequence of instructions together to get the computer to do something useful. 1. The problems being programmed were quite well understood- for example how to solve a differential equation. 2. The problem was just between the user and the computer no other person was involved.
Barani Institute of Information Technology (BIIT-UAAR Rawalpindi) Page 2

SOFTWARE ENGINEERING I
3. In the late 1950s, higher level languages were invented to make it easier to communicate with the machine and it was the time when programming attained the status of a profession: you could ask a programmer to write a program for you instead of doing it yourself. This introduced a separation between the user and computer. Now the user has to specify the task in a form other than the precise programming notation used before Very few larger software projects were being done in the early 1960s and these were done by computer pioneers who were experts

4. In the middle to late 1960s, truly large software systems were attempted commercially. The best documented of these projects was the OS 360 operating system for the IBM 360 computer family. 5. The term Software Engineering was invented around this time and conferences were held to discuss the difficulties these projects were facing in delivering the promised products. 6. It was discovered that the problems in building the large software systems were not a matter of putting computer instructions together rather: 7. People on the project had to spend a lot of time communicating with each other rather than writing code. 8. People sometimes even left the project, and this not only affected their work but also the work of the others who were depending on them. 9. Many solutions were proposed and tried. Some suggested that the solution lay in better management techniques. 10. Other proposed different team organizations. Yet other argued for better languages and tools. 11. The final consensus was that the problem of building software should be approached in the same way that engineers had built other large complex systems such as bridges, refineries, factories, ships and airplanes. 12. The engineering approach required management, organization, tools, methodologies and techniques. And thus was software engineering born.

What is the difference between software engineering and computer science?


Barani Institute of Information Technology (BIIT-UAAR Rawalpindi) Page 3

SOFTWARE ENGINEERING I
1. Computer science is concerned with theory and fundamentals where as software engineering is concerned with the practicalities of developing and delivering useful software 2. Computer science theories are currently insufficient to act as a complete underpinning for software engineering

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 more general process.

Key challenges facing software engineering


1. 2. 3.

Coping with increasing diversity Demands for reduced delivery times Developing trustworthy software.

Role software engineer


Programming skill not enough : Software engineering involves "programming- in the large"
1. 2. 3. 4. 5. 6.

Understand requirements and write specifications Derive models and reason about them Master software Operate at various abstraction levels Communication skills Management skills

What is a software process?


A set of activities whose goal is the development or evolution of software

What are the costs of software engineering?


Barani Institute of Information Technology (BIIT-UAAR Rawalpindi) Page 4

SOFTWARE ENGINEERING I
1. Roughly 60% of costs are development costs, 40% are testing costs. For custom software, evolution costs often exceed development costs 2. Costs vary depending on the type of system being developed and the requirements of system attributes such as performance and system reliability 3. Distribution of costs depends on the development model that is used

What are software engineering methods?


Model descriptions Descriptions of graphical models which should be produced Rules Constraints applied to system models Recommendations Advice on good design practice Process guidance What activities to follow

Software specification
1.

The process of establishing what services are required and the constraints on the systems operation and development

2.

Requirements engineering process a. Feasibility study b. Requirements elicitation and analysis c. Requirements specification d. Requirements validation

What is CASE (Computer-Aided Software Engineering) ?


Software systems which are intended to provide automated support for software process activities. CASE systems are often used for method support
Barani Institute of Information Technology (BIIT-UAAR Rawalpindi) Page 5

SOFTWARE ENGINEERING I
1. Upper-CASE Tools to support the early process activities of requirements and design. 2. Lower-CASE Tools to support later activities such as programming, debugging and testing.

What are the attributes of good software?


The software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable 1. Maintainability Software must evolve to meet changing needs 2. Dependability Software must be trustworthy 3. Efficiency Software should not make wasteful use of system resources 4. Usability Software must be usable by the users for which it was designed

Barani Institute of Information Technology (BIIT-UAAR Rawalpindi)

Page 6

You might also like