0% found this document useful (0 votes)
14 views148 pages

System_and_Software

Uploaded by

Lemi Biru
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views148 pages

System_and_Software

Uploaded by

Lemi Biru
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 148

Mattu University

College of Engineering and Technology

Department of Information Technology

Exit Exam Module on System/Software Development

List of Courses

1. Event-driven Programming

2. Information Technology Project Management (ITPM)

3. System Analysis and Design (SAD)

March, 2025 G.C


Mattu, Ethiopia
Mattu University

College of Engineering and Technology

Department of Information Technology

Exit Exam Module on System/Software Development

Written By:

1) Kumera Chala (MSc)

2) Seyfu Moges (MSc)

3) Desalegn Ligaba (MSc)

1. Mr. Teshome D. (MSc.) ____________ _________________

Name of Reviewer 1 Signature Date

2. Mr.Oliyad S. (MSc.) ____________ _________________

Name of Reviewer 2 Signature Date


3._____________________ ____________ _________________

Approved By Signature Date


Module System/Software Development
name
Course Event Driven Programming
name
Course After completing this course:
Objectives
Students will be able to solve computer problem using a visual
development environment
Students will be able to demonstrate knowledge of event-driven
programming and systems development.
Students will be able to design Graphical User Interfaces (GUI)

Module System/Software Development


name
Course IT Project Management
name
Course After completing this course:
Objectives
Students will be able to describe the issues involved in IT project
management and the factors that affect software quality
Students will be able to identify range of standards, techniques and tools
developed to support IT project management and the production of high-
quality software
Students will be able to develop IT project plans, supporting software
quality plans and risk management plans.
Students will be able to apply project management concepts to manage a
software development project
Module System/Software Development
name
Course System Analysis and Design
name
Course After completing this course:
Objectives
Students will be able to describe the object-oriented technology and
modeling principles.
Students will be able to recognize systems modeling techniques
Students will be able to analyze user requirements using UML of OO
techniques.
Students will be able to apply skills to create a detailed design using UML
of OO techniques
Table of Contents

List of Figures ................................................................................................................................. v

COURSE NAME: EVENT DRIVEN PROGRAMMING ............................................................. 1

1. INTRODUCTION ........................................................................................................... ........ 1

1.1 Introduction to Event driven programming ...................................................................... 1

1.2 Introduction to Software Development ............................................................................ 2

1.3 Software Development Approaches ................................................................................. 8

1.4 Rapid Application Development .................................................................................... 11

1.5 Introduction to .Net Framework & VB.NET ................................................................. 14

1.6 VB.Net as a Programming Language ............................................................................. 14

1.6.1 Just In Time Compilers (JITers) ............................................................................. 15

1.6.2 Framework Class Library (FCL) ............................................................................ 16

1.6.3 Common Language Specification (CLS) ................................................................ 16

1.6.4 Common Type System (CTS) ................................................................................. 17

1.6.5 Garbage Collector (GC) .......................................................................................... 17

1.7 .Net Framework .............................................................................................................. 17

1.7.1 Visual Studio.Net and Hello World Console Application ...................................... 18

1.7.2 VB.Net Language Fundamentals ............................................................................ 24

1.7.3 Operators in VB.Net ............................................................................................... 28

1.7.4 Flow Control and Conditional Statements .............................................................. 31

1.7.5 Loops In VB.Net ..................................................................................................... 34

1.7.6 Arrays in VB.Net .................................................................................................... 37

1.7.7 Exception Handling in VB.Net ............................................................................... 38

1.8 Review Questions ................................................................................ ........................... 49


i
COURSE NAME: INTRODUCTION TO IT PROJECT MANAGEMENT ............................... 53

2. INTRODUCTION TO IT PROJECT MANAGEMENT ...................................................... 53

2.1 Introduction to Project Management .............................................................................. 54

2.1.1 Advantages of Using Formal Project Management ................................................ 55

2.1.2 Characteristics of Project ........................................................................................ 56

2.1.3 The Triple Constraint of Project Management ........................................................ 56

2.1.4 Project Integration Management Framework .......................................................... 58

2.1.5 Project Management Knowledge Areas .................................................................. 59

2.1.6 Role of Project Manager ......................................................................................... 60

2.1.7 Factors affecting Software quality in ITPM ............................................................ 61

2.1.8 Techniques and tools developed to support IT project management ...................... 62

2.2 PROJECT PLANNING .................................................................................................. 64

2.2.1 Overview of Project Planning ................................................................................. 64

2.2.2 Methods for Selecting Projects ............................................................................... 64

2.2.3 Common Elements of a Project Management Plan ................................................. 66

2.2.4 Attributes of Project Plans....................................................................................... 66

2.2.5 Key Components of comprehensive IT project plan ............................................... 67

2.2.6 Role of Project Management Software in Planning ................................................ 70

2.3 PROJECT TIME, COST AND SCOPE MANAGEMENT ........................................... 71

2.3.1 Project Time Management ...................................................................................... 71

2.3.2 Project Time Management Processes ...................................................................... 71

2.3.3 Importance of Time Management and Strategies ................................................... 72

2.3.4 Project Cost Management ....................................................................................... 74

2.3.5 Project Cost Management Processes ....................................................................... 74

ii
2.3.6 Basic Principles of Information Technology Project Management ........................ 76

2.3.7 Planning Cost Management .................................................................................... 77

2.3.8 Project Cost Estimation Mechanisms ..................................................................... 78

2.3.9 Project Scope Management..................................................................................... 80

2.3.10 Why Project Scope Management is Important ....................................................... 81

2.3.11 Tools and Techniques used in Project Scope Management .................................... 83

2.4PROJECT QUALITY AND HUMAN RESOURCE MANAGEMENT ....................... 84

2.4.1 Project Quality Management .................................................................................. 84

2.4.2 Important scope aspects of IT projects that affect quality ...................................... 85

2.4.3 Basic Project Quality Management Processes ........................................................ 86

2.4.4 Project Human Resource Management ................................................................... 87

2.4.5 Project Human Resource Management Processes .................................................. 88

2.4.6 Techniques for project team motivation ................................................................. 89

2.5PROJECT RISK MANAGEMENT ............................................................................... 90

2.5.1 Risk and Risk Management .................................................................................... 90

2.5.2 Project Risk Management ....................................................................................... 91

2.5.3 Tools and Techniques for Project Risk Management ............................................. 92

2.5.4 The Importance of Project Risk Management ........................................................ 93

2.5.5 Contingency and Fallback Plans, Contingency Reserves (Risk Management Plans)
94

2.5.6 Outcomes of Good Project Risk Management........................................................ 94

2.6REVIEW QUESTIONS ................................................................................................. 95

COURSE NAME: SYSTEM ANALYSIS AND DESIGN ........................................................ 103

3. GENERAL SYSTEMS CONCEPTS .................................................................................. 104

iii
3.1 DEFINITION OF TERMS ........................................................................................... 104

3.2 CHARACTERISTICS OF A SYSTEM ....................................................................... 104

3.3 DEFINITION: INFORMATION SYSTEM ................................................................. 105

3.4 SYSTEM ANALYSIS AND DESIGN ........................................................................ 109

3.5 SYSTEM AND ITS COMPONENTS .......................................................................... 110

3.6 SYSTEM CONCEPTS ................................................................................................. 111

3.7 CLASSIFICATION OF SYSTEMS ............................................................................. 112

3.8 MANAGING INFORMATION SYSTEMS PROJECTS ............................................ 115

3.9 REPRESENTING AND SCHEDULING PROJECT PLANS ..................................... 119

3.10 SYSTEM DEVELOPMENT LIFE CYCLE ................................................................ 121

3.11 APPROACHES TO SYSTEM ANALYSIS & DESIGN ............................................... 124

3.12 SYSTEMS PLANNING AND SELECTION .............................................................. 124

3.13 ASSESSING PROJECT FEASIBILITY ...................................................................... 125

3.14 ANALYSIS: REQUIREMENT DETERMINATION.................................................. 125

3.15 PROCESS MODELING............................................................................................... 128

3.16 PURPOSE OF DATABASE DESIGN......................................................................... 130

3.17 DESIGNING FORMS AND REPORTS ...................................................................... 131

3.18 SYSTEM ANALYSIS AND DESIGN MODEL EXAM ............................................ 132

iv
List of Figures
FIGURE 2.1 THE TRIPLE CONSTRAINT OF PROJECT MANAGEMENT .................................................... 58

FIGURE 2.2 PROJECT MANAGEMENT FRAMEWORK .......................................................................... 59

FIGURE 2.3 ROLE OF PROJECT MANAGER ........................................................................................ 60

FIGURE 2.4 SUMMARY OF TECHNIQUES USED TO SUPPORT ITPM ...................................................... 63

FIGURE 2.5 COMMON ELEMENTS OF PROJECT MANAGEMENT PLAN .................................................... 66

FIGURE 2.6 SUMMARY OF COMMON ATTRIBUTES IN PROJECT PLANNING ............................................. 67

FIGURE 2.7 TIME MANAGEMENT STRATEGIES FOR PROJECT MANAGERS.......................................... 73

FIGURE 2.8 PROJECT COST MANAGEMENT SUMMARY ..................................................................... 76

FIGURE 2.9 SUMMARY OF PLANNING COST MANAGEMENT .............................................................. 78

FIGURE 2.10 SUMMARY OF PROJECT COST ESTIMATION TECHNIQUES ................................................ 80

FIGURE 2.11 PROJECT HRM PROCESSES ......................................................................................... 88

v
COURSE NAME: EVENT DRIVEN PROGRAMMING
1. INTRODUCTION
1.1 Introduction to Event driven programming


There are literally hundreds of programming languages, each of which used to solve a
particular type of problem. Most traditional languages like: BASIC (Beginners' All-purpose
Symbolic Instruction Code), C COBOL (Common business-oriented language) FORTRAN
and Pascal are procedural languages. I.e. it specifies the exact sequence of all operations.
But the newer programming language, such as Visual Basic .NET, C#, & J# use a different

 approach i.e. OOP.

Visual Basic – Which provide many elements of an
object oriented language is a Stepping
 stone between Procedural programming and OOP.

For this reason, Microsoft referred Visual Basic as an event driven programming language
than an object oriented language. But with the release of visual studio.NET, which includes
Visual Basic.NET, C#, and Java, Microsoft has produced three programming languages that

 are truly object oriented.

So, Visual Basic is a programming language in which the event driven programming
paradigm is followed. It is an object based and event driven
 programming language which
 enables to create GUI application using RAD techniques.

One of the most interesting features of it is, it comes with IDE which enables to create
buttons, textboxes, Labels and others controls for application. I.e. in visual basic – code
won’t write like structural programming language. But writing programming code is

executed in response to an event. I.e. code design to react to the events.
 
 Event driven means write code to handle things occurs as the program is running.

On other hands Visual Basic is designed by put code in to an event handler and that code
can be executed when event take place. To do so, Visual Basic provide all sorts of “pieces”

 which inserted into program code that allow the detection and handling of an event.

 in to a form will detect the cursor on the textbox
For example, a text box which is inserted
then allow text input from keyboard.
What is event driven programming in Visual Basic?

1
What is event?

Event-an action that performed by the user of application. i.e. it occurs through user
action. Also an action
 which is triggered by action of other objects when certain
condition reached.
 
Common event are:
o A mouse click
o A mouse double click
o A window opening/closing
 
That means, if users clicks a mouse button on any object then the click event occurs.

1.2 Introduction to Software Development


Software is more than just a program
code. A program is an executable code, which
 serves some computational purpose.

Software is considered to be collection of executable programming code, associated
libraries and documentations. Software, when made for a specific requirement is called
software product. Software development is a complicated process comprising many

 stages.

Each stage requires a 
lot of paperwork and documentation in addition to the development
 and planning process.

 This is in contrast to the common thinking of newcomers to the software industry who
believe that software development is just “writing code.”
 
Each software development project has to go through at least the following stages:
o Requirement gathering
o Writing functional specifications
o Creating architecture and design documents
o Implementation and coding
o Testing and quality assurance
o Software release
o Documentation
o Support and new features

2
Requirement Gathering

 software product. This stage starts
Requirement gathering is usually the first part of any
 when you are thinking about developing software.

 customers, analyzing market
In this phase, you meet customers or prospective
 requirements and features that are in demand.

people or people who have direct contact with the
In this stage, marketing and sales
 customers do most of the work.

 
These people talk to these customers and try to understand what they need. This phase
is actually a base for the whole development effort.
 
 If the base is not laid correctly, the product will not find a place in the market.

 which is not required in the market, it
If you develop a very good software product
does not matter how well you build it.

3
Writing Functional Specifications

Functional specifications may consist of one or more documents. Functional specification 
 documents show the behavior or functionality of a software product on an abstract level.

Functional specifications are based upon the product requirements documentation put 
 forward by people who have contact with the end user of the product or the customers.

 specifications may consist of separate documents for each
In larger products, functional
 feature of the product.


For example, in a router product, you may have a functional specification document for
 RIP (Routing Information Protocol), another for security features, and so on.

Functional specifications are important because developers use them to create design
documents.
 The documentation people also use them when they create manuals for end
users.
Creating Architecture and Design Documents

The architecture defines different components of the product and how they interact with
each other.
 In many cases the architecture also defines the technologies used to build the
 product.

 documents of the project, the team also needs to consider
While creating the architecture
 the timelines of the project.

 Many
This refers to the target date when the product is required to be on the market.
 excellent products fail because they are either too early or late to market.

 and sales people usually decide a suitable time frame to bring the product
The marketing
 to market.

Based on the timeline, the architecture team may drop some features of the product if it  is
 not possible to bring the full-featured product to market within the required time limits.

 their interfaces, the next phase of
After defining architecture, software components and
 development is the creation of design documents.

At the architecture level, a component is defined as a black box that provides certain
functionality.
 At the design documents stage, you have to define what is in that black
 box.


Senior software developers usually create design documents and these documents define
individual software components to the level of functions and procedures.

4

The design document is the last document completed before development of the software
begins.These design documents are passed on to software developers and they start
coding
Implementation and Coding

The software developers take the design documents and development tools (editors,
 compilers, debuggers etc.) and start writing software.

This is usually the longest phase in the product life cycle. Each developer has to write
his/her own code and collaborate with other  developers to make sure that different
 components can interoperate with each other.

 control system such as CVS (Concurrent Versions System) is needed in this
A revision
 phase.

During the implementation process, developers must write enough comments inside the
code so that if anybody starts working on the code later on, he/she is able to understand
what has already been written. Writing good comments is very important as all other
documents, no matter how good they are, will be lost eventually. Ten years after the
initial work, you may find only that information which is present inside the code in the

 form of comments.

 Good development tools save a  lot of time for the developers, as well as saving money in
terms of improved productivity.
 
 The most important development tools for time saving are editors and debuggers.

A good editor helps a developer to write code quickly. A good debugger helps make the
written code operational in a short period of time. Before starting
 the coding process, you
should spend some time choosing good development tools.
Testing

important phase for long-term support as well as for the
Testing is probably the most
 reputation of the company.

If you don’t control the 
quality of the software, it will not be able to compete with other
 products on the market.

productivity as well money
If software crashes at the customer site, your customer loses
and you lose credibility. Sometimes these losses are huge.

5

 Unhappy customers will not buy your other products and will not refer other customers to
you. You can avoid this situation by doing extensive testing.
 
 This testing is referred to as Quality Assurance, or QA, in most of the software world
 
Usually testing starts as soon as the initial parts of the software are available.

There are multiple types of testing and these are explained in this section. Each of these has its
own importance
a) Unit Testing:

Unit testing is testing one part or one component of the product. The developer usually
does this when he/she has completed writing code for that part of the product. This
makes sure that the component is doing what it is intended to do.
b) Sanity Testing

Sanity testing is a very basic check to see if all software components compile with
each other without a problem. This is just to make sure that developers have not
defined conflicting or multiple functions or global variable definitions
c) Regression or Stress Testing

Regression or stress testing is a process done in some projects to carry out a test for a
longer period of time. This type of testing isused to determine behavior of a product
 when used continuously over a period of time.

It can reveal some bugs in software related to memory leakage. In some cases developers
allocate memory but forget to release it. This problem is known as memory
 leakage. This
is the point where your software starts showing abnormal behavior.
 
 Functional Testing

Functional testing is carried out to make sure that the software is doing exactly what it is
supposed to do. This type of testing is a must before any software is released to
 customers.

Functional testing is done by people whose primary job is software testing, not the
developers themselves. The key point to keep in mind is that the person who wrote a
software component should not be the person who tested it.

6
Software Releases

Before you start selling any software product, it is officially released. This means that
you create a state of the softwarein your repository, make sure that it has been tested for
 functionality and freeze the code.

A version number is assigned to released software. After releasing the software, 
 development may continue but it will not make any change in the released software.

The development is usually carried on in a new branch and it may contain new features  of
the product. The released software is updated only if a bug fixed version is released.
Documentation

There are 
three broad categories of documentation related to software development
 processes


Technical documentation developed during the development process. This includes
 architecture, functional and design documents.

This includes technical
Technical documentation prepared for technical support staff.
 manuals that support staff use to provide customer support.


End-user manuals and guides. This is the documentation for the end user to assist the user
getting started with the product and using it.
Support and New Features

 Your customers need support when you start selling a product. This is true regardless of
the size of the product, and even for products that are not software related.
 
Most common support requests from customers are related to one of the following:
o The customer needs help in installation and getting started.
o The customer finds a bug and you need to release a patch or update to the whole
product.
o The product does not fulfill customer requirements and a new feature is required
by the customer.

In addition to that, you may also want to add new features to the product for the next
release because competitor products have other features. Better
 support will increase your
customer loyalty and will create referral business for you.

7
1.3 Software Development Approaches

Definition: A software development process is a way to improve design and product


management by breaking software development work into smaller steps or sub-processes that
can be done in parallel or in-order.
There are four main types of software development approaches which are: Waterfall,
Incremental, Spiral and Agile
These different approaches will focus the testing effort at different points in the development
process. However, each approach is composed of the same basic steps of development.
Waterfall Approach

Development activities are performed in order, with possibly minor overlap, but with
 little or no iteration between activities.

User needs are determined, requirements are defined, and  the full system is designed,
 built, and tested for ultimate delivery at one point in time.


The waterfall model is often also referred to as the linear and sequential model, for the
 flow of activities in this model are rather linear and sequential as the name suggests.

In this model, the software development activities move to the next phase only after the
activities in the current phase are over.

Figure: 1 waterfall Approach

8
Incremental Approach


Incremental approach is a process of software development where requirements divided
 into multiple standalone modules of the software development cycle.

In this approach, each module goes through the requirements, design, implementation and
testing phases. Every subsequent release of the module adds function to the previous
release.
 
The process continues until the complete system achieved.

Spiral Approach

The spiral approach, initially proposed by Boehm, is an evolutionary software process
model that couples the iterative featureof prototyping with the controlled and systematic
 aspects of the linear sequential model.
o It implements the potential for rapid development of new versions of the software. o
Using the spiral model, the software is developed in a series of incremental releases. o
During the early iterations, the additional release may be a paper model or prototype. o

 During later iterations, more and more complete versions of the engineered system

are produced.

9
Agile Approach

 model" refers to a software
The meaning of Agile is swift or versatile. "Agile process
 development approach based on iterative development.

Agile methods break tasks into smaller iterations, or parts do not directly involve long
 term planning.

The project scope and requirements are laid down at the beginning of the development
process. Plans regarding the number of iterations, the duration and the scope of each
 iteration are clearly defined in advance.

The division of the entire project into smaller parts helps
to minimize the project risk and
 to reduce the overall project delivery time requirements.

Each iteration involves a team working through a full software development life cycle
including planning, requirements analysis,
 design, coding, and testing before a working
product is demonstrated to the client.

10
1.4 Rapid Application Development


RAD refers to a development life cycle designed to give  much faster development and
 higher quality systems than the traditional life cycle.

  development software like CASE tools,
It is designed to take advantage of powerful
prototyping tools and code generators.
 
 The key objectives of RAD are: High Speed, High Quality and Low Cost.
 
 RAD is a people-centered and incremental development approach.


Active user involvement, as well as collaboration and co-operation between all
 stakeholders are imperative.

 Testing is integrated throughout the development life cycleso that the system is tested
and reviewed by both developers and users incrementally.
 
A typical RAD life cycle is composed of the following Stages:

11
Requirements Planning Stage

The Requirements Planning Stage consists of a review of the areas immediately
associated with the proposed system. This review produces a broad definition of the
 system requirements in terms of the functions that the system will support.

