High Profile Call Girls Nagpur Isha Call 7001035870 Meet With Nagpur Escorts
SE chp1 update and learning management .pptx
1. 1
FDRE Technical and Vocational Institute
Information Technology (MSc Program)
Course Title: Software Engineering
Course code: (IT501)
By:
Mohammed T (Asst. prof)
March, 2024
2. 2
Outline
Introduction to Software Engineering
Definitions of Software Engineering
Software and their types
Software process
SE and related disciplines
objective of software Engineering
Three R’s of Software Engineering
Software Life Cycle Models
Waterfall model
Object oriented analysis and design
Evolutionary models (prototype, incremental, iteration, Agile etc.)
3. 3
Chapter 1: Introduction To Software Engineering
Definitions :
• A discipline whose aim is production of quality software ,
software that is delivered on time, within budget ,and that
satisfies its requirements.
• An engineering discipline that is concerned with all aspects
of software production from the early stages of system
specification to maintaining the system after it has gone into
use,
• Multi-person construction of multi-version software.
4. 4
Cont.
An engineering discipline that provides knowledge,
tools, and methods for:
Defining software requirements
Performing software design
Software construction and Software testing
Software maintenance tasks
Software project management
5. 5
What is Software?
What is Software?
• Software comprises of data
structures that enable the
programs to hold the data and
manipulate it
• A set of Computer program ,
procedures and associated
documentation and data relating
to the operation of a computer
system.
• collection of programs or set of
programs. Data and instructions
written in organized form for
performing the operation by the
computer
7. 7
System Software:
– Provides important self-regulatory functions for computer systems, such
as loading itself when the computer is first turned on,
– Managing hardware resources such as secondary storage for all
applications, and
– Providing commonly used sets of instructions for all applications to use.
Application Software:
– Software products may be developed for a particular customer or
– may be developed for a general market.
– Two types : Proprietary application software and Off-the-shelf
application software.
– Proprietary application software can be made for a specific or unique
business need for a company. This type of software may be developed
in-house by the organization’s information systems personnel or it may
be commissioned from a software vendor .
– On the other hand, off-the-shelf application software can be purchased
or rented from a vendor that develops programs and sells them to
different organizations.
Cont.
9. 9
Comparing SE with Other disciplines
Computer Science
• concerned more with Theory and
• Fundamental concepts.
Software Engineering
• concerned with the practicalities of
developing and delivering useful
• Deals with the design, development
and delivery of SW.
• Is part of Systems Engineering.
• All aspects of computer-based
systems development: HW + SW
+ Process.
• Older than SWE.
Computer Engineering
• is computer science with an
architecture such as OS, CPU and other
hard wares on the motherboard, and
digital circuits.
Systems Engineering
10. 10
Frequently asked questions about software engineering
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
engineering activities?
Software specification, software development, software
validation and software evolution.
What is the difference between software
engineering and computer science?
Computer science focuses on theory and fundamentals;
software engineering is concerned with the practicalities of
developing and delivering useful software.
What is the difference between software
engineering and system engineering?
System engineering is concerned with all aspects of
computer-based systems development including hardware,
software and process engineering. Software engineering is
part of this more general process.
11. 11
What are the attributes of good software?
The software should deliver the required functionality and
performance to the user, and it should be :
Maintainable: must evolve to meet changing needs
Dependable: must be trustworthy when needed to work with
others(Reliability, security, safety)
Efficient: Response time, processing time, memory utilization.
Acceptable: must accepted by the users for which it was
designed.
It must also be understandable, usable and compatible with other
systems
12. To produce software that is:
On time: is deliver at the established date.
Reliable: doesn’t crash for long time.
Quality: the quality of the software delivered to customers should
be assured.
Complete: good documentation that fulfill customer needs.
12
Objective of Software Engineering
13. lack of understanding the requirements,
Improper software size estimation,
incapability to identify an appropriate software development
uncertainty of system and software requirements,
budget limitation,
poor quality of coding,
performance loss and inability to adapt technologies,
unskilled programmers
No proper testing of software
13
What is the reasons for software failures?
14. • Reuse:
• Software reuse is the process of creating new software systems from
existing software components.
• Reuse has an enormous impact on productivity. Elements of software
reused are
–software specifications, designs, tests cases, data, prototypes, plans,
documentation, frameworks and templates.
• Reusability is the ability to use some of parts or the greater part of the
same programming code or system design in another application.
• Reusability is the segment of source code that can be used to add new
functionalities with slight or localizes code modifications when a change in
implementation is required.
• Software reuse can cut software development time and costs.
14
Three R’s in Software Engineering
15. Cont.
• Re-engineering:
The goal is to understand the existing software (specification, design,
implementation) and then to re-implement it to improve the system's
functionality, performance or implementation. Two type
Reverse engineering : examine software internals how system has been
constructed
Forward engineering: using information obtained from reverse
engineering , rebuild the application using modern software engineering
practices and principles.
There are four re-engineering objectives:
Preparation for functional enhancement,
Improve maintainability,
Migration, and
Improve reliability
15
16. Cont.
Re-tooling
To achieve the first two R's, we need a third R—a new
generation of software tools.
Tools for the next ten years will address all aspects of the
methods landscape. But they should emphasize reuse and re-
engineering.
16
17. The Cost of Software Engineering
Depends on:
The process used, and
The type of software being developed.
Each generic approach has a different profile of cost
distribution.
Roughly 60% of costs are development costs, 40% are
testing costs.
For custom software, evolution costs often exceed
development costs.
17
18. 18
Software process
A structured set of activities required to develop a software system.
SW Process Activity What is going on there?
Specification
What does the customer need?
What are the constraints?
Development Design & programming.
Validation Checking whether it meets requirements.
Evolution Modifications (e.g. customer/market).
19. 19
19
What is a Software Process Model?
• When we describe and discuss processes, we usually talk about the activities in
these processes such as specifying a data model, designing a user interface,
etc. and the ordering of these activities.
• Process descriptions may also include:
– Products, which are the outcomes of a process activity;
– Roles, which reflect the responsibilities of the people involved in the
process;
– Pre- and post-conditions, which are statements that are true before and
after a process activity has been performed or a product produced.
Examples of views Focus on…
Workflow
Activities = human actions.
What is input, output, and dependencies.
Dataflow
Activities = transformations of information.
How the input is transformed into output.
Role/Action What is the role of people involved in each step of the process?