0% found this document useful (0 votes)
27 views4 pages

Lec1 Software Engineering

The document discusses what software engineering is, its key activities, costs, products, issues, diversity and tools. Software engineering is concerned with all aspects of software production from specification through maintenance. The economics of developed nations depend on software and more systems are software controlled. Development, validation, and evolution are fundamental activities.

Uploaded by

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

Lec1 Software Engineering

The document discusses what software engineering is, its key activities, costs, products, issues, diversity and tools. Software engineering is concerned with all aspects of software production from specification through maintenance. The economics of developed nations depend on software and more systems are software controlled. Development, validation, and evolution are fundamental activities.

Uploaded by

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

Lec 1

Why Software Engineering?


▪Software engineering: is 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 economics of all developed nations are dependent on software.
▪More and more systems are software controlled.
What is software?
Computer programs and associated documentation.
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.
What are the fundamental software engineering activities?
1. Software specification, where customers and engineers define the software that is to be
produced and the constraints on its operation.
2. Software development, where the software is designed and programmed.
3. Software validation, where the software is checked to ensure that it is what the customer
requires.
4. Software evolution, where the software is modified to reflect changing customer and market
requirements.
Software Costs
▪Roughly 60% of software costs are development costs; 40% are testing costs.
For custom software, evolution costs often exceed development costs.
▪For systems with a long life, maintenance costs may be several times development costs.
▪The costs of software on a PC are often greater than the hardware cost.
▪Software costs often control computer system costs.
▪Software engineering is concerned with cost-effective software development
Software Products
Generic Products: stand-alone systems that are produced by a development organization and
sold on the open market to any customer who is able to buy them.
Examples of this type of product include software for PCs such as databases, word processors,
drawing packages, and project-management tools.
Customized Products: These are systems that are commissioned by a particular customer.
A software contractor develops the software especially for that customer.
General issues that affect many different types of software
Heterogeneity
Increasingly, systems are required to operate as distributed systems across networks that
include different types of computer and mobile devices.
Business and social change
Business and society are changing incredibly quickly as emerging economies develop and new
technologies become available.
They need to be able to change their existing software and to rapidly develop new software.
Security and trust
As software is intertwined with all aspects of our lives, it is essential that we can trust that
software.
We have to make sure that malicious users cannot attack our software and that information
security is maintained.
Software Engineering Diversity

❑ There are no universal software engineering methods and techniques that are suitable for all
systems and all companies.

❑ Perhaps the most significant factor in determining which software engineering methods and
techniques are most important is the type of application that is being developed.
❑ There are many different types of application including:
• Stand-alone applications
These are application systems that run on a local computer, such as a PC.
They include all necessary functionality and do not need to be connected to a network.
Examples of such applications are office applications on a PC, CAD programs, photo
manipulation software, etc.
• Interactive transaction-based applications
These are applications that execute on a remote computer and that are accessed by users from
their own PCs or terminals.
These include web applications such as e-commerce applications where you can interact with a
remote system to buy goods and services.
They often incorporate a large data store that is accessed and updated in each transaction such
as internet banking.
• Embedded control systems
These are software control systems that control and manage hardware devices.
Examples of embedded systems include the software in a mobile (cell) phone, software that
controls anti-lock braking in a car, central heating systems, and software in a microwave oven to
control the cooking process.
• Batch processing systems.
Business systems that are designed to process data in large batches.
They process large numbers of individual inputs to create corresponding outputs.
Examples include periodic billing systems, such as phone billing systems, and salary payment
systems.
• Entertainment systems
These are systems that are primarily for personal use and which are intended to entertain the
user. e.g., games.
• Systems for modeling and simulation
systems that are developed by scientists and engineers to model physical processes or
situations.
• Data collection systems
These are systems that collect data from their environment using a set of sensors and send that
data to other systems for processing.
• Systems of systems
These are systems that are composed of a number of other software systems. Some of these
may be generic software products, such as a spreadsheet program. Other systems in the
assembly may be specially written for that environment.
▪ The boundaries between these system types are blurred.
▪ If you develop a game for a mobile (cell) phone, you have to take into account the same
constraints (power, hardware interaction) as the developers of the phone software.
▪ Batch processing systems are often used in conjunction with web-based systems.
Case Study
A personal insulin pump.
An embedded system in an insulin pump is used by diabetics to maintain blood glucose control.
A mental health case patient management system
An information system used to maintain records of people receiving care for mental health
problems.
A wilderness weather station
A data collection system that collects data about weather conditions in remote areas.
Software Engineering Tools
Requirement Management: Enterprise Architect (Sparx) , IBM Rational
Development: Visual Studio , Eclipse
Testing: Team Foundation Server (Microsoft) , HP Quality Server (HP)
Software Configuration: Team Foundation Server (Microsoft)
Project Management: Enterprise Project Management (Microsoft)

You might also like