The deliverables from the Requirements Planning Stage include an outline system area
model of the area under
 study, a definition of the system's scope, and a cost justification
for the new system.
 
The tasks of the Requirements Planning are shown in the diagram below:

User Design Stage



The User Design Stage consists of a detailed analysis of the business activities and data
related to the proposed system. Key users, meeting inworkshops, decompose business
functions and define data associated with the system.
 
 They complete the analysis by defining the interactions between processes and data.
 
The tasks of the User Design are shown in the diagram below:

12
Rapid Construction Stage

A small team of developers which is known as Skilled with Advanced Tools team 
 (SWAT team) works directly with users, finalizes the design and builds the system.

The software construction process consists of a series of "design-and-build" steps in
which the users have the opportunity
 to fine-tune the requirements and review the
 resulting software implementation.

The Rapid Construction Stage deliverables include documentation and instructions
necessary to operate  the new application, routines and procedures needed to put the
system into operation.
 
The tasks of the Stage are shown in the diagram below:

Transition Stage

 system and managing the change
The transition Stage involves implementing the new
 from the old system environment to the new one.

This may include: implementing bridges between existing and new systems,
converting data for the new system, training users to operate the new application and
providing support to resolve any problems that arise immediately after the application

becomes operational.
 
 User acceptance is the end point of the transition Stage.
 
The tasks of the Stage are shown in the diagram below:

13
1.5 Introduction to .Net Framework & VB.NET

What is VB.Net?
VB.Net is the successor of the Visual Basic 6 programming language. VB.Net has brought about
a great number of architectural changes in the Visual Basic language that are not backward
compatible. A number of core elements and concepts in VB6 have been modified or removed. A
great many new features have been added to the VB.Net language. It will be right to say that
VB.Net will change the way Visual Basic programmers perceive their development. VB.Net has
gained some credibility among serious programmers. Visual Basic has gained much favor
amongst many developers. Currently, there are more VB programmers in the world than there
are for any other programming language and there is more application development done in VB
than in any other programming language. In the Microsoft .Net platform, VB.Net (along with
C#.NET) is the language of choice. It’s probable that most of the current VB6 programmers
would like to switch to VB.Net when they decide to move to the .Net.

1.6 VB.Net as a Programming Language

VB.Net is now a full-fledged object oriented programming language. It contains classes, objects,
inheritance, polymorphism, abstract classes, interfaces, structures, enumerations, delegates and
other common object oriented concepts. In VB.Net, the error handling mechanism has been
modified and is now more structured. VB.Net uses the .Net standard garbage collector to release
memory that is no more referenced by your apps. Probably the best thing about VB.Net is that it
is a part of the .Net framework and is integrated in the .Net platform. It means that VB.Net
programs can employ all the features and services exposed by the .Net framework. It can use the
.Net framework class libraries, interact with program modules written in other .Net language and
also use the old COM and ActiveX components. Previously, Visual Basic was mainly used for
Windows applications and nothing else. Now VB.Net can be used to create console applications,
Windows applications, web applications, .Net components, .Net Form controls, .Net Web
controls, windows services, web services, database applications, and more. Using the .Net
framework libraries you can program new exciting features like reflection, attributes,
marshalling, remoting, threads, streams and also data access with ADO.Net. Compared to using
VB6, VB.Net will feel extremely powerful.

14
.Net Architecture and the .Net Framework
In the .Net Architecture and the .Net Framework there are different important terms and
concepts which we will discuss one by one.
Common Language Runtime (CLR)
The most important concept of the .Net Framework is the existence and functionality of the .Net
Common Language Runtime (CLR), also called .Net Runtime in short. It is a framework layer
that resides above the OS and handles the execution of all the .Net applications. Our programs
don't directly communicate with the OS but go through the CLR.

MSIL (Microsoft Intermediate Language) Code:


When we compile our .Net Program using any .Net compliant language (like C#, VB.Net,
C++.Net) it does not get converted into the executable binary code but to an intermediate code,
called MSIL or IL, understandable by CLR. MSIL is OS and hardware independent code. When
the program needs to be executed, this MSIL, or intermediate code, is converted to binary
executable code (native code). The presence of IL makes possible the Cross Language
Relationship as all the .Net compliant languages produce similar, standard IL code.

1.6.1 Just In Time Compilers (JITers)

When our IL compiled code needs to be executed, CLR invokes the JIT compilers which
compile the IL code to native executable code (.exe or .dll) that is designed for the specific
machine and OS. JITers in many ways are different from traditional compilers as they compile
the IL to native code only when desired; e.g., when a function is called, the IL of the function's

15
body is converted to native code just in time. So, the part of code that is not used by that
particular run is never converted to native code. If some IL code is converted to native code, then
the next time it's needed, the CLR reuses the same (already compiled) copy without re-
compiling. So, if a program runs for some time (assuming that all or most of the functions get
called), then it won't have any just-in-time performance penalty. As JITers are aware of the
specific processor and OS at runtime, they can optimize the code extremely efficiently resulting
in very robust applications. Also, since a JIT compiler knows the exact current state of
executable code, they can also optimize the code by in-lining small function calls (like replacing
body of small function when its called in a loop, saving the function call time). Although
Microsoft stated that C# and .Net are not competing with languages like C++ in efficiency and
speed of execution, JITers can make your code even faster than C++ code in some cases when
the program is run over an extended period of time (like web-servers).

1.6.2 Framework Class Library (FCL)

The .Net Framework provides a huge Framework (or Base) Class Library (FCL) for common,
usual tasks. FCL contains thousands of classes to provide access to Windows API and common
functions like String Manipulation, Common Data Structures, IO, Streams, Threads, Security,
Network Programming, Windows Programming, Web Programming, Data Access, etc. It is
simply the largest standard library ever shipped with any development environment or
programming language. The best part of this library is they follow extremely efficient OO design
(design patterns) making their access and use very simple and predictable. You can use the
classes in FCL in your program just as you would use any other class. You can even apply
inheritance and polymorphism to these classes.

1.6.3 Common Language Specification (CLS)

Earlier, we used the term '.Net Compliant Language' and stated that all the .Net compliant
languages can make use of CLR and FCL. But what makes a language a '.Net compliant'
language? The answer is the Common Language Specification (CLS). Microsoft has released a
small set of specifications that each language should meet to qualify as a .Net Compliant
Language. As IL is a very rich language, it is not necessary for a language to implement all the
IL functionality; rather, it merely needs to meet a small subset of CLS to qualify as a .Net
compliant language. This is the reason why so many languages (procedural and OO) are now

16
running under the .Net umbrella. CLS basically addresses language design issues and lays down
certain standards. For instance, there shouldn't be any global function declarations, no pointers,
no multiple inheritance and things like that. The important point to note here is that if you keep
your code within the CLS boundary, your code is guaranteed to be usable in any other .Net
language.

1.6.4 Common Type System (CTS)

.Net also defines a Common Type System (CTS). Like CLS, CTS is also a set of standards. CTS
defines the basic data types that IL understands. Each .Net compliant language should map its
data types to these standard data types. This makes it possible for the 2 languages to
communicate with each other by passing/receiving parameters to/from each other. For example,
CTS defines a type, Int32, an integral data type of 32 bits (4 bytes) which is mapped by C#
through int and VB.Net through its Integer data type.

1.6.5 Garbage Collector (GC)

CLR also contains the Garbage Collector (GC), which runs in a low-priority thread and checks
for un-referenced, dynamically allocated memory space. If it finds some data that is no longer
referenced by any variable/reference, it re-claims it and returns it to the OS so it can be used by
other programs as needed. The presence of a standard Garbage Collector frees the programmer
from keeping track of dangling data. Ask any C++ programmer how big a relief it is!

1.7 .Net Framework

The .Net Framework is the combination of layers of CLR, FCL, Data and XML Classes and our
Window, Web applications and Web Services. The much publicized diagram of the .Net
Framework is presented here also for better understanding.

17
1.7.1 Visual Studio.Net and Hello World Console Application

Microsoft Visual Studio.Net is an Integrated Development Environment (IDE) which is a


successor of Visual Studio 6. It eases the development process of .Net Applications by a great
deal for VC#.Net, VB.Net, VC++.Net, JScript.Net, J#.Net, ASP.Net, etc. The revolutionary
approach in this new Visual Studio.Net is that for all the Visual Studio.Net Compliant Languages
there is the same IDE, debugger, project and solution explorer, class view, properties tab, tool
box, standard menu and toolbars. The key features of Visual Studio.Net include:
1. Keyword and syntax highlighting
2. Intellisense (autocomplete), which helps by automatically completing the syntax as you
type a dot (.) with objects, enumerations, namespaces and when you use the new
keyword.
3. Project and solution management with solution explorer that helps to manage
applications consisting of multiple files, which is what usually happens.
4. Help building user interface with simple drag and drop over form window.
5. Properties tab that allow you to set different properties on a number of windows and web
controls.
6. Standard debugger that allows you to debug your program by putting break points for
observing run-time behavior of program.

18
7. Hot compiler that checks the syntax of your code as you type it and reports any errors
present.
8. Dynamic Help on a number of topics using the Microsoft Development Network
(MSDN) library.
9. Compilating and building applications.
10. Execution of your application with/without the debugger.
11. Deploying your .Net application over the Internet or on CDs.
Project and Solutions
A Project is a combination of executable and library files that make an application or module. A
project's information is usually placed in a file with the extention '.vbproj' where 'vb' represents
Visual Basic. Similarly, C#.Net projects are stored as '.csproj' files. There are several different
kinds of projects such as Console Applications, Windows Applications, ASP.Net Web
Applications, Class Libraries and more.
A solution on the other hand is a placeholder for different logically related projects that make
some application. For example, a solution may consist of an ASP.Net Web Application project
and a Windows Form project. The information for a solution is stored in '.sln' files and can be
managed using Visual Studio.Net's Solution Explorer. Solutions are similar to VB 6's Project
Group and VC++ 6's workspace.
Toolbox, Properties and Class View Tabs
Now there is a single toolbox for all the Visual Studio.Net's languages and tools. The toolbox
(usually present on the left hand side) contains a number of common controls for windows, web
and data applications like the text box, check box, tree view, list box, menus, file open dialog,
etc.
The Properties Tab (usually present on the right hand side in the IDE) allows you to set the
properties on controls and forms without getting into code.
The Class View Tab shows all the classes that your project contains along with the methods and
fields in tree hierarchy. This is similar to VC++ 6's class view.
Writing Your First "Hello World" Console Application in VB.Net
As follows, we will build our first VB.Net application without and then with Visual Studio.Net.
Instructions below show, how to write, compile, and execute a VB.Net application. An
explanation of the different concepts in the program will follow later in the chapter

19
Without Visual Studio.Net
Open "Notepad" or a text editor of your choice and type the following code:
Imports System
Module Module1
Sub Main()
Console.WriteLine("Hello World!")
End Sub
End Module

Save this with any file name with the extension ".vb" (for example, 'MyFirstApplication.vb'). To
compile the program, go to command prompt and type:

vbc MyFirstApplication.vb

This will compile your program and create an .exe file (MyFirstApplication.exe) in the same
directory. Errors will be reported if there are any. To run your program, type:
MyFirstApplication

This action will print "Hello World!" on the console screen. Simple, isn't it? Let's try it in the
Visual Studio.Net IDE
With Visual Studio.Net
Start Microsoft Visual Studio.Net and from the menu select File > New > Project. A "New
Project" dialog will now be displayed. Select "Visual Basic Project" from "Project Type" and
select "Console Application" from "Templates". Type "MyHelloWorldApplication"
(without "") in the "Name" text box below, then click OK.

20
This will show you the initial default code for your Hello World application.

Change the name of module from Module1 to "MyHelloWorldApplication" and type


Console.WriteLine("Hello World") inside the Sub Main() functions' body like whats
shown below:

Module MyHelloWorldApplication
Sub Main()
Console.WriteLine("Hello World")
End Sub
End Module

21
To compile and execute your application, select "Start" from the "Debug" menu or to run the
application without Debug press Ctrl+F5. A new console window containing the words Hello
World will now be displayed. Press any key to terminate the program and close the console
window.
Understanding the Hello World Application Code:
The first line of our program (Imports System) usually appears in all VB.Net programs. It gives
us access to the core functionality of programming.
Namespaces in VB.Net
A namespace is simply a logical collection of related classes in VB.Net. We bundle our related
classes (like those related with database activity for example) in a named collection, hence
calling it a namespace (e.g., DataActivity).
VB.Net does not allow two classes with the same name to be used in a program. The sole
purpose of using namespaces is to prevent the name conflict, which may happen if you’re
working with a large number of classes. It is the same case in the Framework Class Library
(FCL). It is highly possible that the Connection Class in DataActivity conflicts with the
Connection Class of InternetActivity. To avoid this, these classes are made part of their
respective namespace. The fully qualified name of these classes will be
DataActivity.Connection and InternetActivity.Connection, hence resolving any ambiguity for
the compiler.
In the second line of the code there is a declaration classes (enclosed in
Namespace...EndNamespace block) which are part of the MyHelloWorldApplication namespace.

Namespace MyHelloWorldApplication
...
End Namespace
The Imports Keyword
The first line of our program is
Imports System
The "Imports" keyword in the code sample above enables us to use classes in the "System"
namespace. For example, Its possible to access the Console class from the Main() sub.

22
The Module Keyword
A VB.Net program may contain one or more modules. The Main() sub-procedure usually resides
in one of these modules. Modules in VB.Net are a combination of general data (fields) and
general functions (methods) that are accessible to any code that can access the namespace of a
module. All the members (fields, methods, properties) defined inside a module are shared by
default.
Modules in VB.Net are defined using the Module statement, followed by the name of the
module. The end of a module is marked with the End Module statement.

Module MyHelloWorldModule
...
End Module
The Main() Sub-Procedure
Sub Main()
...
End Sub
Printing on the Console
The next line of code prints "Hello World" on the Console screen:
Console.WriteLine("Hello World")
In the code, WriteLine() is called. It is a "Shared" method of the Console class that is defined in
the System namespace. This method takes a string (enclosed in double quotes) as its parameter
and prints it on the Console window.
Comments
Comments are created by programmers who wish to explain the code. Comments are ignored by
the compiler and are not included in the executable code. VB.Net uses similar syntax for
comments as used in VB and assembly language. The text following a single quotation mark ('
any comment) is a line comment. the ending is the end of the line.
' This is my main method
Public Shared Sub Main() Console.WriteLine("Hello
World") ' It will print Hello World End Sub

23
1.7.2 VB.Net Language Fundamentals

Basic Data Types and their mapping to the CTS (Common Type System)
There are two kinds of data types in VB.Net
1. Value type (implicit data types, Structure and Enumeration)
2. Reference Type (objects, delegates)
Value types are passed to methods by passing an exact copy while Reference types are passed to
methods by passing only their reference (handle). Implicit data types are defined in the language
core by the language vendor, while explicit data types are types that are made by using or
composing implicit data types.
As we saw in the first lesson, implicit data types in .net compliant languages are mapped to types
in Common Type System (CTS) and CLS (Common Language Specification). Hence, each
implicit data type in VB.Net has its corresponding .Net type.
Variables
During the execution of program, data is temporarily stored in memory. A variable is the name
given to a memory location holding particular type of data. So, each variable has associated with
it a data type and value. In VB.Net, a variables is declared as:
Dim <variable> as <data type>
e.g.,
Dim i As Integer
VB.Net Option Strict and Option Explicit Settings
There are two 'bad' features in VB.Net, which are inherent from earlier versions (VB5 and VB6):
You can declare a variable without specifying its type. VB.Net, in this case, assumes the
type of the variable as System.Object class
You can convert values (or objects) to incompatible types, e.g., String to Integer.
Why I called the two options bad? The use of these two features results in quite a number of
bugs and makes the overall design of application bad, complex and difficult to follow. With
incompatible type conversion, the program does compile without any error but throw a runtime
error (exception). But these two features can be turned off by using the Option Explicit and
Option Strict statements.
Option Explicit Statement
Option Explicit, when turned on, do not allow to use any variable without proper declaration.

24
There are two methods to apply the Option Explicit Statement.
To apply the Option Explicit settings to the complete project in Visual Studio.Net, right
click the project name in the solution explorer and select Properties. It will open the
Property Pages window. Now in the Common Properties tree at left, select Build, it will
show the following window

From here, you can turn the Option Explicit (as well as Option Strict) on or off.
To apply the Option Explicit settings to the current file, use the Option Explicit statement before
any statement as,
Option Explicit On

When Option Explicit is on, it will cause the compile time error to write
myName = "Faraz" ' compile time error with Option Explicit On
Rather, you would have to write,
Dim myName As String = "Faraz"

25
Option Strict Statement
When the Option Strict statement is turned on, incompatible type conversion are not allowed.
Option Strict can be turned on or off in the similar fashion as Option Explicit. You can either use
Option Strict Statement as

Option Strict On
Or you can set it from the project properties. When Option Strict is On, the following program
will cause a compile time error
Sub Main ()
Dim strNum As String = "1"
Dim intNum As Integer = strNum
Console.WriteLine(intNum)
End Sub

But if the Option Strict is turned off, the above program will actually compile and run without
error to print 1 on the Console!

Constant or Symbols
Constants values once defined cannot be changed in the program. Constants are declared using
Const keyword, like:

Dim Const PI As Double = 3.142

Constants must be initialized as they are declared.


Dim Const MARKS As Integer

It is a notation convention to use capital letters while naming constants.


Naming Conventions for variables and methods
Microsoft suggests using Camel Notation (first letter in lowercase) for variables and Pascal
Notation (first letter in uppercase) for methods. Each word after the first word in the name of
both variable and method should start with capital letter.

26
For example, variable names following Camel notation could be

salary totalSalary

myMathsMarks isPaid

Some typical names of method following Pascal Notation are


GetTotal() Start()

WriteLine() LastIndexOf()

Breaking lines in VB.Net


The VB.Net compiler identifies the end of statement by the end of line. Hence, it is not possible
to write a single statement on multiple lines (as done in C/C++, Java, C#). The following code
will raise a syntax error:

Dim myName As String = "My name is


Faraz Rasheed"

The compiler treats the two lines as two instructions and will cause syntax errors upon finding
these two lines. To expand a single statement on to multiple lines, you must use the underscore _
character at line breaks. For example, the above code is perfectly valid when modified as below

Dim myName As String = "My name is " & _


"Faraz Rasheed and, " & _
"I like .Net as ..."
Console.WriteLine(myName)
The above code fragment will result in following output at Console
My name is Faraz Rasheed and, I like .Net as...

27
1.7.3 Operators in VB.Net

Arithmetic Operators
Several common arithmetic operators are allowed in VB.Net like
+ (add)
- (subtract)
* (multiply)
/(divide)
Mod (remainder or modulo)

The program below uses these operators


Imports System
Module ArithmeticOperators
' The program shows the use of arithmetic operators
' + - * / Mod

Sub Main()

' result of addition, subtraction, multiplication and modulus operator

Dim sum, difference, product, modulo As Integer


sum = 0 difference = 0 product = 0 modulo = 0

Dim quotient As Double = 0 ' result of division

Dim num1 As Integer = 10 ' operand variables

Dim num2 As Integer = 2


sum = num1 + num2 difference =
num1 - num2 product = num1 *
num2 quotient = num1 / num2

modulo = 3 Mod num2 ' remainder of 3/2

Console.WriteLine("num1 = {0}, num2 = {1}", num1, num2)

28
Console.WriteLine()

Console.WriteLine("Sum of {0} and {1} is {2}", num1, num2, sum)

Console.WriteLine("Difference of {0} and {1} is {2}", num1, num2, difference)

Console.WriteLine("Product of {0} and {1} is {2}", num1, num2, product)


Console.WriteLine("Quotient of {0} and {1} is {2}", num1, num2, quotient)
Console.WriteLine()

Console.WriteLine("Remainder when 3 is divided by {0} is {1}", num2, modulo) End


Sub

End Module

Although the program above is quite simple, Lets discuss some concepts.
In the Console.WriteLine() method, we have used format-specifiers {int} to indicate the position
of variables in the string.
Console.WriteLine("Sum of {0} and {1} is {2}", num1, num2, sum)
Here, {0}, {1} and {2} will be replaced by the values of num1, num2 and sum variables. In {i}, i
specifies that the (i+1)th variable after the double quotes will replace it when printed on the
Console. Hence, {0} will be replaced by first, {1} will be replaced by second variable and so on.

Assignment Operators
Assignment operators are used to assign values to variables. Common assignment operators in
VB.Net are:
= (simple assignment)
+= (additive assignment)
-= (subtractive assignment)
• =(multiplicative assignment)
/= (division assignment)
For example, the instruction
Dim isPaid As Boolean = false

29
Assigns the value 'False' to the isPaid variable of Boolean type. The Left and right hand side of
the equal or any other assignment operator must be compatible otherwise the compiler will
complain of a syntax error.
Relational Operators
Relational operators are used for comparison purposes in conditional statements. The common
relational operators in VB.Net are:
= (equality check) <> (un-equality check)

> (greater than) < (less than)

>= (greater than or equal to) <= (less than or equal to)

Relational operators always result in a Boolean statement; either True or False. For example if
we have two variables
Dim num1 = 5, num2 = 6 As Integer
Then,
num1 = num2 will result in false
num1 <> num2 will result in true
num1 > num2 will result in false
num1 < num2 will result in true
num1 <= num2 will result in true
num1 >= num2 will result in false

Only compatible data types can be compared. It is invalid to compare a Boolean with an
Integer, if
Dim i = 1 As Integer
Dim b = True As Boolean

then it is a syntax error to compare i and b for equality (i=b)

Operator Precedence
All operators are not treated equally. There is a concept of operator precedence in VB.Net as in

30
Dim i As Integer = 2 + 3 * 6 ' i would be 20 not 30

3 will be multiplied by 6 first then the result will be added to 2. This is because the multiplication
operator * has precedence over the addition operator +. For a complete table of operator
precedence, consult msdn or the .net framework documentation.

1.7.4 Flow Control and Conditional Statements

If…Then…Else statement
Condition checking has always been the most basic and important construct in any language.
VB.Net provides conditional statements in the form of the If...Then...Else statement. The
structure of this statement is:
Statement or block of statement

Else

Statement or block of statement

End If

The Else clause above is optional. The typical example is


If i=5 Then
Console.WriteLine("Thanks God, i finally becomes 5") End
If
In the above example, the console message will be printed only if the expression i=5 evaluates to
True. If action is needed in the case when the condition does not evaluate to true you can use the
Else clause.

If i=5 Then
Console.WriteLine("Thanks God, I finally becomes 5")
Else
Console.WriteLine("Missed...When will I become 5?")
End If

31
Only the first message will be printed in the case of i being 5. In any other case (when i is not 5),
the second message will be printed. You can also use a block of statements (more than one
statement) under any If and Else.

If i=5 Then j
= i*2

Console.WriteLine("Thanks God, i finally becomes 5")


Else j = i/2

Console.WriteLine("Missed...When will i become 5?")


End If

You may write If...Then or If...Then...Else in the single line, like


If i=5 Then Console.WriteLine("Thanks God, I finally became 5")
Or,
If i=5 Then j = i*2 Else j = i/2

As you might have picked from the above two statements. When an If...Then and If...Then...Else
are used on the same line, we do not need to write an End If. The reason is quite simple; End is
used to mark the end of a block in VB.Net. With these two statements, we do not create or use
any blocks of statements
I would always recommend to use If...Then and If...Then...Else statements in block format with
End If. It increases the readability and prevents many bugs that otherwise can be produced in the
code.

You can also have an If after an Else for further conditioning


If i=5 Then 'line 1

Console.WriteLine("Thanks God, i finally becomes 5")

ElseIf i=6 'line 3

32
Console.WriteLine("Ok, 6 is also closer to 5")

Else 'line 5

Console.WriteLine("Missed...When will i become 5 or closed to 5?")

End If

ElseIf i=6 is executed only if the first condition i=5 is false. An Else at line 5 will be executed
only if the second condition i=6 (line 3) executes and fails (that is both the first and second
condition fails). The point being is that Else at line 5 is related to the If on line 3

As If...Then...Else is also an statement, you can use it under other If...Then...Else statements,
like:

If i>5 Then ' line 1

If i=6 Then ' line 2

Console.WriteLine("Ok, 6 is also closer to 5")

Else ' line 4

Console.WriteLine("Oops! i is greater than 5 but not 6") End If

Console.WriteLine("Thanks God, i finally becomes greater than 5")

Else ' line 8

Console.WriteLine("Missed...When will i become 5 or closed to 5?")

End If

The Else on line 4 is clearly related to the If...Then on line 2 while the Else on line 8 belongs to
the If on line 1. Finally, do note (VB6 and C/C++ programmers especially) that the If statement
expects only Boolean expression and not an Integer value. It is indeed an error to write

33
Dim flag As Integer = 0

If flag Then

' do something...

End If

Instead, you can either use

Dim flag As Integer = 0 ' note ==

If flag = 1 Then

' do something…

End If

1.7.5 Loops In VB.Net

Loops are used for iteration purposes, i.e., performing a task multiple times (usually until a
termination condition is met)
For…Next Loop
The most common type of loop in VB.Net is the For...Next loop. The basic structure of the
For...Next loop is exactly the same as in VB6 and is like so:

For variable = startingValue To lastValue statement or


block of statements
Next

Lets see a For...Next loop that will write integers from 1 to 10 on the console
Dim i As Integer
For i = 1 to 10
Console.WriteLine("In the loop, value of i is " & i) Next

34
At the start, an integer variable i is initialized with the value of 1, then the statements under the
For are executed until the value of i does not equal 10. Each time i is incremented by 1.

You can define the increment/decrement (change) in each iteration of a For...Next Loop using
the Step statement. The code below will increment by 2 in the value of i in each cycle of the loop

For i = 1 To 10 Step 2
Console.WriteLine("Value of i is {0}", i) Next

The following is the output on the Console,

Value of i is 1
Value of i is 3
Value of i is 5
Value of i is 7
Value of i is 9
Press any key to continue Note that the increment starts after the first iteration.
You can also specify the negative increment (i.e., decrement) in a Step. The
following code will output Integers from 10 to 1 Value of i is 10

Value of i is 9
Value of i is 8
Value of i is 7
Value of i is 6
Value of i is 5
Value of i is 4
Value of i is 3
Value of i is 2
Value of i is 1
Press any key to continue

35
Do While…Loop
The general structure of the Do While...Loop is
Do While Boolean expression Statement or block
of statements
Loop

The statements under Do While will run continuously as long as the Boolean expression
evaluates to true. The similar code for printing integers 1 to 10 on Console using the Do
While...Loop is
Dim i As Integer =1
Do While i<=10
Console.WriteLine("In the loop, value of i is " & i) i = i + 1
Loop
Do…Loop While
A Do...Loop While is similar to a Do While...Loop, except that it does not check the condition
before entering the first iteration (execution of code inside the body of loop). The general form
of the a Do...Loop While is:

Do
statement or block of statements
Loop While Boolean expression

The statements under the Do will be executed first and then the Boolean condition is checked.
The loop will continue until the condition remains true. The code which prints integers 1 to 10 on
console using Do...Loop While is

Dim i As Integer = 1
Do
Console.WriteLine("In the loop, value of i is " & i) i = i + 1 Loop While i<=10
The important point is that the statements in a Do...Loop While execute at
least once.

36
1.7.6 Arrays in VB.Net

Declaration
An Array is a collection of values of similar data type. Technically, VB.Net arrays are of
reference type. Each array in VB.Net is an object and is inherited from the System.Array class.
Arrays are declared as follows:
Dim <identifier>(<size of array>) As <data type>
Lets define an array of Integer type to hold 10 integers.
Dim myIntegers(9) As Integer

The above will create an array of 10 integers from the index of 0 to 9. The size of an array is
fixed and must be defined before use. You can also use variables to define the size of array like
so:
Dim size As Integer = 10
Dim myIntegers(10-1) As Integer
You can optionally perform declaration and initialization in separate steps
like below:
Dim myIntegers() As Integer
myIntegers = New Integer() {1, 2, 3, 4, 5}

Here we initialized the array myIntegers using the values it holds. Note, we must enclose the
values in curly brackets and separate the individual values with commas. This will create an
array size of 5, whose successive values will be 1, 2, 3, 4, 5

It is important to note that when an array declaration and initialization are performed separately,
you must provide values for each element.
Accessing the values stored in array
To access the values in an Array, we use the indexing operator (Integer index) by passing an
Integer to indicate which particular index value we wish to access. It's important to note that
index values in VB.Net starts from 0. So, if an array contains 5 elements, first element would be
at index 0, second at index 1 and last (fifth) at index 4. The following code demonstrates how to
access the 3rd element of an array.

37
Dim myIntArray() As Integer
myIntArray = New Integer() {5, 10, 15, 20}
Dim j As Integer = myIntArray(2)
Let’s make a program that uses an integral array.
' demonstrates the use of arrays in VB.Net
Public Sub Main()
' declaring and initializing an array of type integer

' iterating through the array and printing each element


Dim i As Integer
For i = 0 to 4
Console.WriteLine(myIntegers(i))
Next
End Sub

Here we used the For...Next loop to iterate through an array and use the
Console.WriteLine() method to print each individual element of the array. Note how the
indexing operator () is used.

1.7.7 Exception Handling in VB.Net

Exceptions Basics
Exception handling is a mechanism to manage run-time errors in .NET that would otherwise
cause your software to terminate abruptly.
The need for Exceptions
Consider the following simple code
Imports System
Module Test
Public Sub Main()
Dim p As Integer = ConvertToInteger("34") Console.WriteLine(p)
End Sub
Public Function ConvertToInteger(ByVal str As String) As
Integer Dim i As Integer = Integer.Parse(str)
38
Return i
End Function
End Module

The ConvertToInteger() method returns the integer present in the string type. The output of this
code will be 34
But what if the method ConvertToInteger() is called in the Main() method as

Dim p As Integer = ConvertToInteger("My name")

There won't be a compile time error as the parameter 'My name' is in the required form of a
string. However when the code is executed, the processor will attempt to convert the string 'My
name' to an Integer which is off course not possible. The result, the program will crash! What
should we do now?
Exceptions in VB.Net and .Net Framework
People have worked on the problem of managing errors and have developed a solution in the
form of 'Exceptions'. Programmers may define and throw an exception in the case of unexpected
events. Below are some important points about exceptions and the exception handling
mechanism in VB.Net and the .Net Framework:
 
 All exceptions in .Net are objects.
 
 The System.Exception class is the base class for all the exceptions in .Net


case of some unexpected event during
Any method can raise or throw an exception in the
 its execution using the throw keyword in VB.Net

 can be caught or dealt within the calling method using the
The thrown exception
 Try...Catch block.

The code that may throw an exception which we want to handle is put in the Try block.
 This is called an attempt to catch an exception.

The code to handle the thrown exception is placed in the Catch block just after the Try
block. This is called catching an exception. We can define which particular class of
exception we want to deal in this Catch block by mentioning the name of the exception

with the Catch keyword

39

Multiple Catch blocks can be defined for a single Try block where each Catch block will
 Catch a particular class of exception.

The code that must always be executed after the Try or Try...Catch block is placed in the
Finally block. This is just after the Try or the Try...Catch block.
 This code is guaranteed
 to always be executed whether the exception occurs or not.

When an exception is raised during the execution of code inside the Try block, the
remaining code in the Try block is neglected
 and the control of execution is transferred to
 the respective Catch or Finally block.

Since exceptions are present in .Net as classes and objects they follow the inheritance
hierarchy. This means that if you write a Catch block to handle a base class exception, it
will automatically handle all of its sub-class exceptions. Attempting to Catch any of the
sub-class exceptions explicitly after the parent class exception will make render your

 code unreachable or useless.

The Finally block is optional. Exception handling requires  any combination of the
 Try...Catch or Try...Catch...Finally or Try...Finally blocks.

If you do not Catch an exception the runtime environment (Common Language Runtime 
or CLR) will Catch it on your behalf and may cause your program to be terminated.
Handling Exceptions using the Try...Catch...Finally blocks
Use of the Try...Catch block
A simple demonstration for the use of Try...Catch block is given below

Public Sub Main() Dim s As


String = Nothing

Try

Console.WriteLine("In Try block... before calling s.ToLower()")

Console.WriteLine(s.ToLower()) Console.WriteLine("In Try


block... after calling s.ToLower()")

Catch e As NullReferenceException

...Console.WriteLine("InCatchblock ")

40
Console.WriteLine("NullReferenceException Caught")

End Try

Console.WriteLine("After Try...Catch block") End Sub

The string 's' in the Main() method is assigned a Nothing value. If we attempt to call the
ToLower() method with this null reference in the Console.WriteLine() method, the CLR
(Common Language Runtime) will raise the NullReferenceException. Since we have enclosed
the call to the ToLower() method in a Try block, the Runtime will search for a Catch block which
can Catch this exception and, if one is found, the execution will jump to this Catch block. The
syntax of the Catch block is important to understand. After the Catch, a reference ('e' in our case)
of our target exception class is declared (NullReferenceException in our case).

When the above program is executed, the outputs is

In Try block... before calling


s.ToLower() In Catch
block...
NullReferenceException Caught
After Try...Catch block
Press any key to continue

Carefully look at the output of the program and compare it with the source code. The call to
s.ToLower() raised the NullReferenceException. As a result the execution of the remaining part
of the Try block is ignored and the program execution is transferred to the Catch block.
Remember that the NullReferenceException is raised when we attempt to access the members of
a class using a null reference (Nothing).

41
Lets change the code above a little and assign an object to the reference 's'
Public Sub Main() Dim s As
String = "Faraz"

Try

Console.WriteLine("In Try block... before calling s.ToLower()")

Console.WriteLine(s.ToLower()) Console.WriteLine("In Try


block... after calling s.ToLower()")

Catch e As NullReferenceException

...Console.WriteLine("InCatchblock ")

Console.WriteLine("NullReferenceException Caught")

End Try

Console.WriteLine("After Try...Catch block") End Sub

Since this code does not cause any exceptions to be raised, the execution of program will output
as

In Try block... before calling s.ToLower() faraz


In Try block... after calling s.ToLower()
After Try...Catch block
Press any key to continue

The Finally block


The optional Finally block comes just after the Try or Catch block. The code in the Finally block
is guaranteed to always be executed whether an exception occurs or not in the Try block. Usually
the Finally block is used to free any resources acquired within the Try block and hence could not
be closed because of the exception. For example the Finally block can be used to close a file,
database, socket connection or other important resources opened in the Try block.

42
Let's add the Finally block to our previous code example
Public Sub Main() Dim s As
String = "Faraz"

Try

Console.WriteLine("In Try block... before calling s.ToLower()")

Console.WriteLine(s.ToLower()) Console.WriteLine("In Try


block... after calling s.ToLower()")

Catch e As NullReferenceException

Console.WriteLine(vbCrLf & "In Catch block...")

Console.WriteLine("NullReferenceException Caught") Finally

Console.WriteLine(vbCrLf & "In Finally block...")

End Try

End Sub

When we execute the program we see the following output:

In Try block... before calling s.ToLower()


Faraz
In Try block... after calling s.ToLower()
In Finally block...
Press any key to continue

Since no exception is raised, the code in the Finally block is executed just after the code in the
Try block. Let's cause an exception to occur by setting the string 's' to Nothing in the Main()
method
Public Sub Main() Dim s As String = Nothing
...
End Sub

43
Now the output will be
In Try block... before calling s.ToLower()
In Catch block...
NullReferenceException Caught

In Finally block...
Press any key to continue

The output shows that the code in the Finally block is always executed after the execution of the
Try and Catch block. This is regardless if an exception occurred or not.

It is possible to write the Try...Finally block without using a Catch block

Public Sub Main() Dim s As


String = "Faraz"

Try

Console.WriteLine("In Try block... before calling s.ToLower()")

Console.WriteLine(s.ToLower()) Console.WriteLine("In Try


block... after calling s.ToLower()") Finally

Console.WriteLine(vbCrLf & "In Finally block...")

End Try

End Sub

The output of the program is


In Try block... before calling s.ToLower()
Faraz
In Try block... after calling s.ToLower()

In Finally block...

44
Press any key to continue
The output of the program shows that the Finally block is always executed after the Try block.

Catching Multiple Exceptions using multiple Catch blocks


It is possible to catch multiple (different) exceptions that may be raised in a Try block using
multiple (or a series of) catch blocks. For example we can write three Catch blocks; one for
catching a NullReferenceException, the second for catching an IndexOutOfRangeException
and the third is for any other exception (Exception).
Remember that the IndexOutOfRangeException is raised when an element of an array whose
index is out of the range of the array is accessed. An out of range index can be either less than
zero or greater than or equal to the size of the array. The code below demonstrates the use of
multiple Catch blocks
Public Sub Main()

Dim s As String = "Faraz"

Dim i(2) As Integer

Try

Console.WriteLine("Entering the Try block..." & vbCrLf)

' can cause NullReferenceException

Console.WriteLine("Lower case name is: " + s.ToLower())

' can cause NullReferenceException or IndexOutOfRangeException

Console.WriteLine("First element of array is: " + i(0).ToString())

' can cause DivideByZeroException i(0)


=3

i(1) = CType(4 / i(0), Integer)

Console.WriteLine(vbCrLf & "Leaving the Try block...")

Catch e As NullReferenceException

Console.WriteLine(vbCrLf & "In Catch block...")

45
Console.WriteLine("NullReferenceException Caught")

Catch e As IndexOutOfRangeException

Console.WriteLine(vbCrLf & "In Catch block...")

Console.WriteLine("IndexOutOfRangeException Caught")

Catch e As Exception Console.WriteLine(vbCrLf &


"In Catch block...")

Console.WriteLine("Exception Caught")

Console.WriteLine(e.Message)

End Try

End Sub

Here we have used the string 's' and an integer array 'i'. The size of the Integer array is declared
as 3. There are three places in the program where we will introduce the occurrence of the
exceptions.
 
 First 's' and 'i' can be Nothing or Null causing the NullReferenceException.
 
 Secondly, the access to the array 'i' may cause an IndexOutOfRangeException


Finally the division of 4 by i(0) may cause an DivideByZeroException if the value of i(0)
is zero.
We have declared three Catch blocks in the code for each of these types of exception. Note that
the last Catch block is designed to catch any other exception except
NullReferenceException and IndexOutOfRangeException which have already been caught above.
Only one of these exceptions can be raised, which will terminate the execution of the Try block
and will transfer the execution to the respective Catch block.
 
When the above code is executed we will see the following output
Entering the Try block...

Lower case name is: Faraz


First element of array is: 0

46
Leaving the Try block...
Press any key to continue
So far so good, no exception occurred. Let's first make the string reference 's' pointing to
Nothing and see the effect
Public Sub Main() Dim s As String = Nothing
...
End Sub

The output will be :


Entering the Try block...
In Catch block...
NullReferenceException Caught
Press any key to continue

It looks similar and very much as expected. Now change the array index to an out of bounds
value (either less than zero or greater than or equal to 3). Also change the string 's' to point to
another string to avoid the NullReferenceException


Console.WriteLine("Sixth element of array is: " + i(5).ToString())

The output will expectedly be


Entering the Try block...
Lower case name is: Faraz
In Catch block...
IndexOutOfRangeException Caught
Press any key to continue
Finally correct the access to the array using a valid index and make the value of i(0) equal to zero
to cause the DivideByZeroException
...
i(0) = 0 ...

47
The output of the program will be
Entering the Try block...
Lower case name is: Faraz
First element of array is: 0
In Catch block...
Exception Caught
Attempted to divide by zero.
Press any key to continue
The execution of 3/i(0) will cause the DivideByZeroException. The runtime checked for the
presence of the Catch block. It found in the third Catch block the Exception which is the super
type of DivideByZeroException (and any other exception in .Net). The execution is then
transferred to the corresponding Catch block.
Exception Hierarchy in .Net
Framework There are two types of exception in .Net.

 Exceptionsgenerated by the runtime (Common Language Runtime) are called System
Exceptions
 
Exceptions generated by user programs are called Application Exceptions.
The simple hierarchy of exceptions in the .NET framework is shown in the following diagram.

All user defined exceptions should be derived from the ApplicationException class. In the
following code we will demonstrate how to define our own custom exception named

48
InvalidArgumentException. We will use this exception in our Divide() method when the second
argument is zero. The code to define a custom exception InvalidArgumentException is

Class InvalidArgumentException
Inherits ApplicationException
Public Sub New()
MyBase.New("Divide By Zero Error")
End Sub
Public Sub New(ByVal message As String)
MyBase.New(message)
End Sub

End Class

Our custom exception class above InvalidArgumentException has been derived from
ApplicationException (the base of all user defined exceptions). In the body of the class we have
defined only two constructors. One takes no arguments while the other takes a string 'message' as
an argument. Both of the constructors pass this message to the base class constructor which
initializes the Message property (originally present in Exception class) with the supplied string.

1.8 Review Questions

1. In ____________ model, there is less attention paid to the planning and more priority is
given to the development tasks.
A. Waterfall model
B. Spiral model
C. Rapid Application Development
D. All
2. Using an undeclared variable is considered as___________
A. Runtime errors B. Logic errors C. Syntax errors D. Application
errors
3. In visual basic file manipulation, you use ____________ to write a stream of characters.

49
A. StreamOperator object C. StreamReader
B. StreamWriter object D. StreamWriter Class
4. What is the use of Sql command object?
A. SQLCommand object allows user to interact with the users.
B. SQLCommand object allows user to interact with the database
C. SQLCommand object allows user to interact with the dataset
D. SQLCommand object allows user to interact with the server.
5. ADO.Net connection object is used to establish a connection between
A. Application and Database C. Application and Data object
B. Application and Dataset D. Application and the data source
6. Method which is used by command class to execute SQL statements that return single value.
A. ExecuteNonQuery B. Execute Query C. Execute scalar D. Execute Reader
7. Which one is not traditional programming language?
A. COBOL B. FORTRAN C. BASIC D. Visual Basic .NET
8. Which one of the following tools is used for entering and modifying programming code?
A. Compiler B. Debugger C. Editor D. Object browser
9. The process of locating and correcting bugs in a program is known as___________
A. Debugging B. Editing C. Compiling D. All
10. By whom is unit testing done?
A. Users B. Customers C. Developers D. None
11. Which of the following instruction tells the computer to close the current form in Visual
Basic?
A. This.Close() B. Me.Close() C. Close.this() D. Close()
12. When the user clicks a button, ______________________is triggered.
A. an event B. a setting C. a method D. a property
13. Which of the following displays the list of projects contained in the Visual Basic current
solution?
A. List Window C. Project Window
B. Catalogue Window D. Solution Explorer Window
14. Which one of the following is the most important feature of the spiral model?
A. Efficiency management C. Time management

50
B. Risk management D. Quality management
15. Which one describes how types are declared, used, and managed in the runtime?
A. Common Language Specifications C. Common Type System
B. Common Language Runtime D. Framework Class Library
16. Which one of the following software development stages is the longest phase in the product
life cycle?

A. Implementation and coding C. Testing and quality assurance B. Requirement


Gathering D. Software release
17. Which of the following block of VB.NET identifies a place to catch an exception with an
exception handler at the place in a program where you want to handle the problem?
A. Try B. Throw C. Finally, D. Catch
18. The time When testing and running your project is ___________
A. Design time B. Runtime C. Debug time D. All
19. All .NET source code is compiled to _________________________
A. Machine code C. Intermediate Language
B. Native code D. Intermediate code
20. Which statement is true?
A. A base class inherits some of the properties of a derived class.
B. A base class inherits all of the properties of a derived class.
C. A derived class inherits some of the properties of a base class.
D. A derived class inherits all of the properties of a base class.
E. None of the above.
21. Which statement is false about constructor in vb.net?
A. It always has the name New
B. It is automatically called when object of a class is created
C. It is always declaring in Public section
D. It has a return value and return type
22. Which method is used to convert the Text property of a control to its numeric form before
use the value in a calculation?
A. Parse B. ToString C. Casting D. All
23. What will be the output of the following Visual Basic code, If the int number variable is

51
110?
If int number<=100 Then
int number=int number*2;
Else
int number=int number*3;
End If
A. 180 B. 330 C.156 D. 270
24. For which task does the IDE provide multiple ways to accomplish the task?
A. Putting a control on the form
B. Running the program
C. Activating the property window for a control
D. Both a and b.
E. All of the above.
25. Which task is accomplished in the Code editor?
A. Adding forms to the project
B. Adding controls to the form
C. Adding event procedures to the form
D. Both a and b.
E. All of the above.

52
COURSE NAME: INTRODUCTION TO IT PROJECT MANAGEMENT 2.
INTRODUCTION TO IT PROJECT MANAGEMENT
Learning Objectives

 need for better project management, especially for information
Understand the growing
 technology projects.

Explain what a project is, provide examples of information technology projects,  list
 various attributes of projects, and describe the triple constraint of projects.

Describe project management and discuss key elements of the project management
framework, including project stakeholders, the project management
 knowledge areas,
 common tools and techniques, and project success factors.

Understand the role of the project manager by describing what project managers do, what
skills theyneed, and what the career field is like for information technology project
 managers.

Describe the project management profession, including its history, the role of
professional organizations such as the Project Management Institute, the  importance of
certification and ethics, and the growth of project management software.
 
 Define key concepts and terminology related to project management.
 
Explain the importance of project management in various industries.

53
2.1 Introduction to Project Management

Many organizations today have a new or renewed interest in project management due to the
rapidly evolving work environment shaped by advancements in technology and globalization.
The integration of computer hardware, software, networks, and the emergence of
interdisciplinary and global work teams have transformed traditional project paradigms, making
effective project management more critical than ever. In the United States alone, approximately
$2.3 trillion is spent on projects annually, accounting for about one-quarter of the nation's gross
domestic product. Globally, this figure rises dramatically, with nearly $10 trillion allocated to
various projects, representing a significant portion of the world’s total economic output of $40.7
trillion.

As businesses face increasing complexity in their operations, the need for structured project
management practices has become paramount. Organizations must adapt to rapidly changing
market demands, technological innovations, and diverse stakeholder expectations. This shift has
led to a greater emphasis on methodologies that enhance efficiency, such as Agile and Lean
project management, which promote flexibility and responsiveness.

As a result, professionals equipped with project management expertise are in high demand, as
they play a vital role in ensuring that projects are completed on time, within budget, and to the
desired quality standards. This growing recognition of the importance of project management
underscores the need for comprehensive training and education in the field, preparing individuals
to navigate the complexities of modern projects and contribute to organizational success.

1.2 The importance and rise of project management

Projects are becoming increasingly important in today’s fast-paced environment, primarily


because innovation is often driven by project-based initiatives. As organizations strive to stay
competitive, the demand for continuous innovation has intensified, making effective project
management essential for transforming ideas into tangible outcomes. Each project has a distinct
beginning and end; while the initial phases may be somewhat ambiguous as concepts gradually
evolve into structured plans, the conclusion of a project should be clearly defined and
measurable. This clarity is crucial, as it allows teams to assess the success of their efforts against
predefined goals and deliverables.

54
Moreover, every project produces a unique outcome, which distinguishes it from routine
operations. This uniqueness reflects the nature of innovation itself, where each project represents
a one-time endeavor that yields specific results tailored to meet particular needs or solve unique
problems. The temporary nature of projects emphasizes the importance of effective planning,
execution, and closure, as the success of each initiative contributes to the overall growth and
adaptability of the organization.

Ultimately, skilled project managers are not just task-oriented individuals; they are strategic
enablers who drive change and foster a culture of innovation. Their role is vital in ensuring that
projects align with organizational objectives, deliver value, and contribute to long-term success
in an increasingly competitive landscape. As the importance of projects continues to grow,
investing in project management expertise will be essential for organizations aiming to thrive in
the future.

2.1.1 Advantages of Using Formal Project Management

The advantages of using formal project management practices are manifold, providing
organizations with significant benefits that enhance overall performance and competitiveness.
One key advantage is the better control of financial, physical, and human resources, which
enables project managers to allocate assets more effectively and ensure that they are used
efficiently throughout the project life cycle. This careful management often leads to improved
customer relations, as projects are more likely to meet deadlines and deliver quality outcomes
that align with client expectations.

Additionally, formal project management contributes to shorter development times, allowing


organizations to respond swiftly to market demands and capitalize on opportunities. This agility
often results in lower costs, as streamlined processes reduce waste and optimize resource
utilization. The emphasis on quality assurance in formal project management also leads to higher
quality deliverables and increased reliability, which are critical for maintaining customer
satisfaction and loyalty.

Thus, the comprehensive benefits of formal project management create a robust framework that
enables organizations to navigate complexities, adapt to changes, and achieve sustainable
success. By investing in formal project management methodologies, organizations unlock a

55
pathway to greater efficiency, quality, and innovation, positioning themselves favorably in an
increasingly competitive landscape.

2.1.2 Characteristics of Project

Projects possess several key characteristics that distinguish them from routine operations. Firstly,
each project has a unique purpose, aiming to create specific products, services, or results that
fulfill defined objectives. This uniqueness is complemented by the temporary nature of projects,
which have a clear beginning and end; once the project's goals are achieved, it is considered
complete. Additionally, projects produce specific deliverables, whether tangible or intangible,
that align with the project's aims.

Another defining aspect of projects is their operation within resource constraints, including
limited time, budget, and materials, making effective management of these constraints essential
for success. Projects often involve cross-functional teams, requiring collaboration among
individuals from various departments or disciplines to leverage diverse expertise. Furthermore,
the inherent risks and uncertainties associated with projects necessitate proactive identification
and management to mitigate potential impacts on outcomes.

Stakeholder involvement is also crucial, as projects typically engage multiple stakeholders with
varying interests and expectations; their engagement throughout the project lifecycle ensures
alignment and support. Projects are change-oriented, often initiated to bring about improvements
in processes, products, or organizational structures, which requires adaptability and flexibility
from the project team.

Structurally, projects are organized into sequential phases, including initiation, planning,
execution, monitoring, and closure, with each phase featuring specific activities and deliverables.
Finally, effective performance measurement is necessary to evaluate progress and success,
utilizing key performance indicators (KPIs) to determine whether project objectives are being
met. Understanding these characteristics is vital for project managers to effectively plan, execute,
and close projects while ensuring alignment with broader organizational goals.

2.1.3 The Triple Constraint of Project Management

Every project is constrained in different ways by its scope, time, and cost goals, often referred to
as the project management triangle or triple constraint. Each of these elements plays a crucial

56
role in determining the overall success of a project and must be carefully managed to achieve
desired outcomes.

Scope goals define what work will be done in the project. This includes identifying specific
tasks, deliverables, and outcomes that need to be achieved. Clearly outlining the scope is critical
because it sets the foundation for all project activities. If the scope is not well-defined, it can lead
to confusion, misalignment among team members, and scope creep—where additional tasks or
features are added without adjusting timelines or budgets. Effective scope management involves
not only defining what is included in the project but also what is explicitly excluded, helping to
maintain focus and clarity throughout the project lifecycle.

Time goals pertain to the duration of the project, establishing how long it should take to
complete each phase and the overall project. Time management is essential for ensuring that
deadlines are met and that the project progresses according to schedule. Delays can result in
increased costs and may affect stakeholder satisfaction. Project managers often use scheduling
techniques, such as Gantt charts or critical path methods, to plan and track progress. They must
also be prepared to handle unforeseen delays by adjusting schedules or reallocating resources
while keeping stakeholders informed.

Cost goals relate to the budget allocated for the project, encompassing all expenses, including
labor, materials, and overhead. Cost management is vital to ensure that the project stays within
budget and does not exceed financial resources. Project managers must develop detailed budgets
based on accurate estimates and continually monitor expenditures throughout the project. They
need to identify potential cost overruns early and implement corrective actions to mitigate
financial risks.

Balancing these three often-competing goals scope, time, and cost is the project manager's
primary responsibility. Changes in one constraint can significantly impact the others. By
mastering the management of these constraints, project managers can enhance the likelihood of
project success, delivering high-quality results that align with stakeholder expectations while
adhering to the established parameters. This holistic approach not only fosters project success but
also contributes to the overall strategic objectives of the organization.

57
Figure 2.1 the Triple Constraint of Project Management

2.1.4 Project Integration Management Framework

A Project Integration Management Framework provides a structured approach to managing


projects, guiding project managers and teams through the processes necessary to achieve project
goals. It encompasses various methodologies, tools, and practices that ensure effective planning,
execution, monitoring, and closure of projects.

58
Figure 2.2 Project Management Framework

2.1.5 Project Management Knowledge Areas

Knowledge areas in project management outline the essential competencies that project
managers must cultivate to effectively lead and deliver successful projects. These areas are
divided into two categories: core knowledge areas and facilitating knowledge areas. The four
core knowledge areas scope, time, cost, and quality are fundamental to achieving specific project
objectives. Scope management involves defining and controlling what work is included in the
project, while time management focuses on scheduling and ensuring timely completion. Cost
management is concerned with budgeting and controlling project expenses, and quality
management ensures that the project deliverables meet the required standards and stakeholder
expectations.

On the other hand, the four facilitating knowledge areas human resource management,
communication management, risk management, and procurement management are crucial for
implementing the core objectives effectively. Human resource management involves organizing,
motivating, and leading project teams, while communication management ensures that
information flows efficiently among stakeholders. Risk management focuses on identifying,

59
analyzing, and mitigating potential project risks, and procurement management deals with
acquiring necessary goods and services from external sources.

2.1.6 Role of Project Manager

The role of a project manager is multifaceted, encompassing both people and project
management.

Figure 2.3 Role of Project Manager

60
2.1.7 Factors affecting Software quality in ITPM

In Information Technology Project Management (ITPM), several factors can significantly affect
software quality. These factors can be categorized into various domains:

1. Requirements Clarity: Clear and well-defined requirements are essential. Ambiguities


or incomplete requirements can lead to misunderstandings and result in software that
does not meet user needs.
2. Development Methodology: The choice of development methodology (e.g., Agile,
Waterfall, Scrum) impacts how quality is managed throughout the software lifecycle.
Agile methodologies often allow for iterative testing and feedback, enhancing quality.
3. Team Skillset: The skills and experience of the development team play a critical role.
Well-trained and experienced developers are more likely to produce high-quality
software.
4. Testing Practices: Comprehensive testing, including unit testing, integration testing, and
user acceptance testing, is vital for identifying defects early. Inadequate testing can lead
to poor software quality.
5. Project Management: Effective project management practices, including risk
management, resource allocation, and timeline management, can influence the quality of
the final product. Poor project management can lead to rushed development and
overlooked quality checks.
6. Code Quality Standards: Adhering to coding standards and best practices helps
maintain consistency and readability in code, making it easier to identify and rectify
issues, thereby enhancing quality.
7. Stakeholder Involvement: Active participation of stakeholders throughout the project
lifecycle ensures that their feedback is incorporated, leading to a product that better meets
their expectations.
8. Continuous Integration and Deployment (CI/CD): Implementing CI/CD practices
allows for regular integration and testing of code changes, facilitating early detection of
issues and improving overall software quality.
9. User Documentation and Training: Providing adequate documentation and training for
end-users can enhance perceived quality, as users are better equipped to utilize the
software effectively.

61
10. Maintenance and Support: Ongoing maintenance and support post-deployment can
significantly affect the long-term quality of software. Regular updates and quick
resolution of issues enhance user satisfaction and software reliability.

2.1.8 Techniques and tools developed to support IT project management

In the realm of IT project management, a variety of techniques and tools have been developed to
enhance the production of high-quality software. Agile methodology is a prominent approach
that promotes flexibility and customer collaboration through iterative development cycles,
allowing teams to adapt quickly to changes and deliver usable software frequently. Alternatively,
the Waterfall model offers a linear and structured process, making it suitable for projects
requiring clear documentation and sequential phases. Within Agile, the Scrum framework
utilizes short development cycles called sprints, fostering collaboration and accountability
through daily stand-up meetings and regular reviews. Lean software development focuses on
minimizing waste and optimizing workflow, while DevOps practices combine development and
operations to enhance collaboration, automate software delivery, and improve feedback loops.

Additionally, continuous integration and continuous deployment (CI/CD) practices automate


the testing and deployment of code changes, reducing integration issues and facilitating rapid
releases with fewer bugs. Quality assurance (QA) techniques, including unit testing, integration
testing, and user acceptance testing (UAT), help identify defects early in the development
process, thus improving overall software quality. Risk management strategies play a vital role
in proactively addressing potential setbacks that could impact project timelines and software
quality.

To support these methodologies, various tools are available. Project management software like
Jira and Asana aids in task assignment, tracking, and collaboration within teams. Version
control systems, such as Git and platforms like GitHub, facilitate code management and
collaboration. Automated testing tools, including Selenium and JUnit, enable teams to conduct
thorough testing efficiently. CI/CD tools like Jenkins and CircleCI streamline the build,
deployment, and automation processes. Collaboration tools, such as Slack and Microsoft
Teams, enhance communication among team members, while documentation platforms like
Confluence and Notion ensure that project knowledge is easily accessible. Design and
prototyping tools like Figma and Adobe XD assist in creating user-friendly interfaces, and

62
monitoring tools like New Relic and Google Analytics provide insights into application
performance and user behavior.

Figure 2.4 Summary of techniques used to support ITPM

63
2.2 PROJECT PLANNING

2.2.1 Overview of Project Planning

Project Planning (PP) is a vital process that lays the foundation for successful project execution
by defining the project's objectives and scope, setting clear goals and milestones (deliverables),
and allocating tasks along with budgetary resources for each step of the project. A well-
structured plan not only serves as a roadmap for the project team but is also easily shareable with
all stakeholders, facilitating transparency and collaboration. To maximize its effectiveness, the
plan should be revisited regularly to assess progress and make necessary adjustments. Merely
outlining a plan without ongoing communication can lead to misunderstandings and wasted time,
undermining the project’s success.

Once a project is selected for execution, a detailed planning approach is essential before any
work begins. This structured project planning encompasses two main stages: risk management
and project scheduling. Risk management is critical for identifying potential project risks early
on and implementing necessary precautions to mitigate these risks, thereby safeguarding the
project’s objectives. This proactive approach helps to minimize disruptions and enhance overall
project stability. Project scheduling, on the other hand, focuses on creating a comprehensive
timeline of all tasks that need to be performed, specifying time frames and resource allocations
for each task. This detailed schedule ensures that team members understand their responsibilities
and deadlines, promoting accountability and efficiency.

2.2.2 Methods for Selecting Projects

Selecting the right projects is a critical aspect of Project Planning (PP), as it ensures that
initiatives align with strategic goals and make optimal use of resources. Methods for selecting
projects can include focusing on broad organizational needs to ensure that chosen initiatives
support overarching goals. Additionally, categorizing information technology projects can help
streamline decision-making by grouping similar projects, making it easier to evaluate their
relevance and potential impact. Performing net present value (NPV) or other financial analyses
provides valuable insights into the expected financial returns of projects, helping to identify
those that offer the best value for investment.

64
Using a weighted scoring model is another effective method; this approach allows project
managers to rate projects against predefined criteria, such as strategic fit, risk, resource
availability, and expected benefits, facilitating comparison through a systematic scoring system.
Implementing a balanced scorecard can further enhance project selection by evaluating projects
from multiple perspectives, including financial, customer, internal processes, and learning and
growth, ensuring a holistic view of potential initiatives.

Conducting a cost-benefit analysis during the project planning phase helps assess the expected
costs versus the benefits, providing insights into potential return on investment (ROI) and overall
value. Calculating the payback period is also important, as it indicates the time required to
recover the initial investment; shorter payback periods are often preferred, especially for cash
flow-sensitive organizations. Risk assessment is crucial; evaluating the risks associated with each
project whether technical, financial, or market-related enables project managers to prioritize
projects with manageable risks over those with high uncertainty.

A decision matrix can be created to consider multiple factors, such as cost, benefits, risk, and
alignment with strategic goals, providing a visual tool for informed decision-making.
Stakeholder input plays a significant role in project planning, as gathering insights from team
members, management, and customers can enhance project feasibility and priority. Conducting a
portfolio analysis ensures a balanced approach by assessing the overall mix of projects,
considering factors like risk diversification and resource allocation. Leveraging expert judgment
from experienced project managers and industry experts can further refine project evaluation,
while benchmarking against industry standards or best practices helps identify projects likely to
succeed based on historical data.

By integrating these project selection methods into the Project Planning process, organizations
can enhance their ability to choose initiatives that align with strategic goals and deliver
maximum value, ultimately setting the stage for successful project execution and outcomes.

65
2.2.3 Common Elements of a Project Management Plan

Figure 2.5 Common elements of project management plan

2.2.4 Attributes of Project Plans

Project Planning (PP) is characterized by several essential attributes that reflect the unique nature
of each project. Just as no two projects are alike, project plans must be tailored to fit specific
circumstances, objectives, and stakeholder needs. One of the primary attributes of effective
project plans is that they are dynamic; they should evolve alongside the project, accommodating
new insights, developments, and circumstances as they arise. This dynamism enables project
teams to remain responsive and agile in the face of change.

Flexibility is another critical attribute, allowing project managers to adapt plans in response to
shifting requirements, stakeholder feedback, or unforeseen challenges. A flexible plan helps the
team pivot quickly when necessary, ensuring that the project continues to move forward despite
obstacles. Additionally, project plans should be regularly updated as changes occur, ensuring that
all team members have access to the most current information. This ongoing process of revision

66
fosters transparency and alignment, enabling the team to adjust their efforts and strategies
effectively.

Figure 2.6 summary of common attributes in project planning

2.2.5 Key Components of comprehensive IT project plan

1. Project Initiation

Define Project Objectives: Clearly articulate what the project aims to achieve. Use SMART
criteria (Specific, Measurable, Achievable, Relevant, Time-bound).

Identify Stakeholders: List all stakeholders involved in the project, including users, sponsors, and
team members. Understand their needs and expectations.

67
2. Project Scope

Scope Statement: Define what is included and excluded in the project. This helps manage
expectations and avoid scope creep.

Deliverables: Identify specific outputs the project will produce, such as software applications,
documentation, or training materials.

3. Project Schedule

Task Breakdown: Break the project into smaller, manageable tasks or work packages using a
Work Breakdown Structure (WBS).

Timeline: Estimate the duration of each task and create a timeline using Gantt charts or other
project scheduling tools.

Milestones: Identify key milestones that mark significant points in the project timeline.

4. Resource Allocation

Team Roles and Responsibilities: Define roles for each team member, detailing their
responsibilities and expectations.

Resource Requirements: Identify necessary resources, including personnel, tools, and


technology, and allocate them accordingly.

5. Budgeting

Cost Estimation: Estimate costs for resources, tools, and any other expenses. Include a
contingency budget for unexpected costs.

Budget Approval: Present the budget to stakeholders for approval.

6. Risk Management

Risk Identification: Identify potential risks that could impact the project, including technical,
organizational, and external factors.

Risk Analysis: Assess the likelihood and impact of each risk. Prioritize them based on severity.

Risk Mitigation Strategies: Develop strategies to minimize or eliminate risks. Assign


responsibilities for monitoring risks.

68
7. Communication Plan

Communication Strategy: Outline how information will be shared among stakeholders. Specify
communication channels (e.g., meetings, emails, reports).

Reporting Frequency: Determine how often updates will be provided and in what format.

8. Quality Assurance

Quality Standards: Define what quality means for the project and set standards for deliverables.

Review Process: Establish a process for reviewing and testing deliverables to ensure they meet
quality standards.

9. Implementation Plan

Deployment Strategy: Outline how the final product will be delivered to users. This may include
installation, training, and support.

Change Management: Prepare for managing changes in user requirements or project scope
during implementation.

10. Monitoring and Evaluation

Performance Metrics: Define key performance indicators (KPIs) to evaluate project success.
These may include timelines, budget adherence, and user satisfaction.

Review Process: Set up regular review meetings to assess progress against the plan and make
adjustments as needed.

69
2.2.6 Role of Project Management Software in Planning

Project management software plays a crucial role in the planning phase of projects by providing
tools and functionalities that enhance organization, communication, and efficiency. Here are the
key roles it fulfills:

Task Management: Project management software allows for the creation and assignment of
tasks, making it easy to define responsibilities and deadlines. This ensures that team members
know what is expected of them.

Scheduling: These tools enable the development of detailed project schedules, including Gantt
charts and timelines. This visual representation helps project managers track progress and adjust
timelines as necessary.

Resource Allocation: Software solutions often include features for resource management,
allowing project managers to allocate personnel, equipment, and materials effectively. This helps
optimize resource utilization and identify potential bottlenecks.

Collaboration: Project management software facilitates communication and collaboration


among team members and stakeholders. Features like shared calendars, discussion boards, and
file sharing ensure that everyone stays informed and engaged.

Risk Management: Many project management tools include risk assessment features that help
identify and document potential risks. This allows for better planning and the development of
mitigation strategies.

Budget Tracking: Project management software can assist in budgeting and cost estimation. It
allows project managers to track expenses against the budget, helping to identify variances early
and make necessary adjustments.

Documentation and Reporting: These tools provide a centralized location for project
documentation, making it easy to store and retrieve important files. Additionally, they often
include reporting features that generate status reports and performance metrics for stakeholders.

Integration with Other Tools: Many project management software solutions integrate with
other applications, such as accounting software or customer relationship management (CRM)
systems. This streamlines processes and ensures that all relevant data is accessible.

70
Customization and Flexibility: Project management software can often be tailored to fit the
specific needs of a project or organization, allowing for greater flexibility in planning and
execution.

Performance Tracking: By monitoring progress against the project plan, these tools provide
insights into performance and productivity. This allows for informed decision-making and timely
interventions.

2.3 PROJECT TIME, COST AND SCOPE MANAGEMENT

2.3.1 Project Time Management

Project Time Management (PTM) refers to the efficient use of time through effective
organization, productivity, and strategic planning. It is a critical component of project
management, enabling project managers to oversee projects from initiation to completion while
ensuring that timelines are adhered to and objectives are met. By employing robust time
management skills, project managers can execute their responsibilities in the most efficient and
cost-effective manner possible. For instance, a project manager may develop a sequenced list of
tasks that need to be completed, carefully organizing these tasks to reflect their dependencies and
priorities. This sequenced approach allows for better tracking of employee progress through each
step, ensuring that deadlines are met and resources are allocated appropriately.

2.3.2 Project Time Management Processes

Project Time Management (PTM) encompasses several essential processes that ensure effective
scheduling and optimal use of time throughout the project lifecycle. The first process, planning
schedule management, involves establishing the policies, procedures, and documentation
necessary for planning, executing, and controlling the project schedule. This foundational step
sets the tone for how time will be managed, ensuring that all stakeholders understand the
scheduling approach and expectations.

The next critical process is defining activities, which entails identifying the specific tasks that
project team members and stakeholders must perform to produce the project deliverables. This
step is vital for creating a clear understanding of what needs to be accomplished and ensures that
no essential activities are overlooked. Following activity definition, the process of sequencing
activities comes into play. This involves identifying and documenting the relationships between

71
project activities, such as dependencies and the logical order in which tasks must be completed.
Understanding these relationships helps in determining the most efficient workflow and avoiding
bottlenecks.

After sequencing, estimating activity resources is crucial. This process involves assessing how
many and what types of resources such as personnel, equipment, and materials are needed to
perform each project activity. Accurate resource estimation is key to ensuring that the project has
the necessary support for successful execution. Complementing this is the process of estimating
activity durations, where the project manager assesses the number of work periods required to
complete each individual activity. This estimation helps in setting realistic timelines and
deadlines.

With all these estimates in place, the project manager can move on to developing the schedule.
This process involves analyzing the sequences of activities, resource estimates, and duration
estimates to create a comprehensive project timeline that outlines when each task will be
performed. A well-developed schedule serves as a roadmap for the project, guiding the team in
their efforts.

Finally, the process of controlling the schedule is essential for managing any changes that may
arise throughout the project. This involves monitoring the project’s progress against the
established schedule, identifying variances, and implementing corrective actions as needed. By
controlling the schedule, project managers ensure that the project remains aligned with its
timelines, making adjustments to keep it on track.

2.3.3 Importance of Time Management and Strategies

Time management is important during a project in order to meet your deadlines and complete
your tasks successfully. There are three primary factors that can affect a project manager's
overall success: commitment to budget, ability to meet the project requirements and time
management skills.

Managers who remain aware of time requirements and project deadlines often benefit from:
 
 Increased client and stakeholder satisfaction
 
 Decreased instances of procrastination
 
Lowered stress and anxiety

72
 
 Smaller, more manageable assignments
 
Satisfaction from higher rates of achievement

Successful time management can help you deliver your projects on time and maximize your
productivity when completing set tasks. Learning to use time management strategies
successfully in your management processes is an important step in effective project
management. By discovering which strategies work best for you and your team, you can
incorporate new practices into your projects to help you reduce stress and achieve your goals
on time.

Figure 2.7 Time Management Strategies for Project Managers

73
2.3.4 Project Cost Management

What is Cost and Project Cost Management?

Cost is defined as a resource sacrificed or foregone to achieve a specific objective, essentially


representing something given up in exchange for a benefit. In project management, costs are
typically measured in monetary units, such as dollars or birr, and they play a critical role in
determining the feasibility and success of a project. Effective management of these costs is
essential to ensure that projects are completed within their approved budgets, which is where
Project Cost Management comes into play.

Project Cost Management encompasses the processes required to plan, estimate, budget, and
control costs throughout the project lifecycle. This discipline involves several key activities,
including knowing the costs associated with various project elements, regulating expenditures to
prevent overspending, forecasting future costs based on current data and trends, and
administering the budget at every stage of the project.

The first step in Project Cost Management is cost estimating, which involves predicting the costs
of the resources needed to complete project activities. This process sets the groundwork for
establishing an accurate budget. Next, budgeting takes place, where the total estimated costs are
aggregated to create a budget that outlines how much money will be allocated to different
aspects of the project.

Following budgeting, the focus shifts to cost control. This process involves monitoring project
expenditures and performance against the budget, identifying variances, and implementing
corrective actions when necessary. Effective cost control ensures that the project remains
financially viable and helps project managers make informed decisions regarding resource
allocation and project adjustments.

2.3.5 Project Cost Management Processes

Project Cost Management (PCM) involves a series of essential processes aimed at ensuring
effective financial oversight throughout the project lifecycle. The first process, planning cost
management, is fundamental; it entails determining the policies, procedures, and documentation
that will guide how project costs are planned, executed, and controlled. This foundational step

74
sets a structured approach for managing financial resources, ensuring that all stakeholders are
aligned on the cost management framework and understand their roles within it.

Next, the process of estimating costs becomes critical. This involves developing a detailed
approximation of the costs associated with the resources necessary to complete the project,
including labor, materials, equipment, and overhead. Accurate cost estimation is vital for
establishing a realistic budget, as it helps project managers anticipate financial requirements and
prepare for potential expenses that may arise during the project.

Once costs are estimated, the next step is determining the budget. This process involves
allocating the overall cost estimate to individual work items or project phases, creating a baseline
for measuring performance. The established budget serves as a financial roadmap, guiding
project execution and allowing for effective tracking of expenses against planned allocations. It
also enables project managers to set clear financial expectations and communicate them to the
project team and stakeholders.

The final process, controlling costs, is essential for managing changes to the project budget.
This involves continuous monitoring of project expenditures against the established budget,
identifying any variances, and implementing corrective actions when necessary. Effective cost
control helps ensure that the project remains within budget and allows project managers to make
informed decisions regarding resource allocation, scope adjustments, or timeline modifications.

Additionally, cost control includes the use of performance metrics and earned value management
(EVM) techniques, which provide insights into the project's financial health by comparing the
planned progress with actual performance. This proactive approach enables project managers to
identify potential financial issues early, facilitating timely interventions.

75
Figure 2.8 Project Cost Management Summary

2.3.6 Basic Principles of Information Technology Project Management

The basic principles of Information Technology Project Management (ITPM) underscore the
importance of financial literacy for IT project managers, particularly in their interactions with
executive boards. Since most executives are more familiar with financial metrics than technical
terminology, IT project managers must effectively translate the language of technology into
financial terms that resonate with stakeholders. This alignment is essential for fostering
understanding and garnering support for IT initiatives, framing them as strategic investments
rather than merely technical projects.

Central to this financial perspective is the concept that profits are derived from revenues minus
expenditures. This fundamental equation emphasizes the necessity of managing costs effectively
while maximizing revenues, as it directly impacts the organization’s profitability. A key
performance indicator that project managers should monitor is the profit margin, defined as the
ratio of revenues to profits. A healthy profit margin indicates that a project is not only generating
revenue but doing so efficiently, which is crucial for sustaining long-term organizational success.

Life cycle costing is another foundational principle in ITPM, focusing on the total cost of
ownership associated with a project. This approach encompasses not only the initial development

76
costs but also ongoing support, maintenance, and operational expenses throughout the project’s
life span. By considering these comprehensive costs, project managers can provide a more
accurate assessment of the financial implications of their projects, facilitating better decision-
making and resource allocation.

Additionally, cash flow analysis is a vital tool in ITPM, allowing project managers to evaluate
the estimated annual costs and benefits associated with a project. This analysis helps determine
the resulting annual cash flow, which is critical for understanding the timing of revenues and
expenses. By gaining insights into cash flow dynamics, project managers can ensure that
adequate funding is available to support project activities, mitigate financial risks, and optimize
resource utilization.

2.3.7 Planning Cost Management

Planning Cost Management is a critical process within Project Cost Management (PCM) that
establishes the framework for how project costs will be planned, executed, and controlled. This
process lays the groundwork for ensuring that the project remains within its approved budget
while effectively managing financial resources throughout its lifecycle.

The first step in planning cost management is to define the policies, procedures, and
documentation that will guide the entire cost management process. This includes establishing
how costs will be estimated, how the budget will be developed, and the methods that will be used
for monitoring and controlling costs. Clear documentation is essential, as it ensures that all
stakeholders understand the guidelines and expectations regarding cost management.

Next, the process involves determining the specific tools and techniques that will be employed to
monitor project costs. This may include selecting software for tracking expenses, defining key
performance indicators (KPIs) for financial performance, and deciding on the frequency of
budget reviews. By setting these parameters, project managers can create a structured approach
to cost management that enhances accountability and transparency.

Another important aspect of planning cost management is stakeholder engagement. It’s crucial to
involve relevant stakeholders in discussions about cost management strategies, as their insights
and feedback can help identify potential financial risks and opportunities. This collaborative

77
approach fosters buy-in from all parties and ensures that everyone is aligned on financial goals
and expectations.

Finally, planning cost management includes defining how changes to the project budget will be
managed. Establishing a change control process is essential to ensure that any modifications to
the budget are documented, evaluated, and approved appropriately. This helps prevent scope
creep and ensures that any changes are aligned with the overall project objectives.

Figure 2.9 Summary of Planning Cost Management

2.3.8 Project Cost Estimation Mechanisms

Cost estimation is a crucial aspect of project management that enables project managers to
predict the financial resources required for successful project completion. Several widely-used

78
techniques can enhance the accuracy of these estimates. Analogous estimating involves using
historical data from similar projects to provide quick, high-level estimates based on expert
judgment. In contrast, parametric estimating utilizes statistical relationships between historical
data and other variables, such as cost per square foot, to achieve more accurate estimates when
well-defined parameters are available. Bottom-up estimating offers a detailed approach where
project managers estimate costs for individual tasks or components and then aggregate these
estimates, yielding high accuracy, especially for complex projects.

Another useful method is three-point estimation, which calculates three scenarios for each task
optimistic, pessimistic, and most likely and averages the results to account for uncertainty.
Expert judgment plays a significant role as well, allowing project managers to consult with
experienced team members for insights based on similar projects and industry standards.
Additionally, assessing the cost of quality (CoQ) helps balance the costs associated with ensuring
quality against the costs of failing to meet standards. For projects involving outsourcing, vendor
bid analysis can provide valuable insights into market rates. More advanced techniques include
Monte Carlo simulation, which uses statistical modeling to predict cost outcomes based on
various input variables and their probabilities, helping to assess risk and uncertainty. Finally,
resource cost rate estimation focuses on calculating the costs of necessary resources, ensuring
that estimates reflect current market rates.

79
Summary of Project cost estimation techniques

i. Analogous estimating ii. Three-point estimation iii. Expert


judgement

iv. Expert judgment v. Vendor bid analysis

vi. Parametric estimating vii. Monte Carlo simulation

Figure 2.10 Summary of Project cost estimation techniques

2.3.9 Project Scope Management

Project Scope Management is a fundamental aspect of project management that focuses on


defining and controlling what is included in a project. It encompasses several key processes that
ensure the project remains aligned with its objectives while preventing scope creep, which is the
uncontrolled expansion of project scope without corresponding adjustments to time, cost, and
resources.

Key Components of Project Scope Management

1. Scope Planning: This initial step involves developing a clear scope statement that
outlines the project’s goals, deliverables, and boundaries. The scope statement serves as a
foundational document that guides all project activities and decision-making throughout
the project lifecycle.

2. Scope Definition: In this phase, the project manager breaks down the project into
smaller, manageable components using a Work Breakdown Structure (WBS). The WBS

80
is a hierarchical decomposition of the total scope of work, which facilitates better
estimation of costs, resource allocation, and assignment of responsibilities.

3. Scope Verification: This process involves obtaining formal acceptance of the project
deliverables from stakeholders. It ensures that the completed work aligns with
stakeholder expectations and requirements, thereby confirming that the project is on track
to meet its objectives. The key steps involved in the scope verification process is Review
the Scope Statement, Conduct Deliverable Assessment, Engage Stakeholders, Perform
Quality Control Checks, Document Feedback and Findings, Obtain Formal Acceptance,
Update Project Documents, Communicate Results and Implement Change Control as
Needed.

4. Scope Monitoring and Control: To maintain control over the project scope, regular
reviews of project performance against the defined scope are conducted. This helps
identify any variances and allows for corrective actions to be taken as necessary.
Effective communication with stakeholders is crucial during this phase to manage
expectations and address any emerging changes.

5. Change Control Process: Implementing a structured change control process is essential


for evaluating and approving any requested changes to the project scope. This process
ensures that alterations do not negatively impact project objectives and that all changes
are documented and communicated effectively.

2.3.10 Why Project Scope Management is Important

Effective Project Scope Management is vital for project success as it ensures clarity and
alignment with stakeholder expectations. It is essential for the successful delivery of projects for
several reasons:

1. Clarity and Focus

Defined Objectives: Clearly outlining project goals helps ensure that all team members
understand what needs to be achieved. This clarity minimizes confusion and aligns efforts
towards common objectives.

81
Boundary Setting: By specifying what is included and excluded in the project, scope
management helps prevent misunderstandings and keeps the project focused on its primary
goals.

2. Prevention of Scope Creep

Controlled Changes: Implementing a structured change control process allows for the systematic
evaluation of any changes to the project scope, helping to prevent uncontrolled expansions
(scope creep) that can derail timelines and budgets.

Stakeholder Engagement: Involving stakeholders in scope discussions ensures that all requests
for changes are carefully considered and justified, reducing the likelihood of unnecessary
additions.

3. Resource Optimization

Efficient Resource Allocation: A well-defined scope allows project managers to allocate


resources effectively. Knowing the exact tasks and deliverables helps in assigning the right
resources at the right time, minimizing waste.

Budget Management: By controlling the scope, project managers can better manage budgets,
avoiding overruns that often occur when the scope expands without corresponding adjustments
in funding.

4. Enhanced Quality Control

Quality Assurance: With a clear scope, project teams can implement quality control measures
more effectively. They can ensure that deliverables meet the defined standards and stakeholder
expectations.

Focus on Deliverables: Scope management helps teams concentrate on delivering high-quality


outputs by preventing distractions from extraneous tasks.

5. Improved Stakeholder Satisfaction

Alignment with Expectations: By managing scope effectively, project managers can ensure that
stakeholder needs and expectations are met. This alignment fosters trust and satisfaction among
stakeholders.

82
Formal Acceptance: The scope verification process ensures that stakeholders formally accept
deliverables, which strengthens relationships and improves overall satisfaction with the project
outcome.

6. Facilitated Change Management

Structured Response to Changes: A clear scope management process provides a framework for
addressing changes. This structure ensures that changes are assessed, approved, and documented,
allowing for better control over project dynamics.

Minimized Disruption: By managing changes systematically, project teams can minimize


disruptions to the project flow, maintaining momentum and focus.

7. Risk Reduction

Identifying Risks Early: Effective scope management involves regularly reviewing project
performance against the defined scope, which helps in identifying potential risks early.

Proactive Mitigation: By controlling scope, project managers can develop strategies to mitigate
risks associated with changes, ensuring smoother project execution.

In summary, Project Scope Management is crucial for ensuring that projects are completed
successfully, on time, and within budget. By providing clarity, preventing scope creep,
optimizing resources, and enhancing stakeholder satisfaction, effective scope management
contributes significantly to the overall success of projects.

2.3.11 Tools and Techniques used in Project Scope Management

Project Scope Management employs various tools and techniques to effectively define, control,
and verify project scope. One of the fundamental tools is the Work Breakdown Structure
(WBS), which visually decomposes the project into smaller, manageable components, making it
easier to estimate costs, allocate resources, and track progress. Requirements gathering
techniques, such as interviews, surveys, and focus groups, are essential for capturing stakeholder
needs and expectations, ensuring that the project scope aligns with their requirements.
Additionally, the Requirements Traceability Matrix (RTM) is a valuable tool that links
requirements to their corresponding deliverables, helping project managers confirm that all
specified needs are met.

83
Scope verification techniques include stakeholder reviews and formal acceptance processes,
which ensure that project deliverables meet the defined scope and quality standards. Change
control processes are crucial for managing scope changes, allowing project managers to
evaluate the impact of proposed changes on project objectives, timelines, and budgets before
approval. Tools like project management software (e.g., Microsoft Project, Asana, Trello)
facilitate task tracking and collaboration, providing a centralized platform for managing project
scope. Quality management tools, such as checklists and quality audits, help ensure that
deliverables meet the required standards. Finally, communication tools like Slack or Microsoft
Teams enhance collaboration among team members and stakeholders, facilitating ongoing
discussions related to scope management. By utilizing these tools and techniques, project
managers can effectively navigate the complexities of scope management, leading to successful
project outcomes.

2.4 PROJECT QUALITY AND HUMAN RESOURCE MANAGEMENT

2.4.1 Project Quality Management

Project Quality Management is an essential domain within project management that ensures the
deliverables meet the specified requirements and satisfy the needs for which the project was
initiated. It encompasses a systematic approach to defining quality standards, monitoring
processes, and implementing quality assurance measures throughout the project lifecycle. By
emphasizing the importance of quality, Project Quality Management helps organizations achieve
their objectives while enhancing stakeholder satisfaction.

At its foundation, Project Quality Management involves a clear understanding of customer


satisfaction. For example, in a software development project, involving end-users in the
requirements-gathering phase can help identify their specific needs and preferences. By
conducting user interviews and surveys, the project team can gather valuable feedback to ensure
the final product aligns with user expectations. This focus on customer satisfaction not only
enhances the usability of the software but also builds trust and fosters long-term relationships
with clients.

The principle of continued improvement is another cornerstone of Project Quality Management.


Implementing processes such as regular reviews, audits, and retrospectives allows project teams
to identify inefficiencies and areas for enhancement. For instance, after completing a

84
construction project, the team might hold a retrospective meeting to discuss what went well and
what could be improved for future projects. By documenting lessons learned and incorporating
them into future planning, organizations can continuously refine their processes and increase
overall project quality.

Management responsibility is vital in establishing a strong quality management framework. For


example, in a manufacturing project, top management might implement regular quality training
sessions for employees. By promoting a culture of quality and ensuring that all team members
understand quality standards, management can influence the project team's commitment to
delivering high-quality products. When leadership actively engages in quality initiatives, it
fosters an environment where quality is prioritized at all levels of the organization.

2.4.2 Important scope aspects of IT projects that affect quality

When managing IT projects, understanding the important scope aspects that affect quality is
crucial for delivering successful outcomes. One of the foremost aspects is functionality, which
refers to the degree to which a system performs its intended functions. It encompasses all the
essential tasks the system is designed to execute. For example, in an e-learning platform,
functionality might include user registration, course management, and assessment features.
Ensuring that the system delivers these functionalities effectively is vital for user satisfaction and
project success.

Another key aspect is features, which are the specific characteristics that enhance the user
experience and differentiate the product in the marketplace. Features such as mobile
compatibility, user-friendly interfaces, and advanced search capabilities can significantly
increase a system's appeal. Well-defined features that align closely with user needs can drive
adoption and satisfaction, making them a critical consideration in the project scope.

System outputs the screens, reports, and other data presentations generated by the system—are
equally important. High-quality outputs must be not only accurate but also intuitive and relevant
to user requirements. For instance, a project management tool should produce clear status reports
that help teams track progress effectively. If the outputs are cluttered or difficult to understand, it
can lead to confusion and lower user engagement, thereby impacting the overall quality of the
project.

85
Performance addresses how well a product or service meets the customer's intended use. Key
performance indicators, such as response times and throughput, are critical for evaluating a
system's effectiveness. For example, in a financial trading application, rapid response times can
be essential for users to make timely decisions. Ensuring that the application performs efficiently
under various conditions is crucial for maintaining user trust and satisfaction.

Reliability is another essential aspect, referring to the ability of a product or service to perform
consistently as expected under normal conditions. A reliable system minimizes downtime and
errors. For instance, a cloud storage service must ensure that data is always accessible and
accurately backed up to foster user confidence. Reliability directly influences user retention and
overall project success.

Lastly, maintainability addresses how easily a system can be updated and maintained over time.
A system designed with maintainability in mind facilitates easier bug fixes, upgrades, and
enhancements without significant disruptions. For instance, employing modular programming
practices allows developers to update specific components without affecting the entire system.
This not only reduces maintenance costs but also enhances the system's longevity and
adaptability to changing user needs.

In summary, the quality of IT projects heavily depends on several critical scope aspects:
functionality, features, system outputs, performance, reliability, and maintainability. By carefully
managing these elements, project managers can ensure that the final product not only meets user
expectations but also delivers long-term value to the organization. Addressing these aspects from
the outset will lead to a more robust, user-friendly system that aligns with business goals and
enhances overall project success.

2.4.3 Basic Project Quality Management Processes

In Project Quality Management, the three key categories are Quality Planning, Quality
Assurance, and Quality Control. Each of these categories plays a distinct role in ensuring that
project deliverables meet the required standards and satisfy stakeholder expectations.

1. Quality Planning: This is the first step in the quality management process. It involves
defining quality standards and determining how these standards will be achieved within
the project. Quality planning includes identifying the quality requirements for the

86
project's deliverables, establishing metrics for measuring quality, and outlining the
processes and resources needed to ensure that quality standards are met. This phase sets
the foundation for the entire quality management effort.
2. Quality Assurance: This category focuses on the systematic processes and activities
implemented to ensure that quality standards are being met throughout the project
lifecycle. Quality assurance involves proactive measures to improve and maintain quality,
such as conducting audits, implementing process improvements, and providing training to
team members. The goal of quality assurance is to prevent defects and ensure that the
project is on track to meet its quality objectives.
3. Quality Control: This is the process of monitoring and measuring project results to
ensure that they comply with the quality standards set during the planning phase. Quality
control involves inspecting deliverables, conducting tests, and analyzing performance
data to identify any deviations from quality expectations. When issues are identified,
corrective actions are implemented to bring the project back in line with its quality goals.
Quality control is reactive, focusing on identifying and resolving problems as they arise.

2.4.4 Project Human Resource Management

Project HR Management is a critical component of project management that focuses on


optimizing the human resources involved in a project to ensure its success. It begins with the
planning phase, where project managers outline the necessary roles and responsibilities needed
to achieve project goals. This involves not only identifying the skills required but also
forecasting the number of team members needed at various stages of the project.

Once the planning is complete, the next step is acquiring the right personnel. This may involve
recruiting internally or externally, conducting interviews, and selecting candidates who possess
the necessary skills and cultural fit for the project team. After team members are on boarded,
Project HR Management shifts to developing their capabilities through training and continuous
learning opportunities, which are essential for enhancing team performance and adapting to
project challenges.

Effective communication is another cornerstone of Project HR Management. Establishing clear


lines of communication fosters collaboration, ensures that all team members are aligned with
project objectives, and helps in quickly addressing any issues that arise. Additionally, managing

87
team dynamics is crucial. This includes recognizing and resolving conflicts, promoting
teamwork, and creating a supportive environment where all members feel valued and motivated.

Performance management is also an integral part of Project HR Management. Regular


assessments help in monitoring individual contributions and identifying areas for improvement.
Feedback mechanisms and recognition programs can boost morale and encourage high
performance. Furthermore, planning for team retention and succession ensures that the project
remains on track, even if team members transition in or out during its lifecycle.

2.4.5 Project Human Resource Management Processes

Project HR Management is essential for the successful execution of any project, as it focuses on
optimizing the human resources involved. This discipline includes four key processes:

Figure 2.11 Project HRM Processes

In summary, Project HR Management encompasses a structured approach to managing the


human aspects of a project. By focusing on planning, acquiring, developing, and managing the
project team, organizations can significantly enhance their chances of project success. Effective
HRM not only ensures that the right people are in place but also fosters a collaborative and high-
performing team environment, ultimately driving project outcomes.

88
2.4.6 Techniques for project team motivation

Motivating a team is crucial for enhancing productivity, fostering collaboration, and achieving
project goals. Here are several effective techniques to boost team motivation:

1. Clear Goals and Objectives

Establishing clear, achievable goals helps team members understand their roles and the
importance of their contributions. Setting specific, measurable objectives provides direction and
purpose.

2. Recognition and Rewards

Acknowledging individual and team achievements boosts morale. Implementing a reward system
such as bonuses, public recognition, or awards can motivate team members to excel.

3. Open Communication

Encouraging open dialogue fosters a culture of trust and transparency. Regular check-ins,
feedback sessions, and team meetings allow team members to express their thoughts and
concerns, making them feel valued.

4. Professional Development

Providing opportunities for training and professional growth shows commitment to team
members' careers. Workshops, mentorship programs, and access to learning resources can
enhance skills and motivate individuals.

5. Empowerment and Autonomy

Allowing team members to take ownership of their tasks and make decisions fosters a sense of
responsibility and investment in the project. Empowerment leads to increased motivation and job
satisfaction.

6. Team Building Activities

Organizing team-building exercises helps strengthen relationships and improve collaboration.


Activities, whether in-person or virtual, can enhance camaraderie and a sense of belonging.

89
7. Work-Life Balance

Supporting a healthy work-life balance demonstrates care for team members' well-being.
Flexible work arrangements, such as remote work options or flexible hours, can reduce stress and
increase motivation.

8. Providing Resources and Support

Ensuring that team members have the necessary tools, resources, and support to complete their
tasks effectively can significantly impact their motivation. Addressing any obstacles they face
shows that their success is a priority.

9. Creating a Positive Work Environment

Fostering a positive and inclusive workplace culture can enhance team motivation. Encouraging
collaboration, celebrating diversity, and promoting a supportive atmosphere contribute to job
satisfaction.

10. Involving Team Members in Decision-Making

Engaging team members in project planning and decision-making processes fosters a sense of
ownership and investment in outcomes. Their input can lead to better solutions and increased
motivation.

2.5 PROJECT RISK MANAGEMENT

2.5.1 Risk and Risk Management

Risk refers to the potential for loss, damage, or any negative outcome that may arise from a
situation or decision. In the context of projects, risk encompasses uncertainties that can impact
the project's objectives, schedule, budget, or overall success. Risks can be categorized as positive
(opportunities) or negative (threats), and they often originate from various sources, including
technical challenges, resource constraints, external factors, or stakeholder changes.

In project management, risk is the uncertainty that can affect project outcomes. This uncertainty
can manifest in various ways, including:

Technical Risks: Associated with the technology, tools, or processes used in the project. For
example, using untested software could lead to failures.

90
Operational Risks: Relate to internal processes and systems, such as resource availability or
team performance. High turnover rates could disrupt project continuity.

Financial Risks: Arise from budgetary constraints, cost overruns, or funding changes. For
instance, unexpected increases in material costs could strain the budget.

External Risks: Originating from outside the organization, such as regulatory changes, market
fluctuations, or natural disasters. A sudden change in regulations might require project
adjustments.

Risk management is the systematic process of identifying, assessing, and mitigating risks to
minimize their impact on an organization or project. This process involves several key steps:

Risk Identification: Recognizing potential risks that could affect a project or organization,
including internal and external factors.
Risk Assessment: Evaluating the likelihood and potential impact of identified risks, often
using qualitative and quantitative methods to prioritize them.
Risk Mitigation: Developing strategies to minimize or eliminate the impact of risks. This
can include avoidance, transfer, acceptance, or reduction strategies.
Monitoring and Review: Continuously tracking identified risks and the effectiveness of
mitigation strategies, adjusting plans as necessary.

2.5.2 Project Risk Management

Project Risk Management is a crucial aspect of project management that focuses on identifying,
analyzing, and responding to risks that could potentially impact a project’s objectives. It aims to
maximize the likelihood of project success by proactively managing uncertainties throughout the
project lifecycle.

At the heart of Project Risk Management is the risk management plan, which outlines the
approach and processes for managing risks. This plan details how risks will be identified,
assessed, prioritized, and monitored. It also defines roles and responsibilities for team members,
ensuring that everyone understands their part in managing risks.

Risk identification is the first step in the process, where potential risks are recognized and
documented. Common techniques for this include brainstorming sessions, SWOT analysis
(evaluating strengths, weaknesses, opportunities, and threats), and expert judgment, which

91
involves consulting experienced stakeholders to gain insights into risks that may not be
immediately apparent.

Once risks are identified, they undergo risk analysis. This phase is divided into two parts:
qualitative and quantitative analysis. Qualitative analysis prioritizes risks based on their
likelihood of occurrence and potential impact, often using a risk matrix to categorize them.
Quantitative analysis, on the other hand, employs numerical methods to assess the overall impact
of risks on project objectives. Techniques such as Monte Carlo simulations can provide a deeper
understanding of how risks might affect project timelines and budgets.

Following analysis, the next step is risk response planning. This involves developing strategies to
address each identified risk. Common response strategies include avoidance (modifying project
plans to eliminate the risk), mitigation (reducing the probability or impact of the risk), transfer
(shifting the risk to a third party, such as through insurance), and acceptance (acknowledging the
risk and preparing for its consequences without active mitigation).

The final component of Project Risk Management is monitoring and control. This ongoing
process involves regularly reviewing and reassessing risks throughout the project. Continuous
monitoring ensures that the strategies in place remain effective and that new risks are identified
as they arise. Change management is also a critical aspect of this phase, as project scope changes
or external factors can introduce new risks or alter existing ones.

2.5.3 Tools and Techniques for Project Risk Management

Effective Project Risk Management relies on a variety of tools and techniques that help identify,
analyze, and mitigate risks throughout the project lifecycle. One of the primary tools is the risk
register, a centralized document that tracks identified risks, their assessment, and the strategies
developed to manage them. It serves as a living document, updated regularly to reflect new risks
and changes in the project context. Another essential tool is the risk matrix, which visually
represents the likelihood and impact of risks, allowing project teams to prioritize their focus on
the most critical threats.

Techniques such as SWOT analysis are commonly used to evaluate the project’s internal
strengths and weaknesses, along with external opportunities and threats, providing a
comprehensive view of potential risks. Brainstorming sessions foster collaborative discussions

92
among team members to uncover risks that may not be immediately obvious. For more
quantitative assessments, Monte Carlo simulations provide insights into potential project
outcomes by analyzing the impact of risks through statistical modeling.

Additionally, Failure Mode and Effects Analysis (FMEA) is a systematic approach used to
identify potential failure points in a project and assess their impacts, helping teams prioritize
which risks need immediate attention. Checklists can also be beneficial, offering a structured
way to ensure that all potential risks are considered during the planning phase. By employing
these tools and techniques, project managers can create a robust framework for effectively
managing risks, ultimately enhancing the likelihood of project success.

2.5.4 The Importance of Project Risk Management

Project Risk Management is essential for ensuring the success and sustainability of projects. Its
importance lies in several key areas:

Proactive Identification of Risks: By systematically identifying potential risks before they


materialize, organizations can prepare for uncertainties that could derail project objectives. This
proactive approach minimizes the likelihood of surprises and allows teams to implement
effective mitigation strategies early on.

Improved Decision-Making: Effective risk management provides project managers and


stakeholders with valuable insights into potential challenges. This information aids in making
informed decisions regarding resource allocation, project timelines, and scope adjustments,
ultimately leading to better project outcomes.

Enhanced Resource Allocation: Understanding risks enables better allocation of resources, as


project managers can prioritize efforts and investments based on the severity and likelihood of
identified risks. This targeted approach helps in optimizing resource use and reducing waste.

Increased Stakeholder Confidence: Transparent risk management processes foster trust among
stakeholders, including team members, clients, and sponsors. When stakeholders see that risks
are being actively managed, their confidence in the project increases, leading to stronger support
and collaboration.

Minimized Project Delays and Cost Overruns: By anticipating and addressing risks,
organizations can significantly reduce the chances of project delays and budget overruns.

93
Effective risk management helps maintain schedules and budgets, ensuring that projects are
delivered on time and within scope.

Continuous Improvement: Risk management encourages a culture of continuous improvement


within organizations. By analyzing past projects and their risks, teams can learn valuable lessons
that can be applied to future initiatives, enhancing overall project management practices.

Compliance and Legal Protection: For many industries, effective risk management is not just a
best practice but a requirement for compliance with regulations and standards. Properly
managing risks can also protect organizations from legal issues arising from project failures.

2.5.5 Contingency and Fallback Plans, Contingency Reserves (Risk Management Plans)

Contingency and fallback plans, along with contingency reserves, are essential elements of
effective Project Risk Management that ensure resilience in the face of uncertainties.
Contingency plans are proactive strategies developed to address identified risks, outlining
specific actions to be taken if a risk materializes. These plans include trigger conditions that
define when to activate the response, detailed action steps assigning responsibilities, and
communication protocols to inform stakeholders.

In contrast, fallback plans serve as alternative strategies for situations where contingency plans
fail or unforeseen risks arise. Fallback plans incorporate escalation procedures, additional
resource allocation, and possible adjustments to project scope, ensuring that teams can adapt to
changing circumstances. Meanwhile, contingency reserves refer to the budget or resources set
aside to manage unexpected costs and uncertainties. By providing a financial buffer, these
reserves help prevent budget overruns and allow for the allocation of additional resources when
needed. Together, these components foster a comprehensive approach to risk management,
enhancing an organization's ability to navigate challenges and achieve successful project
outcomes.

2.5.6 Outcomes of Good Project Risk Management

Good Project Risk Management is essential for the successful delivery of projects across various
industries. It involves a structured approach to identifying, analyzing, and mitigating risks
throughout the project lifecycle, ensuring that potential challenges are addressed proactively
rather than reactively. Effective risk management begins with a comprehensive risk management

94
plan that outlines the processes and methodologies to be used. This plan should detail how risks
will be identified, assessed, and monitored, as well as assign clear roles and responsibilities to
team members.

A key aspect of good risk management is the systematic identification of risks using techniques
such as brainstorming sessions, SWOT analysis, and expert judgment. By involving diverse
perspectives, teams can uncover a wide range of potential risks that may not be immediately
apparent. Once identified, risks are subjected to thorough analysis, both qualitatively and
quantitatively, allowing project teams to prioritize risks based on their likelihood and potential
impact. This prioritization enables focused attention on the most critical risks while allocating
resources effectively.

Implementing robust response strategies is another hallmark of good risk management. This
includes developing contingency and fallback plans that outline specific actions to take when
risks materialize. By preparing for potential issues in advance, organizations can minimize
disruptions and maintain project momentum. Additionally, maintaining contingency reserves
both in terms of budget and resources provides a financial cushion to address unexpected
challenges without derailing the project.

Continuous monitoring and review of risks throughout the project are crucial to adapt to
changing circumstances. This involves regularly updating the risk register, reassessing risks, and
adjusting response strategies as needed. Good communication among team members and
stakeholders is vital in this process, ensuring that everyone is informed about the status of risks
and the effectiveness of response measures.

2.6 REVIEW QUESTIONS

1.What is IT Project Management (ITPM)?

A) A method for managing financial projects

B) The application of knowledge, skills, tools, and techniques to project activities to meet project
requirements

C) A strategy for human resource management

D) A technique for managing marketing campaigns

95
2. What are the primary objectives of ITPM?

A) To increase costs and reduce project timelines

B) To deliver projects on time, within budget, and to the required quality standards

C) To minimize stakeholder engagement

D) To focus solely on technical aspects

3. How does ITPM differ from traditional project

management? A) ITPM has no phases

B) ITPM is more focused on technology and software development

C) Traditional project management ignores stakeholder input

D) There is no difference

4. What are the key phases of the project lifecycle in ITPM?

A) Initiation, Planning, Execution, Monitoring and Controlling, Closing

B) Planning, Execution, Review, Completion

C) Start, Middle, End

D) Design, Development, Deployment

5. What role do stakeholders play in IT projects?

A) They have no influence on project decisions

B) They provide requirements, feedback, and resources that are critical for project

success C) They only participate in the project closing phase

D) They are responsible for all technical tasks

6.Why is project planning crucial in ITPM?

A) It eliminates the need for stakeholder input

B) It helps to define objectives, allocate resources, and manage risks effectively

C) It is only important for budget management

96
D) It is optional and can be skipped

7. What are the main components of a project plan?

A) Objectives, budget, schedule, resources, and risk management

B) Only budget and timeline

C) Team structure and marketing strategy

D) Project completion date only

8. How do you define project success?

A) Completing the project within the allocated budget only

B) Meeting project objectives, staying within budget, and delivering on time

C) Achieving maximum profit

D) Having a large team involved

9. What is the role of project management software in planning?

A) It is used only for communication among team members

