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

Module 3-software Testing

The document outlines the principles and strategies of software testing, emphasizing the importance of a flexible testing approach that includes unit, integration, and system testing. It distinguishes between verification and validation, and highlights the roles of independent test groups and the need for clear testing criteria. Additionally, it discusses various testing types such as regression, performance, and security testing, along with the debugging process and psychological considerations involved in effective software testing.

Uploaded by

Vaishak Shetty
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Module 3-software Testing

The document outlines the principles and strategies of software testing, emphasizing the importance of a flexible testing approach that includes unit, integration, and system testing. It distinguishes between verification and validation, and highlights the roles of independent test groups and the need for clear testing criteria. Additionally, it discusses various testing types such as regression, performance, and security testing, along with the debugging process and psychological considerations involved in effective software testing.

Uploaded by

Vaishak Shetty
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 110

Module 3-software

Testing
Software Testing

• Software Testing is done to uncover errors that were made


inadvertently as it was designed.
• Software testing strategy should be flexible enough to
promote customized approach.
• For example when a new vehicle is build it goes through
various stages of testing before going to market.
• Strategy of software testing is developed by project manager,
software engineers etc.
• Testing starts with small parts and it focuses on individual
components or group of components.
• There is a test specification document in which there is a
plan that describes overall approach and the tests that can
be conducted.
A Strategic approach to software testing

• A strategic approach to software testing involves creating a


comprehensive plan that ensures the software meets its
requirements, is of high quality, and is delivered on time.
• Testing is a set of activities which are planned in advance
and conducted automatically.
• Software testing strategies provide the developer with a set
of templates.
Some of the software testing
characteristics

• To perform effective testing a software team should


conduct formal technical reviews and by doing this many
errors will be eliminated before testing commences.
• Testing begins at the component level and then goes to the
complete system level as a whole.
• Different testing techniques will be appropriate at different
points of time.
Verification and validation

• Verification refers to the set of activities that ensure that


software correctly implements a specific function.
• Validation is a different feature that ensures that software that
has been built is traceable to requirements specified by the
customer.
• Main difference between verification and validation is are we
building the product right and have we built a right product.
• By testing we can asses the quality and errors can be
recovered.
• But testing cannot be viewed as safety net.
Organizing for software testing

• Organizing for software testing involves structuring the testing


activities, resources, and processes in a manner that ensures
effective and efficient testing.
• It requires careful planning, allocation of roles and responsibilities.
• A software engineer normally will be very careful about the
product that he has built and in testing sometimes it happens to
tear down the things that engineer had built.
• Software engineer is responsible for testing individual
components or modules ensuring that each performs the
function or behavior for which it was designed.
• An Independent Test Group plays a crucial role in ensuring
the quality and reliability of software products.
• ITG helps identify defects early, ensures thorough testing,
and contributes to the delivery of high-quality software.
• ITG People work closely with software engineer to find
issues and while testing developer must be able to correct
errors that has been uncovered.
A Software testing strategy for
conventional software architecture
• System engineering defines the role of software and leads
to software requirement analysis.
• A strategy for software testing will be viewed in terms of
spiral.
• Unit testing is a software testing method where individual
units or components of a software are tested in isolation to
ensure they work as expected.
• This type of testing focuses on verifying the correctness of
a specific section of code.
• Next testing progresses from spiral to integration testing
where they will focus on design and software architecture.
• Next is validation testing where requirements established
as a part of software requirement analysis are validated
against software being developed.
• Finally there is system testing where software or a product
is tested as a whole.
• Testing is actually a series of 4 steps that are implemented
sequentially.
• Initially test focuses on each component individually ensuring that it
functions properly and so its called as unit testing.
• Next Components will be assembled or integrated to form complete
software package.
• In unit testing the main thing is to test each components individually
without depending on each other.
• Integration testing is a level of software testing where individual units
or components are combined and tested as a group. The goal of
integration testing is to identify issues that occur when different
components interact with each other.
• After the software has been integrated a set of high order
tests are conducted.
• Validation criteria must be evaluated and it provides final
assurance that software meets the requirements.

