You are on page 1of 11

Chapter One

Software Engineering Overview


 FAQs about software engineering
 Software:- Software is considered to be collection of executable
programming code, associated libraries and documentations.
 Software, when made for a specific requirement is called software
product.
 It can be developed for a particular customer or may be developed
for a general market.
 Generic - developed to be sold to a range of
different customers e.g. PC software such as Excel
or Word.
 Bespoke (custom) - developed for a single
customer according to their specification

1
Cont…
 Software engineering:- is an engineering branch associated
with development of software product using well-defined scientific
principles, methods and procedures. It is the science and art of
building significant software systems that are:
1) on time
2) on budget
3) with acceptable performance
4) with correct operation.
 What are the attributes of good software?
Good software should deliver the required functionality and
performance to the user and should be maintainable,
dependable and usable.

2
Essential Software Product Attributes

Product characteristic Description

Maintainability Software should be written in such a way so that it can evolve to meet the
changing needs of customers. This is a critical attribute because software
change is an inevitable requirement of a changing business environment.

Dependability and security Software dependability includes a range of characteristics including


reliability, security and safety. Dependable software should not cause
physical or economic damage in the event of system failure. Malicious
users should not be able to access or damage the system.

Efficiency Software should not make wasteful use of system resources such as
memory and processor cycles. Efficiency therefore includes
responsiveness, processing time, memory utilisation, etc.

Acceptability Software must be acceptable to the type of users for which it is designed.
This means that it must be understandable, usable and compatible with
other systems that they use.

3
Cont…
 What are the fundamental software engineering activities?
 Software specification,
 Software development,
 Software validation and
 Software evolution.
 What is the difference between software engineering and
computer science?
Computer science focuses on theory and fundamentals; software engineering
is concerned with the practicalities of developing and delivering useful
software.
 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.
4
Cont…
 What are the key challenges facing software engineering?
Coping with increasing diversity, demands for reduced
delivery times and developing trustworthy software.

5
Professional and Ethical responsibility
 Professional Ethics
 Categories:
▪ Medical,
▪ Legal,
▪ Accounting,
▪ Computer,
▪ …and more.

6
Cont…

 Computer Ethics
 Special Responsibilities Facing Computer
Professionals and Users
▪ Maintaining relationships with and responsibilities
toward customers, clients, coworkers, employees, and
employers.
▪ Making critical decisions that have significant
consequences for many people.
▪ Determining how to manage, select, or use computers
in a professional setting.

7
Professional Codes

 Professional Codes
 ACM and IEEE CS
▪ Software Engineering Code of Ethics and Professional Practice
 ACM
▪ ACM Code of Ethics
 Ethical Behaviors Expected of the Computer
Professional:
▪ Honest and fair; respects confidentiality; maintains
professional competence; understands relevant laws; respects
and protection of personal privacy; avoids harming others; and
respects property rights.

8
Cont…

 Additional Guidelines for the Computer


Professional
 Understand Success
▪ Understand what success means—developers
(especially) and users of computer systems must see
beyond simply writing code to complete a task.
 Design for Real Users
▪ To provide useful systems, real users must be included
in the design stage.

9
Cont…

 Thorough Planning and Scheduling


▪ Pay attention to details—do a thorough and careful
job when planning and scheduling a project and when
writing bids.
 Test With Real Users
▪ To provide safe systems, real users must be included
in the testing stage.

10
Cont…
 Evaluate Re-use of Software
▪ Don’t assume existing software is safe and re-usable.
 Candidness
▪ Be open and honest about capabilities, safety, and
limitations of software.
 Protect
▪ Require a convincing case for safety.

11

You might also like