B) It aids in resource allocation, scheduling, and tracking

progress C) It replaces the need for project managers

D) It is irrelevant to project planning

10. What are the best attributes of project planning

management? A) Flexibility, clarity, and thoroughness

B) Complexity and ambiguity

C) Lack of stakeholder involvement

D) Focus on budget only

11. What is project scope, and why is it important?

A) The total cost of the project; it determines the budget

97
B) The defined boundaries and deliverables of the project; it ensures that all stakeholders have a
clear understanding of what is included

C) The number of team members; it affects team dynamics

D) The project duration; it determines the timeline

12. How do you define and document project scope?

A) By creating a vague outline of tasks

B) Through a detailed scope statement that includes objectives, deliverables, and exclusions

C) By discussing it informally with team members

D) By only focusing on deliverables

13. What are the steps in scope verification?

A) Collecting feedback, revising the scope, and obtaining formal acceptance

B) Ignoring feedback and proceeding with the project

C) Defining the project scope only

D) Documenting deliverables without review

14. Discuss the tools and techniques used for project scope management.

A) SWOT analysis and PEST analysis

B) Work Breakdown Structure (WBS) and scope

statement C) Financial forecasting and budgeting

D) Risk analysis and stakeholder interviews

15. What is the difference between project schedule and project timeline?

