0% found this document useful (0 votes)
29 views12 pages

Lecture 1 - Introduction(1)

The document provides an introduction to software engineering, covering fundamental concepts such as the software development life cycle, requirement engineering, and software testing. It outlines the definition, importance, and essential attributes of good software, emphasizing the need for reliability, maintainability, and efficiency. Additionally, it discusses software costs, ethics, and answers frequently asked questions about software engineering.

Uploaded by

charlottemia4561
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)
29 views12 pages

Lecture 1 - Introduction(1)

The document provides an introduction to software engineering, covering fundamental concepts such as the software development life cycle, requirement engineering, and software testing. It outlines the definition, importance, and essential attributes of good software, emphasizing the need for reliability, maintainability, and efficiency. Additionally, it discusses software costs, ethics, and answers frequently asked questions about software engineering.

Uploaded by

charlottemia4561
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/ 12

Introduction to Software Engineering

Instructor
Oyedeji A. I. Ph.D.

JAN 2025

Lecture 1
• Basic Concepts
• Software Development Life Cycle
• Requirement Engineering
• Software Design
• Software Testing
• Software Project Management
• Scheduling
• Risk Management

COURSE OUTLINE
What is Software?
The product that software professionals build and then support
over the long term.
Software encompasses:
(1) instructions (computer programs) that when executed
provide desired features, function, and performance;
(2) data structures that enable the programs to adequately store
and manipulate information;
(3) documentation that describes the operation and use of the
programs.
Software products
• Generic products
• Stand-alone systems that are marketed and sold to any customer
who wishes to buy them.
• Examples – PC software such as editing, graphics programs,
project management tools; CAD software; software for specific
markets such as appointments systems for dentists.
• Customized products
• Software that is commissioned by a specific customer to meet
their own needs.
• Examples – embedded control systems, air traffic control
software, traffic monitoring systems.
Software Applications
• 1. System software: such as compilers, editors, file management utilities
• 2. Application software: stand-alone programs for specific needs.
• 3. Engineering/scientific software: Characterized by “number crunching”algorithms. such
as automotive stress analysis, molecular biology, orbital dynamics etc
• 4. Embedded software resides within a product or system. (key pad control of a
microwave oven, digital function of dashboard display in a car)
• 5. Product-line software focus on a limited marketplace to address mass consumer
market. (word processing, graphics, database management)
• 6. WebApps (Web applications) network centric software. As web 2.0 emerges, more
sophisticated computing environments is supported integrated with remote database and
business applications.
• 7. AI software uses non-numerical algorithm to solve complex problem. Robotics, expert
system, pattern recognition game playing
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 Definition
The seminal definition:
Software engineering is the establishment and use of
sound engineering principles in order to obtain
economical software that is reliable and works
efficiently on real machines.

The IEEE definition:


Software Engineering: The application of a systematic,
disciplined, quantifiable approach to the development,
operation, and maintenance of software; that is, the
application of engineering to software.
Importance of Software Engineering
• More and more, individuals and society rely on advanced
software systems. We need to be able to produce reliable and
trustworthy systems economically and quickly.

• It is usually cheaper, in the long run, to use software


engineering methods and techniques for software systems
rather than just write the programs as if it was a personal
programming project. For most types of system, the majority of
costs are the costs of changing the software after it has gone
into use.
Importance of Software Engineering
• Large Software – As the size of software become large, SE
gives a scientific process.
• Scalability – SE principles helps with scalability of existing
systems.
• Cost – cost of software remains high if proper process is not
adapted.
• Quality Management – better process of software development
provides better and quality software product.
• Software Documentation and Management – results in better
software documentation and management.
Software costs
• Software costs often dominate computer system costs. The
costs of software on a PC are often greater than the hardware
cost.
• 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.
Software Engineering Ethics
• Confidentiality – Respect for the confidentiality of employers
or clients irrespective of whether or not a formal confidentiality
agreement was signed.

• Competence – Do not misrepresent your level of competence.


• Intellectual Property Rights – Awareness and adherence of
local laws governing the use of intellectual property such as
patients and copyright.
FAQ about software engineering

Question Answer

What is software? Computer programs, data structures and associated


documentation. Software products may be developed for
a particular customer or may be developed for a general
market.
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 is software engineering? Software engineering is an engineering discipline that is
concerned with all aspects of software production.
What is the difference between software Computer science focuses on theory and fundamentals;
engineering and computer science? software engineering is concerned with the practicalities
of developing and delivering useful software.
What is the difference between software System engineering is concerned with all aspects of
engineering and system engineering? computer-based systems development including
hardware, software and process engineering. Software
engineering is part of this more general process.

You might also like