Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

software categorises, Lecture notes of Engineering Science and Technology

Introduction to software engineering

Typology: Lecture notes

2018/2019

Uploaded on 02/21/2019

johnan
johnan 🇺🇬

1 document

1 / 41

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
CSC 2201: Software Engineering
Lecture One:
Introduction to Software Engineering
Sifudu Peter Masige
Peter.masige100@gmail.com
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29

Partial preview of the text

Download software categorises and more Lecture notes Engineering Science and Technology in PDF only on Docsity!

CSC 2201: Software Engineering

Lecture One:

Introduction to Software Engineering

Sifudu Peter Masige Peter.masige100@gmail.com 1

Learning Outcomes

Understand what software

engineering is and why it is

important;

 Understand that the development of

different types of software;

Understand some ethical and

professional issues that are

important for software engineers;

What is Software engineering?

The economies of ALL developed nations are

dependent on software.

More and more systems are software controlled.

Lots of people write programs.

People in business write spreadsheet programs

to simplify their jobs, scientists and engineers

write programs to process their experimental

data.

The vast majority of software development is a

professional activity where software is

developed for specific business purposes, e.g.,

software products such as information systems,

CAD systems, etc.

What is Software

engineering?

Professional software, intended for use

by someone apart from its developer, is

usually developed by teams rather than

individuals.

 It is maintained and changed throughout

its life.

 Software engineering is concerned

with theories, methods and tools for

professional software development.

Software products

Generic products

◦Stand-alone systems that are marketed and sold to

any customer who wishes to buy them.

◦Examples include: PC software such as graphics

programs, project management tools; CAD software;

software for specific markets such as appointments

systems for dentists, POS systems.

Customized products

◦Software that is commissioned by a specific customer

to meet their own needs.

◦Examples include: control systems for electronic

devices , air traffic control software, systems to

support business processes

Product specification

Generic products

◦The specification of what the software

should do is owned by the software

developer and decisions on software

change are made by the developer.

Customized products

◦The specification of what the software

should do is owned by the customer for

the software and they make decisions

on software changes that are required.

Essential attributes of good software 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.

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.

Engineering discipline

◦Using appropriate theories and methods to solve

problems bearing in mind organizational and

financial constraints.

All aspects of software production

◦Not just technical process of development. Also

project management and the development of tools,

methods etc. to support software production.

Software process activities

A software process is a sequence of activities that leads to the production of a software product. There are four fundamental activities that are common to all software processes. Software specification, where customers and engineers define the software that is to be produced and the constraints on its operation. Software development, where the software is designed and programmed. Software validation, where the software is checked to ensure that it is what the customer requires. Software evolution, where the software is modified to reflect changing customer and market requirements.

General issues that affect most 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.

Especially for software accessed through a web page.

Application types

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.

Interactive transaction-based applications

◦Applications that execute on a remote computer and are accessed by users from their own PCs or terminals. These include web applications such as e-commerce applications.

Embedded control systems

◦These are software control systems that control and manage hardware devices.

Application types

Batch processing systems

◦These are business systems that are designed to process data in large batches. They process large numbers of individual inputs to create corresponding outputs.

Entertainment systems

◦These are systems that are primarily for personal use and which are intended to entertain the user.

Systems for modeling and simulation

◦These are systems that are developed by scientists and engineers to model physical processes or situations, which include many, separate, interacting objects.

Software engineering fundamentals Some fundamental principles apply to all types of software system, irrespective of the development techniques used:

◦Systems should be developed using a managed and

understood development process. Of course, different

processes are used for different types of software.

◦Dependability and performance are important for all

types of system.

◦Understanding and managing the software

specification and requirements (what the software

should do) are important.

◦Where appropriate, you should reuse software that

has already been developed rather than write new

software.

Software engineering and the web The Web is now a platform for running applications. Organizations are increasingly developing web-based systems rather than local systems. Web services allow application functionality to be accessed over the web. Cloud computing is an approach to the provision of computer services where applications run remotely on the ‘cloud’. ◦Users do not buy software but pay according to use.