0% found this document useful (0 votes)
2 views

Software Engineering Unit 2

The document provides an overview of software design, detailing its role in transforming user requirements into a suitable format for coding and implementation. It discusses the software design process, including high-level and detailed design, modularization, and the importance of characteristics like correctness, efficiency, and maintainability. Additionally, it covers concepts such as coupling and cohesion, which are essential for evaluating the quality of software design.

Uploaded by

JAYESH SAINI
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Software Engineering Unit 2

The document provides an overview of software design, detailing its role in transforming user requirements into a suitable format for coding and implementation. It discusses the software design process, including high-level and detailed design, modularization, and the importance of characteristics like correctness, efficiency, and maintainability. Additionally, it covers concepts such as coupling and cohesion, which are essential for evaluating the quality of software design.

Uploaded by

JAYESH SAINI
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 285

University Institute of Engineering

DEPARTMENT OF COMPUTER SCIENCE &


ENGINEERING
Subject Name: Software Engineering
Subject Code: 23CST-206
Software Design

Er. Jagmeet Kaur


E8387
ASSISTANT PROFESSOR DISCOVER . LEARN . EMPOWER
CSE

09/12/24 Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 1


Chapter-4
Software Design
• Design process and concepts

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 2


Software Design
• Software design is a process to transform user requirements into some
suitable form, which helps the programmer in software coding and
implementation.
• For assessing user requirements, an SRS (Software Requirement
Specification) document is created whereas for coding and
implementation, there is a need of more specific and detailed
requirements in software terms. The output of this process can directly
be used into implementation in programming languages.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 3


Software Design
• Software design is the step in SDLC (Software Design Life Cycle),
which moves the concentration from problem domain to solution
domain.

• It tries to specify how to fulfill the requirements mentioned in SRS.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 4


DIFFERENCE BETWEEN ANALYSIS AND DESIGN
• The aim of analysis is to understand the problem with a view to
eliminate any deficiencies in the requirement specification such as
incompleteness, inconsistencies, etc.

• The model which we are trying to build may be or may not be ready.

• The aim of design is to produce a model that will provide a seamless


transition to the coding phase, i.e. once the requirements are analyzed
and found to be satisfactory, a design model is created which can be
easily implemented.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 5
Software Design
• Software design deals with transforming the customer requirements, as described
in the SRS document, into a form (a set of documents) that is suitable for
implementation in a programming language.

• A good software design is seldom arrived by using a single step procedure but
rather through several iterations through a series of steps.

• Design activities can be broadly classified into two important parts:


• Preliminary (or high-level) design and
• Detailed design.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 6


PRELIMINARY OR HIGH LEVEL DESIGN
• High-level design means identification of different modules and the control
relationships among them and the definition of the interfaces among these
modules.

• The outcome of high-level design is called the program structure or


software architecture.

• Many different types of notations have been used to represent a high-level


design.

• A popular way is to use a tree-like diagram called the structure chart to


represent the control hierarchy in a high-level design.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 7


DETAILED DESIGN
• During detailed design, the data structure and the algorithms of the
different modules are designed.

• The outcome of the detailed design stage is usually known as the


module-specification document.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 8


Software Design Levels
• Software design yields three levels of results:
• Architectural Design - The architectural design is the highest abstract version of
the system. It identifies the software as a system with many components
interacting with each other. At this level, the designers get the idea of proposed
solution domain.
• High-level Design- The high-level design breaks the ‘single entity-multiple
component’ concept of architectural design into less-abstracted view of sub-
systems and modules and depicts their interaction with each other. High-level
design focuses on how the system along with all of its components can be
implemented in forms of modules. It recognizes modular structure of each sub-
system and their relation and interaction among each other.
• Detailed Design- Detailed design deals with the implementation part of what is
seen as a system and its sub-systems in the previous two designs. It is more
detailed towards modules and their implementations. It defines logical structure of
each module and their interfaces to communicate with other modules.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 9
Items developed during the software design
• For a design to be easily implemented in a conventional programming
language, the following items must be designed during the design phase.
• Different modules required to implement the design solution.
• Control relationship among the identified modules. The relationship is also
known as the call relationship or invocation relationship among modules.
• Interface among different modules. The interface among different modules
identifies the exact data items exchanged among the modules.
• Data structures of the individual modules.
• Algorithms required to implement each individual module.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 10


CHARACTERISTICS OF GOOD SOFTWARE DESIGN
• Correctness: Software design should be correct as per requirement.
• Completeness: The design should have all components like data
structures, modules, and external interfaces, etc.
• Efficiency: Resources should be used efficiently by the program.
• Flexibility: Able to modify on changing needs.
• Consistency: There should not be any inconsistency in the design.
• Maintainability: The design should be so simple so that it can be
easily maintainable by other designers.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 11


Software Design Process
• The design phase of software development deals with transforming the
customer requirements as described in the SRS documents into a form
implementable using a programming language.
The software design process can be divided into the following three
levels of phases of design:
• Interface Design
• Architectural Design
• Detailed Design

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 12


Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 13
Interface Design
• Interface design is the specification of the interaction between a
system and its environment.
• This phase proceeds at a high level of abstraction with respect to the
inner workings of the system i.e, during interface design, the internal
of the systems are completely ignored and the system is treated as a
black box.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 14


Interface Design
• Attention is focused on the dialogue between the target system and the
users, devices, and other systems with which it interacts.
• The design problem statement produced during the problem analysis
step should identify the people, other systems, and devices which are
collectively called agents.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 15


Interface Design
• Interface design should include the following details:
• Precise description of events in the environment, or messages from
agents to which the system must respond.
• Precise description of the events or messages that the system must
produce.
• Specification on the data, and the formats of the data coming into and
going out of the system.
• Specification of the ordering and timing relationships between
incoming events or messages, and outgoing events or outputs.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 16


Architectural Design
• Architectural design is the specification of the major components of a
system, their responsibilities, properties, interfaces, and the
relationships and interactions between them.
• In architectural design, the overall structure of the system is chosen,
but the internal details of major components are ignored.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 17


Architectural Design
• Issues in architectural design includes:
• Gross decomposition of the systems into major components.
• Allocation of functional responsibilities to components.
• Component Interfaces
• Component scaling and performance properties, resource consumption
properties, reliability properties, and so forth.
• Communication and interaction between components.
• The architectural design adds important details ignored during the
interface design. Design of the internals of the major components is
ignored until the last phase of the design.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 18
Detailed Design
• Design is the specification of the internal elements of all major system
components, their properties, relationships, processing, and often their
algorithms and the data structures.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 19


Detailed Design
• The detailed design may include:
• Decomposition of major system components into program units.
• Allocation of functional responsibilities to units.
• User interfaces
• Unit states and state changes
• Data and control interaction between units
• Data packaging and implementation, including issues of scope and
visibility of program elements
• Algorithms and data structures

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 20


References
• https://www.tutorialspoint.com/software_engineering/software_desi
gn_basics.htm#:~:text=Software%20design%20is%20a%20process,in
%20software%20coding%20and%20implementation.&text=Software
%20design%20is%20the%20first,problem%20domain%20to%20soluti
on%20domain.
• https://www.geeksforgeeks.org/software-engineering-software-
design-process/
• https://www.javatpoint.com/software-engineering-software-design

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 21


THANK YOU

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 22


University Institute of Engineering
DEPARTMENT OF COMPUTER SCIENCE &
ENGINEERING
Subject Name: Software Engineering
Subject Code: 23CST-206
Software Design

Er. Jagmeet Kaur


E8387
ASSISTANT PROFESSOR DISCOVER . LEARN . EMPOWER
CSE

09/12/24 Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 23


Chapter-4
Software Design
• Effective Modular design

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 24


Modularization
• Modularization is a technique to divide a software system into
multiple discrete and independent modules, which are expected to be
capable of carrying out task(s) independently.
• These modules may work as basic constructs for the entire software.
Designers tend to design modules such that they can be executed
and/or compiled separately and independently.
• Modular design unintentionally follows the rules of ‘divide and
conquer’ problem-solving strategy this is because there are many other
benefits attached with the modular design of a software.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 25


Modularization
• Any software comprises of many systems which contains several sub-
systems and those sub-systems further contains their sub-systems.
• So, designing a complete system in one go comprising of each and
every required functionality is a hectic work and the process can have
many errors because of its vast size.
• Thus in order to solve this problem the developing team breakdown
the complete software into various modules.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 26


Modularization
• A module is defined as the unique and addressable components of the
software which can be solved and modified independently without
disturbing ( or affecting in very small amount ) other modules of the
software. Thus every software design should follow modularity.
• Effective modular design can be achieved if the partitioned modules
are separately solvable, modifiable as well as compilable.
• Here separate compilable modules means that after making changes in
a module there is no need of recompiling the whole software system.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 27


Advantage of modularization
• Smaller components are easier to maintain
• Program can be divided based on functional aspects
• Desired level of abstraction can be brought in the program
• Components with high cohesion can be re-used again
• Concurrent execution can be made possible
• Desired from security aspect

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 28


Concurrency
• Back in time, all software are meant to be executed sequentially.
• By sequential execution we mean that the coded instruction will be
executed one after another implying only one portion of program
being activated at any given time.
• A software has multiple modules, then only one of all the modules can
be found active at any time of execution.
• In software design, concurrency is implemented by splitting the
software into multiple independent units of execution, like modules
and executing them in parallel.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 29


Concurrency
• In other words, concurrency provides capability to the software to
execute more than one part of code in parallel to each other.
• It is necessary for the programmers and designers to recognize those
modules, which can be made parallel execution.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 30


Coupling and Cohesion
• When a software program is modularized, its tasks are divided into
several modules based on some characteristics.
• As we know, modules are set of instructions put together in order to
achieve some tasks.
• They are though, considered as single entity but may refer to each
other to work together.
• There are measures by which the quality of a design of modules and
their interaction among them can be measured.
• These measures are called coupling and cohesion.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 31


Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 32
Cohesion
• Cohesion is a measure that defines the degree of intra-dependability within
elements of a module. The greater the cohesion, the better is the program design.
• There are seven types of cohesion, namely –
• Co-incidental cohesion - It is unplanned and random cohesion, which might be
the result of breaking the program into smaller modules for the sake of
modularization. Because it is unplanned, it may serve confusion to the
programmers and is generally not-accepted.
• Logical cohesion - When logically categorized elements are put together into a
module, it is called logical cohesion.
• Temporal Cohesion - When elements of module are organized such that they are
processed at a similar point in time, it is called temporal cohesion.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 33


Cohesion
• Procedural cohesion - When elements of module are grouped together,
which are executed sequentially in order to perform a task, it is called
procedural cohesion.
• Communicational cohesion - When elements of module are grouped
together, which are executed sequentially and work on same data
(information), it is called communicational cohesion.
• Sequential cohesion - When elements of module are grouped because the
output of one element serves as input to another and so on, it is called
sequential cohesion.
• Functional cohesion - It is considered to be the highest degree of cohesion,
and it is highly expected. Elements of module in functional cohesion are
grouped because they all contribute to a single well-defined function. It can
also be reused.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 34


