[go: up one dir, main page]

0% found this document useful (0 votes)
9 views19 pages

SE Nguc Chap 1

Download as pdf or txt
Download as pdf or txt
Download as pdf or txt
You are on page 1/ 19

1.

Introduction to Software Engineering

o What is software ?
• Instructions (computer programs) that when executed provide
desired function and performance, and

• Documents that describe the operation and use of the programs

Therefore, Computer programs + documentation.

o What is software Engineering ?


• The application of a systematic, disciplined, quantifiable approach
to the development, operation, and maintenance of software

• The application of Engineering to software.


…Introduction

What is software Engineering?


• Software Engineering is the science and art of building significant
software systems that are on time, on budget and with acceptable
performance, correct operation.

• An engineering discipline that is concerned with all aspects of


software production from the early stages of system specification
through to maintaining the system after it has gone into use.

• The application of a systematic, disciplined, quantifiable


approach to the development, operation, and maintenance of
software; that is, the application of engineering to software. ƒ
(IEEE), issued in 1993.
…Introduction

o Categories:
• Generic Products: that are marketed and sold to any customer who
wishes to buy them.
Examples – graphics programs, project management tools; CAD
software
• 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.
…Introduction

o Types of Software:
• System Software :compiler, operating systems
• Real-time Software
• Business Software
• Engineering and Scientific Software
• Embedded Software-:
• AI Software: Expert systems, pattern recognition, games
• Internet Software :search engine, browser, e-commerce software,
• Data collection systems
• Batch processing systems
…Introduction

o Software Characteristics
• It is a product, but also a vehicle for delivering a product.

• Software is a logical rather than a physical system element.

• Software is developed or engineered, it is not manufactured


Software doesn’t “wear out”.

• Most software is custom-built, rather than being assembled

• Software is intangible /hard to understand devt Cost/

• Software is easy to reproduce/Cost is in its devt/

• The industry is labor-intensive/Hard to automate/


… Introduction

o Software Costs
• The economies of ALL developed nations are dependent on
software.
• More and more systems are software controlled
• Expenditure on software represents a significant fraction of
GNP in all developed countries.
• Software costs often dominate computer system costs.
• Software costs more to maintain than it does to develop.
• Software engineering is concerned with cost-effective software
development.
…Introduction

o History of Software development


• In the 1950's, SE was deemphasized as it cover 20% of all.

• Started in 1968 at a conference to discuss “Software crisis”.

• Individual / ad hoc approaches result in costly, unreliable, late.

• In 1968, a NATO report coined the term "software engineering“.

• By the 1980's the software cost of a system had risen to 80%.

• Engineering approach(SP, OOP) are devised.


…Introduction

o Stake holders in SE
• Users: those who use

• Customers: who pay

• Software developers: who develops

• Development Managers
…Introduction

o Stake holders in SE
Introduction to …Introduction
Software Engineering/Unit-1

o PAttributes of a good software


• Usability: Users can learn it fast and get their job done easily

• Efficiency: It doesn’t waste resources / CPU time and memory/

• Reliability It does what it is required to do without failing

• Maintainability: It can be easily changed

• Reusability: Its parts can be used in other projects, so


reprogramming is not needed

o Each can conflict; In an increase efficiency can reduce


maintainability or reusability and vice versal
…Introduction

o Related Disciplines/Terms with SE:


• SE: The practical of developing and delivering useful software

• CS: theories and fundamental

• System Engineering: is concerned with all aspects of computer-


based systems development including hardware, software.

• Programming: The process of translating a problem from its


physical environment into a language that a computer can understand
and obey
..Introduction

o Major Goals of SE:


• To increase software productivity and quality.

• To effectively control software schedule and planning

• To effectively control software schedule and planning.

• To reduce the cost of software development.

• To meet the customers’ needs and requirements.

• To enhance the conduction of software engineering process.

• To improve the current software engineering practice.

• To support the engineers’ activities in a systematic and efficient


manner.
..Introduction

o Objectives of SE:
• Identify new problems and solutions in software production.

• Study new systematic methods, principles, approaches for system


analysis, design, implementation, testing and maintenance.

• Provide new ways to control, manage, and monitor software process

• Build new software tools and environment to support software


engineering.
..Introduction

o Software Engineering is a layered Technology


• Quality: Which fosters a continuous process improvement.
• Process :Defines a framework with set of activities for effective
delivery of Computer software.
• Method: Provides technical how-to’s for building software.
• Tools :Provide automated support for process and methods
… Introduction

o Software Crisis in SE
• The "software crisis" refers to a time in the software development
field when increasing hardware capabilities allowed for significantly
more complex programs to be built.
• It was challenging to build and maintain such new programs
because little methodology had been used in the past, resulting in
numerous project failures.
• Methodology such as structured or top-down design was introduced
to combat this crisis.
… Introduction

o Challenges SE:
• Software is not delivered on time

• Software is over budget (usually by a factor of 2 or more)

• Software is too complex.

• Software is unmaintainable

• Software is inefficient, due to poor design, documentation

• Software is unreliable
…Introduction

o Ethics and professional Practice in SE


• Confidentiality You should normally respect the confidentiality of your
employers or clients irrespective of whether or not a formal confidentiality
agreement has been signed.

• Competence You should not misrepresent your level of competence.


You should not knowingly accept work that is outside your competence.

• Intellectual property rights You should be aware of local laws


governing the use of intellectual property such as patents and copyright.
Computer misuse  You should not use your technical skills to misuse
other people’s computers like game playing on an employer’s machine,
dissemination of viruses ).
…Introduction

o Fundamental software engineering activities


• Specification: Set out the requirements and constraints.

• Design: Produce the model of the system

• Development: Build the system

• Test: Check the system meets the required spec.

• Maintaince:
Summary

o Software engineering is an engineering discipline that is concerned


with all aspects of software production.

o Software is not just a program or programs but also includes


documentation.

o Essential software product attributes are maintainability, dependability,


security, efficiency, and acceptability.

o Fundamental SE activities are specification, design,development,test

o Software engineers have responsibilities to the engineering


profession and society. They should not simply be concerned with
technical issues.

You might also like