A) There is no difference; they are the same

B) A project schedule includes resources and tasks, while a project timeline focuses on the
sequence of tasks

C) A project timeline includes stakeholder feedback, while a project schedule does not

D) A project schedule is visual, while a timeline is textual

98
16. What tools are commonly used for scheduling tasks?

A) Microsoft Excel and Word

B) Gantt charts and project management software (e.g., Trello, Microsoft

Project) C) Email and chat applications

D) Social media platforms

17. How do you manage delays in project timelines?

A) Ignore them and continue with the project

B) Analyze the cause, communicate with stakeholders, and adjust the schedule as necessary

C) Increase the project budget significantly

D) Blame team members and move on

18. Define the best strategies used for project time management.

A) Setting unrealistic deadlines and ignoring risks

B) Prioritizing tasks, using time tracking tools, and regularly reviewing progress

C) Delegating all tasks to one team member

D) Focusing solely on the end date

19. What is the importance of quality management in projects?

A) It ensures that the project meets the required standards and satisfies stakeholder expectations

B) It is irrelevant to project success

C) It focuses only on the budget

D) It limits stakeholder involvement

20. What are the key components of a quality management plan?

A) Quality objectives, roles and responsibilities, quality control measures, and continuous
improvement processes

B) Budget and schedule only

99
C) Team structure and communication methods

D) Stakeholder analysis

21. What role do quality assurance and quality control play in

ITPM? A) They are the same and used interchangeably

B) Quality assurance focuses on preventing defects, while quality control focuses on identifying
defects

C) Quality assurance is only for software projects

D) They are not necessary in ITPM

22. What are the main components of project cost

management? A) Cost estimation, budgeting, and cost control

B) Team management and scheduling

C) Quality assurance and stakeholder

engagement D) Communication planning

23. What techniques are used for cost estimation?

A) Expert judgment, analogous estimating, and parametric estimating

B) SWOT analysis

C) Stakeholder interviews only

D) Random guessing

24. How do you manage cost overruns in a

project? A) Ignore them and continue

B) Analyze the cause, adjust the budget if necessary, and communicate with

stakeholders C) Cut corners on quality

D) Increase the project timeline

25. What are the key elements of a human resource management plan?

100
A) Team roles, responsibilities, staffing management, and training needs

B) Budget and schedule

C) Quality control measures only

D) Communication methods

26. What techniques can be used for team motivation?

A) Monetary rewards, recognition, and team-building activities

B) Strict deadlines without flexibility

C) Ignoring team input

D) Focusing only on individual performance

27. What is risk management, and why is it important in ITPM?

A) The process of avoiding all risks; it is not important

B) The identification, assessment, and prioritization of risks to minimize their impact on the
project

C) A technique to increase project budgets

D) A method for enhancing team performance

28. How do you identify potential risks in a project?

A) By conducting brainstorming sessions, using checklists, and analyzing historical data

B) By ignoring stakeholder input

C) Through guesswork

D) By focusing solely on project deliverables

29. What are qualitative and quantitative risk analysis techniques?

A) Qualitative focuses on subjective assessment of risk, while quantitative uses numerical


analysis to measure risk impact

B) They are the same and interchangeable

C) Qualitative is irrelevant, only quantitative matters

101
D) Qualitative is for small projects, quantitative for large projects

30. How do you develop a risk response plan?

A) By outlining strategies to mitigate, transfer, accept, or avoid risks identified during analysis

B) By doing nothing until a risk occurs

C) By increasing the project budget

D) By focusing on team performance only

102
COURSE NAME: SYSTEM ANALYSIS AND DESIGN

Course Description
This course will explore the Introduction to Object Technology. The Principles of Modeling,
Principles of Object Orientation; systems development using the object technology; Modeling;
principles of modeling; requirements gathering and modeling using use case; techniques of
modeling static and dynamic aspCP of systems; finding classes and objCP; Interaction Diagrams
sequence and collaboration diagrams; Class Diagrams; object diagram; activity diagram; State
chart diagrams; component diagram; deployment diagram. Individual and/or team project
involving reports and walk-through in systems analysis and design is also a major component of
this course using CASE tools.

Course Objectives
Systems analysis and design refers to the process of examining a business situation with the
intent of improving it through better procedures and methods. Systems development can
generally thought of as having two major components: Systems Analysts and Systems Design.
Systems design is the process of planning a new system, replace, or complement an existing
system. However, before this planning can be done, we must thoroughly understand the existing
system and determine how computers can best used to make its operation more effective.
Systems analysis, then, is the process of gathering and interpreting facts, diagnosing problems
and using the information to recommend improvement to the system. In brief, we can say that
analysis specified what the system should do. Design states how to accomplish the objectives.

At the end of the course, students will be able to:


• Understand the object technology and modeling principles.
• Know the techniques of modeling aspect of systems
• Analyze user requirements using UML of OO techniques.
• Make a detailed design using UML of OO techniques.

103
3. GENERAL SYSTEMS CONCEPTS
3.1 DEFINITION OF TERMS

System
It is a group of related and interacting components which work together to achieve a desired
purpose or a set of objectives. A system takes input, performs processing of data to give some
desired outputs. There are three major components in every system. I.e. Input, Processing and
Output.
Information System
An information system is an arrangement of people, data, process, interfaces, networks and
technology that interact to support and improve both day-to-day operations in a business
(sometimes called data process), as well as support the problem-solving and decision-making
needs of management (sometimes called information service).
Systems Analysis
System Analysis is the study of business problem domain to recommend improvements and
specify the business requirements for the solution.

System design
System design is the specification or construction of a technical, computer-based solution for the
business requirements identified in a systems analysis.

System Analysis and Design (SAD) mainly focuses on:


o Systems
o Processes
o Technology

3.2 CHARACTERISTICS OF A SYSTEM

A. A purpose- A system has a set of objectives to fulfill. This is the overall goal or function
of a system. A system must give priority to the objectives of the organization as a whole as
compared to the objectives of a subsystem. Examples of quantifiable objectives:
o Increase company productivity by 50% in the next two years
o Reduce wastage of papers by 20%
o Reduce time taken to process 100 certificates to one day

104
B. Sub-systems- A system is made of several sub systems. A sub system is a part of a bigger
system which performs a specific function. Sub systems communicate with each other.
They reduce system complexity and enhance understanding of system functional
requirements.
C. A Boundary- A system has a boundary within which all of its components are contained
and which establishes the limits of a system, separating the system from other systems.
The boundary is the line that makes the inside and outside of a system and that sets off the
system from its environments.
D. An Environment- This is everything external to a system that interacts with the system
i.e. everything outside the system’s boundary, usually the system interacts with its
environment, exchanging, in the case of an information system, data and information.
E. Interrelated Components- The components are interrelated. This means the dependence
of one subsystem on one or more subsystems. The function of one subsystem tied to the
function of others.
F. Feedback - It monitors the output to check that it conforms to the expected goals and
objectives. Variations from the goals or outputs fed back to the system in order to adjust
the system towards the set goals. Feedback may be positive or negative.
a. Negative Feedback
The system that works on the principle of trying to reduce the fluctuations around a set standard.
For example if there is credit limit of those customers who have outstanding debts, it restricted
them it known as negative feedback since the action taken opposite to deviation.

b. Positive Feedback
It is a system that attempts to increase a detected deviation. It helps the system to adjust but
acting in the same direction in which deviation has occurred e.g. If the demand for any product
increases and as a result, production is also increased, then it is positive feedback it helps to
increase the efficiency of the system.

3.3 DEFINITION: INFORMATION SYSTEM

An information system is an arrangement of people, data, process, interfaces, networks and


technology that interact to support and improve both day-to-day operations in a

105
business (sometimes called data process), as well as support the problem-solving and decision-
making needs of management (sometimes called information service).
 
Types of Information Systems
There are different types of information systems distinguished from each other on the basis of
what the system does or by technology used to construct the system. One of the jobs of the
system’s analyst will be to determine which kind of system will best address the organizational
problem or opportunity on which you are focusing. In addition, different classes of systems may
require different methodology techniques, and tools for development. The following are some of
the classes of information systems.

a. Transaction Processing Systems (TPS)


TPS automate the handling or transaction, which can thought of as simple, discrete events in the
life of an organization. Data about each transaction captured. Transaction verified and accepted
or rejected, and validated. Transactions may move from process to process in order to handle all
aspects of the business activity. The analysis and design of a TPS means focusing on the firm’s
current procedures for processing transactions, whether manual or automated.

The goal of TPS development is to improve transaction processing by speeding it up, using fewer
people, improving efficiency and accuracy integrating it with other organizational information
systems, or providing information not previously available.

Examples of TPS

Order Entry: - This is the TPS, which processes customer orders. Orders may arrive by a
variety of means: mail, phone, fax etc. In cases of repeat orders, a trigger within the system
will be the source.
Inventory: - An inventory system monitors the quantity of each product available for sale
and helps ensure that the proper amount of stock maintained. All movement of goods in and
out of the store or warehouse will recorded.
Distribution: - This involves ensuring the best mode of transport selected to deliver goods to
the customer on time. Customs clearance, insurance and freight forwarding are the areas of
concern here.

106
Sales Invoicing: - The main role of the sales invoicing system is to receive delivery
information from the Distribution System and to prepare invoices to be sent to the customer.
Discounts applied where appropriate. In some systems, monthly statements of accounts are
also prepared.
Accounts Receivable: - As the name implies, this TPS records the amount owed by
customers and the payments made. The data comes from the sales invoicing system.
Purchasing - Many companies have central department to handle procurement of its goods
and services. The advantages are to gain maximum volume discounts, obtain the lowest price
or best deal from various vendors and to achieve standardization where necessary.
Receiving: - The role of the receiving system is to record the receipt, inspection, acceptance
or rejection of goods. The inspection serves to identify damaged or incomplete goods that
must rejected.
Accounts Payable: - This system records the invoices received from vendors determines the
optimum time to pay, prepares, and prints cheques. Cash forecasting is another important
task of the system.
Payroll: - This system calculates the salary to be paid to employees, taking into account any
relevant deductions (e.g. Pension fund) or additions (e.g. Allowances). In addition, the
payroll system must produce income tax reports and should keep track of pension fund or
union fees, which have to credit to another organization.
b. Management Information System (MIS)
MIS takes the relatively raw data available through a TPS and converts them into a meaningful
aggregated form that managers need to conduct their responsibilities. It provides the
management with the report usually in predetermined, fixed format e.g. detailed Summary.

Developing an MIS calls for a good understanding of managers use information in their jobs.
MIS often requires data from several transaction processing systems e.g. Customer order
processing, raw material purchasing and employee time keeping.

c. Decision Support Systems (DSS)


DSS are designed to help organizational decision makers make decisions. It provides guidance
in identifying problems, finding and evaluating alternative solutions, and selecting of comparing
alternatives.

107
Instead of providing summaries of data, as with a MIS, it provides an interactive environment in
which decision makers can quickly manipulate data and models of business operations.

A DSS is composed of a database (which may extracted from TPS or MIS), mathematical or
graphical models of business processes, and a user interface that provides a way for the decision
maker, usually a non-technical manager, to communicate with DSS.
d. Expert Systems
ES attempt to codify and manipulate knowledge rather than information. It provides expert
advice by asking users a sequence of questions dependent on prior answers that lead to
a conclusion or recommendation. It simulates thinking for those with less knowledge. The focus
on developing on ES is acquiring the knowledge of the expert in the particular problem domain
knowledge engineers perform knowledge acquisition.

Information systems analysis and design is a complex, challenging, and stimulating


organizational process that a team of business and systems professionals uses to develop
and maintain computer-based information systems.
ISAD is an organizational improvement process.

Systems analysis and design is a proven methodology that helps both large and small business
reap the rewards of utilizing information to its full capacity.

The systems development life cycle (SDLC) is central to the development of and
efficient information system.

We will highlight four key SDLC steps.


 
 Planning and selection
 
 Project identification and selection

 
 Initiating and planning
 
 Analysis
 
 Requirement determination

 
 Requirement structuring
 
Design, and

108
 
Implementation and operation.

3.4 SYSTEM ANALYSIS AND DESIGN

The major goal of ISAD is to improve organizational systems. (Manual or automated)



Often this involves developing or acquiring application software and training
employees to use it.
Application software, also called a system, designed to support a specific organizational
function or process, such as inventory management, Registrar software. The goal of application
software is to turn data into information.

In addition to application software, the information system includes:


The hardware and systems software

Documentation and training materials, The specific job roles associated with the overall
system,

Controls, which are parts of the software written to help prevent fraud and theft.
The people who use the software in order to do their job.

A system is an interrelated set of components with an identifiable boundary, working together


for some purpose. A system has nine characteristic.

o Components
o Interrelated components
o A boundary
o A purpose
o An environment
o Interface
o Input
o Output
o Constraints.
A component is either an irreducible part or an aggregate of parts, also called a subsystem.
The simple concept of a component is very powerful.

109

Just as with an automobile, we can repair or upgrade the system by changing 
 individual components without having to make changes throughout the entire system.


The components are interrelated; that is, the function of one somehow tied to the
 functions of the others.

A system has a boundary, which in which all of its components are containedand which
 establishes the limits of a system, separating the system from other systems.

Components with in the boundary can changed whereas things outside the boundary
cannot changed.

3.5 SYSTEM AND ITS COMPONENTS

Because interface functions are critical in communication between system components or a


system and its environment, interfaces receive much attention in the design of information
system. You will spend a considerable portion of time in systems development dealing with
interfaces: especially interfaces between an automated system and its users and interfaces
between different information systems. It is the design of good interfaces that permits
different systems to work together without being too dependent on each other.

Security, protecting the system from undesirable elements that may want to infiltrate it.


Filtering unwanted data, both for elements leaving the system and entering

 it Encoding and decoding incoming and outgoing messages

Detecting and correcting errors in its interaction with the environment

Buffering, providing a layer of slack between the system and its environment, so that

the system and its environment can work at different speeds.

A system must face constraints in its functioning because there are limits on:


What it can do and how it can achieve its purpose within its environment.
Some of these constraints are imposed inside the system (a limited 
number of staff available)
and others imposed by the environment (due dates or regulation).

There are several other
 important systems concepts with which systems analysts need
to become familiar:

110
 
 Decomposition
 
 Modularity
 
 Coupling
 
Cohesion

In addition, you need to understand the difference between viewing a system at a logical and at a
physical level: Each with associated description concentrating on different aspects of a system.
Decomposition deals with being able to break down a system into its components.


These components may themselves be systems (subsystem) and can be broken down
 into their components as well.


Decomposing a system allows us to focus on one particular part of a system,


 to think of how to modify that one part independently of the
This makes it easier
entire system.

3.6 SYSTEM CONCEPTS

Modularity, a direct result of decomposition, refers to dividing a system up into chunks


or modules of a relatively uniform size.

Modules can represent a system simply, making it not only easier to understand but also
easier to redesign and rebuild.

Coupling is the extent to which subsystems are dependent on each other.


Subsystems should be as independent as possible.


If one subsystem fails and other subsystem are highly dependent on it, then
others will either fail themselves or have problems of functioning.
Benefiting from Systems Thinking
The first step in systems thinking is to be able to identify something as a system.


also involves recognizing each of the system’s
This identification
 characteristics:
 
o For example identifying the boundary lies and all of the relevant inputs.
Visualizing a set of things and their interrelations ship as a system allows you to

translate a specific physical situation into more general, abstract terms.

111
3.7 CLASSIFICATION OF SYSTEMS

System can classified based on the following categories


1. Natural Vs Manmade or Artificial systems
2. Open Vs Closed Systems
3. Simple Vs Complex Systems
4. Stable Vs Dynamic Systems
5. Permanent Vs Temporary Systems
6. Deterministic vs. Probabilistic Systems
As a systems analyst working as part of a team, you will work with at least 4 classes of
information systems:
1. Transaction processing systems
2. Management Information Systems
3. Decision support systems (for individuals, groups, and executives)
4. Expert systems

1. Transaction Processing System


A transaction processing system (TPS) automates the handling of data about business
activities or transactions.

112
Data about each transaction captured, transaction verified and accepted or rejected, and
validated transactions are stored.
Reports may produce immediately to provide summaries of transactions.

The analysis and design of a TPS requires you to focus on the firm’s current procedures
for processing transactions.

How does the organization track, capture, process, and output data?
2. Management Information System
A Management information system (MIS) a computer based system that takes the raw
data available through a TPS and converts them into a meaningful report
/aggregated report form.
o E.g. The MIS system can therefore direct the manufacturing department on
what to produce and when.
Developing an MIS calls for a good understanding:
o what kind of information managers require
Management information systems often require data from several TPS
3. Decision Support System
A decision support system (DSS) designed to help decision makers with decisions by
combining data, sophisticated analytical models and user-friendly user interface.

A DSS provides an interactive environment in which decision makers can quickly


manipulate data and models of business operations. (What if?)
A DSS has three parts.
o A database
o Mathematical or graphical models of business processes.
o A user interface (or dialogue module)
4. Decision Support System
DSS software supports certain decision-making activities (from problem finding to choosing a
course of action).

5. Expert Systems
An expert system is a computer-based system that contains knowledge of experts in a
particular domain.
If-then-else rules or other knowledge representation forms describe the way an expert
would approach situations in specific domain of problems.

113
The focus on developing an ES is acquiring the knowledge of the expert in the particular
problem domain.
Knowledge engineers perform knowledge acquisition;

114
  Who is a systems analyst?

 In  systems analysts are people who understand both business and
simple terms,
computing.

 o Systems analysts study business problems and opportunities and then


Transform business and information requirements of the business into the computer-
 based information systems.

 The  between those who need the
system analyst also bridges the communications gap
computer and those who understand the technology.
 
 Systems analysis and design skills can be conveniently factored into three subsets:
i. Concepts and principles
ii. Tools
iii. Techniques

3.8 MANAGING INFORMATION SYSTEMS PROJECTS

• The project manager is a systems analyst with a diverse set of skills:


o Management, leadership, technical, conflict management, and customer
relationship, team management and risk & change mgt.
• Many of the skills related to general management, not simply technical skills.

115
• Creating and implementing successful projects require managing:
o Resources and activities needed to complete the information systems project.
• A project is a planned undertaking of a series of related activities to reach an objective
that has a beginning and end.
• The first question you might ask yourself is "Where do projects come from?"
There are varieties of forms to use in requesting for information systems development.

 
One form is a System Service Request (SSR) filled by user departments collaborating with a
system analyst
 
This request then evaluated by the Systems Priority Board.
The review board selects those projects that best meet overall organizational objectives. The
PM process, which involves four phases:
 
 Initiating the project
 
 Planning the project
 
 Executing the project

 
Closing down the project

1. Initiating a Project

 During  performs several activities that assess the
project initiation, the project manager
size, scope, and complexity of the project.
 
 The Activities are:
1. Establishing the project initiation team.
 
 This activity involves organizing an initial core of project team members.
2. Establishing a relationship with the customer.

A detailed understanding of your customer builds stronger partnership and
 higher levels of trust.
3. Establishing the project initiation plan.

 required to organize the initiation team and also
This step defines the activities
 the scope of the project

to define:
The core team members of the project needed
 o when and how they would communicate,

o Define project steps, deliverables and set deadlines.

116

Thesesteps eventually led to the creation of their System Service Request (SSR)
 form.
4. Establishing management procedures.

 
Successful projects require the development of effective management
procedures.
 
 In some org’n, many of the mgt procedure would be established as SOP
 
In establishing procedures, you are concerned with developing:

o team communication and reporting procedure


o job assignments and roles, project change procedures, and
o Determining how project funding and billing will handled.
5. Establishing the project management environment and project workbook.

 The focus to this activity is to collect and organize the tools that you
will use
while managing the project and to construct the project workbook.
 
 The project workbook serves as a repository for all project:
o Correspondence, inputs, outputs, deliverables, procedures, and standards

 established by the project team.
2. Planning the Project
Project planning involves defining:
 
 clear, discrete activities and
 
The work needed to complete each activity within a single project.

There is positive relationship between effective project planning and better project outcomes.

 plans that are more general in scope
In fact, you often have to construct longer-term
and nearer term plans that are more detailed.
 
Varied and numerous activities will be performed during project planning.
1. Describing project scope, alternatives, and feasibility.
 
 The purpose of this activity is to understand the content and complexity of the project.
 
The scope answer the following question

o What problem or opportunity does the project address?


o What are the quantifiable results to achieve?
o How will success measured?
o How will we know when we are finished?

117
2. Dividing the project into manageable tasks.

Divide the entire project into manageable
tasks and then logically order them to
 ensure a smooth evolution between tasks.
o The definition of tasks and their sequence referred to as the work

 breakdown structure.


Some tasks may be performed in parallel where as others must follow one
 another sequentially.
3. Estimating resources and creating a resource plan.

Estimate resource requirements for each project activity and use this
 information to create a project resource plan.
4. Developing preliminary schedule.

 time estimates
Using the information on tasks and resource availability assign
 by creating target starting and ending dates for the project.

Target dates canrevised and modified until a schedule produced is acceptable
 to the customer.


The schedule may represented as a Gantt chart or as a Network diagram (PERT)
 chart.
5. Developing a communication plan.
 
Outline the communication procedures among:
o Management, project team members, and the customer.
 
 The communication plan includes:
o When and how written and oral reports will provided by the team…
6. Determining project standards and procedures.

 how various deliverables produced and tested by you and your
You will specify
 project team.
7. Identifying and assessing risk.
 
 It identify sources of project risk to estimate the consequences of those risks.
 
 Risk might arise:

o from the use of new technology,


o prospective users' resistance to change,
8. Creating a cost benefit analysis.

118

Create a preliminary budget that outlines the planned expenses and revenues
 associated with your project.
 
 The project justification will demonstrate that the benefits are worth these costs.(B>C)
 
This analysis shows NPV, ROI and cash flow analysis.

9. Developing a Statement of Work.


 
 It developed primarily for the customer.

 This document outlines work that will done and clearly describes what the
project will deliver.
 
The statement of Work is useful to make sure:
o You, the customer, and other project team members have a clear
understanding of the intended project outcomes.
3. Executing the Project

Project execution puts the Baseline Project Plan (BPP) into action.

 Project
execution occurs primarily during the analysis, design, and implementation
phase.
 
 The project manager is responsible for five key activities during project execution.
4. Closing Down the project
 
 The focus of project closedown is to end the project.
 
 Project can conclude with a natural or unnatural termination.
 
 Several events can cause an unnatural termination to a project. For example,
 
it may be learned that the assumption used to guide the project proved to be false

3.9 REPRESENTING AND SCHEDULING PROJECT PLANS



 has a wide variety of techniques available for depicting and document
A project manager
 project plans.

The most commonly used methods are  Gantt and or Network diagram PERT (Program
Evaluation Review Technique) Charts.

A. Gantt Charts
Useful for depicting simple projects or parts of large projects

119
Show start and completion dates for individual tasks
B. Network Diagrams
Show order of activities

Representing Project Plans

Project scheduling and management require that time, costs; piece of equipment, or material
 used in accomplishing an activity.


Network diagram (PERT) is a critical path scheduling technique used for controlling
 resources.

A of task activities whose order and durations directly affect
critical path refers to a sequence
the completion date of a project.
 
Network diagram best-known scheduling methods.
o 4r p
ET
6
 
 where
 
 ET= expected time for the completion for an activity

 
 o=optimistic completion time for an activity

 
 r= realistic completion time for an activity

 
p= pessimistic completion time for an activity


Calculate an expected time for the completion of an upcoming programming assignment. For
this assignment, you estimate an optimistic time of 2 hours, a pessimistic time of 8 hours, and
a most likely time of (r) 6 hours. Using PERT, how much is the expected time for completing

this assignment.
 
Gantt Chart and Network Diagram for GM Furniture

Networkdiagram that illustrates the activity (circles) of and sequence (Arrows) of the
activity


 project activity scheduled and
Based on the similarity of the project management process,
sequenced as follow using Gantt chart and networking.

120
1. Determine critical path

Sequence of events that will affect the final project delivery date

3.10 SYSTEM DEVELOPMENT LIFE CYCLE


a systems development methodology to
Organizations use a standard set of steps, called
 develop and support their information systems.

 methodology for systems development is the systems development life cycle
The common
(SDLC).

121
o It is series of steps used to mark the phases of development for an information
system.
 
 Generally the standard process followed in an organization consists of:
o Planning
o Analysis
o Design
o Implementation
o Maintenance

Such models included the code and fix, waterfall, staged and phased development,
 Parallel, and spiral models.

 3.11Waterfall model

 With 
waterfall development- based methodologies, the analysts and users proceed
sequentially from one phase to the next.
 
The two key advantages of waterfall development-based methodologies are:
o The system requirements identified long before programming begins.
o Changes to the requirements minimized as the project proceeds.
 
Problem of Waterfall model

Documentation: each phase requires developing fully elaborated documentation, which
 takes too much time

 
Frozen User requirements: hard to change user requirements once set during early
phase of projects
 
 The design must be completely specified before programming begins

Product notvisible until the end of project, where it will be hard to correct mistakes if
uncovered.

122
3.12 Code and Fixing

 only two phases: o
Iterative, programmers' approach, involves
Coding: writing the program code
o Fixing the code: running the program and fix errors if they appear while testing
the program with random test data
Problems:
o Very poor structure,
o Does not match user requirements,
o Difficult to maintain (Because no detail documentation)
3.13 Parallel Development


This methodology attempts to address the long time interval between the analysis phase
 and the delivery of the system.

A general design for the entire system performed and then the project divided into a
series of distinct subprojects.
3.14 Stage and Phased Development

 breaks the overall system into a series of versions that are developed
This methodology
sequentially.

123

The team categorizes the requirements into a series of versions, then the most
important
 and fundamental requirements are bundled into the first version of the
 system.
o The analysis phase then leads into design and implementation; however, only

with the set of requirements identified for version 1.
 
As each version is completed, the team begins work on a new version.
3.15 Spiral Model
 
Develop system incrementally in several cycles including
o risk assessment , determine objectives, alternatives for development, and
constraints for the portion or the whole system to be developed in the current cycle
 
 Develop the current cycle's part of the system and perform validation at the end
 
Prepare plans for subsequent phases

3.11 APPROACHES TO SYSTEM ANALYSIS & DESIGN

Three approaches that streamline (modernize) and improve the systems analysis and design
process.

 
Rapid application development
(RAD), Prototyping,
 
 Joint application designs (JAD), and
 
participatory design (PD)

3.12 SYSTEMS PLANNING AND SELECTION



The first phase of the systems development life cycle—systems planning and
 selection—deals with:
A. Identifying
B. selecting,
C. initiating, and
D. Planning projects.
 
There are two primary activities in this phase:
o general method for identifying and selecting projects and
o Project initiation and planning, and present several techniques for assessing
project feasibility.

124
A. Identifying and Selecting Projects
 
 Sources of projects (request)
i. Management and business units: who want to replace or extend an existing
system
ii. Info. System Managers who want to make a system more efficient and less costly.
iii. Formal planning groups: want to improve an existing system in orders to help the
organization meet its corporate objectives,
Read others…
3.13 ASSESSING PROJECT FEASIBILITY

 Six Categories
 
 Economic
 
 Operational
 
 Technical
 
 Schedule
 
 Legal and contractual
 
Political

3.14 ANALYSIS: REQUIREMENT DETERMINATION


 System analysis determine how the current information system functions and assess
what users would like to see in new system.
 
 There are three sub phases in analysis:
 Requirements determination
 Requirements structuring, and
Alternative generation and
choice.
 1. Types of Requirements

Requirements are partitioned into:
o functional requirements ando
Non-functional requirements.
o Functional requirements are associated with specific functions, tasks or behaviors
the system must support.

125


Non-functional requirements are constraints on various attributes of these functions or
 tasks.
o Functional requirements define what a system is supposed to do whereas Non-

functional requirements define how a system is supposed to be
 
Functional Requirements
Functional requirement specifies what the system should do or supposed to do, specify
specific behavior or functions, for example:

  and temperature of a patient
"Display the heart rate, blood pressure
connected to the patient monitor.”
 
Typical functional requirements are:
1. Business Rules
2. Transaction corrections, adjustments ( redo, undo etc), cancellations
3. Administrative functions
a. Authentication
b. Authorization –functions user is delegated to perform
4. Reporting Requirements ( periodic, exceptional, adhoc …)
5. Legal or Regulatory Requirements
 
 Nonfunctional Requirements

 that can used to
Non-functional requirements are requirements that specify criteria
judge the operation of a system, rather than specific behaviors.
 
Non-functional requirements often called qualities of a system.
For example:

"Display of the patient's vital signs (blood pressure, hearth
 beat…) must respond
 to a change in the patient's status within 2 seconds. “

 “The customer
 must be able to access their account 24 hours a day, seven days a
week.”
 
 Typical non-functional requirements are:
1. Performance - Response Time, Throughput
2. Scalability
3. Capacity
4. Availability (24/7)

126
5. Reliability
6. Recoverability
7. Maintainability
8. Serviceability
9. Manageability
10. Usability
11. Interoperability
 
Characteristics for gathering requirements

1. Impertinence ( there are no obvious things)


a. Question everything
2. Impartiality
a. Find the best organizational solution
3. Relaxation of constraints
a. Traditions are different from rules and policies, Assume anything is possible.
4. Attention to detail
a. Every fact must fit with every other fact.
5. Reframing
a. View the organization in new ways
 
 Types of information to be discovered:
 
 Problems with existing system
 
 Opportunity
 
 Organizational direction
 
 Names of key individuals
 
 Values of organization
 
 Rules for processing data
 
 Workflow Analysis Modeling
 
 Workflow analysis modeling help to facilitate standard analysis methodologies.


A workflow is a depiction of a sequence of operations, declared as work of a person,
work of a simple or complex mechanism,
 work of a group of persons, work of an
organization of staff, or machines.

127


A workflow diagram is a graphic representation of all the major steps of a process. It
 can help you:

 o Understand the complete process.
o Identify the critical stages of a process.

 o Locate problem areas.

o Show relationships between different steps in a process.

3.15 PROCESS MODELING


 Requirements  kind of: systematical and standard,
structuring is the process to use some
well-structured methods to model the real world.
 
 Process modeling
 
 Logic modeling
 
Data modeling
 
 Process Modeling
 
Process modeling involves graphically represent the processes that:
o Capture, manipulate, store and distribute data between a system and its environment
and among system components.
 
 A common form of a process model is a data flow diagram (DFD).
 
Data flow diagrams (DFD)

o Graphically illustrate movement of data between external entities and the


processes and data stores within a system

o Four symbols are used Developed by Gane and Sarson

128


Logic Modeling 
 Data flow diagrams do not show the logic inside the processes


  representing internal structure and functionality of processes
Logic modeling involves
depicted on a DFD
 
Three methods
o Structured English
o Decision Tables
o Decision Tree
  
Data Modeling

 Data modeling is the act of exploring data-oriented structures through the 
identification of the relationships among the data objects that used in a business.
 
 Representation of organizational data

 assigned to entity
In data modeling, you identify entity type, data attributes
 types and associations between entities are determined.

 Consistency must maintained between process flow, decision logic and data modeling
descriptions.
 
There are 3 types of data modeling, these are:
1. Conceptual data modeling (CDM)
2. Logical data modeling (LDM)/Logical Database Design
3. Physical data modeling (PDM)/ Physical Database Design

129
3.16 PURPOSE OF DATABASE DESIGN


 called normalized tables
Structure the data in stable structures,
 o Not likely to change over time

 o Minimal redundancy

Develop a logical database design that reflects actual data 
requirements It forms the base for a physical database design
 
Process of Database Design
 
 Based upon the conceptual data model
 
 4 key steps

1. Develop a logical data model for each known user interface for the application
using normalization principles.
2. Combine normalized data requirements from all user interfaces into one
consolidated logical database model
3. Translate the conceptual E-R data model for the application into normalized
data requirements
4. Compare the consolidated logical database design with the translated E-R
model and produce one final logical database model for the application.
2. Physical Design
 
 Based upon results of logical database design
 
 Key decisions

1. Choosing storage format for each attribute from the logical database
model
2. Grouping attributes from the logical database model into physical records
3. Arranging related records in secondary memory (hard disks and magnetic
tapes) so that records can be stored, retrieved and updated rapidly
4. Selecting media and structures for storing data to make access more
efficient
 
Deliverables and Outcomes

130
o Logical database design must account for every data element on a system input or
output
o Normalized relations are the primary deliverable
o Physical database design results in converting relations into files.
 
 Relational Database Model

Data represented as a set of related
tables or relations Relation
 
o A named, two-dimensional table of data. Each relation consists of a set of named

 columns and an arbitrary number of unnamed rows

o Properties
 
 Entries in cells are simple
 
 Entries in columns are from the same set of values
 
 Each row is unique


 The sequence of columns can be interchanged without changing the
meaning or use of the relation
 
The rows may interchanged or stored in any sequence.

3.17 DESIGNING FORMS AND REPORTS


 
 Form

 A business document that contains some  predefined data and may include some areas
where additional data are to be filled in
 
 An instance of a form is typically based on one database record
 
 Report
 
 A business document that contains only predefined data
 
 A passive document for reading or viewing data
 
Typically contains data from many database records or transactions

131
3.18 SYSTEM ANALYSIS AND DESIGN MODEL EXAM

CONTENTS: BASED ON MODULE


1. Which of the following is NOT a phase in the Systems Development Life Cycle (SDLC)?
A. Planning
B. Design
C. Marketing
D. Implementation
2. The purpose of the system analysis phase is to:
A. Design the software interface
B. Understand and document the existing system
C. Implement the system
D. Provide user training
3. In a Data Flow Diagram (DFD), the external entities that interact with the system are
represented by:
A. Circles
B. Arrows
C. Squares
D. Rectangles
4. Which of the following is a characteristic of high-level system design (HLD)?
A. Focuses on hardware specifications
B. Focuses on detailed user interfaces
C. Describes system architecture and interactions between modules
D. Deals with coding and unit testing
5. In an Entity-Relationship Diagram (ERD), a relationship between two entities is
represented by:
A. An arrow
B. A diamond
C. A square
D. A line
6. Which type of feasibility is concerned with whether the system can developed using the
available technology?

132
A. Technical feasibility
B. Economic feasibility
C. Operational feasibility
D. Legal feasibility
7. Which of the following is the most common method of gathering requirements from
users?
A. Brainstorming sessions
B. Interviews
C. Statistical surveys
D. Prototyping
8. Which of the following UML diagrams represents the interaction between objects or
components of the system over time?
A. Class diagram
B. Sequence diagram
C. Use case diagram
D. State diagram
9. The process of normalization in database design aims to:
A. Reduce data redundancy and improve data integrity
B. Increase data redundancy to improve performance
C. Ensure data is encrypted
D. Ensure that the database is indexed
10. Which type of testing verifies the entire system works as expected and meets business
requirements?
A. Unit testing
B. Integration testing
C. System testing
D. Acceptance testing
11. In the system implementation phase, which of the following activities typically occurs?
A. User training and system deployment
B. Requirement gathering and analysis
C. Designing the user interface

133
D. Data modeling and database design
12. Which type of maintenance focused on fixing errors and bugs found after the system has
deployed?
A. Adaptive maintenance
B. Perfective maintenance
C. Corrective maintenance
D. Preventive maintenance
13. Which of the following is a key advantage of using the prototyping model in system
development?
A. It requires less user involvement
B. It reduces the overall cost of development
C. It allows users to provide feedback early in the development process
D. It follows a strictly linear, step-by-step approach
14. In project management, a Gantt Chart is used to:
A. Schedule tasks and track progress
B. Map user requirements
C. Diagram system architecture
D. Test system functionalities
15. A use case diagram in UML is used to:
A. Model the physical structure of a system
B. Represent interactions between the system and external users (actors)
C. Show the internal logic of the system
D. Model the sequence of interactions between system components
16. Which of the following SDLC models characterized by iterative development and
feedback from end-users?
A. Waterfall model
B. V-Model
C. Spiral model
D. Incremental model
17. Which of the following is NOT typically a part of risk management in system
development?

134
A. Identifying potential risks
B. Ignoring risks to save time
C. Assessing the impact of risks
D. Developing strategies to mitigate risks
18. A cost-benefit analysis is primarily used in the feasibility study to:
A. Estimate the total cost of development
B. Assess the long-term impact of the system
C. Determine the financial viability of a project
D. Determine the technical specifications of the system
19. In a relational database, the relationship between two tables is often defined by:
A. An index
B. A foreign key
C. A primary key
D. A data type
20. Which of the following is a primary goal of system testing?
A. To verify individual functions of the system
B. To check the integration of different system components
C. To ensure that the entire system meets the specified requirements
D. To train users on how to use the system
21. System analysis is primarily concerned with:
A. Understanding the problem and its context
B. Writing code
C. Testing the system
D. Deploying the system
22. Which of the following is a key goal of system design?
A. Understanding the user requirements
B. Designing the user interface
C. Creating a blueprint for system construction
D. Analyzing the existing system
23. What does SDLC stand for?
A. Software Development Life Cycle

135
B. System Design Life Cycle
C. System Development Life Cycle
D. Software Design Life Cycle
24. Which of the following is not a phase of the SDLC?
A. Planning
B. Requirements gathering
C. Coding
D. Prototyping
25. In system development, the primary purpose of the feasibility study is to:
A. Estimate system costs
B. Assess whether the system is practical and viable
C. Design the system
D. Gather user requirements
26. Which of the following is a technique used to gather requirements from users?
A. Interviews
B. Prototyping
C. Questionnaires
D. All of the above
27. The functional requirements of a system describe:
A. The expected behavior of the system
B. The user interface design
C. The hardware specifications
D. How the system will be tested
28. Which document outlines the detailed description of the user’s needs and system
requirements?
A. Use case document
B. System specification document
C. Design document
D. Requirement specification document
29. In the requirements gathering phase, which technique involves users interacting with an
early model of the system?

136
A. Prototyping
B. Brainstorming
C. Questionnaires
D. Document analysis
30. Non-functional requirements refer to:
A. How the system will behave in specific situations
B. What the system will do
C. The system’s interaction with users
D. The system’s performance characteristics
31. Which of the following is the main purpose of system design?
A. To build and implement the system
B. To define system architecture and components
C. To write detailed requirements
D. To test the system
32. In which phase of the SDLC the system database design typically completed.
A. Analysis
B. Design
C. Implementation
D. Testing
33. Which of the following is NOT a characteristic of high-level system design?
A. Describes system components and interactions
B. Defines system architecture
C. Focuses on user interfaces and workflows
D. Deals with detailed algorithms and code
34. Low-level design (LLD) typically includes:
A. Overall system architecture
B. Database schema design
C. Detailed algorithms and component structures
D. System performance testing
35. A Data Flow Diagram (DFD) is used to represent:
A. System data flow and processes

137
B. User interactions with the system
C. Entity relationships
D. Sequence of events in the system
36. Which of the following represented by an Entity-Relationship Diagram (ERD)?
A. System behavior over time
B. Relationship between data entities
C. Data flow between system processes
D. Sequence of events in a process
37. During system implementation, which of the following activities performed?
A. System deployment
B. Requirement gathering
C. Prototyping
D. Testing
38. In the system implementation phase, which of the following most commonly used to
ensure that the system functions as intended?
A. Feasibility analysis
B. Functional testing
C. Unit testing
D. Prototyping
39. Which of the following describes the process of transferring data from an old system to a
new system?
A. Data migration
B. Data modeling
C. Data cleaning
D. Data aggregation
40. Which system development phase focuses on preparing end users to work with the new
system?
A. System testing
B. Training
C. Requirements gathering
D. Design

138

You might also like