Specifying product requirements before testing


commences
• ensuring that the testing process is aligned with the project's
goals and that all critical aspects of the product are validated.
Software testing strategy for object
oriented architectures
• Developing a software testing strategy for object-oriented architectures involves
understanding the unique aspects of object-oriented design, such as encapsulation,
inheritance, polymorphism, and the interactions between objects.
• Key Elements of a Testing Strategy for Object-Oriented Architectures
1.Unit Testing
2.Integration Testing
3.System Testing
4.Regression Testing
5.Performance Testing
6.Acceptance Testing
Criteria for completion of testing

• Suppose you have not done testing for the software you
developed the burden will shift from developer to customer.
• Defining clear criteria for the completion of testing is
essential to ensure that a software product is ready for
release.
• These criteria help in deciding when to stop testing and
move the product to the next stage of development or to
production.
Strategic issues

• Strategic issues is related to high level planning, execution


and effectiveness of testing.
• Although the main goal of testing is to find errors a good
testing strategy assess other characteristics such as
portability, maintainability and usability.
• State testing objectives effectively:Testing objectives are
specific goals or aims that guide the testing process.
• They provide clarity on what needs to be tested, why it
needs to be tested, and what success looks like.
• Understand the users and develop a profile for each user
category
• Understanding the users of software and developing user
profiles, also known as user personas, is essential for
designing products that meet users' needs and
expectations effectively.
• Rapid cycle testing, also known as rapid iteration or rapid
prototyping, is an iterative approach to software
development and testing that emphasizes quick feedback
loops and continuous improvement.
Building a robust software designed to test itself
Designing robust software that can test itself is a concept
often associated with self-testing or self-checking systems.
These systems are designed to monitor their own behavior
and performance.
Continuous improvement is essential for refining and
enhancing the testing process over time, ensuring that it
remains effective, efficient, and aligned with the evolving
needs of the project and stakeholders.
Black box and white box testing

• Black box testing refers to testing externally for example


if a new vehicle comes to market then if we drive it but we
don’t worry about internal modules
• But White box testing refers to focusing on internal
modules working and behaviors.
Test Strategies for Conventional software

• There are several strategies used to test software one is


that software team will wait for the complete system until
overall system is fully constructed and conduct tests on
them.
• But this method simply don’t work because it will give us a
software with bugs so a software engineer can conduct a
test whenever any part of the software is constructed.
Unit Testing

• Unit testing focuses on the smallest part of software design


the software component or module.
• Using the component level design as description as a guide
important control paths are tested to uncover errors.
• The unit testing focuses on internal processing logic within
boundaries of a component.
Unit test considerations

• The module interface is tested to ensure that information


flows into and out of the programme modules.
• When implementing unit testing, there are several critical
considerations to ensure the tests are effective, maintainable,
and valuable to the overall development process.
• Selective testing of execution paths is crucial for ensuring that
your unit tests are thorough yet efficient.
• This approach focuses on targeting the most critical and
relevant parts of the code rather than attempting to achieve
100% coverage indiscriminately.
• Boundary testing is one of the important unit testing tasks
beacuse software often fails at its boundaries
Integration testing

• After all the units are tested there arises another question
that if all the modules or components are put together as a
single unit testing well they work?
• The problem is putting them together or interfacing like one
module function can affect another, subfunctions may not
provide desired results and so on.
• Integration testing is a systematic technique for
constructing software architecture while at the same time
conducting tests associated with interfacing.
Incremental integration

• Incremental integration is a software development practice


where individual components or modules of a system are
developed and tested incrementally until the entire system
is integrated and tested as a whole.
• This method contrasts with "big bang" integration, where
all components are combined and tested at once.
Top down integration testing

• Top-down integration testing is a strategy used in software


