Professional Documents
Culture Documents
My Notes
My Notes
Laaiqah Seedat
Table of Contents
Chapter 15 – Quality Concepts ............................................................................................................... 5
What is Quality ? ................................................................................................................................. 5
5 Views of Quality ........................................................................................................................... 5
Software Quality ................................................................................................................................. 5
Quality Factors ................................................................................................................................ 5
Characteristics of high software quality ......................................................................................... 6
Qualitative Quality Assessment ...................................................................................................... 6
Quantitative Quality Assessment.................................................................................................... 6
The software quality dilemma ............................................................................................................ 7
Cost of Quality................................................................................................................................. 7
Achieving software quality.................................................................................................................. 8
Legal Matters (POPIA) ............................................................................................................................. 9
Terms .................................................................................................................................................. 9
Purpose ............................................................................................................................................... 9
The actual act : .................................................................................................................................... 9
Principles of POPIA............................................................................................................................ 10
Rights of data subjects ...................................................................................................................... 10
Chapter 16 Reviews .............................................................................................................................. 11
Review Metrics (Calculations) ........................................................................................................... 11
Steps for a review ............................................................................................................................. 12
Level of review formality .................................................................................................................. 12
Formal technical review .................................................................................................................... 12
Objectives...................................................................................................................................... 13
Constraints .................................................................................................................................... 13
End of review tasks ....................................................................................................................... 13
Chapter 17 Software Quality Assurance ............................................................................................... 15
Terms ................................................................................................................................................ 15
Elements of SQA( software quality assurance) ................................................................................. 15
SQA tasks........................................................................................................................................... 16
SQA Goals .......................................................................................................................................... 17
Statistical SQA ................................................................................................................................... 17
Steps for statistical SQA ................................................................................................................ 17
Causes of problems uncovered ..................................................................................................... 17
Six Sigma ....................................................................................................................................... 17
AI modelling reliability ...................................................................................................................... 18
Software safety ................................................................................................................................. 18
ISO 9000 standards ........................................................................................................................... 19
SQA Plan ............................................................................................................................................ 19
Chapter 19 Software Testing – Component Level (Unit testing) .......................................................... 21
Planning and recordkeeping ......................................................................................................... 21
What is in a testing strategy Test Case Design ............................................................................. 21
White box testing .......................................................................................................................... 22
Black box testing ........................................................................................................................... 22
Object Oriented Testing .................................................................................................................... 23
Semester Test Example ..................................................................................................................... 23
Chapter 20 Software Testing – Integration Level (Joining units) .......................................................... 25
Black Box testing (External/ Functional testing) ............................................................................... 25
White box testing (Internal / Structural testing ) ............................................................................. 25
Integration ........................................................................................................................................ 25
Top Down ...................................................................................................................................... 25
Bottom up ..................................................................................................................................... 26
Continuous integration ..................................................................................................................... 26
Regression testing And AI ................................................................................................................. 27
Integration testing in Object orientation .......................................................................................... 27
Fault based test case design ......................................................................................................... 27
Scenario based test case ............................................................................................................... 28
Validation testing .......................................................................................................................... 28
Testing Patterns ............................................................................................................................ 28
Integration testing semester test 1 2020 Q5 (Past paper) ............................................................... 28
Chapter 21 Software Testing – Mobility ............................................................................................... 30
Testing strategies .............................................................................................................................. 30
Alerts ................................................................................................................................................. 30
Web testing strategies ...................................................................................................................... 30
Security Testing ................................................................................................................................. 30
Performance testing ......................................................................................................................... 30
Real time testing ............................................................................................................................... 31
Testing AI Systems ............................................................................................................................ 31
Chapter 22 – Software Configuration Management ............................................................................ 32
SCM Features .................................................................................................................................... 33
Change categories ............................................................................................................................. 33
2020 → Question 1 Semester test 2 (software configuration management) .................................. 34
Chapter 23 – Software Metrics and Analytics....................................................................................... 35
Requirements Model Metrics ........................................................................................................... 35
Maintenance Metrics ........................................................................................................................ 36
Metrics for Software Quality............................................................................................................. 37
Chapter 24 – Project Management Concepts ....................................................................................... 38
People ............................................................................................................................................... 38
Product .............................................................................................................................................. 39
Process .............................................................................................................................................. 39
Project ............................................................................................................................................... 40
W5HH Principle .................................................................................................................................. 40
Chapter 25 – Viable Software Plan ....................................................................................................... 41
Chapter 26 – Risk Management............................................................................................................ 42
Chapter 27 – A strategy for software support ...................................................................................... 44
Semester Test 1 Revised ....................................................................................................................... 45
REVISION (150 Marks)........................................................................................................................... 45
Chapter 26 Risk management : 20 Marks ......................................................................................... 45
Chapter 15 (15 Marks) ...................................................................................................................... 46
Reviews (Chap 16) 10 Marks ............................................................................................................. 47
Software quality assurance (10 marks) ............................................................................................. 47
Chapter 25 (Creating a viable software plan) ................................................................................... 48
Component level testing chapter 19 15 marks ................................................................................. 48
Integration testing (Chapter 20) 10 Marks ....................................................................................... 49
Chapter 21 (testing for mobility) ...................................................................................................... 49
Chapter 22 (config management) ..................................................................................................... 49
Chapter 27 (a strategy for software support) ................................................................................... 49
Guest Lecturer Notes ............................................................................................................................ 51
Trust In Technology (KPMG) ............................................................................................................. 51
Emerging technology .................................................................................................................... 51
Entelect (Software engineering) ....................................................................................................... 51
Embracing Technology (PwC) ........................................................................................................... 51
Play with your food : A Guide to thriving in the software development industry (BBD) ................. 51
DVT (Microservices → Stay hungry, stay foolish) ............................................................................. 51
Chapter 15 – Quality Concepts
Why something is good or bad quality ?
What is Quality ?
• Everyone is responsible for quality.
• Quality of design – Characteristics that designers specify for the product. These are :
o The grade of materials
o Tolerances
o Performance specification
• The higher the grade of materials , the tighter the tolerances and greater levels of
performance are specified.
5 Views of Quality
1. Transcendental View – Quality you recognise but cannot define.
2. User View – It is quality because it meets the end users’ goals.
3. Manufacturer’s view – The product conforms to the original specifications .
4. Product View – Quality can be tied to the functions or features of the product.
5. Value based view – How much a customer is willing to pay for the product.
User Satisfaction = Compliant product + Good Quality + Delivery withing budget and schedule
Software Quality
• Software Quality – An effective software process applied in a manner that creates a useful
product that provides measurable value for those who produce it and those who use it.
o Project chaos is a key contributor to poor quality.
o To build high quality software
▪ Analyse the problem
▪ Design a solid solution
o Useful product delivers the end users desires in a reliable, error free way.
o Producer gains from good software because high quality software requires less
maintenance, fewer bug fixes and low levels of customer support.
• Software quality results in
1. Greater revenue
2. Better profitability
3. Improved availability of information.
Quality Factors
• Product Operation → Operation characteristics
▪ Correctness
▪ Reliability
▪ Usability
▪ Integrity
▪ Efficiency
• Product Transition → Ability to undergo change
▪ Portability
▪ Reusability
▪ Interoperability – the ability of computer systems or software to exchange and make
use of information.
• Product Revision → Adaptability to new environments
▪ Maintainability
▪ Flexibility
▪ Testability
Product Quality
Focuses on the static and dynamic nature of computer systems.
Cost of Quality
Gaining quality comes at a cost , and low quality also comes at a cost
• Prevention Cost
Costs to prevent defects
▪ Quality control and assurance management activities.
▪ Added technical activities
▪ Test planning
▪ Training for the above activities.
• Appraisal cost
Actions that assess software to determine their quality.
▪ Cost of technical reviews
▪ Data collection and metrics evaluation
▪ Cost of testing and debugging
• Failure Cost
▪ Internal Failure
Error in Product prior to shipment
➢ Cost to rework/ repair error
➢ Cost when rework generates side effects
➢ Collection of quality metrics that assess the mode of failure
▪ External Failure
Defects found after shipment
➢ Complaint resolution
➢ Product return & replacement
➢ Help line support , labour costs with warranty
➢ Poor reputation for company
• Poor quality software can lead to many risks, even death in certain circumstances.
• Low quality can be a security risk because it can be easier to hack.
• Two software problems
▪ Bugs – Implementation problems
▪ Flaws – Architectural problems in the design.
People pay too much attention to the bugs and not enough attention to the flaws.
• Management actions can impact the quality of software
▪ They could make an irrational delivery date, that forces the developers to meet the
deadline and compromise quality
▪ They could make unrealistic scheduling sessions, as such testing may not occur the
way it was meant to and overall the software quality will suffer.
▪ Develop a contingency plan if something does go wrong.
Terms
• Personal information – Any information relating to an identifiable, living, natural person, and
where it is applicable, an identifiable, existing juristic person.
o Obvious personal information
▪ Name
▪ ID Number
o Less obvious
▪ Belief system
▪ Opinions
▪ Sexual orientation
• Data subject – The person whom the personal information relates to.
• Responsible party – Public / private body or any other person that determines the purpose
and means for processing personal information.
Purpose
• Gives right of privacy.
• Justifiable limitations are aimed at :
o Balance the right to privacy and the right to access information.
o Protects important interests
• Regulates the way PI may be processed.
•
• Data subject participation – Data subject must have access to personal information
correction or deletion of PI if inaccurate, irrelevant outdated, excessive, incomplete,
misleading, or unlawfully obtained.
o Allow users to update information.
∙ Assessment effort, Ea. The effort (in person-hours) that is expended during
the actual review
∙ Rework effort, Er. The effort (in person-hours) that is dedicated to the
correction of those errors uncovered during the review
∙ Review effort, Ereview. Represents the sum of effort measures for reviews:
Ereview = Epreparation + Eassessment + Ereview
∙ Work product size (WPS). A measure of the size of the work product that
has been reviewed (e.g., the number of UML models, the number of document
pages, or the number of lines of code)
∙ Minor errors found, Errminor. The number of errors found that can be categorized
as minor (requiring less than some prespecified effort to correct)
∙ Major errors found, Errmajor. The number of errors found that can be categorized
as major (requiring more than some prespecified effort to correct)
∙ Total errors found, Errtot. Represents the sum of the errors found:
Errtot = Errminor + Errmajor
∙ Error density. Represents the errors found per unit of work product
reviewed:
Error density =Errtot / WPS
∙ Effort saved
Effort saved per error = Etesting – Ereviews
• Keep the review metrics the way it was done in the past (i.e. : if it was calculated by UML, calculate it
by UML this time too, this helps to compare between reviews).
• If not enough errors were found , the review approach not have been thorough enough, or the team
did a great job as developing the solution / setting up requirements etc.
•
• Person hour – Number of hours each person puts towards a project.
o Technical review hours are also included in the main hours.
• Review Effort → Preparation Efforts +Assessment Efforts+ Rework Efforts
o Semester test 1 (Q2a)
▪ Prep Efforts (EP)= in person hours of everyone added up
• 12+10+11+10+9.5 = 52.5 hours
▪ Assessment efforts (EA) = 6 hours * 5 people = 30 hours
▪ Review efforts (ER)= effort to rework
• (9*2)+ (6*6) = 54 hours
▪ FINAL : 52.5 + 30 + 54 = 136.5 hours
• Error Density→ Error total (Number of errors)/ Work product size (Size of the work product)
o Semester test 1 (Q2b)
▪ Error total = Major errors + minor Errors
• 9+6=15
▪ WPS = 75
• We know there are 0.2 errors per page (historically), stick with what
they have done in the past because we can only compare with the
past.
• And the question says so.
▪ FINAL : 15/75= 0.2 error density.
Objectives
(1) to uncover errors in function, logic, or implementation for any representation of the
software;
(2) to verify that the software under review meets its requirements;
(3) to ensure that the software has been represented according to predefined
standards;
(4) to achieve software that is developed in a uniform manner; and
(5) to make projects more manageable.
Constraints
• Between three and five people (typically) should be involved in the review.
• Advance preparation should occur but should require no more than 2 hours of work for each
person.
• The duration of the review meeting should be less than 2 hours.
SQA tasks
• Prepare an SQA plan for the project
• Participate in the development of the projects software process description.
• Review SE activities and verifies compliance
o Identifies, documents and tracks deviations from the process and verifies
corrections.
• Audit to verify compliance
o Reviews selected work products
o Reports results to manager
• Ensures deviations are documented and handled accordingly.
• Records and reports non-compliance to management.
o This is tracked till it is resolved.
• Manage change and help to collect software metrics.
SQA Goals
• Requirement’s quality
• Design quality
• Code quality
• Quality control effectiveness
Statistical SQA
Steps for statistical SQA
1. Information about software errors and defects is collected and categorized.
2. An attempt is made to trace each error and defect to its underlying cause (e.g.,
nonconformance to specifications, design error, violation of standards, poor communication
with the customer).
3. Using the Pareto principle (80 percent of the defects can be traced to 20 percent of all
possible causes), isolate the 20 percent (the vital few).
4. Once the vital few causes have been identified, move to correct the problems that have
caused the errors and defects.
• Spend time focusing on things that matter but first understand what really matters !
Six Sigma
• First created for manufacturing, now a strategy for statistical quality assurance
• Used to improve an existing process or to create a solution. (Define, measure, and analyse are
the core steps)
o CORE (In both)
▪ Define – gather requirements and project goals through customer
communication
▪ Measure – Determine current quality performance. (i.e.: Collect defect metrics)
▪ Analyse – The defect metrics and determine the few causes
o Improve (DMAIC Approach)
▪ Define , Measure, Analyse
▪ Improve – eliminate root causes of defects
▪ Control – control process to ensure future work does not reintroduce the causes
for defects.
o Creation (DMADV Approach)
▪ Define , Measure, Analyse
▪ Design
• To avoid root causes pf defects
• Meet customer requirements
▪ Verify
• That the model does avoid root defects and meets customers’
requirements.
• Apply six sigma in a scenario
o Know steps and what they entail.
▪ Think of you solving an issue with code.
• Software reliability → the probability of failure-free operation of a computer program in a
specified environment for a specified time.
• Failure is non-compliance to software requirements.
Mean Time Between Failure = Mean Time to Failure +Mean time to repair
Based on CPU time, not wall clock time , measured in clock ticks / clock seconds.
• Software availability → The probability that a program is operating according to its requirements
at a given point in time
AI modelling reliability
• Why don’t we use AI to model reliability?
• We can use AI to determine where we could make errors in code and could help us code
better.
• Finding the optimal solutions, use evolutionary means.
• Use past data to measure , assess and evaluate where your problems may occur.
Software safety
• Software must be analysed in the context of the entire system.
• Examines ways that a failure can result in a mishap, failures are considered in context of the
entire computer system and not alone.
SQA Plan
• Provides a roadmap for instituting SQA.
• SQA plans are published by IEEE.
• The standard structure (IEEE) :
• the purpose and scope of the plan,
• a description of all software engineering work products (e.g., models, documents, source
code) that fall within the purview of SQA,
• all applicable standards and practices that are applied during the software process,
• SQA actions and tasks (including reviews and audits) and their placement throughout
the software process,
• the tools and methods that support SQA actions and tasks,
• software configuration management procedures,
• methods for assembling, safeguarding, and maintaining all SQA-related records, and
• organizational roles and responsibilities relative to product quality.
Chapter 19 Software Testing – Component Level (Unit testing)
• Technical reviews – speak as a team and make review plans.
• Begin at a component level.
• As you combine two components, do integration testing.
• There are various ways to test.
• Developers test as well.
• Ensure progress is measurable.
• Testing is one element that forms part of validation and verification.
o Verification → Are we building the product right?
▪ The set of tasks that ensure that software correctly implements a specific
function.
o Validation → are we building the right product? (Requirements wise) *
▪ A different set of tasks that ensure the software that has been built is
traceable to customer requirements.
• During development , quality should be taken into consideration.
• When you test, as a developer , you do not want to show something that does not work
well.
• When you test something , you try and break it.
• Independent Test Groups (ITG) are paid to break the system.
• Software once validated should be integrated with other elements.
• You are never done with testing, therefore there are good enough software to use.
• Test for main components.
• You are done with testing once you are complete with money or time or another view is ,
testing never ends, it is only passed on to the end user.
▪ 3 regions
• The whole graph, between 3 and 2
• Between (4,5,6) , 7 , (10,11) , (8,9)
o Cyclometric complexity. V(g) = e-n+2
▪ Look at the edges and nodes , from the drawn graph and do the calculation.
▪ V(g)=e-n+2 = 8-7+2 = 3
o Look at how many predicate nodes there are (Any node where it branches of) (
BEST OPTION)
▪ 2 diamonds + 1 = 3
• Final answer is 3
▪ V(g) = Predicate Nodes +1
Integration
• Combination of completed work being joint for a final product.
• Uses both black and white box testing.
• Looks at the communication between the modules.
• The big bang approach → Take everything, combine it to the final solution and then test it.
o BAD IDEA !!!
• Do integration testing incrementally.
Top Down
• Depends on stubs (A stub is a module that acts as temporary replacement for a called
module and gives the same output as that of the actual product , can also be called mocks)
• Begin with the main control model and move down. (i.e., integrated by moving downward
through the control hierarchy)
• Stubs are replaced by the actual modules at every movement.
• Tests are conducted each time a module is integrated.
• On completion of tests, the next stub is replaced.
• Regression testing are then conducted.
Bottom up
• Begins test at the lowest level of the structure (atomic level).
• Eliminates the need for complex stubs
• As integration moves upwards the need for separate test drivers lessens.
Continuous integration
• Practice merging components into evolving software increment once or more each day.
• Test every day to cheeck when the errors are happening.
• Smoke Testing → Is an integration testing approach that can be used when product software
is developed by an agile team using short incremental build times.
o Can be characterised as a rolling or continuous integration strategy.
• Smoke testing approach :
1. Software components that have been translated into code are integrated into a build. A
build includes all data files, libraries, reusable modules, and engineered components that are
required to implement one or more product functions.
2. A series of tests is designed to expose errors that will keep the build from properly
performing its function. The intent should be to uncover “show-stopper” errors that have
the highest likelihood of throwing the software project behind schedule.
3. The build is integrated with other builds, and the entire product (in its current form) is
smoke tested daily. The integration approach may be top down or bottom up.
1. For each client class, use the list of class operations to generate a series of random test
sequences. The operations will send messages to other server classes.
2. For each message that is generated, determine the collaborator class and the corresponding
operation in the server object.
3. For each operation in the server object (that has been invoked by messages sent from the client
object), determine the messages that it transmits.
4. For each of the messages, determine the next level of operations that are invoked and
incorporate these into the test sequence.
Validation testing
• Begins after integration testing has come to an end.
• Focuses on requirements level, things immediately apparent to end user.
• All errors have been corrected so far, so looks at customer acceptance criteria.
• Configure an audit report, this ensures the system has been built properly.
• Use the use cases to test.
Testing Patterns
• These describe common testing problems and solutions that can assist you with dealing with
the problem at hand.
• Three patterns
o Pair testing
o Separate test interface
o Scenario Testing
Testing strategies
• User experience testing → users are involved in the early stages of development.
• Device compatibility testing → testers verify it works on many different hardware and
software combinations.
• Performance testing → Testers check non functional requirements unique to mobile apps.
• Connectivity testing → Can access needed networks or web services and can tolerate weak
or interrupted access.
• Security testing → Should not compromise the privacy or security requirements of its users.
• Testing in the wild → tested under realistic conditions.
• Certification testing → testers ensure that standards established by the app stores that will
distribute it is met.
Alerts
• Popups can lose the users attention, use them sparingly.
• These should be in a way that the user can see.
• System should be fault tolerant.
Security Testing
• Designed to probe vulnerabilities.
Performance testing
• If your system can handle a lot of people.
• This can impact the system security.
• Load Testing
o N – Number of concurrent users
o T – number of online transactions per unit of time.
o D – data load processed by server per transaction.
o P – Overall throughput, as calculated by N x T x D
o P → N*T*D
• P =[(20 000/2)*3]/60 = 500 kB/s = 4 Mbps
• NB : 1 Mbps = 125 kB/s
Real time testing
• Weighted device platform matrices. (WDPM)
o Purpose: To ensure quality in a system, use time wisely. Therefore, it is a tool used
for you to decide where to put in your effort to achieve a majority result.
o Helps you concentrate on where to show your efforts.
o Ranking, the highest value is the highest ranking.
o How to calculate it (Q6 past paper 2020 ST2)
▪ List the columns with the operating systems based off the scenario
(populate from the right to the left)
▪ List the targeted devices from row 3 down in the first column
▪ Write ranking in the second row, second column.
▪ Rankings should be from 0 to 10
• Enter rankings for devices and operating systems
Android iOS
Ranking 7 5
Android phone 7 49 N/A
Apple phone 5 N/A 25
Windows phone 1 N/A N/A
Desktop machine 3 N/A N/A
Looking at this table, I would focus more on the android device for testing, and secondly, I would
focus on apple phone. And would not focus much on the desktop machine or the windows phone.
Testing AI Systems
• Tests that can be run on an AI program to check if it does what it should do
o Static testing → software verification focusing on execution , checking to see if the
way the information is developed is correct according to experts in that field. (An AI
miner should perform tasks as proficient or even better than a current human
miner).
o Dynamic testing → Validation technique focusing on source code, shows the AI
conforms to the behaviours specified by human experts.
o Model based testing →
•
Chapter 22 – Software Configuration Management
• Change is inevitable, we need to manage change effectively.
• When change occurs, how do we ensure current development has minimal effort if change
occurs.
• How to minimise the change ?
• Configuration management → making changes and managing the change.
• Software Configuration Item (SCI) → Named element of information can vary in size. (Any
item that the project can be divided into, a unit).
• SCM Activities are developed to:
(1) identify change,
(2) control change,
(3) ensure that change is being properly implemented, and
(4) report changes to others who may have an interest.
• Software support → Software engineering activities that occur once the software has been
delivered to the customer and put into operation.
• Software Configuration management → Software configuration management is a set of
tracking and control activities that are initiated when a software engineering project begins
and terminates only when the software is taken out of operation.
• Information from SCM may be divided into three categories
1. Computer program
2. Work products describing the computer program
3. Data or content
• Sources of change
1. New business or market conditions
2. New stakeholders needs demand changes.
3. Reorganisation or business growth or downsizing
4. Budgetary or scheduling constraints.
• Elements of CM system
o Component elements
o Process elements
o Construction elements
o Human elements
• Baselines
o Stabilised form of the project, this is the baseline.
o IEEE → Institute of Electrical and Electronic Engineers (it’s a Body)
o The best working version of the project.
o Formal definition
▪ A specification or product that has been formally reviewed and agreed
upon, that thereafter serves as the basis for further development, and that
can be changed only through formal change control procedures.
o Before a product is made part of the baseline, changes can occur quickly and
informally, but once it is a part of the baseline, changes need to be made formally
and each change needs to be evaluated and verified.
• SCI’s can have an influence on one another; therefore, you need to make sure the changes
you make in one SCI do not impact the other components or if it does , you need to ensure
the components now interact well with this new component.
• When changes are introduced, involve team members.
• Best SCM Practices
o Keep code variant numbers small
o Test early and often
o Integrate early and often
o Tool used to automate testing, building and integration.
• Continuous integration advantages
o Accelerated feedback
o Increased quality
o Reduced risk
o Improved reporting
o CI improves quality by reducing the likelihood of defects escaping the development
team.
• GitHub is an SCM repository.
o Read the features and think of those features in GitHub and if you are using it.
• A software engineer can ensure change has been properly implemented by
o Technical reviews
o Software configuration audit
• Configuration status Reporting (CSR)
• Engineering Change Order (ECO)
• When you roll out to a few people , it is beta testing (people outside the company can test
it), alpha testing is internal testing.
• Once the change is tested on a beta level, then the change can be sent out at a final level.
• Be realistic and motivate why you chose that answer.
• Page 449, change control process, understand figure 22.6 and 22.7
SCM Features
Must provide support for the following features
• Versioning
• Dependency tracking and change management
• Requirement’s tracing
• Configuration management
• Audit trails
Change categories
Class 1→ Small change , does not impact other components
Tested informally
Tested informally
Maintenance Metrics
• Software maturity index can be calculated as follows :
• SMI = [Mt – (Fa +Fc + Fd)] / Mt
o Value approaching one, the system is stabilising.
• Measuring Software
Metrics for Software Quality
• Defect Removal Efficiency
o DRE = E / E+ D
o E = errors before delivery
o D = Defects after delivery
o Ideal value is 1, yet it would possibly approach one.
o Bad if close to zero.
o Indicator of the filtering ability of quality control and assurance activities.
• DRE can also be done at a specific instance in the process, before it is passed on to the next
process
o DRE(i) = E(i) / E(i)+ E(i+1)
o Where the E(i+1) means the next process step.
• If DRE is low, consider bettering technical reviews.
Chapter 24 – Project Management Concepts
• What do we do?
o Plan
o Organise
o Monitor
o Control
• 4 P’s of the project
o People – The stakeholders of the project, the project manager, software needs people to
factor it in, the team leader- Something you can control and manage
▪ People must be organised to perform software work effectively.
o Product – Scope and requirements must be understood.
o Process – A process appropriate should be selected.
o Project – Understand what can go wrong , planned by estimating effort and calendar
time to accomplish work tasks.
People
• Maximise each person’s skills and abilities. The team leader organises this.
• The people (Stakeholders) :
1. Senior managers (product owners) who define the business issues that often have a
significant influence on the project.
2. Project (technical) managers (Scrum masters or team leads) who must plan, motivate,
organize, and coordinate the practitioners who do software work.
3. Practitioners who deliver the technical skills that are necessary to engineer a product or
application.
4. Customers who specify the requirements for the software to be engineered and other
stakeholders who have a peripheral interest in the outcome.
5. End users who interact with the software once it is released for production use.
Product
• Quantitative estimates and an organised plan are required but solid information is
unavailable.
• Software scope
o Context
▪ How does it fit into the larger system?
▪ Constraints imposed?
o Information objectives
▪ Inputs and outputs?
o Function and performance
▪ What happens to transform input data into output data.
▪ Any performance characteristics ?
• Decomposition areas
(1) the functionality and content (information) that must be delivered and
(2) the process that will be used to deliver it.
• This can be accomplished using a list of functions or with use cases or for agile work, user
stories.
Process
• Decide a process model based on :
1. the customers who have requested the product and the people who will do the
work,
2. the characteristics of the product itself, and
3. the project environment in which the software team works.
Project
• Characteristics in successful software projects:
1. Clear and well-understood requirements accepted by all stakeholders
2. Active and continuous participation of users throughout the development process
3. A project manager with required leadership skills who can share project vision with
the team
4. A project plan and schedule developed with stakeholder participation to achieve
user goals
5. Skilled and engaged team members
6. Development team members with compatible personalities who enjoy working in a
collaborative environment
7. Realistic schedule and budget estimates which are monitored and maintained
8. Customer needs that are understood and satisfied
9. Team members who experience a high degree of job satisfaction
10. A working product that reflects desired scope and quality
W5HH Principle
Questions to define key project characteristics and formulate the project plan :
1. Why is the system being developed? All stakeholders should assess the validity of business
reasons for the software work. Does the business purpose justify the expenditure of people,
time, and money?
2. What will be done? The task set required for the project is defined.
3. When will it be done? The team establishes a project schedule by identifying when project
tasks are to be conducted and when milestones are to be reached.
4. Who is responsible for a function? The role and responsibility of each member of the
software team is defined.
5. Where are they located organizationally? Not all roles and responsibilities reside within
software practitioners. The customer, users, and other stakeholders also have
responsibilities.
6. How will the job be done technically and managerially? Once product scope is established,
a management and technical strategy for the project must be defined.
7. How much of each resource is needed? The answer to this question is derived by
developing estimates based on answers to earlier questions
Chapter 25 – Viable Software Plan
• Chapter 25 and 27 , only learn what is in the slides, in the textbook, do not go over work not
in the slides
• Fail to plan, planning to fail.
• When you plan , you rough sketch , then figure out how to make it.
• Ensure these are realistic.
• You want to learn from your mistakes.
• Keep record of what you did as a developer.
• Keeping this record helps with making decisions and can help on estimating future projects.
• Over estimation can be bad.
• Estimating software cost and efforts.
• Software sizing
o Direct : Lines of code
▪ Good because
o Indirect : Function Points
•
Chapter 26 – Risk Management
• Identify the risks.
• Once it is identified, you can decide if action should be taken or not.
• Identify and manage risk for 20 marks for the exam !
• Technical debt → the costs associated with putting off activities like documentation and
refactoring.
• Technical debt can lead to inadequate functionality, erratic behaviour, poor quality,
insufficient documentation, and unnecessary complexity.
• Characteristics of risk
o Uncertainty
o Loss
• Categories of risk
o Project risk
o Technical risk
o Business risk
• Risk management principles
o Maintain a global perspective
o Take a forward-looking view
o Encourage open communication
o Emphasise a continuous process
o Develop a shared product vision
o Encourage teamwork
• To identify a risk (look at these if you are not sure what the risk is)
o Product size
o Business impact
o Customer characteristics
o Process definition
o Development environment
o Technology to be built
o Staff size and experience
• Risk components
o Performance risk
o Cost risk
o support risk
o Schedule risk
• Risk impact categories
o Negligible → Inconvenience and cost is low
o Marginal → affect secondary mission objectives with medium costs
o Critical → Question mission success , high cost
o Catastrophic → Mission failure , cost will be unacceptable
• Look at both this to estimate risk
o Likelihood or probability that the risk is real
o Consequences of the problems associated with the risk
o Estimate impact
o Assess overall accuracy to avoid misunderstandings
• Risk projection steps
o Establish a scale
o Delineate the consequences of the risk
o Estimate the impact of the risk on the project and the product
o Note the overall accuracy of the risk projection
• RE = P * C
o Risk Exposure = Probability of risk * Cost (This is the risk impact total if a total cost is
not provided)
o This is the probability of it happening.
• Risk impact , in worst case how much would it cost (takes the probability is assumed to be
100 and the risk is calculated)
o In the example, Risk impact = Components x LOC x cost per LOC
o By refining risk impact causes you can reduce the risk impact
• Risk refinement
• Mitigation – Avoid the risk
• Monitoring – factors we can track that will enable us to determine risk probability
• Management – What contingency plans do we have if the risk becomes a reality.
• Mitigation tries to prevent it, reduce the possibility.
• Risk information sheet:
o Probability : Percentage
o Impact : (Cost value)
o Describe the risk (Description)
o Give details , context of sub conditions
▪ Give a further description of the risk in context (by giving sub conditions)
o Mitigation and monitoring
▪ Mitigation is to prevent; monitoring looks at how to reduce possibility
o Management /Contingency plan / trigger
▪ RE computed to be …
▪ Management is to manage the risk to continue the business, the risk has
happened/ is happening, and now you need to manage it.
▪ Allocate this amount
▪ Ensure that there are plans in place to address the issue if it happens.
• EXAM QUESTION 2020
o
Chapter 27 – A strategy for software support
• Law of continuing change
• Law of increasing complexity
• Law of conservation of familiarity
• Law of continuing growth
• Law of declining quality
• Security issues can occur if systems stop being serviced.
• The people (users should know when to move to the new systems ) ***Might be in exam
• You must support a system till people stop using it, even if it is not in active development
(no new security updates).
• Reverse engineering – Create representations of a system at a higher level of abstraction
• Refactoring – process of changing a software system
• Reengineering (evolution)
• Agile maintenance
• Cost of support → You need to know of it is worth your while to do support.
Semester Test 1 Revised
• Read the chapter and articulate the answer. Can you apply the rules to the question?
• Look up what effectiveness is.
• Purpose specification → What information is used and why.
Emerging technology
• Technology will never be perfect, but you can release it and fix issues if they become better
at it.
Play with your food : A Guide to thriving in the software development industry (BBD)
• Playing is growth.
• Prepare yourself for the transition.
• Being a software engineer is:
o Fun
o Tough
o It is what you make it.
• Play with stuff you are passionate about.
• Use visual studio share to pair program online.
• It is important to take rest so that you are not constantly in a state of burnout.
• Security should not be thought of as an afterthought.
• Writing code is easy, building software is not.