You are on page 1of 28

Software Engineering

Course’s Code: CSE 305


Lecture -2
Overview of Lecture - 2

 Software Engineering Practices


 Software Development Life Cycle (SDLC)/ Software Process Models

14 October 2021 2 Software Engineering Lec-2


Recap of Lecture -1

 The term software engineering is the product of two words, software and
engineering.
 The software is a collection of integrated programs.
 Software consists of Computer programs and related documentation such
as requirements, design models and user manuals.
 Engineering is the application of scientific and practical knowledge
to invent, design, build, maintain, and improve frameworks, processes,
etc.
 Software Engineering is an engineering branch [Applied Computer
Science] related to the evolution of software product using systematic
well-defined scientific principles, techniques, and procedures.
 The result of software engineering is an effective and reliable software
product.

14 October 2021 3 Software Engineering Lec-2


Recap of Lecture -1

 Software Engineering is required due to following reasons

 To manage Large software


 For more Scalability
 Cost Management
 To manage the dynamic nature of software
 For better quality Management

14 October 2021 4 Software Engineering Lec-2


What Software Development Looks Like?

14 October 2021 5 Software Engineering Lec-2


Software Engineering:
A Layered Technology

tools

methods

process model

a “quality” focus

14 October 2021 6 Software Engineering Lec-2


Software Engineering:
A Layered Technology

14 October 2021 7 Software Engineering Lec-2


Software Engineering:
A Layered Technology
Q1: In a layered technology, which of the following provides semi-automated
and automatic support to methods?

a. Methods
b. Tools [Correct Answer]
c. Process
d. Quality Focus

Q2: Which sentence is incorrect?

a) A Layered-style program is divided into an array of modules or layers


b) Each layer provides services to the layer “below” and makes use of services
provided by the layer “above” [Correct Answer]
c) All of the mentioned
d) None of the mentioned
14 October 2021 8 Software Engineering Lec-2
Software Process

 Purpose of Software process is to deliver software in a timely


manner and with sufficient quality to satisfy those who have
sponsored its creation and those who will use it.

 Also known as Software Life Cycles


 Phased approach to Software Development
 Provide guidance on what must be created when
 and guidance on how to create and evaluate guidance
 consist of framework and umbrella activities

14 October 2021 9 Software Engineering Lec-2


Framework Activities

 Specific phases of software development life cycle can be described


in terms of
 Communication
 Planning
 Modelling
 Analysis of Requirements
 Design
 Construction
 Code Generation
 Testing
 Deployment

14 October 2021 10 Software Engineering Lec-2


Umbrella Activities

 Umbrella Activities are performed throughout the life cycle phases


 Risk Management
 Software Quality Assurance (SQA)
 Software Configuration Management (SCM)
 Measurement
 Formal Technical Reviews (FTR)
 Umbrella activities focus on quality and management aspects

14 October 2021 11 Software Engineering Lec-2


Questions?

Q1: Software Process is consisting of

A. It is a series of predictable steps


B. It is a road map which helps developer to create a timely, high-quality result
C. Both A and B [Correct Answer]
D. None of the mentioned above

Q2: With reference to process framework, a communication activity refers,

a) To communicate with the customer


b) To understand stakeholders’ objectives
c) To gather requirements
d) All of the mentioned above [Correct Answer]

14 October 2021 12 Software Engineering Lec-2


Questions?

Q3: With reference to process framework, aim of planning activity is / are,

a) To create a project plan this helps to guide the team


b) To describe the tasks and identify the resources required
c) To identify the risks and their flexible solution
d) All of the mentioned above [Correct Answer]

Q4: This activity combines code generation and the testing,

a) Planning
b) Construction [Correct Answer]
c) Deployment
d) Modeling

14 October 2021 13 Software Engineering Lec-2


Software Engineering Practice
 It represents the details—the technical
considerations and how—the things that you will
need to actually build high-quality
computer software. [Methods in Layered
Technology]

 George Polya outlines the essence of problem


solving, suggests:
 Understand the problem tools
(communication and analysis). methods
process model
 Plan a solution (modeling and a “quality” focus
software design).
 Carry out the plan (code generation)
 Examine the result for accuracy
(testing and quality assurance)

14 October 2021 14 Software Engineering Lec-2


Software Engineering Practice:
Understand the Problem

 Who has a stake in the solution to the problem? That is, who are the
stakeholders?
 What are the unknowns? What data, functions, and features are
required to properly solve the problem?
 Can the problem be compartmentalized? Is it possible to represent
smaller problems that may be easier to understand?
 Can the problem be represented graphically? Can an analysis model
be created?

14 October 2021 15 Software Engineering Lec-2


Software Engineering Practice:
Plan the Solution

 Have you seen similar problems before? Are there patterns that are
recognizable in a potential solution? Is there existing software that
implements the data, functions, and features that are required?
 Has a similar problem been solved? If so, are elements of the
solution reusable?
 Can sub problems be defined? If so, are solutions readily apparent
for the sub problems?
 Can you represent a solution in a manner that leads to effective
implementation? Can a design model be created?

14 October 2021 16 Software Engineering Lec-2


Software Engineering Practice:
Carry Out the Plan

 Does the solutions conform to the plan? Is source code traceable to


the design model?
 Is each component part of the solution provably correct? Has the
design and code been reviewed, or better, have correctness proofs
been applied to algorithm?

14 October 2021 17 Software Engineering Lec-2


Software Engineering Practice:
Examine the Result

 Is it possible to test each component part of the solution? Has a


reasonable testing strategy been implemented?
 Does the solution produce results that conform to the data,
functions, and features that are required? Has the software been
validated against all stakeholder requirements?

14 October 2021 18 Software Engineering Lec-2


Software Development
Life Cycle/ Software Process

 Software Development Life Cycle (SDLC) is a methodology that defines


the steps of a software development project

14 October 2021 19 Software Engineering Lec-2


Software Phases/ Process Framework
Activities

14 October 2021 20 Software Engineering Lec-2


Requirements Engineering
 Requirements Engineering is the process of establishing the
needs of stakeholders that are to be solved by software

 A Customer has a business idea of an application


 He meets with multiple different tech companies
14 October 2021 21 Software Engineering Lec-2
Requirements Engineering

 Customer find a suitable company for his choice


 Meet with the project manager or product owner
 they are going to discuss with their terms and agreements
 a deal is signed and the project is accepted
14 October 2021 22 Software Engineering Lec-2
Requirements Engineering
 A signed deal leads to the
next step Planning Require
ments
 In this step requirements
are outlined
 Either Project manager or
both customer and
project manager do this
 This step can be running m
ultiple times to apply new
requirements or any changes
in requirements

14 October 2021 23 Software Engineering Lec-2


Requirements Engineering

Requirements Analysis

14 October 2021 24 Software Engineering Lec-2


Requirements Engineering

 Here, the operation team, developers, product owner, testers


meet in an office
 Define the outlined requirements and give more planning details

14 October 2021 25 Software Engineering Lec-2


Requirements Engineering

 Traditional Requirements Engineering is consisting of differ


ent steps

14 October 2021 26 Software Engineering Lec-2


Design

 This phase takes all the requirements and start to design the
product
 This phase includes design of business rules, user interface lay
out, database relationships, color schema, architect of the
application, mobile aspects, supported browser and so on
 Design phase produces the description of internal structure
and organization of the system,
 This description serve as the basis for the construction of the
actual system

14 October 2021 27 Software Engineering Lec-2


Design

14 October 2021 28 Software Engineering Lec-2

You might also like