System_and_Software
System_and_Software
List of Courses
1. Event-driven Programming
Written By:
ii
2.3.6 Basic Principles of Information Technology Project Management ........................ 76
2.5.5 Contingency and Fallback Plans, Contingency Reserves (Risk Management Plans)
94
iii
3.1 DEFINITION OF TERMS ........................................................................................... 104
iv
List of Figures
FIGURE 2.1 THE TRIPLE CONSTRAINT OF PROJECT MANAGEMENT .................................................... 58
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.
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 isused 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 softwarein 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
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 featureof 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 cycleso 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:
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.
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.
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).
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.
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.
.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.
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!
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
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.
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:
26
For example, variable names following Camel notation could be
salary totalSalary
myMathsMarks isPaid
WriteLine() LastIndexOf()
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
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)
Sub Main()
28
Console.WriteLine()
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 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
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.
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
End If
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
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.
32
Console.WriteLine("Ok, 6 is also closer to 5")
Else 'line 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:
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
If flag = 1 Then
' do something…
End If
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:
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
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
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.
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
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
Try
Catch e As NullReferenceException
...Console.WriteLine("InCatchblock ")
40
Console.WriteLine("NullReferenceException Caught")
End Try
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).
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
Catch e As NullReferenceException
...Console.WriteLine("InCatchblock ")
Console.WriteLine("NullReferenceException Caught")
End Try
Since this code does not cause any exceptions to be raised, the execution of program will output
as
42
Let's add the Finally block to our previous code example
Public Sub Main() Dim s As
String = "Faraz"
Try
Catch e As NullReferenceException
End Try
End Sub
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.
Try
End Try
End Sub
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.
Try
Catch e As NullReferenceException
45
Console.WriteLine("NullReferenceException Caught")
Catch e As IndexOutOfRangeException
Console.WriteLine("IndexOutOfRangeException Caught")
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...
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
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())
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.
Exceptionsgenerated 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. 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?
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 theyneed, 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.
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.
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.
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.
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.
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
58
Figure 2.2 Project Management Framework
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.
The role of a project manager is multifaceted, encompassing both people and project
management.
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:
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.
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.
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.
63
2.2 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.
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
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.
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.
5. Budgeting
Cost Estimation: Estimate costs for resources, tools, and any other expenses. Include a
contingency budget for unexpected costs.
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.
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.
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.
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.
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.
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.
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.
73
2.3.4 Project Cost Management
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.
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
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.
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.
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
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.
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:
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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:
Establishing clear, achievable goals helps team members understand their roles and the
importance of their contributions. Setting specific, measurable objectives provides direction and
purpose.
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.
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.
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.
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.
Fostering a positive and inclusive workplace culture can enhance team motivation. Encouraging
collaboration, celebrating diversity, and promoting a supportive atmosphere contribute to job
satisfaction.
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.
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.
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.
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.
Project Risk Management is essential for ensuring the success and sustainability of projects. Its
importance lies in several key areas:
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.
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.
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.
B) The application of knowledge, skills, tools, and techniques to project activities to meet project
requirements
95
2. What are the primary objectives of ITPM?
B) To deliver projects on time, within budget, and to the required quality standards
D) There is no difference
B) They provide requirements, feedback, and resources that are critical for project
96
D) It is optional and can be skipped
97
B) The defined boundaries and deliverables of the project; it ensures that all stakeholders have a
clear understanding of what is included
B) Through a detailed scope statement that includes objectives, deliverables, and exclusions
14. Discuss the tools and techniques used for project scope management.
15. What is the difference between project schedule and project timeline?
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
98
16. What tools are commonly used for scheduling tasks?
B) Analyze the cause, communicate with stakeholders, and adjust the schedule as necessary
18. Define the best strategies used for project time management.
B) Prioritizing tasks, using time tracking tools, and regularly reviewing progress
A) It ensures that the project meets the required standards and satisfies stakeholder expectations
A) Quality objectives, roles and responsibilities, quality control measures, and continuous
improvement processes
99
C) Team structure and communication methods
D) Stakeholder analysis
B) Quality assurance focuses on preventing defects, while quality control focuses on identifying
defects
B) SWOT analysis
D) Random guessing
B) Analyze the cause, adjust the budget if necessary, and communicate with
25. What are the key elements of a human resource management plan?
100
A) Team roles, responsibilities, staffing management, and training needs
D) Communication methods
B) The identification, assessment, and prioritization of risks to minimize their impact on the
project
C) Through guesswork
101
D) Qualitative is for small projects, quantitative for large projects
A) By outlining strategies to mitigate, transfer, accept, or avoid risks identified during analysis
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.
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.
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.
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.
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.
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.
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.
Initiating and planning
Analysis
Requirement determination
Requirement structuring
Design, and
108
Implementation and operation.
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.
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.
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 containedand 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.
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.
Modules can represent a system simply, making it not only easier to understand but also
easier to redesign and rebuild.
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
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.
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
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
Thesesteps 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:
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
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 canrevised 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:
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.
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
Networkdiagram 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
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 notvisible 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
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)
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
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 ando
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
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.
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)
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.
131
3.18 SYSTEM ANALYSIS AND DESIGN MODEL EXAM
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