0% found this document useful (0 votes)
66 views15 pages

CH 1

Uploaded by

migad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
66 views15 pages

CH 1

Uploaded by

migad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 15

Software Engineering Overview

Chapter 1

1
FAQs about software engineering

 What is software
 What is software engineering?
 What is a software process?
 What is a software process model?
 What are the costs of software engineering?
 What are software engineering methods?
 What is CASE (Computer-Aided Software Engineering)
 What are the attributes of good software?
2
 What are the key challenges facing software
engineering?
Software costs

 Software costs often dominate computer system


costs.

 Software costs more to maintain than it does to


develop. For systems with a long life,
maintenance costs may be several times
development costs.
 Software engineering is concerned with cost-
effective software development.
3
What is software?
 Computer programs and associated documentation such
as requirements, design models and user manuals.
 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
e.g. PC software such as Excel or Word.
• Custom - developed for a single customer according
to their specification.
 New software can be created by developing new
programs, configuring generic software systems or
reusing existing software.

4
What is software engineering?

Software engineering is an engineering discipline
that is concerned with all aspects of software
production.

Software engineers should adopt a systematic
and organised approach to their work and use
appropriate tools and techniques depending on
the problem to be solved, the development
constraints and the resources available.

5
What is a software process?

 A set of activities whose goal is the development


or evolution of software.
 Generic activities in all software processes are:
• Specification - what the system should do and its
development constraints
• Development - production of the software system
• Validation - checking that the software is what the
customer wants
• Evolution - changing the software in response to
changing demands.

6
Who does software engineering?

7
What is a software process model?

 A simplified representation of a software process,


presented from a specific perspective.
 Examples of process perspectives are
• Workflow perspective - sequence of activities;
• Data-flow perspective - information flow;
• Role/action perspective - who does what.
 Generic process models
• Waterfall;
• Iterative development;
• Spiral Model

8
What are the costs of software engineering?

• Cost estimation in software engineering is typically


concerned with the financial spend on the effort to
develop and test the software.
• This can also include requirements review,
maintenance, training, managing and buying extra
equipment, servers and software.
• Roughly 60% of software costs are development
costs, 40% are testing costs.
• For custom software, evolution costs often exceed
development costs. 9
What is CASE (Computer-Aided Software
Engineering)

 Software systems that are intended to provide automated


support for software process activities.
 CASE systems are often used for method support.
 Upper-CASE
• Tools to support the early process activities of requirements
and design;
 Lower-CASE
• Tools to support later activities such as programming,
debugging and testing.

• There are number of CASE tools available to simplify various stages


of Software Development Life Cycle
• such as Analysis tools, Design tools, Project management 10 tools,
Database Management tools, Documentation tools
21
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 acceptable.
 Maintainability
• Software must evolve to meet changing needs;
 Dependability
• Software must be trustworthy;
 Efficiency
• Software should not make wasteful use of system resources;
 Acceptability
• Software must accepted by the users for which it was designed.
This means it must be understandable, usable and compatible
with other systems. 11
What are the key challenges facing software
engineering?

 Heterogeneity, delivery and trust.


 Heterogeneity
• Developing techniques for building software that can cope with
heterogeneous platforms and execution environments;
 Delivery
• Developing techniques that lead to faster delivery of software;
 Trust
• Developing techniques that demonstrate that software can be
trusted by its users.

12
Professional and ethical responsibility

 Software engineering involves wider


responsibilities than simply the application of
technical skills.
 Software engineers must behave in an honest
and ethically responsible way if they are to be
respected as professionals.
 Ethical behaviour is more than simply upholding
the law.

13
Issues of professional responsibility

 Confidentiality
• Engineers should normally respect the confidentiality
of their employers or clients irrespective of whether
or not a formal confidentiality agreement has been
signed.
 Competence
• Engineers should not misrepresent their level of
competence. They should not knowingly accept work
which is outwith their competence.

14
Issues of professional responsibility

 Intellectual property rights


• Engineers should be aware of local laws governing the use of
intellectual property such as patents, copyright, etc. They
should be careful to ensure that the intellectual property of
employers and clients is protected.
 Computer misuse
• Software engineers should not use their technical skills to
misuse other people’s computers. Computer misuse ranges
from relatively trivial (game playing on an employer’s machine,
say) to extremely serious (dissemination of viruses).

15

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy