0% found this document useful (0 votes)
34 views23 pages

Lecture 2 Professional Software Development and Practice - SE (CS 3109)

Uploaded by

Mohib
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)
34 views23 pages

Lecture 2 Professional Software Development and Practice - SE (CS 3109)

Uploaded by

Mohib
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/ 23

Lecture 2

Professional Software Development


and Practice

BSSE (Software Engineering-I) SZABIST-Islamabad 1


Software Engineering Practice
 Consists of a collection of concepts,
principles, methods, and tools that a software
engineer calls upon a daily basis.
 Equips managers to manage software
projects and software engineers to build
computer programs
 Provides necessary technical and
management how to getting the job done.

BSSE (Software Engineering-I) SZABIST-Islamabad 2


Software Development
 Construction
• Requirement Gathering
• Design Development
• Coding
• Testing
 Management
• Project Planning and Management
• Configuration Management
• Software Quality Assurance
• Installation and Training

BSSE (Software Engineering-I) SZABIST-Islamabad 3


Software Development

BSSE (Software Engineering-I) SZABIST-Islamabad 4


Software Process
 A software process is a road map that helps
you create
 It is the way we produce software and it
provides stability and control. Each process
defines
 certain deliverables known as the work
products. These include programs, documents,
 and data produced as a consequence of the
software engineering activities. a timely, high
quality result.

BSSE (Software Engineering-I) SZABIST-Islamabad 5


Software Development Life Cycle
Software Development Life Cycle (SDLC) is a
process used by the software industry to
design, develop and test high quality software.

The SDLC aims to produce a high-quality software that


meets or exceeds customer expectations, reaches
completion within times and cost estimates.

BSSE (Software Engineering-I) SZABIST-Islamabad 6


Software Development Life Cycle

BSSE (Software Engineering-I) SZABIST-Islamabad 7


1. Analysis:
A preliminary investigation has been made by the system
analyst as a first step to clearly define the nature of the
problem and its scope; i.e why it is necessary to develop a
new or modified system? Whether it is practically possible or
not?
The feasibility of the project is determined by following
aspects:
 Technical Feasibility: Assess whether the proposed system
can be implemented using current technology and
infrastructure.
 Economic Feasibility: Evaluate the financial aspects of the
project, including costs, benefits, and return on investment.
 Operational Feasibility: Determine whether the proposed
system will be operationally viable within the existing
organizational environment.
BSSE (Software Engineering-I) SZABIST-Islamabad 8
Analysis Continued …

Once it is decided that the project is feasible to work on, a requirement


analysis is performed.

Meetings with stake holders and users are held in order to determine the
functional and non functional requirements.

The functional requirements specify what the system must do.


The non functional requirements capture performance, security, and usability
criteria issues etc

BSSE (Software Engineering-I) SZABIST-Islamabad 9


Analysis Continued …

As an example the following questions are asked:

 Who is going to use the system?


 How will they use the system?
 What data should be input into the system?
 What data should be output by the system?

Various data gathering techniques are employed to collect data e.g.


interviews, questionnaires, observations, document review etc. are
employed.

BSSE (Software Engineering-I) SZABIST-Islamabad 10


System Analyst: (or Business Analyst)

A System Analyst (SA) is someone who analyzes an


organization or business domain and documents
its business or processes or systems, assessing
the business model or its integration with technology.

Roles of System Analyst:


1) Meeting
2) Analyzing Requirement
3) Document Creation
4) Requirement Review with team

BSSE (Software Engineering-I) SZABIST-Islamabad 11


Software Development Life Cycle
2) Design:

In this phase the system and software design is


prepared from the requirement specifications
which were studied in the first phase.

The design phase is further divided into logical


and physical designs.

BSSE (Software Engineering-I) SZABIST-Islamabad 12


i. Logical Design:
It is an abstract representation of the system. It focuses on what the
system should do and how it should function without getting into
implementation details. Activities performed in this phase are:

 Data Modeling: Identifying and defining the entities,


relationships, and attributes that represent the data requirements
of the system. This often involves creating Entity-Relationship
Diagrams (ERDs).

 Process Modeling: Describing the processes or functions that


the system needs to perform to meet user requirements. This
may involve creating data flow diagrams (DFDs).
Sequence diagrams are used to represent the interactions and
flow of messages between different objects or components within
a system over time.

BSSE (Software Engineering-I) SZABIST-Islamabad 13


Physical Design:
The logical design is converted into a concrete and implementable
solution in this phase. It describes the specifics details of the
system, including hardware, software, and technology used.
 Database Design: Specifying the physical structure of the database,
including tables, indexes, keys, and constraints. This often involves
creating a physical data model.
 System Architecture: Designing the architecture of the entire system,
including the arrangement of modules, components, and their
interactions. This may involve choosing specific technologies and
platforms.
 Interface Implementation: Detailing the actual user interface design,
including screen layouts, navigation paths, and interaction elements.
 Hardware Specification: Detailing the hardware requirements, server
specifications, network configurations, and other infrastructure
considerations.
A detailed design document is prepared at the end of the design phase.
BSSE (Software Engineering-I) SZABIST-Islamabad 14
Software Development Life Cycle
3) Implementation:
The project team finishes the software development, buying of
any necessary hardware for the system and then installs the
hardware and software in the user environment.
The actual code for the software is written and implemented in
this phase.
This phase follows the design phase and precedes the testing
phase.

Developers write the code based on the specifications


provided in the design phase according to the established
standards and guidelines.

BSSE (Software Engineering-I) SZABIST-Islamabad 15


Software Development Life Cycle
4. Testing:
Following type of software testing is performed in this phase:
Unit Testing: Individual components or units of code are tested
in isolation to ensure that each unit performs as intended. Unit
testing helps identify and fix bugs at an early stage.
Integration: Once individual units are tested, they are integrated
to form a complete system. Integration testing is performed to
verify that the different modules or components work together as
expected.
System Testing: The entire system is tested as a whole to
ensure that it meets the specified requirements. System testing
involves checking the functionality, performance, security, and
other aspects of the software.
BSSE (Software Engineering-I) SZABIST-Islamabad 16
Software Development Life Cycle
5. Deployment:

After successful testing the product is delivered / deployed


to the customer for their use.

As soon as the product is given to the customers they will


first do the beta testing. If any changes are required or if
any bugs are caught, then they will report it to the
engineering team. Once those changes are made or
the bugs are fixed then the final deployment will happen.

BSSE (Software Engineering-I) SZABIST-Islamabad 17


Deployment Continued …

The deployment phase includes following activities:


 Planning: Before deployment, a detailed deployment plan is
created. This plan outlines the steps and procedures for
moving the software from the development or testing
environment to the production environment.
It includes considerations for minimizing downtime, ensuring
data integrity, and managing potential risks.

 Environment Setup: The production environment is


prepared to host the software. This involves configuring
servers, databases, network settings, and other infrastructure
components to ensure they meet the requirements of the
application.
BSSE (Software Engineering-I) SZABIST-Islamabad 18
Deployment Continued …

Conversion:
The process of moving from the old system to the new is
called conversion. Four conversion methods are available:

i.Direct Conversion:
All users stop using the old system at the same time and then
begin using the new system.

ii.Parallel Conversion:
Users continue to use the old system while an increasing
amount of data is processed through the new system. The
outputs form the two system are compared, if they agree, the
old system is replaced by the new system.

BSSE (Software Engineering-I) SZABIST-Islamabad 19


Deployment Continued …

iii.Phased Conversion:
Users start using the new system component by
component if the design of the system allows to apply it
by parts.

iv. Distributed Conversion:


End users at a single site or branch use the new
system, and if it found perfectly working, then the entire
organization adopts the system.

BSSE (Software Engineering-I) SZABIST-Islamabad 20


Deployment Continued …

Configuration Management: Configuration files and


settings are adjusted to match the enterprise environment's
specifications. This includes configuring parameters such
as database connections, API endpoints, and other
environment-specific settings.

Software Installation: The actual software is installed on


the production servers. This may involve copying files,
configuring services, and setting up any necessary
dependencies.

BSSE (Software Engineering-I) SZABIST-Islamabad 21


Deployment Continued …

Verification and Validation: The software is thoroughly tested


in the enterprise environment to ensure that it operates
correctly and meets the specified requirements. This may
include functional testing, performance testing, and other
validation activities.

Rollback Plan: A rollback plan is prepared in case any issues


arise during or after deployment. This plan outlines the steps to
revert to the previous situation.

Documentation: Documentation is updated to reflect the


changes made during deployment. This includes updating user
manuals, system documentation, and any other relevant
documentation.
BSSE (Software Engineering-I) SZABIST-Islamabad 22
Software Development Life Cycle
6) Maintenance:

Once the customers starts using the developed system


then the actual problems comes up and needs to be
solved from time to time.

This process where the care is taken for the developed


product is known as maintenance.

BSSE (Software Engineering-I) SZABIST-Islamabad 23

You might also like