1 SWE Lecture Notes Chap 1
1 SWE Lecture Notes Chap 1
College of Informatics
Department of Computer Science
Fundamentals of Software Engineering
Course Code:CoSc3061
05/27/23
1
Chapter-one
2 05/27/23
Reading Assignment- 1
3 05/27/23
What is software (SW)?
SW is: Not only programs.
But also all associated documentation, and
Configuration data that make these programs operate
correctly.
More specifically, a SW system consists of:
Number of Separate programs
Configuration files- Setting up these programs
System documentation- Describing the structure of the system
in good detail.
User documentation- Explaining how to use and operate the
system.
Disadvantage
Software is not scalable.
Its existence is felt when it is wrong. It is customer built.
The s/w engineer is not manufacturer/producer.
4 05/27/23
Two Classes of SW Products
SW Products: it is a product which is available in market for the user.
The demand of the product is based on its price, quality and durability.
when the demand of the customer changes, manufacturer need to
modify the design of their existing product time to time.
Generic products
stand-alone
systems that are produced by a development organization
sold on open market to any customer such as
Word processors,
Databases, Drawing packages and project mgt tools.
Custom or bespoke products
Developed for a single customer according to their specification .
E.g. Control systems for electronic devices
5 05/27/23
Software Crisis
The software crisis refers to a set of problem encounter
in the development of software.
It is also characterized by inability to develop software
on time, budget and within in the requirement.
Problem on Software Crisis
Schedule and cost estimate are inaccurate .
Productivity is not in place with demand of customer.
Duality of software is poor.
Low maintenance.
The communication between the user and developer is
not measurable.
6 05/27/23
Reasons for Software Crisis
The delaying of stages(analysis, design, coding, testing
and resulting out of schedule).
No proper methods to estimate software project.
No adequate principle of communication between
user and developer.
Compatibility software.
Portability.
Documentation staffing .
Software product updations.
Risk , cost effectiveness and maintenance e.t.c
7 05/27/23
Definition of Software Engineering (SWE)
SW engineering is an engineering discipline concerned
with all aspects of SW production starting from the
early stages of system specification through to the
maintenance of the system after it has started to be
used.
It is an approach to develop software.
It is a methodology that includes process methods tools
and techniques for the manufacturing of software product which is:
Timely produced, Cost effective, User-friendly, Portable, Reliable ,
maintainable and reusable.
8 05/27/23
Cont’d
Engineering Discipline:
İmplies solving a well-defined (or in SW engineering vaguely
defined) problem optimally using resources (e.g., time, man power
and machine power) and remaining within
Organizational (I.E., The Customer)
Financial, and Other Possible Constraints.
Engineering on the other hand, is all about developing
products, using well-defined, scientific principles and
methods .
Software engineering is a systematic approach for the
development, operation and maintenance of computer
software systems.
It is the process of designing and building something that
12 05/27/23
Differences between SWE and Computer Science (CS)
CS ...
... Computer science is concerned with theory
and fundamentals while;
SWE ...
... is concerned with the practicalities of
developing and delivering useful software.
CS is as essential for SW engineers as ...
... physics is for electrical or mechanical
engineers.
13 05/27/23
Software Paradigms
refer to the methods and steps, which are taken while
14 05/27/23
Software Development Paradigm
This paradigm is known as software engineering paradigms .
Requirement Gathering
Software Design paradigm
Design
Maintenance
Programming
Programming paradigm
Coding
Testing
Integration
15 05/27/23
Cost of SW Engineering
Roughly 60% are development costs, 40% are testing costs.
16 05/27/23
Importance of Software Engineering
Software engineering is important for two reasons:
More and more, individuals and society rely on advanced software
systems.
We need to be able to produce reliable and truthful 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.
The systematic approach that is used in software engineering is
sometimes called a software process.
A software process is a sequence of activities that leads to the
production of a software product. It has 4 activities: sw specification,
sw Dev't, sw validation and sw evolution.
17
05/27/23
The need of software Engineering
Large software
Scalability
Cost
Dynamic Nature
Quality Management
In short, Software engineering is a branch of computer science,
which uses well-defined engineering concepts required to produce
Efficient,
Durable
Scalable,
In budget, and on-time software products.
18 05/27/23
Question Answer
What is software? Computer programs 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 are the fundamental software Software specification, software development, software
engineering activities? validation and software evolution.
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.
19 05/27/23
Program vs. software
requirements.
IEEE(1991) states that Software Engineering is an application of
systematic disciplined, approach to the development and
maintenance of software.
21 05/27/23