Coupling
• Coupling is a measure that defines the level of inter-dependability among
modules of a program. It tells at what level the modules interfere and
interact with each other. The lower the coupling, the better the program.
• There are five levels of coupling, namely -
• Content coupling - When a module can directly access or modify or refer
to the content of another module, it is called content level coupling.
• Common coupling- When multiple modules have read and write access to
some global data, it is called common or global coupling.
• Control coupling- Two modules are called control-coupled if one of them
decides the function of the other module or changes its flow of execution.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 35


Coupling
• Stamp coupling- When multiple modules share common data
structure and work on different part of it, it is called stamp coupling.
• Data coupling- Data coupling is when two modules interact with each
other by means of passing data (as parameter). If a module passes data
structure as parameter, then the receiving module should use all its
components.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 36


Design Verification
• The output of software design process is design documentation,
pseudo codes, detailed logic diagrams, process diagrams, and detailed
description of all functional or non-functional requirements.
• The next phase, which is the implementation of software, depends on
all outputs mentioned above.
• It is then becomes necessary to verify the output before proceeding to
the next phase.
• The early any mistake is detected, the better it is or it might not be
detected until testing of the product.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 37


Design Verification

• If the outputs of design phase are in formal notation form, then their
associated tools for verification should be used otherwise a thorough
design review can be used for verification and validation.

• By structured verification approach, reviewers can detect defects that


might be caused by overlooking some conditions. A good design
review is important for good software design, accuracy and quality.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 38


References
• https://www.tutorialspoint.com/software_engineering/software_desi
gn_basics.htm#:~:text=Software%20design%20is%20a%20process,in
%20software%20coding%20and%20implementation.&text=Software
%20design%20is%20the%20first,problem%20domain%20to%20soluti
on%20domain.
• https://www.geeksforgeeks.org/software-engineering-software-
design-process/
• https://www.javatpoint.com/software-engineering-software-design

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 39


THANK YOU

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 40


University Institute of Engineering
DEPARTMENT OF COMPUTER SCIENCE &
ENGINEERING
Subject Name: Software Engineering
Subject Code: 23CST-206
Software Design

Er. Jagmeet Kaur


E8387
ASSISTANT PROFESSOR DISCOVER . LEARN . EMPOWER
CSE

09/12/24 Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 41


Chapter-4
Software Design
• The Design Model

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 42


Design Model
• A design model in Software Engineering is an object-based picture or
pictures that represent the use cases for a system.
• Or to put it another way, it is the means to describe a system's
implementation and source code in a diagrammatic fashion.
• This type of representation has a couple of advantages.
• First, it is a simpler representation than words alone.
• Second, a group of people can look at these simple diagrams and
quickly get the general idea behind a system. In the end, it boils down
to the old adage, 'a picture is worth a thousand words.'

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 43


Types of Design Elements
• Data design elements
• The data design element produced a model of data that represent a
high level of abstraction.
• This model is then more refined into more implementation specific
representation which is processed by the computer based system.
• The structure of data is the most important part of the software design.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 44


Types of Design Elements
• Architectural design elements The architecture design elements
provides us overall view of the system.
• The architectural design element is generally represented as a set of
interconnected subsystem that are derived from analysis packages in
the requirement model.
• The architecture model is derived from following sources: The
information about the application domain to built the software.
• Requirement model elements like data flow diagram or analysis
classes, relationship and collaboration between them.
• The architectural style and pattern as per availability.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 45


Types of Design Elements
• Interface design elements The interface design elements for software
represents the information flow within it and out of the system.
• They communicate between the components defined as part of
architecture.
• Following are the important elements of the interface design:
1. The user interface
2. The external interface to the other systems, networks etc.
3. The internal interface between various components.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 46


Types of Design Elements
• Component level diagram elements The component level design for
software is similar to the set of detailed specification of each room in a
house.
• The component level design for the software completely describes the
internal details of the each software component.
• The processing of data structure occurs in a component and an
interface which allows all the component operations.
• In a context of object-oriented software engineering, a component
shown in a UML diagram.
• The UML diagram is used to represent the processing logic.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 47


Types of Design Elements

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 48


Types of Design Elements
• Deployment level design elements The deployment level design
element shows the software functionality and subsystem that allocated
in the physical computing environment which support the software.
• Following figure shows three computing environment as shown.
These are the personal computer, the CPI server and the Control panel.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 49


Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 50
References
• https://www.tutorialspoint.com/software_engineering/software_desi
gn_basics.htm#:~:text=Software%20design%20is%20a%20process,in
%20software%20coding%20and%20implementation.&text=Software
%20design%20is%20the%20first,problem%20domain%20to%20soluti
on%20domain.
• https://www.geeksforgeeks.org/software-engineering-software-
design-process/
• https://www.javatpoint.com/software-engineering-software-design

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 51


THANK YOU

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 52


University Institute of Engineering
DEPARTMENT OF COMPUTER SCIENCE &
ENGINEERING
Subject Name: Software Engineering
Subject Code: 23CST-206
Software Design

Er. Jagmeet Kaur


E8387
ASSISTANT PROFESSOR DISCOVER . LEARN . EMPOWER
CSE

09/12/24 Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 53


Chapter-4
Software Design
• Design documentation

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 54


Design Documentation
• Design documentation is a collection of documents and resources that
covers all aspects of your product design.
• Documentation should include information about users, product
features, and project deadlines; all essential implementation details;
and design decisions that your team and stakeholders have agreed on.
• The Design Document will be the starting point work product for a
number of assignments.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 55


Design Documentation
• In many cases the Design Document is done before any of the actual
"work".
• The Design Document could be seen a part of the Plan on what you
will do.
• Design Document as providing more of a technical overview and the
Plan as a second document which includes assumptions, justifications,
and the like necessary for meeting the customer's requirements.
• The Implementation then would be the final step, in which you detail
exactly – often in a step-by-step manner - what you did to actually
complete the work required by the Design Document and Plan.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 56
Design Documentation
• If you have a three-document model:
• Design - the picture that describes the end result (it often doesn't
include product names, but might in some cases)
• Plan - a milestone-level view of how that design will get
accomplished (no commands are included, but product names and the
processes selected might very well be documented)
• Implementation - a step-by-step list of what to do which could be
used to reproduce the work, possibly by someone who isn’t familiar
with the design or plan.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 57


Design Documentation
• Another way of thinking of it might be this:
• A design is the type of document a company might produce to be sent
off for bidding (i.e., the customer might produce)
• A plan is individual -- the order and way you solve and verify your
solution might be different from someone else, but
• If you just provide implementation steps without the plan, how will
you know you did the job?

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 58


Design Documentation
• The design documentation provides written documentation of the
design factors and the choices the architect has made in the design to
satisfy the business and technical requirements.
• The design documentation also aids in the implementation of the
design.
• In many cases where the design architect is not responsible for the
implementation, the design documents ensure the successful
implementation of the design by the implementation engineer.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 59


Design Documentation
• Documentation can vary from project to project. Many consulting
companies and resellers have standard documentation templates that
they use when designing solutions. A properly documented design
should include the following information:
• Architecture design
• Implementation plan
• Installation guide
• Validation test plan
• Operational procedures

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 60


Creating the architecture design document

• The architecture design document is a technical document describing


the components and specifications required to support the solution and
ensure that the specific business and technical requirements of the
design are satisfied.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 61


Creating the architecture design document
• The architecture design document should include the following
information:
• Purpose and overview
• Executive summary
• Design methodology
• Conceptual design
• Logical management, storage, compute, and network design
• Physical management, storage, compute, and network design

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 62


Creating the architecture design document
• A sample outline of the architecture design document is as follows:
• Cover page: It includes the customer and project names
• Document version log: It contains the log of authors and changes
made to the document
• Document contacts: It includes the subject matter experts involved in
the creation of the design
• Table of contents: It is the index of the document sections for quick
reference
• List of tables: It is the index of tables included in the document for
quick reference

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 63


Creating the architecture design document
• List of figures: It is the index of figures included in the document for quick
reference
• Purpose and overview: This section consists of an executive summary to
provide an overview of the design and the design methodology followed in
creating the design
• Conceptual design: It is the documentation of the design factors:
requirements, constraints, and assumptions
• Logical design: It has the details of the logical management, storage,
network, and compute design
• Physical design: It contains the details of the selected hardware and the
configuration of the physical and virtual hardware

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 64


Writing an implementation plan
• The implementation plan documents the requirements necessary to
complete the implementation of the design.
• The implementation plan defines the project roles and defines what is
expected of the customer and what they can expect during the
implementation of the design.
• This document is sometimes referred to as the statement of work. It
defines the key points of contact, the requirements that must be
satisfied to start the implementation, any project documentation
deliverables, and how changes to the design and implementation will
be handled.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 65
Writing an implementation plan
• The implementation plan should include the following information:
• Purpose statement
• Project contacts
• Implementation requirements
• Overview of implementation steps
• Definition of project documentation deliverables
• Implementation of change management

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 66


Writing an implementation plan
• The following is an example outline for an implementation plan:
• Cover page: It includes the customer and project names
• Document version log: It contains the log of authors and changes
made to the document
• Document contacts: It includes the subject matter experts involved in
the creation of the design
• Table of contents: It is the index of document sections for quick
reference
• List of tables: It is the index of tables included in the document for
quick reference

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 67


Writing an implementation plan
• List of figures: It is the index of figures included in the document for quick
reference
• Purpose statement: It defines the purpose of the document
• Project contacts: It is the documentation of key project points of contact
• Implementation requirements: It provides the access, facilities, hardware,
software, and licensing required to complete the implementation
• Implementation overview: It is the overview of the steps required to
complete the implementation
• Project deliverables: It consists of the documents that will be provided as
deliverables once implementation has been completed
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 68
Developing an installation guide
• The installation guide provides step-by-step instructions for the
implementation of the architecture design.
• This guide should include detailed information about how to
implement and configure all the resources associated with the virtual
datacenter project.
• In many projects, the person creating the design is not the person
responsible for implementing the design.
• The installation guide outlines the steps necessary to implement the
physical design outlined in the architecture design document.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 69


Developing an installation guide
• The installation guide should include the following information:
• Purpose statement
• Assumption statement
• Step-by-step instructions to implement the design

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 70


Developing an installation guide
• The following is an example outline for an installation guide:
• Cover page: It includes the customer and project names
• Document version log: It contains the log of authors and changes
made to the document
• Document contacts: It includes the subject matter experts involved in
the creation of the design
• Table of contents: It is the index of document sections for quick
reference

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 71


Developing an installation guide
• List of tables: It is the index of tables included in the document for
quick reference
• List of figures: It is the index of figures included in the document for
quick reference
• Purpose statement: It defines the purpose of the document
• Assumption statement: It defines any assumptions made in creating
the document
• Installation guide: It provides the step-by-step installation
instructions to be followed when implementing the design

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 72


Creating a validation test plan
• The validation test plan documents how the implementation will be
verified.
• It documents the criteria that must be met to determine the success of
the implementation and the test procedures that should be followed
when validating the environment.
• The criteria and procedures defined in the validation test plan
determine whether or not the design requirements have been
successfully met.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 73


Creating a validation test plan
• The validation test plan should include the following information:
• Purpose statement
• Assumption statement
• Success criteria
• Test procedures

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 74


Creating a validation test plan
• The following is an example outline of a validation test plan:
• Cover page: It includes the customer and project names
• Document version log: It contains the log of authors and changes
made to the document
• Document contacts: It includes the subject matter experts involved in
the creation of the design
• Table of contents: It is the index of document sections for quick
reference
• List of tables: It is the index of tables included in the document for
quick reference

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 75


Creating a validation test plan
• List of figures: It is the index of figures included in the document for
quick reference
• Purpose statement: It defines the purpose of the document
• Assumption statement: It defines any assumptions made in creating
the document
• Success criteria: It is a list of criteria that must be met to validate the
successful implementation of the design
• Test Procedures: It is a list of test procedures to follow, including the
steps to follow and the expected results

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 76


A list of essential documents
• Project overview – This document contains a high-level overview of the design
and the goals the design team wants to accomplish. By reading this document,
anyone should be able to understand the purpose of a project.
• Product requirements – This document covers the business and technical
requirements of the design. It should be shared with stakeholders before starting
the design to ensure that both types of requirements are satisfied. It’s also worth
including in this doc information about constraints and assumptions because they
will influence the design decisions.
• Project deliverables – This document provides information about the design
artifacts established during the wireframing and prototyping phases (e.g., lo-fi
wireframes, mock-ups, hi-fi prototypes) that will be provided as deliverables once
implementation has been completed.
• Target audience information – This document lists relevant information about
your audience, from user personas to data from user research. This information
will help your team understand who your users are and what good design means to
them (via their functional and aesthetic preferences). The doc serves as a reference
for designers when sharing their rationale behind individual design decisions.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 77
A list of essential documents
• User journeys – This document outlines the path a user may take to reach
their goal when using a product.
• Design guidelines – This document describes the components and
specifications required to build the solution.
• Style guides – This document lists a set of standards for the stylization of
design. Styles, colors, and typefaces are essential pieces of this guide.
• Project scope and implementation plan – This document describes the
roles and flow of cross-team collaboration. The implementation plan
documents the requirements necessary to complete the implementation of
the design. For simple projects, it might be a high-level overview of the
steps required to complete the implementation. For complex projects, it can
include a project timeline with information about the time required to
complete each of the steps.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 78


A list of essential documents
• Design validation and user testing – This document provides an
overview of the practices to be executed during the product design
cycle, as well as steps to be taken after product release to verify that
the product satisfies user needs.
• Operational instructions – This document provides detailed
instructions on how to perform common operational tasks after the
design is implemented. For example, it can provide step-by-step
instructions on how to roll out a new version of an app in the
production environment.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 79


References
• https://www.tutorialspoint.com/software_engineering/software_desi
gn_basics.htm#:~:text=Software%20design%20is%20a%20process,in
%20software%20coding%20and%20implementation.&text=Software
%20design%20is%20the%20first,problem%20domain%20to%20soluti
on%20domain.
• https://www.geeksforgeeks.org/software-engineering-software-
design-process/
• https://www.javatpoint.com/software-engineering-software-design

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 80


THANK YOU

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 81


University Institute of Engineering
DEPARTMENT OF COMPUTER SCIENCE &
ENGINEERING
Subject Name: Software Engineering
Subject Code: 23CST-206
Software Design

Er. Jagmeet Kaur


E8387
ASSISTANT PROFESSOR DISCOVER . LEARN . EMPOWER
CSE

09/12/24 Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 82


Chapter-4
Software Design
• Approaches to Software design

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 83


Software Design
• Software design is a process to conceptualize the software
requirements into software implementation.
• Software design takes the user requirements as challenges and tries to
find optimum solution.
• While the software is being conceptualized, a plan is chalked out to
find the best possible design for implementing the intended solution.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 84


Software Design
• A good system design is to organize the program modules in such a
way that are easy to develop and change.
• Structured design techniques help developers to deal with the size and
complexity of programs.
• Analysts create instructions for the developers about how code should
be written and how pieces of code should fit together to form a
program.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 85


Importance
• If any pre-existing code needs to be understood, organized and pieced
together.
• It is common for the project team to have to write some code and
produce original programs that support the application logic of the
system.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 86


Structured Design
• Structured design is a conceptualization of problem into several well-
organized elements of solution.
• It is basically concerned with the solution design.
• Benefit of structured design is, it gives better understanding of how
the problem is being solved.
• Structured design also makes it simpler for designer to concentrate on
the problem more accurately.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 87


Structured Design
• The small pieces of problem are solved by means of solution modules.
• Structured design emphasis that these modules be well organized in
order to achieve precise solution.
• These modules are arranged in hierarchy.
• They communicate with each other. A good structured design always
follows some rules for communication among multiple modules,
namely -
• Cohesion - grouping of all functionally related elements.
• Coupling - communication between different modules.
• A good structured design has high cohesion and low coupling
arrangements.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 88
Function Oriented Design
• In function-oriented design, the system is comprised of many smaller
sub-systems known as functions.
• These functions are capable of performing significant task in the
system.
• The system is considered as top view of all functions.
• Function oriented design inherits some properties of structured design
where divide and conquer methodology is used.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 89


Function Oriented Design
• This design mechanism divides the whole system into smaller
functions, which provides means of abstraction by concealing the
information and their operation.

• These functional modules can share information among themselves by


means of information passing and using information available
globally.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 90


Function Oriented Design
• Another characteristic of functions is that when a program calls a
function, the function changes the state of the program, which
sometimes is not acceptable by other modules.

• Function oriented design works well where the system state does not
matter and program/functions work on input rather than on a state.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 91


Design Process
• The whole system is seen as how data flows in the system by means of
data flow diagram.
• DFD depicts how functions changes data and state of entire system.
• The entire system is logically broken down into smaller units known
as functions on the basis of their operation in the system.
• Each function is then described at large.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 92


Object Oriented Design
• Object oriented design works around the entities and their
characteristics instead of functions involved in the software system.

• This design strategies focuses on entities and its characteristics.

• The whole concept of software solution revolves around the engaged


entities.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 93


Object Oriented Design
• Let us see the important concepts of Object Oriented Design:
• Objects - All entities involved in the solution design are known as
objects. For example, person, banks, company and customers are
treated as objects. Every entity has some attributes associated to it and
has some methods to perform on the attributes.
• Classes - A class is a generalized description of an object. An object is
an instance of a class. Class defines all the attributes, which an object
can have and methods, which defines the functionality of the object.
• In the solution design, attributes are stored as variables and
functionalities are defined by means of methods or procedures.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 94
Object Oriented Design
• Encapsulation - In OOD, the attributes (data variables) and methods
(operation on the data) are bundled together is called encapsulation.
Encapsulation not only bundles important information of an object
together, but also restricts access of the data and methods from the
outside world. This is called information hiding.
• Inheritance - OOD allows similar classes to stack up in hierarchical
manner where the lower or sub-classes can import, implement and re-
use allowed variables and methods from their immediate super classes.
This property of OOD is known as inheritance. This makes it easier to
define specific class and to create generalized classes from specific
ones.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 95


Object Oriented Design
• Polymorphism - OOD languages provide a mechanism where
methods performing similar tasks but vary in arguments, can be
assigned same name.
• This is called polymorphism, which allows a single interface
performing tasks for different types.
• Depending upon how the function is invoked, respective portion of
the code gets executed.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 96


