Lec1 Software Engineering
Lec1 Software Engineering
❑ 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)