testing where the highest-level modules are tested first,
followed by the integration of lower-level modules one by one.
• This approach ensures that the higher-level functionalities are
working before integrating and testing the lower-level
functionalities
• Depth first integration integrates all the components on the
control path.
• For example selecting left hand side m1,m2,m5 then m8,m6
would be integrated.
Bottom up integration

• Bottom-up integration is a software testing and system


integration approach where testing begins with the lowest-
level components of the system, such as individual
modules or units.
• These components are first tested independently, and then
progressively integrated to form larger subsystems.
• This process continues until the entire system is fully
integrated and tested.
Regression testing

• Each time a new module is added as apart of integration test


the software changes.
• New data flows are established, New IO May occur and new
control logic is invoked.
• These changes may cause problems with the functions that
previously worked nicely.
• Successful tests results in discovery of errors and errors must
be corrected.
• When a software is corrected some aspect of software
configuration is changed.
• Regression testing is a type of software testing that ensures
that recent changes to the code, such as enhancements,
patches, or configuration changes, have not adversely
affected the existing functionality of the software.
• The main goal of regression testing is to detect and fix bugs
introduced into previously tested code, thereby ensuring
the integrity and stability of the software after
modifications
Validation Testing

• Validation can be defines in many ways but a simple


definition is validation succeeds when software performs
the function as required by the customer.
• Expectations are defined in the software requirement
specification a document that describes all user visible
attributes of the software.
Validation Test Criteria

• Software validation is achieved through a series of test that


demonstrate conformity of requirements.
• Test plan outlines the classes of tests to be conducted and
test procedure defines specific test cases.
• A test plan is a document that outlines the strategy, scope,
resources, and schedule for testing activities to ensure the
software meets its requirements and functions correctly. It
serves as a blueprint for conducting testing and managing
the testing process.
• Test cases are detailed steps that describe how to verify
that a particular function of a software application works as
expected.
• Each test case includes specific inputs, execution
conditions, and expected results.
Configuration review

• An important element of validation process is configuration review and the


intention is to ensure that all the elements of software configuration is
properly developed to meet the requirements of the software.
• Configuration review in validation testing is a critical process where the
configuration settings of the software, hardware, and network are
examined to ensure they meet the specified requirements and are
appropriate for the testing environment.
Alpha and beta testing

• Its not possible for a software developer to see how the


customer will use the software once he delivers it.
• Strange combinations of data he may use output may not be
similar to the user as it was to the organization.
• When a custom software is built for one customer a series of
acceptance tests are conducted to enable the customer to
validate all the requirements he needs.
• In fact acceptance test can be conducted over some months
thereby covering cumulative errors that will be the reason
for failure of the software.
• If software is developed to be used by many customers then
acceptance testing is impractical so alpha and beta testing comes
into picture.
• Alpha and Beta testing are two crucial stages in the software
testing lifecycle, often referred to as user acceptance testing
(UAT).
• Both involve real users and aim to validate the software's
functionality, usability, and overall quality before its final release.
• However, they differ in terms of the environment in which they
are conducted, the participants involved, and their specific
objectives.
• Alpha testing is an internal form of acceptance testing
performed by testers who are usually internal employees of
the organization developing the software.
• Beta testing is an external form of acceptance testing
performed by actual users or customers in a real-world
environment.
Activity: Write down Different test cases

Test Case 1: User Registration


•Test Case ID: TC001
•Test Case Description: Verify that a new user can successfully register with valid details.
•Preconditions: The registration page is accessible.
•Test Steps:
1.Navigate to the registration page.
2.Enter a valid username (e.g., testuser).
3.Enter a valid email address (e.g., [email protected]).
4.Enter a valid password (e.g., Password123).
5.Confirm the password.
6.Click the "Register" button.
•Test Data:
• Username: testuser
• Email: [email protected]
• Password: Password123
•Expected Results: The user is successfully registered, and a confirmation message is displayed.
•Actual Results: (To be filled after execution)
•Status: (To be filled after execution)
•Comments: (To be filled after execution)
Test Case 2: User Login
Test Case 3: Product Search
System Testing

• Software is incorporated with other system elements like


hardware,people,information and series of system
integration and validation tests.
• System testing is actually a series of different tests whose
primary purpose is to fully exercise a computer based
system.
• All work have to verify that system elements have been
properly integrated and perform functions.
Recovery testing

• Many computer based systems must recover from faults


and resume processing within a time.
• This means that system failure must be corrected within a
specified period of time or else severe damage will occur.
Security Testing

• Any computer system that manages sensitive information


or causes actions that harm individuals is improper for legal
penetration.
• Hackers who attempt to penetrate systems for sports and
ex employees also can hack the systems for revenge etc.
• Security testing will ensure that protection mechanisms
built into the system will protect it from penetration.
• During security testing, the tester will play the role of
individual who desires to penetrate the system.
Stress testing

• Stress testing is a process used to evaluate the robustness


and stability of a system, application, or infrastructure
under extreme or unfavorable conditions.
• It aims to identify the breaking points or limits of the
system by subjecting it to workloads or inputs that exceed
normal operational capacity.
Different conditions of stress testing

• Generating 10 interrupts per second when we can generate


one or two.
• Test cases that cause memory management problems are
designed.
• Performance testing is a crucial aspect of software testing
that focuses on evaluating the speed, responsiveness,
stability, and scalability of a system under a given
workload.
Performance Testing

• For real time systems software that Provide required


function but donot confront to the requirements is
unacceptable.
• Performance testing is designed to test the run time
performance of the software .
The art of debugging

• Software testing is a action that can be systematically


planned and tested like test cases can be conducted,
strategy can be defines and results can be evaluated
against customer expectations.
• Debugging is a result of successful testing that is when a
test uncovers the error debugging is a action that results in
the removal of the error.
Debugging Process

• Don’t confuse debugging with testing because debugging


process always occurs as a consequence of successful
testing.
• Results are assessed and expected and actual results is
encountered.
• Debugging will always have two outcomes i)the cause will
be found and corrected ii)the cause will not be found
Physcological Considerations

• Debugging is as much a psychological task as it is a


technical one. The mindset and emotional state of the
programmer can significantly influence the efficiency and
effectiveness of the debugging process.
• embrace challenges and view bugs as opportunities to
learn and grow. A fixed mindset can lead to frustration and
a feeling of defeat.
• Debugging often requires trying multiple solutions and
investigating various possibilities. Staying patient and
persistent is key
Correcting the error

• Once a bug has been found it must be corrected but sometimes


correction of a bug can introduce other errors.
• There are several questions that arises
1. Is the cause of the bug reproduced in another part of the
programme: In some situations a programme error is caused by
erroneous pattern of logic that may be reproduced.
2. What next bug will be introduced by the fix that I am about
to make?here the source code and data structures is properly
examined and special care need to be taken when any changes is
made.
3. What could have done to prevent this bug at the first place
END OF CHAPTER
Agile Methodologies

• The Agile methodology is a project management and


software development approach that emphasizes flexibility,
collaboration, and customer-centricity. It is the latest model
used by major companies today like Facebook, google,
amazon, etc.
What is Agile?

• Agile is a project management and software development


approach that aims to be more effective.
1.It focuses on delivering smaller pieces of work regularly
instead of one big launch.
2.This allows teams to adapt to changes quickly and provide
customer value faster.
What is the Agile Methodology?

• Agile methodologies are iterative and incremental, which


means it’s known for breaking a project into smaller parts
and adjusting to changing requirements.
1.They prioritize flexibility, collaboration, and customer
satisfaction.
2.Major companies like Facebook, Google, and Amazon use
Agile because of its adaptability and customer-focused
approach.
The Agile software development life cycle helps you break
down each project you take on into six simple stages:
Requirement Gathering
• In this stage, the project team identifies and documents the
needs and expectations of various stakeholders, including
clients, users, and subject matter experts.
• It involves defining the project’s scope, objectives, and
requirements.
• Establishing a budget and schedule.
• Creating a project plan and allocating resources.
Design
• Developing a high-level system architecture.
• Creating detailed specifications, which include data
structures, algorithms, and interfaces.
• Planning for the software’s user interface.
Development (Coding)
• Writing the actual code for the software. Conducting unit testing to verify the
functionality of individual components.

Testing
• This phase involves several types of testing:
1.Integration Testing: Ensuring that different components work together.
2.System Testing: Testing the entire system as a whole.
3.User Acceptance Testing: Confirming that the software meets user
requirements.
4.Performance Testing: Assessing the system’s speed, scalability, and stability.
Deployment
1.Deploying the software to a production environment.
2.Put the software into the real world where people can use
it.
3.Make sure it works smoothly in the real world.
4.Providing training and support for end-users
Review (Maintenance)
1.Addressing and resolving any issues that may arise after
deployment.
2.Releasing updates and patches to enhance the software
and address problems.
Unit 4-Introduction to Project
Management
• Here we focus on the topic project management
and here the question that arises is that wheather
the management of software Projects is important.
• Main intention behind any software project is satisfy
the real needs of the customers.
• To do this we must understand the projects
stakeholders and their objectives
• The main idea behind project management is
ensuring that all objectives are met.
Project and importance of project
management

• A project in simple terms can be described as a


planned activity.
• In simple terms how to carry out a task before we
start and planning is important thinking carefully
about something before doing it.
The following characteristics distinguish projects

• No routine tasks are involved


• Planning is required
• Specific objectives are to be met or specific
product is to be developed.
• The Project will have a predetermined time span.
• People are formed into temporary work group to
carry out the task.
• Work is carried in several phases
• The project is large or complex.
Importance of project management
• Here are some simple, real-time examples that illustrate the importance of
project management in everyday situations:
1. Organizing a Community Event
• Key Project Management Aspects:
• Goal Setting: The objective is to organize a successful and enjoyable event
for the community.
• Planning: Creating a detailed plan that includes a timeline, budget, and
task list.
• Resource Management: Allocating tasks to volunteers, securing sponsors,
and arranging equipment and supplies.
• Risk Management: Identifying potential risks such as bad weather and
having contingency plans in place (like an indoor venue).
• Communication: Keeping all volunteers and participants
informed through regular updates and meetings.
• Execution: Overseeing the setup, running the event, and
managing the cleanup.
• Evaluation: Gathering feedback post-event to improve
future fairs.
Home Renovation Project
Family Vacation Planning
Contract Management

• In house projects are something in which users and


developers of a new software work under the same
organization.
• But many organizations give their ict development to
outsiders.
• Here the client company will appoint a project manager
who will oversee all the technically oriented decisions.
Activities covered by software project
management

• A Software project is not only about writing of software but


there are many other tasks involved.
• Here there are different process involved actually 3
1. Feasibility studies assesses wheather the project is worth
doing where information is gathered about the requirements
needed for the proposed application.
2. The stakeholders may know the aims that want to achieve
through it.
3. Development and operational costs and the value of benefits
also can be achieved.
• Planning: If feasibility study specifies that project is viable then
project planning will begin. For the larger projects we need not
create a detail plan at the beginning we just create a outline.
• Project execution: The Project can now be executed and
execution of project contains design and implementation phases.
Design relates to external appearance that is user interface.
Next diagram shows the typical sequence of software development
activities in international standard ISO 12207.Some issues are
Concerned with the system and some issues with the software.
Development is only one part of project.
• Requirement analysis starts with requirements gathering which
establishes what the potential users and managers expect from the
new system. It could be a function what the system must do and
quality that how well that function must work.
• Architecture design: Here Components that fulfil each requirements
must be identified and existing components may not fulfil all the
requirements in that case new components need to be added.
• Detailed Design: Each software component is made up of individual
software units that are individually tested.
• Code and test: Writing code for each software unit and initial testing
to individual software units can be carried out here.
• Integration: Components are tested together to see if they
match the overall requirements and here integration refers to
involve combining different software units.
• Qualification Testing: The system including all the software
components are tested to ensure all requirements are fulfilled.
• Installation: The process of making new system operational
which include activities such as setting up of data,setting system
parameters.
• Acceptance Support: Resolving the problems of the newly
installed system including correction of errors including agreed
extentions etc.
Plans, Methodologies and methods

• A Plan or a activity is based on some method or work.


• Like if you were told to test some software you don’t know
anything about it.
1. Analyse the requirements of the software.
2. Devise and write test cases that will check wheather each
test cases be satisfied.
3. Create test scripts and expected results.
4. Compare the actual results and expected results and
identify any changes.
Activity: Planning a School Event

1. Initiation: Define the Project


2. Planning: Develop the Plan
3. Execution: Implement the Plan
4. Monitoring: Track Progress
5. Closure: Wrap Up the Project
Sample Project Scenario

You are part of a team tasked with organizing a


community event to raise awareness about environmental
sustainability. The event includes educational workshops,
guest speakers, and a clean-up drive
1. Introduction (10 minutes)
• Briefly explain the concepts of plans, methods, and
methodologies.
• Plan: A detailed proposal for achieving something.
• Method: A specific way of doing something, typically involving a
systematic approach.
• Methodology: A system of methods used in a particular area of study or
activity.
Divide into Groups (5 minutes)
• Split participants into small groups (3-5 people each).

Define the Plan (15 minutes)


• Each group will create a high-level plan for organizing the
community event.
• The plan should include major milestones, timelines, and
objectives.
• Groups will present their plans to the rest of the participants.
Develop Methods (20 minutes)
• Each group will choose one aspect of the plan (e.g., organizing
workshops, coordinating guest speakers, managing the clean-up
drive).

Select a Methodology (20 minutes)


• Each group will select an appropriate methodology to manage the
entire project.
• Example: Agile, Waterfall, Lean, etc.
• They will outline why they chose this methodology and how it will
help manage the project effectively.
Discussion and Reflection (20 minutes)
• Facilitate a group discussion on the differences and
connections between plans, methods, and methodologies.

Wrap-up (10 minutes)


• Summarize the key takeaways from the activity.
Ways of categorizing software projects

• Characterizing software projects involves examining


various dimensions and attributes that define the nature,
scope, and context of the project.
• This comprehensive understanding can help in planning,
managing, and executing the project more effectively.
• Some of the factors for characterizing projects are:
Changes to the characteristics of
software projects

• In the last few decades the characteristics of software


projects has undergone many changes.
• In the initial days of software development entire code was
written from scratch because in early days there were not
many programmes were available from which code can be
reused.
• But a large number of projects is a customization of
projects for a release of new existing software.
Compulsory vs voluntary users

• Characterizing users as compulsory or voluntary is an


important aspect of understanding how different
stakeholders interact with a software system.
• Compulsory users are those who are required to use the
software as part of their job, role, or responsibilities.
• Voluntary users are those who choose to use the software
out of personal interest, preference, or perceived benefit.
Information systems vs embedded
systems

• Information systems are one which enables staff to do the


office processes while embedded systems are which control
machines.
• A stock control system is a information system while
embedded system might control the air conditioning of the
building.
Software products vs services

• All types of software projects can be classified into two


types software products development projects and software
services projects.
• A software product development project is concerned with
developing the project by keeping the general customers in
mind and the developed software is usually sold to large
number of customers.
• Software product development can be further classified into
wheather is a domain specific product or generic product.
• A Generic software product is sold to a large number of
customers like for example developing a operating system
for windows and this have a horizontal market.
• A Domain specific product is sold to specific categories of
customers and said to have a vertical market.
• Examples include banking,finance,medical etc.
Outsourced projects

• Sometimes when working on a large project company will


outsource its some part of work to other companies.
• There are several reasons behind this decision because
sometimes company will not have sufficient expertise team
to develop some parts of a project.
• Since a outsourced project refers to developing a small part
of the project its usually small in size and completed within
few months.
Object driven development

