Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 21

Wollo University

College of Informatics
Department of Computer Science
Fundamentals of Software Engineering
Course Code:CoSc3061

05/27/23
1
Chapter-one

History and Overview

2 05/27/23
Reading Assignment- 1

Read about History and overview of Software

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

9 serves as a particular purpose. 05/27/23


Cont’d
Software engineering is a modeling activity.
Software engineers deal with complexity through modeling, by
focusing at any one time on only the relevant details and ignoring
everything else.
Software engineering is a problem-solving activity.
•Models are used to search for an acceptable solution. This
search is driven by experimentation.
Software engineers do not have infinite resources and
are constrained by budget and deadlines.
It is the combination of all the tools, techniques, and
processes that are used in software production.
10 05/27/23
Cont’d
Software engineering is a knowledge acquisition activity.
 In modeling the application and solution domain, software
engineers collect data, organize it into information, and formalize
it into knowledge.
Software engineering is a rationale-driven activity.
When acquiring knowledge and making decisions about the
system or its application domain, software engineers also need
to capture the context in which decisions were made and the
rationale behind these decisions.
The process of developing a software product using software engineering

principles and methods is referred to as Software Evolution .


05/27/23
11
…Cont’d
 all aspects of SW production: Encompasses

 Not only the technical processes

 But also deals with project management, development of

tools, methods and theories to support SW production.


 Programming Language.
 Programming Language Design
 Software Design Techniques
 Testing
 Maintenance etc.

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

designing the software.


 There are many methods proposed and are implemented.

 But, we need to see where in the software engineering

concept, these paradigms stand.


 These can be combined into various categories, though

each of them is contained in one another:

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.

 For custom software, evolution costs often exceed


development costs.
 Costs vary depending on the type of system being developed

and the requirements of system attributes such as


performance and system reliability.
 Distribution of costs depends on the development model used.

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 is software engineering?  Software engineering is an engineering discipline that is


concerned with all aspects of software production.

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

A program is a sub set of software.


It is Source Code + Object Code.
A software a superset of a program.
It is a collection of program, documentation and operation
procedures. 05/27/23
20
Summary
Stephian Schotz(1992) : Said that Software Engineering is a
discipline whose aim is a production of a quality s/w that is
delivered on time with budget and gets satisfy with its

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

You might also like