Design Process
• Software design process can be perceived as series of well-defined
steps. Though it varies according to design approach (function
oriented or object oriented, yet It may have the following steps
involved:
• A solution design is created from requirement or previous used system
and/or system sequence diagram.
• Objects are identified and grouped into classes on behalf of similarity
in attribute characteristics.
• Class hierarchy and relation among them is defined.
• Application framework is defined.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 97


Software Design Approaches
• Top Down Design
• We know that a system is composed of more than one sub-systems and
it contains a number of components.
• Further, these sub-systems and components may have their on set of
sub-system and components and creates hierarchical structure in the
system.
• Top-down design takes the whole software system as one entity and
then decomposes it to achieve more than one sub-system or
component based on some characteristics.
• Each sub-system or component is then treated as a system and
decomposed further.
98
Top Down Design
• This process keeps on running until the lowest level of system in the
top-down hierarchy is achieved.
• Top-down design starts with a generalized model of system and keeps
on defining the more specific part of it.
• When all components are composed the whole system comes into
existence.
• Top-down design is more suitable when the software solution needs to
be designed from scratch and specific details are unknown.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 99


Top Down Design

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 100


Top Down Design
• Advantages:
• The main advantage of top down approach is that its strong focus on
requirements helps to make a design responsive according to its
requirements.
• Disadvantages:
• Project and system boundaries tends to be application specification
oriented. Thus it is more likely that advantages of component reuse
will be missed.
• The system is likely to miss, the benefits of a well-structured, simple
architecture.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 101


Bottom-up Design

• The bottom up design model starts with most specific and basic
components.
• It proceeds with composing higher level of components by using basic
or lower level components.
• It keeps creating higher level components until the desired system is
not evolved as one single component.
• With each higher level, the amount of abstraction is increased.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 102


Bottom-up Design
• Bottom-up strategy is more suitable when a system needs to be created
from some existing system, where the basic primitives can be used in
the newer system.
• Both, top-down and bottom-up approaches are not practical
individually. Instead, a good combination of both is used.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 103


Bottom-up Design

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 104


Bottom-up Design
• Advantages:
• The economics can result when general solutions can be reused.
• It can be used to hide the low-level details of implementation and be
merged with top-down technique.
• Disadvantages:
• It is not so closely related to the structure of the problem.
• High quality bottom-up solutions are very hard to construct.
• It leads to proliferation of ‘potentially useful’ functions rather than
most appropriate ones.
105
Hybrid Design
• Hybrid Design:
It is a combination of both the top – down and bottom – up design
strategies. In this we can reuse the modules.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 106


References
• https://www.tutorialspoint.com/software_engineering/software_desi
gn_basics.htm#:~:text=Software%20design%20is%20a%20process,in
%20software%20coding%20and%20implementation.&text=Software
%20design%20is%20the%20first,problem%20domain%20to%20soluti
on%20domain.
• https://www.geeksforgeeks.org/software-engineering-software-
design-process/
• https://www.javatpoint.com/software-engineering-software-design

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 107


THANK YOU

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 108


University Institute of Engineering
DEPARTMENT OF COMPUTER SCIENCE &
ENGINEERING
Subject Name: Software Engineering
Subject Code: 23CST-206
Software Design

Er. Jagmeet Kaur


E8387
ASSISTANT PROFESSOR DISCOVER . LEARN . EMPOWER
CSE

09/12/24 Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 109
• Software project planning

• Project Estimation Techniques

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 110


Software Project Planning
• A Software Project is the complete methodology of programming
advancement from requirement gathering to testing and support,
completed by the execution procedures, in a specified period to
achieve intended software product.
• A project is well-defined task, which is a collection of several
operations done in order to achieve a goal (for example, software
development and delivery).

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 111


Software Project Planning
• A Project can be characterized as:
• Every project may has a unique and distinct goal.
• Project is not routine activity or day-to-day operations.
• Project comes with a start time and end time.
• Project ends when its goal is achieved hence it is a temporary phase in
the lifetime of an organization.
• Project needs adequate resources in terms of time, manpower, finance,
material and knowledge-bank.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 112


Need of Software Project Management
• Software development is a sort of all new streams in world business,
and there's next to no involvement in structure programming items.
• Most programming items are customized to accommodate customer's
necessities.
• The most significant is that the underlying technology changes and
advances so generally and rapidly that experience of one element may
not be connected to the other one.
• All such business and ecological imperatives bring risk in software
development; hence, it is fundamental to manage software projects
efficiently.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 113
Software Project Manager
• Software manager is responsible for planning and scheduling project
development.
• They manage the work to ensure that it is completed to the required
standard.
• They monitor the progress to check that the event is on time and
within budget.
• The project planning must incorporate the major issues like size &
cost estimation scheduling, project monitoring, personnel selection
evaluation & risk management.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 114


Software Project Manager
To plan a successful software project, we must understand:
• Scope of work to be completed
• Risk analysis
• The resources mandatory
• The project to be accomplished
• Record of being followed

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 115


Software Project Manager
• A software project manager is a person who undertakes the
responsibility of executing the software project.
• Software project manager is thoroughly aware of all the phases of
SDLC that the software would go through.
• Project manager may never directly involve in producing the end
product but he controls and manages the activities involved in
production.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 116


Software Project Manager
• A project manager closely monitors the development process, prepares
and executes various plans, arranges necessary and adequate
resources, maintains communication among all team members in order
to address issues of cost, budget, resources, time, quality and customer
satisfaction.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 117


Responsibility of Software Project Manager
Managing People :
• Act as project leader
• Liaison with stakeholders
• Managing human resources
• Setting up reporting hierarchy etc.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 118


Responsibility of Software Project Manager
Managing Project
• Defining and setting up project scope
• Managing project management activities
• Monitoring progress and performance
• Risk analysis at every phase
• Take necessary step to avoid or come out of problems
• Act as project spokesperson

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 119


Software Management Activities
• Software project management comprises of a number of activities,
which contains planning of project, deciding scope of software
product, estimation of cost in various terms, scheduling of tasks and
events, and resource management. Project management activities may
include:
• Project Planning
• Scope Management
• Project Estimation

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 120


Project Planning

• Software project planning is task, which is performed before the


production of software actually starts.
• It is there for the software production but involves no concrete activity
that has any direction connection with software production; rather it is
a set of multiple processes, which facilitates software production.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 121


• Software Project planning starts before technical work start. The
various steps of planning activities are:

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 122


Scope Management
• It defines the scope of project; this includes all the activities, process
need to be done in order to make a deliverable software product.
• Scope management is essential because it creates boundaries of the
project by clearly defining what would be done in the project and what
would not be done.
• This makes project to contain limited and quantifiable tasks, which
can easily be documented and in turn avoids cost and time overrun.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 123


Scope Management
During Project Scope management, it is necessary to -
• Define the scope
• Decide its verification and control
• Divide the project into various smaller parts for ease of management.
• Verify the scope
• Control the scope by incorporating changes to the scope

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 124


Project Estimation
• For an effective management accurate estimation of various measures
is a must.
• With correct estimation managers can manage and control the project
more efficiently and effectively.
• Project estimation may involve the following:
• Software size estimation Software size may be estimated either in
terms of KLOC (Kilo Line of Code) or by calculating number of
function points in the software. Lines of code depend upon coding
practices and Function points vary according to the user or software
requirement.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 125
Project Estimation
• Effort estimation : The managers estimate efforts in terms of
personnel requirement and man-hour required to produce the software.
• For effort estimation software size should be known.
• This can either be derived by managers’ experience, organization’s
historical data or software size can be converted into efforts by using
some standard formulae.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 126


Project Estimation
• Time estimation Once size and efforts are estimated, the time
required to produce the software can be estimated.
• Efforts required is segregated into sub categories as per the
requirement specifications and interdependency of various
components of software.
• Software tasks are divided into smaller tasks, activities or events by
Work Breakthrough Structure (WBS).
• The tasks are scheduled on day-to-day basis or in calendar months.
• The sum of time required to complete all tasks in hours or days is the
total time invested to complete the project.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 127


Project Estimation
• Cost estimation This might be considered as the most difficult of all
because it depends on more elements than any of the previous ones. For
estimating project cost, it is required to consider -
• Size of software
• Software quality
• Hardware
• Additional software or tools, licenses etc.
• Skilled personnel with task-specific skills
• Travel involved
• Communication
• Training and support

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 128


Project Estimation Techniques
• Project manager can estimate the listed factors using two broadly
recognized techniques –
• Decomposition Technique
• This technique assumes the software as a product of various
compositions.
• There are two main models -
• Line of Code Estimation is done on behalf of number of line of codes
in the software product.
• Function Points Estimation is done on behalf of number of function
points in the software product.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 129


Project Estimation Techniques
• Estimation is the process of finding an estimate, or approximation,
which is a value that can be used for some purpose even if input data
may be incomplete, uncertain, or unstable.
• Estimation determines how much money, effort, resources, and time it
will take to build a specific system or product. Estimation is based on

• Past Data/Past Experience
• Available Documents/Knowledge
• Assumptions
• Identified Risks

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 130


Project Estimation Techniques
• The four basic steps in Software Project Estimation are −
• Estimate the size of the development product.
• Estimate the effort in person-months or person-hours.
• Estimate the schedule in calendar months.
• Estimate the project cost in agreed currency.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 131


Project Estimation Techniques
• Empirical Estimation Technique
• This technique uses empirically derived formulae to make estimation.
These formulae are based on LOC or FPs.
• Putnam Model This model is made by Lawrence H. Putnam, which is
based on Norden’s frequency distribution (Rayleigh curve). Putnam
model maps time and efforts required with software size.
• COCOMO COCOMO stands for COnstructive COst MOdel,
developed by Barry W. Boehm. It divides the software product into
three categories of software: organic, semi-detached and embedded.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 132


Estimation Accuracy
• Important factors that affect the accuracy of estimates are −
• The accuracy of all the estimate’s input data.
• The accuracy of any estimate calculation.
• How closely the historical data or industry data used to calibrate the model
matches the project you are estimating.
• The predictability of your organization’s software development process.
• The stability of both the product requirements and the environment that
supports the software engineering effort.
• Whether or not the actual project was carefully planned, monitored and
controlled, and no major surprises occurred that caused unexpected delays.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 133


PROJECT ESTIMATION TECHNIQUES

• Estimation of various project parameters is a basic project planning activity.

• The important project parameters that are estimated include: project size, effort
required to develop the software, project duration, and cost.

• There are three broad categories of estimation techniques:


• Empirical estimation techniques
• Heuristic techniques
• Analytical estimation techniques
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 134
EMPIRICAL ESTIMATION TECHNIQUE
Empirical estimation techniques are based on making an educated guess of the
project parameters.

• While using this technique, prior experience with development of similar


products is helpful.

• Empirical estimation techniques are based on common sense, different activities


involved in estimation have been formalized over the years.

• Two popular empirical estimation techniques are: Expert judgment technique and
Delphi cost estimation.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 135
Expert judgment technique Expert judgment
technique
• Experts divide a software product into component units:
• e.g. GUI, database module, data communication module, billing module, etc.

• Add up the gauesses for each of the components.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 136


Heuristic techniques
• Heuristic techniques assume that the relationships among the different project parameters can be modeled
using suitable mathematical expressions. Once the basic (independent) parameters are known, the other
(dependent) parameters can be easily determined by substituting the value of the basic parameters in the
mathematical expression.

• Different heuristic estimation models can be divided into the following two classes:
• Single variable estimation model: It provide a means to estimate the desired characteristics of a
problem, using some previously estimated basic (independent) characteristic of the software product
such as its size. A single variable estimation model takes the following form:
Estimated Parameter = c1 * ed1

• multivariable cost estimation model: takes the following form: Multivariable estimation models are
expected to give more accurate estimates compared to the single variable models, since a project
parameter is typically influenced by several independent parameters.
Estimated Resource = c1*e1d1 + c2*e2d2 + ...

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 137


References
• https://www.tutorialspoint.com/software_engineering/software_proj
ect_management.htm
• https://www.javatpoint.com/software-project-planning
• https://www.tutorialspoint.com/estimation_techniques/estimation_t
echniques_overview.htm

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 138


THANK YOU

139
University Institute of Engineering
DEPARTMENT OF COMPUTER SCIENCE &
ENGINEERING
Subject Name: Software Engineering
Subject Code: 23CST-206
Software Project Management

Er. Jagmeet Kaur


E8387
ASSISTANT PROFESSOR DISCOVER . LEARN . EMPOWER
CSE

09/12/24 Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 140
COCOMO Model
• Boehm proposed COCOMO (Constructive Cost Estimation Model) in
1981.
• COCOMO is one of the most generally used software estimation
models in the world.
• COCOMO predicts the efforts and schedule of a software product
based on the size of the software.
• Cocomo (Constructive Cost Model) is a regression model based on
LOC, i.e number of Lines of Code.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 141


COCOMO Model
• It is a procedural cost estimate model for software projects and often
used as a process of reliably predicting the various parameters
associated with making a project such as size, effort, cost, time and
quality.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 142


COCOMO Model
• The key parameters which define the quality of any software
products, which are also an outcome of the Cocomo are primarily
Effort & Schedule:
• Effort: Amount of labor that will be required to complete a task. It is
measured in person-months units.
• Schedule: Simply means the amount of time required for the
completion of the job, which is, of course, proportional to the effort
put. It is measured in the units of time such as weeks, months.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 143


COCOMO Model
• Different models of Cocomo have been proposed to predict the cost
estimation at different levels, based on the amount of accuracy and
correctness required.
• All of these models can be applied to a variety of projects, whose
characteristics determine the value of constant to be used in
subsequent calculations.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 144


COCOMO Model
• Boehm’s definition of organic, semidetached, and embedded systems:
• Organic – A software project is said to be an organic type if the team
size required is adequately small, the problem is well understood and
has been solved in the past and also the team members have a
nominal experience regarding the problem.
• Embedded – A software project with requiring the highest level of
complexity, creativity, and experience requirement fall under this
category. Such software requires a larger team size than the other
two models and also the developers need to be sufficiently
experienced and creative to develop such complex models.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 145


COCOMO Model
• Semi-detached – A software project is said to be a Semi-detached
type if the vital characteristics such as team-size, experience,
knowledge of the various programming environment lie in between
that of organic and Embedded.
• The projects classified as Semi-Detached are comparatively less
familiar and difficult to develop compared to the organic ones and
require more experience and better guidance and creativity.
• Eg: Compilers or different Embedded Systems can be considered of
Semi-Detached type.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 146


COCOMO Model
• Types of Models: COCOMO consists of a hierarchy of three
increasingly detailed and accurate forms. Any of the three forms can
be adopted according to our requirements. These are types of
COCOMO model:

• Basic COCOMO Model


• Intermediate COCOMO Model
• Detailed COCOMO Model

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 147


COCOMO Model
• The first level, Basic COCOMO can be used for quick and slightly
rough calculations of Software Costs. Its accuracy is somewhat
restricted due to the absence of sufficient factor considerations.
• Intermediate COCOMO takes these Cost Drivers into account
and Detailed COCOMO additionally accounts for the influence of
individual project phases, i.e in case of Detailed it accounts for both
these cost drivers and also calculations are performed phase wise
henceforth producing a more accurate result. These two models are
further discussed below.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 148


Estimation of Effort: Calculations

• The above formula is used for the cost estimation of for the basic
COCOMO model, and also is used in the subsequent models.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 149


Estimation of Effort: Calculations
• The constant values a,b,c and d for the Basic Model for the different
categories of system:

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 150


Estimation of Effort: Calculations
• The effort is measured in Person-Months and as evident from the
formula is dependent on Kilo-Lines of code.
The development time is measured in Months.
• These formulas are used as such in the Basic Model calculations, as
not much consideration of different factors such as reliability,
expertise is taken into account, henceforth the estimate is rough.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 151


Intermediate Model
• The basic Cocomo model assumes that the effort is only a function of
the number of lines of code and some constants evaluated according
to the different software system.
• However, in reality, no system’s effort and schedule can be solely
calculated on the basis of Lines of Code. For that, various other
factors such as reliability, experience, Capability. These factors are
known as Cost Drivers and the Intermediate Model utilizes 15 such
drivers for cost estimation.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 152


Classification of Cost Drivers and their
attributes:
• (i) Product attributes –
• Required software reliability extent
• Size of the application database
• The complexity of the product
• (ii) Hardware attributes –
• Run-time performance constraints
• Memory constraints
• The volatility of the virtual machine environment
• Required turnabout time

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 153


Classification of Cost Drivers and their
attributes:
• (iii) Personnel attributes –
• Analyst capability
• Software engineering capability
• Applications experience
• Virtual machine experience
• Programming language experience
• (iv) Project attributes –
• Use of software tools
• Application of software engineering methods
• Required development schedule

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 154


Intermediate Model
• The Intermediate COCOMO formula now takes the form:

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 155


Intermediate Model
• The values of a and b in case of the intermediate model are as
follows:

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 156


Detailed Model
• Detailed COCOMO incorporates all characteristics of the intermediate
version with an assessment of the cost driver’s impact on each step of
the software engineering process.
• The detailed model uses different effort multipliers for each cost
driver attribute. In detailed cocomo, the whole software is divided
into different modules and then we apply COCOMO in different
modules to estimate effort and then sum the effort.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 157


Detailed Model
• The Six phases of detailed COCOMO are:
• Planning and requirements
• System design
• Detailed design
• Module code and test
• Integration and test
• Cost Constructive model
• The effort is calculated as a function of program size and a set of cost
drivers are given according to each phase of the software lifecycle.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 158


Effort Vs Product Size
• In different cocomo models, the effort required to develop a product
increases very rapidly with project size.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 159


Development Time Vs Size
• When the size of the product increases by two times, the time to
develop the product does not double but rises moderately. This can
be explained by the fact that for larger products, a larger number of
activities which can be carried out concurrently can be identified.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 160


Examples
• Example1: Suppose a project was estimated to be 400 KLOC.
Calculate the effort and development time for each of the three
model i.e., organic, semi-detached & embedded.
Solution: The basic COCOMO equation takes the form:
Effort=a1*(KLOC) a2 PM
Tdev=b1*(efforts)b2 Months
Estimated Size of project= 400 KLOC
(i)Organic Mode
E = 2.4 * (400)1.05 = 1295.31 PM
D = 2.5 * (1295.31)0.38=38.07 PM

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 161


Examples
(ii)Semidetached Mode
E = 3.0 * (400)1.12=2462.79 PM
D = 2.5 * (2462.79)0.35=38.45 PM
(iii) Embedded Mode
E = 3.6 * (400)1.20 = 4772.81 PM
D = 2.5 * (4772.8)0.32 = 38 PM

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 162


Examples
• A project size of 200 KLOC is to be developed. Software development
team has average experience on similar type of projects. The project
schedule is not very tight. Calculate the Effort, development time,
average staff size, and productivity of the project.

• Solution: The semidetached mode is the most appropriate mode,


keeping in view the size, schedule and experience of development
time.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 163


Examples

Hence E=3.0(200)1.12=1133.12PM
D=2.5(1133.12)0.35=29.3PM
P = 176 LOC/PM

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 164


References

• https://www.geeksforgeeks.org/software-engineering-cocomo-
model/
• https://www.javatpoint.com/cocomo-model
• https://www.educba.com/cocomo-model/

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 165


THANK YOU

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 166


University Institute of Engineering
DEPARTMENT OF COMPUTER SCIENCE &
ENGINEERING
Subject Name: Software Engineering
Subject Code: 23CST-206
Software Project Management

Er. Jagmeet Kaur


E8387
ASSISTANT PROFESSOR DISCOVER . LEARN . EMPOWER
CSE

09/12/24 Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 167
• Project scheduling

• Risk analysis and management

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 168


Project Scheduling
• Project-task scheduling is a significant project planning activity.
• It comprises deciding which functions would be taken up when.
• To schedule the project plan, a software project manager wants to do the
following:
• Identify all the functions required to complete the project.
• Break down large functions into small activities.
• Determine the dependency among various activities.
• Establish the most likely size for the time duration required to complete the
activities.
• Allocate resources to activities.
• Plan the beginning and ending dates for different activities.
• Determine the critical path. A critical way is the group of activities that decide the
duration of the project.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 169


Project Scheduling

• Project schedule simply means a mechanism that is used to


communicate and know about that tasks are needed and has to be
done or performed and which organizational resources will be given
or allocated to these tasks and in what time duration or time frame
work is needed to be performed.
• Effective project scheduling leads to success of project, reduced cost,
and increased customer satisfaction. Scheduling in project
management means to list out activities, deliverables, and milestones
within a project that are delivered.
• It contains more notes than your average weekly planner notes. The
most common and important form of project schedule is Gantt chart.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 170


Project Scheduling

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 171


Project Scheduling
• The first method in scheduling a software plan involves identifying all
the functions required to complete the project.
• Next, the large functions are broken down into a valid set of small
activities which would be assigned to various engineers.
• The work breakdown structure formalism supports the manager to
breakdown the function systematically after the project manager has
broken down the purpose and constructs the work breakdown
structure; he has to find the dependency among the activities.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 172


Project Scheduling
• Dependency among the various activities determines the order in
which the various events would be carried out.
• If an activity A necessary the results of another activity B, then
activity A must be scheduled after activity B. In general, the function
dependencies describe a partial ordering among functions, i.e., each
service may precede a subset of other functions, but some functions
might not have any precedence ordering describe between them
(called concurrent function).
• The dependency among the activities is defined in the pattern of an
activity network.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 173


Project Scheduling
• Once the activity network representation has been processed out,
resources are allocated to every activity.
• Resource allocation is usually done using a Gantt chart.
• After resource allocation is completed, a PERT chart representation is
developed.
• The PERT chart representation is useful for program monitoring and
control.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 174


Project Scheduling
• For task scheduling, the project plan needs to decompose the project
functions into a set of activities.
• The time frame when every activity is to be performed is to be
determined.
• The end of every action is called a milestone.
• The project manager tracks the function of a project by audit the
timely completion of the milestones.
• If he examines that the milestones start getting delayed, then he has
to handle the activities carefully so that the complete deadline can
still be met.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 175


Advantages of Project Scheduling
• There are several advantages provided by project schedule in our
project management:
• It simply ensures that everyone remains on same page as far as tasks
get completed, dependencies, and deadlines.
• It helps in identifying issues early and concerns such as lack or
unavailability of resources.
• It also helps to identify relationships and to monitor process.
• It provides effective budget management and risk mitigation.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 176


Risk Management
• What is Risk?
• "Tomorrow problems are today's risk."
• Hence, a clear definition of a "risk" is a problem that could cause
some loss or threaten the progress of the project, but which has not
happened yet.
• These potential issues might harm cost, schedule or technical success
of the project and the quality of our software device, or project team
morale.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 177


Risk Management
• Risk Management is the system of identifying addressing and
eliminating these problems before they can damage the project.
• We need to differentiate risks, as potential issues, from the current
problems of the project.
• Different methods are required to address these two kinds of issues.
• For example, staff storage, because we have not been able to select
people with the right technical skills is a current problem, but the
threat of our technical persons being hired away by the competition is
a risk.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 178


Risk Management

• A software project can be concerned with a large variety of risks. In order


to be adept to systematically identify the significant risks which might
affect a software project, it is essential to classify risks into different
classes.
• The project manager can then check which risks from each class are
relevant to the project.
• There are three main classifications of risks which can affect a software
project:
• Project risks
• Technical risks
• Business risks

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 179


Risk Management
1. Project risks: Project risks concern differ forms of budgetary,
schedule, personnel, resource, and customer-related problems.
Since the software is intangible, it is very tough to monitor and
control a software project.
It is very tough to control something which cannot be identified.
For any manufacturing program, such as the manufacturing of cars,
the plan executive can recognize the product taking shape.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 180


Risk Management
2.Technical risks: Technical risks concern potential method,
implementation, interfacing, testing, and maintenance issue. It also
consists of an ambiguous specification, incomplete specification,
changing specification, technical uncertainty, and technical
obsolescence. Most technical risks appear due to the development
team's insufficient knowledge about the project.
3. Business risks: This type of risks contain risks of building an excellent
product that no one need, losing budgetary or personnel
commitments, etc.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 181


Other risk categories
1. Known risks: Those risks that can be uncovered after careful
assessment of the project program, the business and technical
environment in which the plan is being developed, and more reliable
data sources (e.g., unrealistic delivery date)
2. Predictable risks: Those risks that are hypothesized from previous
project experience (e.g., past turnover)
3. Unpredictable risks: Those risks that can and do occur, but are
extremely tough to identify in advance.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 182


Principle of Risk Management

• Global Perspective: In this, we review the bigger system description, design, and
implementation. We look at the chance and the impact the risk is going to have.
• Take a forward-looking view: Consider the threat which may appear in the future
and create future plans for directing the next events.
• Open Communication: This is to allow the free flow of communications between
the client and the team members so that they have certainty about the risks.
• Integrated management: In this method risk management is made an integral
part of project management.
• Continuous process: In this phase, the risks are tracked continuously throughout
the risk management paradigm.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 183


Risk Management Activities
• Risk management consists of three main activities, as shown in fig:

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 184


Risk Assessment

• The objective of risk assessment is to division the risks in the condition of


their loss, causing potential. For risk assessment, first, every risk should be
rated in two methods:
• The possibility of a risk coming true (denoted as r).
• The consequence of the issues relates to that risk (denoted as s).
• Based on these two methods, the priority of each risk can be estimated:
• p=r*s
• Where p is the priority with which the risk must be controlled, r is the
probability of the risk becoming true, and s is the severity of loss caused
due to the risk becoming true. If all identified risks are set up, then the
most likely and damaging risks can be controlled first, and more
comprehensive risk abatement methods can be designed for these risks.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 185


Risk Identification
• The project organizer needs to anticipate the risk in the project as early as
possible so that the impact of risk can be reduced by making effective risk
management planning.
• A project can be of use by a large variety of risk. To identify the significant
risk, this might affect a project. It is necessary to categories into the
different risk of classes.
• There are different types of risks which can affect a software project:
• Technology risks: Risks that assume from the software or hardware
technologies that are used to develop the system.
• People risks: Risks that are connected with the person in the development
team.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 186


Risk Identification
• Organizational risks: Risks that assume from the organizational
environment where the software is being developed.
• Tools risks: Risks that assume from the software tools and other
support software used to create the system.
• Requirement risks: Risks that assume from the changes to the
customer requirement and the process of managing the requirements
change.
• Estimation risks: Risks that assume from the management estimates
of the resources required to build the system

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 187


Risk Analysis
• During the risk analysis process, you have to consider every identified risk
and make a perception of the probability and seriousness of that risk.
• There is no simple way to do this. You have to rely on your perception and
experience of previous projects and the problems that arise in them.
• It is not possible to make an exact, the numerical estimate of the
probability and seriousness of each risk. Instead, you should authorize the
risk to one of several bands:
• The probability of the risk might be determined as very low (0-10%), low
(10-25%), moderate (25-50%), high (50-75%) or very high (+75%).
• The effect of the risk might be determined as catastrophic (threaten the
survival of the plan), serious (would cause significant delays), tolerable
(delays are within allowed contingency), or insignificant.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 188


Risk Control

• It is the process of managing risks to achieve desired outcomes. After all, the
identified risks of a plan are determined; the project must be made to include the
most harmful and the most likely risks. Different risks need different containment
methods. In fact, most risks need ingenuity on the part of the project manager in
tackling the risk.
• There are three main methods to plan for risk management:
• Avoid the risk: This may take several ways such as discussing with the client to
change the requirements to decrease the scope of the work, giving incentives to
the engineers to avoid the risk of human resources turnover, etc.
• Transfer the risk: This method involves getting the risky element developed by a
third party, buying insurance cover, etc.
• Risk reduction: This means planning method to include the loss due to risk. For
instance, if there is a risk that some key personnel might leave, new recruitment
can be planned.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 189


Risk Leverage
• : To choose between the various methods of handling risk, the project
plan must consider the amount of controlling the risk and the
corresponding reduction of risk. For this, the risk leverage of the
various risks can be estimated.
• Risk leverage is the variation in risk exposure divided by the amount
of reducing the risk.
• Risk leverage = (risk exposure before reduction - risk exposure after
reduction) / (cost of reduction)

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 190


Risk Leverage
• 1. Risk planning: The risk planning method considers each of the key risks
that have been identified and develop ways to maintain these risks.
• For each of the risks, you have to think of the behavior that you may take
to minimize the disruption to the plan if the issue identified in the risk
occurs.
• You also should think about data that you might need to collect while
monitoring the plan so that issues can be anticipated.
• Again, there is no easy process that can be followed for contingency
planning. It rely on the judgment and experience of the project manager.
• 2. Risk Monitoring: Risk monitoring is the method king that your
assumption about the product, process, and business risks has not
changed.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 191


References
• https://www.geeksforgeeks.org/short-note-on-project-scheduling/
• https://www.javatpoint.com/software-engineering-project-
scheduling
• https://tutorialsinhand.com/tutorials/software-engineering-
tutorial/software-project-management/software-project-
scheduling.aspx
• https://www.geeksforgeeks.org/software-engineering-risk-
management/

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 192


THANK YOU

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 193


University Institute of Engineering
DEPARTMENT OF COMPUTER SCIENCE &
ENGINEERING
Subject Name: Software Engineering
Subject Code: 23CST-206
Software Project Management

Er. Jagmeet Kaur


E8387
ASSISTANT PROFESSOR DISCOVER . LEARN . EMPOWER
CSE

09/12/24 Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 194
Chapter-4
Software Project Management
• Software quality and management

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 195


Software Quality Management
• Software Quality Management is a process that ensures the required
level of software quality is achieved when it reaches the users, so that
they are satisfied by its performance.

• The process involves quality assurance, quality planning, and quality


control. This tutorial provides a complete overview of Software
Quality Management and describes the various steps involved in the
process.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 196


Software Quality Management
• Quality software refers to a software which is reasonably bug or defect
free, is delivered in time and within the specified budget, meets the
requirements and/or expectations, and is maintainable. In the software
engineering context, software quality reflects both functional
quality as well as structural quality.
• Software Functional Quality − It reflects how well it satisfies a given
design, based on the functional requirements or specifications.
• Software Structural Quality − It deals with the handling of non-
functional requirements that support the delivery of the functional
requirements, such as robustness or maintainability, and the degree to
which the software was produced correctly.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 197


Software Quality Management
• Software Quality Assurance − Software Quality Assurance (SQA) is
a set of activities to ensure the quality in software engineering
processes that ultimately result in quality software products. The
activities establish and evaluate the processes that produce products. It
involves process-focused action.
• Software Quality Control − Software Quality Control (SQC) is a set
of activities to ensure the quality in software products. These activities
focus on determining the defects in the actual products produced. It
involves product-focused action.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 198


Software Quality Factors
• The various factors, which influence the software, are termed as
software factors.
• They can be broadly divided into two categories.
• The first category of the factors is of those that can be measured
directly such as the number of logical errors, and the second category
clubs those factors which can be measured only indirectly.
• For example, maintainability but each of the factors is to be measured
to check for the content and the quality control.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 199


McCall’s Factor Model
• This model classifies all software requirements into 11 software
quality factors. The 11 factors are grouped into three categories –
product operation, product revision, and product transition factors.
• Product operation factors − Correctness, Reliability, Efficiency,
Integrity, Usability.
• Product revision factors − Maintainability, Flexibility, Testability.
• Product transition factors − Portability, Reusability, Interoperability.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 200


McCall’s Factor Model
• Product Operation Software Quality Factors
• According to McCall’s model, product operation category includes five software quality
factors, which deal with the requirements that directly affect the daily operation of the
software. They are as follows −
• Correctness These requirements deal with the correctness of the output of the software
system.
• The required accuracy of output that can be negatively affected by inaccurate data or
inaccurate calculations.
• The completeness of the output information, which can be affected by incomplete data.
• The up-to-dateness of the information defined as the time between the event and the
response by the software system.
• The availability of the information.
• The standards for coding and documenting the software system.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 201


McCall’s Factor Model
• Reliability
• Reliability requirements deal with service failure. They determine the maximum allowed failure
rate of the software system, and can refer to the entire system or to one or more of its separate
functions.
• Efficiency
• It deals with the hardware resources needed to perform the different functions of the software
system. It includes processing capabilities (given in MHz), its storage capacity (given in MB or
GB) and the data communication capability (given in MBPS or GBPS).
• It also deals with the time between recharging of the system’s portable units, such as, information
system units located in portable computers, or meteorological units placed outdoors.
• Integrity
• This factor deals with the software system security, that is, to prevent access to unauthorized
persons, also to distinguish between the group of people to be given read as well as write permit.
• Usability
• Usability requirements deal with the staff resources needed to train a new employee and to operate
the software system.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 202


McCall’s Factor Model
• Product Revision Quality Factors
• According to McCall’s model, three software quality factors are included in the product revision
category. These factors are as follows −
• Maintainability
• This factor considers the efforts that will be needed by users and maintenance personnel to identify
the reasons for software failures, to correct the failures, and to verify the success of the corrections.
• Flexibility
• This factor deals with the capabilities and efforts required to support adaptive maintenance
activities of the software. These include adapting the current software to additional circumstances
and customers without changing the software. This factor’s requirements also support perfective
maintenance activities, such as changes and additions to the software in order to improve its
service and to adapt it to changes in the firm’s technical or commercial environment.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 203


McCall’s Factor Model
• Testability
• Testability requirements deal with the testing of the software system as
well as with its operation. It includes predefined intermediate results,
log files, and also the automatic diagnostics performed by the software
system prior to starting the system, to find out whether all components
of the system are in working order and to obtain a report about the
detected faults. Another type of these requirements deals with
automatic diagnostic checks applied by the maintenance technicians to
detect the causes of software failures.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 204


McCall’s Factor Model
• Product Transition Software Quality Factor
• According to McCall’s model, three software quality factors are
included in the product transition category that deals with the
adaptation of software to other environments and its interaction with
other software systems. These factors are as follows −
• Portability
• Portability requirements tend to the adaptation of a software system to
other environments consisting of different hardware, different
operating systems, and so forth. The software should be possible to
continue using the same basic software in diverse situations.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 205
McCall’s Factor Model
• Reusability
• This factor deals with the use of software modules originally designed for
one project in a new software project currently being developed. They may
also enable future projects to make use of a given module or a group of
modules of the currently developed software. The reuse of software is
expected to save development resources, shorten the development period,
and provide higher quality modules.
• Interoperability
• Interoperability requirements focus on creating interfaces with other
software systems or with other equipment firmware. For example, the
firmware of the production machinery and testing equipment interfaces with
the production control software.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 206
Responsibilities of management in Software
Quality
• Basically, a three-level structure of management exists in software
development organizations −
• Top management
• Department management
• Project management

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 207


Responsibilities of management in Software Quality
• Top Management Responsibilities in Software Quality
• Following are the responsibilities of the top management in ensuring Software
Quality −
• Assure the quality of the company’s software products and software maintenance
services
• Communicate the importance of the product and service quality in addition to
customer satisfaction to employees at all levels
• Assure satisfactory functioning and full compliance with customer requirements
• Ensure that quality objectives are established for the organization’s SQA system
• Initiate planning and oversee implementation of changes necessary to adapt the
SQA system to major internal as well as external changes related to the
organization’s clientele, competition, and technology
• Intervene directly to support resolution of crisis situations and minimize damages
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 208
Responsibilities of management in Software Quality
• Department Management Responsibilities for SQA
• Middle management’s quality assurance responsibilities include −
• Management of the software quality management system (quality
system-related tasks)
• Management of tasks related to the projects and services performed by
units or teams under the specific manager’s authority (project-related
tasks)

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 209


Responsibilities of management in Software Quality
• Project management responsibilities on software quality
• Most project management responsibilities are defined in procedures
and work instructions; the project manager is the person in-charge of
making sure that all the team members comply with the said
procedures and instructions.
• His tasks include professional hands-on and managerial tasks,
particularly the following −
• Professional hands-on tasks
• Preparation of project and quality plans and their updates
• Participation in joint customer–supplier committee
• Close follow-up of project team staffing, including attending to
recruitment, training and instruction
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 210
Responsibilities of management in Software Quality
• Management tasks
• Project managers address the follow-up issues such as −
• Performance of review activities and the consequent corrections
• Software development and maintenance unit’s performance, integration
and system test activities as well as corrections and regression tests
• Performance of acceptance tests
• Software installation in remote customer sites and the execution of the
software system by the customer
• SQA training and instruction of project team members
• Schedules and resources allocated to project activities
• Customer requests and satisfaction
• Evolving project development risks, application of solutions and control
of results
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 211
References
• https://www.tutorialspoint.com/software_quality_management/soft
ware_quality_management_role_of_management_in_qa.htm
• https://www.tutorialspoint.com/software_quality_management/soft
ware_quality_management_factors.htm
• https://www.tutorialspoint.com/software_quality_management/soft
ware_quality_management_factors.htm

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 212


THANK YOU

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 213


University Institute of Engineering
DEPARTMENT OF COMPUTER SCIENCE &
ENGINEERING
Subject Name: Software Engineering
Subject Code: 23CST-206
Software Project Management

Er. Jagmeet Kaur


E8387
ASSISTANT PROFESSOR DISCOVER . LEARN . EMPOWER
CSE

09/12/24 Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 214
Chapter-4
Software Project Management

• Software configuration management

215
Software Configuration Management
• When we develop software, the product (software) undergoes many
changes in their maintenance phase; we need to handle these changes
effectively.
• Several individuals (programs) works together to achieve these
common goals. This individual produces several work product (SC
Items) e.g., Intermediate version of modules or test data used during
debugging, parts of the final product.
• The elements that comprise all information produced as a part of the
software process are collectively called a software configuration.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 216


Software Configuration Management
• In Software Engineering, Software Configuration
Management(SCM) is a process to systematically manage, organize,
and control the changes in the documents, codes, and other entities
during the Software Development Life Cycle.
• The primary goal is to increase productivity with minimal mistakes.
SCM is part of cross-disciplinary field of configuration management
and it can accurately determine who made which revision.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 217


Software Configuration Management
• System Configuration Management (SCM) is an arrangement of
exercises which controls change by recognizing the items for change,
setting up connections between those things, making/characterizing
instruments for overseeing diverse variants, controlling the changes
being executed in the current framework, inspecting and
revealing/reporting on the changes made.
• It is essential to control the changes in light of the fact that if the
changes are not checked legitimately then they may wind up
undermining a well-run programming.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 218


Software Configuration Management
• As software development progresses, the number of Software Configuration
elements grow rapidly.
• These are handled and controlled by SCM. This is where we require
software configuration management.
• A configuration of the product refers not only to the product's constituent
but also to a particular version of the component.
• Therefore, SCM is the discipline which
• Identify change
• Monitor and control change
• Ensure the proper implementation of change made to the item.
• Auditing and reporting on the change made.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 219


Software Configuration Management
• Configuration Management (CM) is a technic of identifying,
organizing, and controlling modification to software being built by a
programming team.
• The objective is to maximize productivity by minimizing mistakes
(errors).
• CM is used to essential due to the inventory management, library
management, and updation management of the items essential for the
project

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 220


Why do we need Configuration Management?
• Multiple people are working on software which is consistently
updating.
• It may be a method where multiple version, branches, authors are
involved in a software project, and the team is geographically
distributed and works concurrently.
• It changes in user requirements, and policy, budget, schedules need to
be accommodated.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 221


Importance of SCM
• It is practical in controlling and managing the access to various SCIs
e.g., by preventing the two members of a team for checking out the
same component for modification at the same time.
• It provides the tool to ensure that changes are being properly
implemented.
• It has the capability of describing and storing the various constituent
of software.
• SCM is used in keeping a system in a consistent state by automatically
producing derived version upon modification of the same component.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 222


Processes involved in SCM
• Configuration management provides a disciplined environment for
smooth control of work products. It involves the following activities:
• Identification and Establishment – Identifying the configuration
items from products that compose baselines at given points in time.
• A baseline is a set of mutually consistent Configuration Items, which
has been formally reviewed and agreed upon, and serves as the basis
of further development.
• Establishing relationship among items, creating a mechanism to
manage multiple level of control and procedure for change
management system.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 223
Processes involved in SCM
• Version control – Creating versions/specifications of the existing
product to build new products from the help of SCM system. A
description of version is given below:

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 224


Processes involved in SCM
• Suppose after some changes, the version of configuration object
changes from 1.0 to 1.1. Minor corrections and changes result in
versions 1.1.1 and 1.1.2, which is followed by a major update that is
object 1.2.
• The development of object 1.0 continues through 1.3 and 1.4, but
finally, a noteworthy change to the object results in a new evolutionary
path, version 2.0. Both versions are currently supported.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 225


Processes involved in SCM
• Change control – Controlling changes to Configuration items (CI).
The change control process is explained in Figure :
• A change request (CR) is submitted and evaluated to assess technical
merit, potential side effects, overall impact on other configuration
objects and system functions, and the projected cost of the change.
• The results of the evaluation are presented as a change report, which
is used by a change control board (CCB) —a person or group who
makes a final decision on the status and priority of the change.
• An engineering change Request (ECR) is generated for each approved
change.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 226
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 227
Processes involved in SCM
• CCB notifies the developer in case the change is rejected with proper
reason.
• The ECR describes the change to be made, the constraints that must be
respected, and the criteria for review and audit.
• The object to be changed is “checked out” of the project database, the
change is made, and then the object is tested again.
• The object is then “checked in” to the database and appropriate
version control mechanisms are used to create the next version of the
software.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 228


Processes involved in SCM
• Configuration auditing – A software configuration audit
complements the formal technical review of the process and product.
• It focuses on the technical correctness of the configuration object that
has been modified.
• The audit confirms the completeness, correctness and consistency of
items in the SCM system and track action items from the audit to
closure.
• Reporting – Providing accurate status and current configuration data
to developers, tester, end users, customers and stakeholders through
admin guides, user guides, FAQs, Release notes, Memos, Installation
Guide, Configuration guide etc .
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 229
SCM Tools

Different tools are available in market for SCM like: CFEngine, Bcfg2
server, Vagrant, SmartFrog, CLEAR CASETOOL (CC), SaltStack,
CLEAR QUEST TOOL, Puppet, SVN- Subversion, Perforce,
TortoiseSVN, IBM Rational team concert, IBM Configuration
management version management, Razor, Ansible, etc.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 230


References
• https://www.guru99.com/software-configuration-management-
tutorial.html
• https://www.geeksforgeeks.org/software-engineering-system-
configuration-management/
• https://www.javatpoint.com/software-configuration-management

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 231


THANK YOU

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 232


University Institute of Engineering
DEPARTMENT OF COMPUTER SCIENCE &
ENGINEERING
Subject Name: Software Engineering
Subject Code: 23CST-206
User Interface Design

Er. Jagmeet Kaur


E8387
ASSISTANT PROFESSOR DISCOVER . LEARN . EMPOWER
CSE

09/12/24 Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 233
Chapter-4
User Interface Design

• Good User Interface design

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 234


User Interface Design
• User interface is the front-end application view to which user interacts
in order to use the software.
• User can manipulate and control the software as well as hardware by
means of user interface.
• Today, user interface is found at almost every place where digital
technology exists, right from computers, mobile phones, cars, music
players, airplanes, ships etc.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 235


User Interface Design
• User interface is part of software and is designed such a way that it is
expected to provide the user insight of the software.
• UI provides fundamental platform for human-computer interaction.
• UI can be graphical, text-based, audio-video based, depending upon
the underlying hardware and software combination.
• UI can be hardware or software or a combination of both.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 236


When do the software become popular?
• The software becomes more popular if its user interface is:
• Attractive
• Simple to use
• Responsive in short time
• Clear to understand
• Consistent on all interfacing screens

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 237


User Interface Design
• User Interface (UI) Design focuses on anticipating what users might
need to do and ensuring that the interface has elements that are easy to
access, understand, and use to facilitate those actions.
• UI brings together concepts from interaction design, visual design,
and information architecture.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 238


User Interface Design
• Choosing Interface Elements
• Users have become familiar with interface elements acting in a certain
way, so try to be consistent and predictable in your choices and their
layout.
• Doing so will help with task completion, efficiency, and satisfaction.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 239


User Interface Design
• Interface elements include but are not limited to:
• Input Controls: buttons, text fields, checkboxes, radio buttons,
dropdown lists, list boxes, toggles, date field
• Navigational Components: breadcrumb, slider, search field,
pagination, slider, tags, icons
• Informational Components: tooltips, icons, progress bar,
notifications, message boxes, modal windows
• Containers: accordion

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 240


User Interface Design
• There are times when multiple elements might be appropriate for
displaying content.
• When this happens, it’s important to consider the trade-offs.
• For example, sometimes elements that can help save you space, put
more of a burden on the user mentally by forcing them to guess what
is within the dropdown or what the element might be.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 241


Best Practices for Designing an Interface
• Everything stems from knowing your users, including understanding their
goals, skills, preferences, and tendencies. Once you know about your user,
make sure to consider the following when designing your interface:
• Keep the interface simple. The best interfaces are almost invisible to the
user. They avoid unnecessary elements and are clear in the language they
use on labels and in messaging.
• Create consistency and use common UI elements. By using common
elements in your UI, users feel more comfortable and are able to get things
done more quickly. It is also important to create patterns in language,
layout and design throughout the site to help facilitate efficiency. Once a
user learns how to do something, they should be able to transfer that skill to
other parts of the site.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 242


Best Practices for Designing an Interface
• Strategically use color and texture. You can direct attention toward
or redirect attention away from items using color, light, contrast, and
texture to your advantage.
• Use typography to create hierarchy and clarity. Carefully consider
how you use typeface. Different sizes, fonts, and arrangement of the
text to help increase scanability, legibility and readability.
• Be purposeful in page layout. Consider the spatial relationships
between items on the page and structure the page based on importance.
Careful placement of items can help draw attention to the most
important pieces of information and can aid scanning and readability.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 243
Best Practices for Designing an Interface
• Make sure that the system communicates what’s
happening. Always inform your users of location, actions, changes in
state, or errors. The use of various UI elements to communicate status
and, if necessary, next steps can reduce frustration for your user.
• Think about the defaults. By carefully thinking about and
anticipating the goals people bring to your site, you can create defaults
that reduce the burden on the user. This becomes particularly
important when it comes to form design where you might have an
opportunity to have some fields pre-chosen or filled out.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 244


Principles of a Good User Interface
• Clear and intuitive user navigation
• Target audience is well defined
• Consistency
• Transparency
• Familiar UI elements
• attractiveness
• Design is made for people
• Proactive user interface

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 245


Principles of a Good User Interface
• Everything is easily accessible
• Additional tips and tricks
• Number of gestures is limited
• Compliance with design standards
• Make Everything the User Needs Readily Accessible
• Be Consistent
• Be Clear
• Give Feedback

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 246


Principles of a Good User Interface
• Choose How People Will Interact First
• Follow Design Standards
• Keep Things Simple

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 247


References
• https://www.tutorialspoint.com/software_engineering/software_use
r_interface_design.htm
• https://www.usability.gov/what-and-why/user-interface-
design.html#:~:text=The%20best%20interfaces%20are%20almost,get
%20things%20done%20more%20quickly.
• https://www.elegantthemes.com/blog/resources/10-rules-of-good-
ui-design-to-follow-on-every-web-design-project

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 248


THANK YOU

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 249


University Institute of Engineering
DEPARTMENT OF COMPUTER SCIENCE &
ENGINEERING
Subject Name: Software Engineering
Subject Code: 23CST-206
User Interface Design

Er. Jagmeet Kaur


E8387
ASSISTANT PROFESSOR DISCOVER . LEARN . EMPOWER
CSE

09/12/24 Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 250
Chapter-4
User Interface Design

• Command language user interface

• Menu based Direct manipulation interfaces

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 251


User Interface
• User interface is the front-end application view to which user interacts
in order to use the software.
• User can manipulate and control the software as well as hardware by
means of user interface.
• Today, user interface is found at almost every place where digital
technology exists, right from computers, mobile phones, cars, music
players, airplanes, ships etc.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 252


Types of User Interface
• UI is broadly divided into two categories:
• Command Line Interface
• Graphical User Interface

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 253


Command Line Interface (CLI)
• CLI has been a great tool of interaction with computers until the video
display monitors came into existence. CLI is first choice of many
technical users and programmers. CLI is minimum interface a
software can provide to its users.
• CLI provides a command prompt, the place where the user types the
command and feeds to the system. The user needs to remember the
syntax of command and its use. Earlier CLI were not programmed to
handle the user errors effectively.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 254


Command Line Interface (CLI)
• A command is a text-based reference to set of instructions, which are
expected to be executed by the system. There are methods like macros,
scripts that make it easy for the user to operate.
• CLI uses less amount of computer resource as compared to GUI.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 255


CLI Elements

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 256


CLI Elements
• A text-based command line interface can have the following elements:
• Command Prompt - It is text-based notifier that is mostly shows the
context in which the user is working. It is generated by the software system.
• Cursor - It is a small horizontal line or a vertical bar of the height of line, to
represent position of character while typing. Cursor is mostly found in
blinking state. It moves as the user writes or deletes something.
• Command - A command is an executable instruction. It may have one or
more parameters. Output on command execution is shown inline on the
screen. When output is produced, command prompt is displayed on the next
line.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 257


Graphical User Interface
• Graphical User Interface provides the user graphical means to interact
with the system.
• GUI can be combination of both hardware and software.
• Using GUI, user interprets the software.
• Typically, GUI is more resource consuming than that of CLI.
• With advancing technology, the programmers and designers create
complex GUI designs that work with more efficiency, accuracy and
speed.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 258


GUI Elements
• GUI provides a set of components to interact with software or
hardware.
• Every graphical component provides a way to work with the system. A
GUI system has following elements such as:
• Window - An area where contents of application are displayed.
Contents in a window can be displayed in the form of icons or lists, if
the window represents file structure. It is easier for a user to navigate
in the file system in an exploring window. Windows can be
minimized, resized or maximized to the size of screen. They can be
moved anywhere on the screen. A window may contain another
window of the same application, called child window.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 259


GUI Elements

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 260


GUI Elements
• Tabs - If an application allows executing multiple instances of itself,
they appear on the screen as separate windows. Tabbed Document
Interface has come up to open multiple documents in the same
window. This interface also helps in viewing preference panel in
application. All modern web-browsers use this feature.
• Menu - Menu is an array of standard commands, grouped together and
placed at a visible place (usually top) inside the application window.
The menu can be programmed to appear or hide on mouse clicks.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 261


GUI Elements
• Icon - An icon is small picture representing an associated application.
When these icons are clicked or double clicked, the application
window is opened. Icon displays application and programs installed on
a system in the form of small pictures.
• Cursor - Interacting devices such as mouse, touch pad, digital pen are
represented in GUI as cursors. On screen cursor follows the
instructions from hardware in almost real-time. Cursors are also
named pointers in GUI systems. They are used to select menus,
windows and other application features.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 262


Application specific GUI components
• A GUI of an application contains one or more of the listed GUI
elements:
• Application Window - Most application windows uses the constructs
supplied by operating systems but many use their own customer
created windows to contain the contents of application.
• Dialogue Box - It is a child window that contains message for the user
and request for some action to be taken. For Example: Application
generate a dialogue to get confirmation from user to delete a file.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 263


Application specific GUI components
• Text-Box - Provides an area for user to type and enter text-based data.
• Buttons - They imitate real life buttons and are used to submit inputs
to the software.
• Radio-button - Displays available options for selection. Only one can
be selected among all offered.
• Check-box - Functions similar to list-box. When an option is selected,
the box is marked as checked. Multiple options represented by check
boxes can be selected.
• List-box - Provides list of available items for selection. More than one
item can be selected.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 264


References
• https://www.tutorialspoint.com/software_engineering/software_use
r_interface_design.htm
• https://www.usability.gov/what-and-why/user-interface-
design.html#:~:text=The%20best%20interfaces%20are%20almost,get
%20things%20done%20more%20quickly.
• https://www.elegantthemes.com/blog/resources/10-rules-of-good-
ui-design-to-follow-on-every-web-design-project

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 265


THANK YOU

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 266


University Institute of Engineering
DEPARTMENT OF COMPUTER SCIENCE &
ENGINEERING
Subject Name: Software Engineering
Subject Code: 23CST-206
User Interface Design

Er. Jagmeet Kaur


E8387
ASSISTANT PROFESSOR DISCOVER . LEARN . EMPOWER
CSE

09/12/24 Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 267
User Interface Design
• User Interface Design Activities

• GUI Implementation Tools

• command line interface (CLI)

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 268


User Interface Design Activities
• There are a number of activities performed for designing user
interface. The process of GUI design and implementation is alike
SDLC. Any model can be used for GUI implementation among
Waterfall, Iterative or Spiral Model.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 269


User Interface Design Activities
• A model used for GUI design and development should fulfill these
GUI specific steps.
• GUI Requirement Gathering - The designers may like to have list of
all functional and non-functional requirements of GUI. This can be
taken from user and their existing software solution.
• User Analysis - The designer studies who is going to use the software
GUI. The target audience matters as the design details change
according to the knowledge and competency level of the user. If user
is technical savvy, advanced and complex GUI can be incorporated.
For a novice user, more information is included on how-to of software.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 270
User Interface Design Activities
• Task Analysis - Designers have to analyze what task is to be done by the
software solution. Here in GUI, it does not matter how it will be done. Tasks
can be represented in hierarchical manner taking one major task and
dividing it further into smaller sub-tasks. Tasks provide goals for GUI
presentation. Flow of information among sub-tasks determines the flow of
GUI contents in the software.
• GUI Design & implementation - Designers after having information about
requirements, tasks and user environment, design the GUI and implements
into code and embed the GUI with working or dummy software in the
background. It is then self-tested by the developers.
• Testing - GUI testing can be done in various ways. Organization can have
in-house inspection, direct involvement of users and release of beta version
are few of them. Testing may include usability, compatibility, user
acceptance etc.
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 271
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 272
GUI Implementation Tools
• There are several tools available using which the designers can create entire GUI on a mouse click.
Some tools can be embedded into the software environment (IDE).
• GUI implementation tools provide powerful array of GUI controls. For software customization,
designers can change the code accordingly.
• There are different segments of GUI tools according to their different use and platform.
• Example
• Mobile GUI, Computer GUI, Touch-Screen GUI etc. Here is a list of few tools which come handy
to build GUI:
• FLUID
• AppInventor (Android)
• LucidChart
• Wavemaker
• Visual Studio
Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 273
User Interface Golden rules
• The following rules are mentioned to be the golden rules for GUI design
• Strive for consistency - Consistent sequences of actions should be required
in similar situations. Identical terminology should be used in prompts,
menus, and help screens. Consistent commands should be employed
throughout.
• Enable frequent users to use short-cuts - The user’s desire to reduce the
number of interactions increases with the frequency of use. Abbreviations,
function keys, hidden commands, and macro facilities are very helpful to an
expert user.
• Offer informative feedback - For every operator action, there should be
some system feedback. For frequent and minor actions, the response must
be modest, while for infrequent and major actions, the response must be
more substantial.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 274


User Interface Golden rules
• Design dialog to yield closure - Sequences of actions should be
organized into groups with a beginning, middle, and end. The
informative feedback at the completion of a group of actions gives the
operators the satisfaction of accomplishment, a sense of relief, the
signal to drop contingency plans and options from their minds, and
this indicates that the way ahead is clear to prepare for the next group
of actions.
• Offer simple error handling - As much as possible, design the
system so the user will not make a serious error. If an error is made,
the system should be able to detect it and offer simple, comprehensible
mechanisms for handling the error.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 275


User Interface Golden rules
• Permit easy reversal of actions - This feature relieves anxiety, since the
user knows that errors can be undone. Easy reversal of actions encourages
exploration of unfamiliar options. The units of reversibility may be a single
action, a data entry, or a complete group of actions.
• Support internal locus of control - Experienced operators strongly desire
the sense that they are in charge of the system and that the system responds
to their actions. Design the system to make users the initiators of actions
rather than the responders.
• Reduce short-term memory load - The limitation of human information
processing in short-term memory requires the displays to be kept simple,
multiple page displays be consolidated, window-motion frequency be
reduced, and sufficient training time be allotted for codes, mnemonics, and
sequences of actions.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 276


Command line interface (CLI)
• A command line interface (CLI) is a text-based user interface (UI)
used to view and manage computer files.
• Command line interfaces are also called command-line user interfaces,
console user interfaces and character user interfaces.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 277


Prompts and commands
• There are hundreds of different commands available in a command
line. The set of commands may vary dramatically between operating
systems or applications.
• The following is a list of commands in the Microsoft task
configuration and automation framework PowerShell:
• Get-Date: Retrieves the current time and date.
• cd: Used to change directories.
• Stop-Process: Terminates one or more system processes.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 278


Prompts and commands
• Although some commands operate alone, others require the use of
arguments. The argument follows the command and provides
additional details or specifics.
• For example, the cd command tells the OS to change to a different
directory, but the command line must include the name of the desired
directory path, as well.
• For example, a full command with an argument appears as:
• cd \documents\user

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 279


CLI advantages and disadvantages
• The advantages of a command line interface are:
• granular control of an OS or application;
• faster management of a large number of operating systems;
• ability to store scripts to automate regular tasks; and
• basic command line interface knowledge to help with troubleshooting,
such as network connection issues.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 280


Disadvantages
• The disadvantages of a command line interface are:
• GUI is more user-friendly;
• steeper learning curve associated with memorizing commands and
complex syntax/arguments; and
• different commands used in different shells.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 281


CLI versus GUI
• The graphical user interface is the most popular user interface today. A
GUI uses windows, menus and icons to execute commands.
• A mouse is the most common way to navigate through a GUI,
although many GUIs allow navigation and execution via a keyboard.
• One example of a GUI-based application is Microsoft Word.
• A user can change options for page layouts and styles by selecting the
corresponding icon with a mouse or keyboard.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 282


CLI versus GUI
• Administrators who manage thousands of systems or user
configurations will find a GUI far less efficient than a CLI.
• But a simple CLI command can easily adjust configurations for a large
group of systems at once.
• Commands and arguments can also be combined and saved, then
executed as a script each time that specific action -- or comprehensive
set of actions -- is required.
• The CLI is the preferred tool for many enterprise-wide systems
management tasks.

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 283


References
• https://www.tutorialspoint.com/software_engineering/software_use
r_interface_design.htm
• https://www.usability.gov/what-and-why/user-interface-
design.html#:~:text=The%20best%20interfaces%20are%20almost,get
%20things%20done%20more%20quickly.
• https://www.elegantthemes.com/blog/resources/10-rules-of-good-
ui-design-to-follow-on-every-web-design-project

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 284


THANK YOU

Er. Jagmeet Kaur, Asst. Prof., CSE, Chandigarh University 285

You might also like