• Project may be distinguished by their aim wheather to


produce the product or meet certain objectives.
• A Project might be to develop a product of which details are
to be specified by the client and client has the
responsibility of justifying the product.
Stakeholders

• These are the people who have interest or who are part of the
project.
• Stakeholders are individuals, groups, or organizations that have
an interest in or are affected by a software project.
• Identifying and understanding stakeholders is crucial for
successful project management, as they can significantly
influence the project's requirements, development, and outcome.
• Stakeholders can be classified as:
• Internal to the project team: These people will be under direct
control of project leader.
• External stakeholders: The primary individuals who will
use the software. They can be further categorized into
compulsory and voluntary users.
• External to the project team but within the
organization:This can be project leader who need the help
of users to carr out testing.
Setting Objectives

• Among all the stakeholders there is one who actually own


the project and they also control the financing of the
project.
• The objectives will define what the team must for project
success.
• Objectives focus on desired outcomes of the project rather
than the tasks.
Business case

• A business case is a document that provides justification for


the initiation of a project or task.
• It presents the reasoning for undertaking the project, the
benefits it will deliver, the costs involved, and the expected
return on investment (ROI).
• A well-constructed business case helps stakeholders
understand the value of the project and supports decision-
making
Project success and failure

• We can differentiate between the project objectives and


business objectives.
• Project objectives are the targets that a project team is
expected to achieve.
• Different factors that can be summarized are:
1. The agreed functionality
2. The required level of quality
3. On time
4. Within budget
Traditional versus modern project
management practices

• Traditional models refers to models like waterfall


model,SDLC model.
• Modern project management refers to agile,devops etc.
• Software projects are built from existing project or from
some predefined libraries.
• Two major goals of software development life cycle are
maximize code reuse and compression of project duration
and incremental delivery of product with evolving
functionalities.
Differences
Objectives Traditional Modern
Planning Incremental Delivery Projects were planned with Nowadays project are required
sufficient details before the to complete in shorter duration
actual execution. and delivery of project is done
in different stages.
Quality Management Customers used to But now its having a different
compromise with the quality of approach.
the product so project
manager used to monitor
progress and quality
Change Management Once requirements were Incremental delivery is used
finalized by the customer new and product development is
requirements were rarely carried out in different stages.
entertained
What is management
• Management involves following activities

1. Planning-Deciding what needs to be done


2. Organizing-Making arrangements
3. Staffing-Selecting right people for the Job
4. Directing-Giving Instructions
5. Monitoring-Checking Progress
6. Controlling-Taking actions for remedy holdups
7. Innovating-Coming up with new solutions
8. Representing-Liasing with clients,users,developers.
• Project manager spends most of his times in three of these
activities: Project planning, Monitoring and Control.
• In project initiation stage,a plan is made and as the project
starts it will be monitored.
• Initial plan will be revised to accommodate additional details
and constraints of the projects.
• Initially project planning is undertaken after feasibility study
phase before starting requirements analysis and
specification process.
• Once the project execution starts monitoring and control
activities are taken to ensure that project executes as
planned.
• Project planning is important responsibility of project
manager and during project planning the project manager
need to perform a well defined activities that has been
outlined.
• Scheduling: Based on estimate of efforts and duration
schedule for manpower and other resources is developed.
• Risk Management: The activity involves risk identification.
• Miscellaneous plans:Several other plans like configuration
plans etc.
Management control

• Management involves setting objectives for the system and


monitoring performance of the system.
• Management control refers to the process by which an
organization influences its subunits and members to
behave in ways that lead to the attainment of
organizational goals and objectives.
• It involves a variety of tools and techniques to ensure that
the organization's resources are being used efficiently and
effectively.
Software development and project
management life cycle

• Software development life cycle defines the stages through


which a software is developed.
• It refers to the set of activities that are conducted during a
typical software development project.
• Project management life cycle starts well before the
software development life cycle begins.
• A Few example of project management process are project
initiation,planning,execution,monitoring,controlling and
closing.

You might also like