Lec 2 Introduction To Software Development

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 18

Introduction to Software Development

Software Engineering (SE-)

Instructor: Abd Ullah Khan


abdullah@nbc.nust.edu.pk
Software Development Activities

• What are the two major categories of activities involved in software


development?
Software Development Activities
• The activities involved in software development can broadly be divided into
two major categories

Construction Management

The management activities are


The construction activities are those that complement the
those that are directly related to process of construction to perform
the construction or development construction activities smoothly
of the software. and effectively.
Development Activities
Software Engineering Framework
Software Engineering Framework
Software Engineering Framework
• Any Engineering approach must be based
on quality.
• This means the software development
organization must have special focus on
quality while performing the software
engineering activities.
• Based on this commitment to quality by
the organization, a software engineering
framework is used, as shown.
• The major components of this framework
are described next.
Software Engineering Framework
• Quality Focus: The quality focus demands that processes be defined for rational and
timely software development.
• That is, quality should be emphasized while executing these processes.

• Processes: A process is a collection of activities, actions, and tasks that are performed
when some work product is to be created.
• Processes are meant for effectively managing and cost-effectively delivering quality software.
• The processes define the tasks and the order in which they are to be performed. Every task has some
deliverables, and every deliverable should be delivered at a particular milestone.

• Methods: Methods provide the technical “how-to’s” to carry out these tasks.
• The tasks include communication, requirements analysis, design modeling, program construction,
testing, and support.

• Tools: Tools provide automated or semi-automated support for software processes,


methods, and quality control. Examples: Github, Adobe Dreamweaver, etc.
Software Development Loop
Software Development Loop
Software Development Loop
• Software development activities could be performed in a cycle called software development loop. The
major stages of the software development loop are:
• Problem Definition: In this stage, we determine what is the problem against which we are going to
develop software. Here we try to completely comprehend the issues and requirements of the software
system to build.
• Technical Development: In this stage, we try to find the solution to the problem on technical grounds and
base our actual implementation on it. In this stage, a new system is actually developed that solves the
problem defined in the first stage.
• Solution Integration: If there are already developed system(s) available with which our new system has to
interact, then those systems should also be part of our new system.
• Status Quo: After going through the previous three stages successfully, when we deployed the new
system at the user site, the situation is called status quo. But once we get new requirements, we need to
change the status quo.
• After getting new requirements, we perform all the steps in the software development loop again. The
software developed through this process has the property that this could be evolved and integrated easily
with the existing systems.
Useful Questions During Software Development
• The following questions are useful to be thought about and find answers for at
different stages of a software development.
1. What is the problem to be solved?
2. What are the characteristics of the entity (software) that is used to solve the
problem?
3. How will the entity be realized?
4. How will the entity be constructed?
5. What approach will be used to uncover errors that are made in the design and
construction of the entity?
6. How will the entity be supported over the long term when users of the entity
request corrections, adaptations, and enhancements?
Software Development Phases
Software Development Phases
• There are four basic phases of software development.
• Vision:
• Here, we determine why we are doing this thing (software development project) and what
business objectives we want to achieve.

• Definition:
• Here, we determine what are the activities and things involved.

• Development:
• Here, we determine, what should be the design of the system, how it will be implemented,
and how to test it.

• Maintenance:
• Here, we control the change in the system, whether that change is in the form of
enhancements or defect removal.
Importance of Maintenance
Importance of Maintenance

• Maintenance includes correction, adaptation, or enhancement to the


already software system.
• For most large, long-lifetime software systems, maintenance cost normally
exceeds development cost by factors ranging from 2 to 3.
• Boehm (1975) quotes a pathological case where the development cost of an
avionics system was $30 per line of, code but the maintenance cost was
$4000 per instruction.
Summary

• Software development is a multi-activity process. It is not simply coding.


• Software construction and management
• Software Engineering Framework
• Software development loop
• Software engineering phases
• Importance of Maintenance
Thanks
• Cleanliness is next to Godliness.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy